渠博崗,易映萍
(上海理工大學 光電信息與計算機工程學院,上海 200093)
基于CCS與MATLAB/Simulink聯(lián)合仿真平臺的構(gòu)建與實現(xiàn)*
渠博崗,易映萍
(上海理工大學 光電信息與計算機工程學院,上海 200093)
為了快速驗證電力電子控制系統(tǒng)中 DSP(Digital Signal Processor)控制算法,提高控制算法開發(fā)效率,提出了CCS(Code Compose Studio)與MATLAB/Simulink聯(lián)合仿真。介紹了CCS與MATLAB/Simulink聯(lián)合仿真基本原理,給出了聯(lián)合仿真平臺的構(gòu)建方法與聯(lián)合仿真實現(xiàn)的方法;著重給出了CCS IDE腳本文件編寫關(guān)鍵步驟和基于Level_2的S-Functon函數(shù)的編寫關(guān)鍵步驟。最后以混合式固態(tài)開關(guān)為例,在Simulink環(huán)境下構(gòu)建了混合式固態(tài)開關(guān)模型,并通過聯(lián)合仿真實現(xiàn)了混合式固態(tài)開關(guān)的功能,驗證了方案的正確性。
DSP;CCS;Simulink;聯(lián)合仿真;混合式固態(tài)開關(guān)
在現(xiàn)代電力電子控制系統(tǒng)的開發(fā)中,DSP芯片以其優(yōu)越的運算性能在控制算法領(lǐng)域得到了越來越廣泛的應(yīng)用。在對DSP的開發(fā)過程中,往往首先使用MATLAB/Simulink等軟件對控制系統(tǒng)進行仿真,然后再進行程序設(shè)計,最后再將程序執(zhí)行結(jié)果與仿真結(jié)果對比并對程序進行修改,且控制算法程序的驗證與調(diào)試都需要完整的電力電子硬件系統(tǒng),并有硬件電路工程師的配合才能較為順利地進行,然而這種傳統(tǒng)的方法效率低下,且不具有靈活性?;诖耍岢隽薈CS與MATLAB/Simulink聯(lián)合仿真的思想,可先在MATLAB/Simulink中搭建硬件系統(tǒng),應(yīng)用MATLAB/Simulink中的CCSLink工具,來實現(xiàn)MATLAB/Simulink與DSP開發(fā)環(huán)境CCS的互聯(lián),從而通過CCS與 MATLAB/Siumlink聯(lián)合仿真來實現(xiàn)對控制算法的驗證和調(diào)試。不僅可以實現(xiàn)仿真與程序調(diào)試的交互,而且還在硬件系統(tǒng)未準備就緒的情況下實現(xiàn)控制算法程序的驗證與調(diào)試,同樣的方法不僅適用于電力電子控制系統(tǒng),還適用于其他基于DSP實現(xiàn)的控制系統(tǒng)。因此,CCS與MATLAB/Simulink的聯(lián)合仿真不僅可以快速驗證控制算法,也可使仿真與開發(fā)同時進行,提高開發(fā)效率[1]。
1.1Simulink仿真原理
Simulink進行動態(tài)仿真,需要借助Simulink求解器來實現(xiàn)[2]。求解器分為離散求解器和連續(xù)求解器。Simulink對離散系統(tǒng)的仿真核心是對離散系統(tǒng)差分方程的求解,且結(jié)果精確。而對連續(xù)系統(tǒng)進行仿真時,則通過對連續(xù)系統(tǒng)微分或偏微分方程進行求解,且解為近似解,因此Simulink的連續(xù)求解器分為定步長求解器和變步長求解器。對于定步長求解器,不存在誤差控制的問題,而對于變步長求解器,仿真步長會受到絕對誤差和相對誤差的控制,只有求解誤差滿足相應(yīng)誤差范圍,才會進行下一步仿真[3]。
然而在實際系統(tǒng)中,很少存在單純的離散系統(tǒng)或者連續(xù)系統(tǒng),多為混合式系統(tǒng),而連續(xù)變步長求解器可以同時滿足離散系統(tǒng)和連續(xù)系統(tǒng)的求解。連續(xù)變步長求解器先以最大步長進行求解,若該仿真區(qū)間內(nèi)有離散狀態(tài)更新,步長便減小到與離散狀態(tài)的更新相吻合,之后再計算積分誤差以控制求解,若求解誤差滿足誤差范圍,則進行下一步仿真,否則縮小時間間隔,重復此過程進行求解仿真。
Simulink求解器雖然是 Simulink進行動態(tài)仿真的核心,但求解器計算出的系統(tǒng)狀態(tài)和仿真步長與系統(tǒng)模型的直接交互也非常重要。交互的核心是事件通知,而過零檢測則用來檢測系統(tǒng)中是否有事件發(fā)生。當系統(tǒng)在前一仿真步長時間內(nèi)發(fā)生了過零事件,變步長求解器就會縮小仿真步長,目的是判定事件發(fā)生的準確時間。交互原理見圖1。
圖1 Simulink與求解器的交互原理
1.2MATLAB/Simulink與CCS聯(lián)合仿真原理
DSP在對系統(tǒng)進行控制時,一般以一定頻率采集系統(tǒng)中的電量參數(shù),運算后輸出控制信號。在 MATLAB/Simulink與 CCS進行聯(lián)合仿真時,MATLAB可以將Simulink仿真模型中每一仿真步長的仿真電量參數(shù)通過CCSlink傳遞給 CCS,再通過CCS傳遞給 DSP板,DSP板經(jīng)過運算后輸出控制信號通過 CCS傳輸給 Simulink作為下一仿真步長中仿真模型的控制量。如此循環(huán)直至仿真結(jié)束[4]。仿真流程見圖2。
圖2 MATLAB/Simulink與CCS聯(lián)合仿真流程圖
2.1MATLAB與CCS的連接接口
為了實現(xiàn)聯(lián)合仿真,首先需要使用CCSLink工具來實現(xiàn)MATLAB與CCS的連接。MATLAB/Simulink與 CCS之間的關(guān)系如圖3所示,CCSLink工具提供了 3種連接接口,即CCS IDE、RTDX和嵌入式對象[5]。
圖3 MATLAB/Simulink與 CCS之間的關(guān)系
(1)CCS IDE:該接口允許MATLAB在命令窗口中啟動和停止目標DSP中的程序,并與目標DSP進行數(shù)據(jù)交互、監(jiān)視目標DPS狀態(tài)等。用戶也可以編寫MATLAB程序腳本來實現(xiàn)CCS與MATLAB交互和分析的自動化。
(2)RTDX(Real Time Data Exchange):該接口可實現(xiàn)MATLAB與目標DSP的實時數(shù)據(jù)交互。通過打開、使能、關(guān)閉或禁止目標DSP的RTDX通道,來實現(xiàn)MATLAB通過該通道向目標DSP進行操作或讀取數(shù)據(jù),且交互過程中不需要停止目標DSP程序的執(zhí)行。RTDX連接對象只是CCS連接對象的一個子類,在創(chuàng)建CCS連接對象的同時創(chuàng)建RTDX連接對象,它們不能分別創(chuàng)建。
(3)嵌入式對象:該接口可在MATLAB中創(chuàng)建一個對象,該對象代表嵌入在目標C程序中的變量。利用嵌入式對象可直接訪問目標DSP中存儲器和寄存器中的變量,即把目標C程序中的變量作為MATLAB中的一個變量來對待[4]。
2.2CCS IDE腳本文件關(guān)鍵編寫步驟
CCS IDE提供了ccsdsp函數(shù)和ticcs函數(shù)來建立CCS操作對象,即將CCS映射為MATLAB中的一個操作對象,這樣就可以通過調(diào)用相關(guān)MATLAB函數(shù)來控制CCS軟件實現(xiàn)對DSP目標板上的程序進行在線調(diào)試。腳本文件編寫關(guān)鍵步驟如下[1]:
(1)仿真前需安裝 CCS 3.3軟件及 MATLAB R2009a以上版本。
(2)打開CCS3.3,在Code Coposer Studio Setup中設(shè)置所使用的目標DSP型號及仿真器型號。若需要使用CCS的軟件仿真功能,可在Platform下選擇Simulator。
(3)打開 MATLAB,在命令窗口輸入 ccsboardinfo,則會顯示DSP和仿真器型號,選擇與所使用相符合的DSP和仿真器型號,并記錄下相應(yīng)的仿真器編號Board Num與DSP編號Proc Num。
(4)使用步驟(3)得到的 Board Num與 Proc Num,通過ticcs建立CCS對象,并顯示調(diào)試界面:
(5)在 MATLAB中加載 CCS工程文件夾,并在編譯后加載可執(zhí)行文件。函數(shù)中需要標示出.prj與.out文件路徑,示例如下:
(6)MATLAB與CCS數(shù)據(jù)交互的設(shè)置。MATLAB只能識別與調(diào)用CCS中的全局變量。所以可利用函數(shù)list (cc,'globlevar')通過 MATLAB的命令窗口顯示出 CCS所有的全局變量以便調(diào)用。如若需要添加新的交互變量,可使用 symbolInfo語句關(guān)聯(lián)到 tgtSymbol。如下示例便實現(xiàn)了使CCS全局變量a作為交互量:
(7)MATLAB與CCS的數(shù)據(jù)交互,需要在CCS程序中設(shè)置斷點,設(shè)置斷點所用函數(shù)為 cc.insert();且一般斷點都設(shè)置在DSP采樣或運算完成后。當程序運行到斷點處時MATLAB將數(shù)據(jù)傳遞給CCS,所用函數(shù)為cc.write();若變量為結(jié)構(gòu)體變量,則在 tgtsymble后輸入結(jié)構(gòu)體變量名,在number后輸入結(jié)構(gòu)體成員名,示例如下:
(8)由于斷點一般都設(shè)置在DSP采樣或運算完成后,所以可控制程序運行到斷點處。此時程序暫停執(zhí)行,可通過CCS讀取DSP更新后的控制信號,供MATLAB下一步仿真使用,示例如下:
3.1S-Function函數(shù)的原理
在MATLAB與CCS的聯(lián)合仿真中,不僅算法設(shè)計較為復雜,每一個仿真步需要精確定位,且每次仿真中都需要輸入大量的指令,MATLAB提供的 Simulink仿真模塊已無法滿足這些需求。所以需要在MATLAB中以編程的方式即S-Function(System Function系統(tǒng)函數(shù))來實現(xiàn)。
S-Function是 MATLAB提供的可以讓用戶自定義Simulink模塊的功能。用戶可通過 S-Function設(shè)計出Simulink來實現(xiàn)算法設(shè)計,并將其嵌入到系統(tǒng)模型中,最終在仿真中與 Simulink自帶的其他模塊實現(xiàn)對復雜系統(tǒng)的仿真[6]。MATLAB與 CCS聯(lián)合仿真框圖如圖4所示。
圖4 MATLAB與CCS聯(lián)合仿真框圖
S-Function有兩種類型,一種是基于 MATLAB語言的M文件,分為Level_1和Level_2兩種。另一種是基于C語言,C++語言或者FORTRAN語言等編寫的MEX文件。S-Function函數(shù)對比見表1。
表1 S-Function函數(shù)對比
鑒于 Level_1類型的 S-Function在數(shù)據(jù)處理上的局限性和 MEX文件形式的 S-Function在編寫上較為復雜,且編譯后的后續(xù)設(shè)置也比較復雜,文章使用了 Level_2類型的S-Function。
3.2基于Level_2的S-Function函數(shù)的關(guān)鍵編寫步驟
Level_2的S-Function包含三部分,分別是:主函數(shù)、模塊設(shè)置函數(shù)和功能子函數(shù)。其中功能子函數(shù)為可選函數(shù)。關(guān)鍵編寫步驟如下[7]:
(1)主函數(shù)的定義。主函數(shù)函數(shù)名可自定義,在調(diào)用時只需輸入該M文件的文件名即可,示例如下:
(2)模塊設(shè)置函數(shù)的定義。模塊設(shè)置函數(shù)可對輸入和輸出端口數(shù)量及數(shù)據(jù)屬性、采樣時間、參數(shù)輸入中的參數(shù)數(shù)量與屬性、注冊各功能函數(shù)等進行設(shè)置,示例如下:
(3)功能子函數(shù)的定義。功能子函數(shù)的使用必須在模塊設(shè)置函數(shù)注冊后才能被Simulink使用。功能子函數(shù)的名稱可自定義,無需與相應(yīng)的子函數(shù)注冊名相同。以Terminate終止函數(shù)為例,示例如下:
4.1混合式固態(tài)開關(guān)工作原理
在當前的輸配電領(lǐng)域中,機械式斷路器仍被大規(guī)模應(yīng)用。但由于機械式斷路器在通斷過程中容易產(chǎn)生涌流和電弧。為此開發(fā)了混合式固態(tài)開關(guān),該種開關(guān)將電子開關(guān)與旁路斷路器并聯(lián),合閘時電子開關(guān)先導通,在電壓過零時旁路斷路器合閘,隨后電子開關(guān)關(guān)斷,旁路斷路器長期導通;當分閘時電子開關(guān)導通,在電流過零時旁路斷路器分閘,隨后電子開關(guān)關(guān)斷。這就實現(xiàn)了開通關(guān)斷無涌流無電?。?]。圖5所示為混合式固態(tài)開關(guān)拓撲結(jié)構(gòu)。
圖5 混合式固態(tài)開關(guān)拓撲結(jié)構(gòu)
4.2混合式固態(tài)開關(guān)模型的構(gòu)建
Simulink構(gòu)建的混合式固態(tài)開關(guān)模型,一次系統(tǒng)模型包括三相交流電網(wǎng)、高壓側(cè)斷路器、變壓器、隔離開關(guān)、接地開關(guān)、混合式固態(tài)開關(guān)和阻性負載;二次系統(tǒng)模型包括控制模塊、電壓電流檢測模塊、上位機模塊、顯示模塊和開入開出模塊。
控制模塊是混合式固態(tài)開關(guān)二次系統(tǒng)的核心,而其中的由S-Function函數(shù)編寫的自定義模塊Simulink-CCS則是實現(xiàn)聯(lián)合仿真的核心??刂颇K功能是將混合式固態(tài)開關(guān)主電路的電壓、電流、開入信號及上位機模塊的起停等信號通過CCSLink傳遞給CCS軟件,CCS軟件將這些信號傳遞給目標DSP來進行處理和執(zhí)行相應(yīng)算法,隨后目標DSP將隔離斷路器動作、接地開關(guān)動作和旁路斷路器動作等開出信號和晶閘管觸發(fā)等控制信號反饋到 CCS,CCSLink再讀取這些信號給開出模塊和控制主電路。
4.3聯(lián)合仿真結(jié)果
圖6為DSP發(fā)送給A相晶閘管觸發(fā)脈沖與A相電壓的波形圖。當混合式固態(tài)開關(guān)開通信號發(fā)出后,a觸發(fā)脈沖立刻發(fā)出,從圖中可見開通脈沖在相電壓接近零值時給出,這就避免了合閘涌流,a脈沖一直持續(xù)到旁路斷路器可靠閉合信號發(fā)出為止。當混合式固態(tài)開關(guān)關(guān)閉信號發(fā)出后,b觸發(fā)脈沖立即發(fā)出,持續(xù)到旁路斷路器可靠斷開信號發(fā)出為止,此后晶閘管在電流過零時自然關(guān)斷。B、C相原理同A相。
圖6 A相晶閘管觸發(fā)脈沖與A相電壓關(guān)系
圖7為混合式固態(tài)開關(guān)啟動時A、B、C三相電流波形,從圖中可看出三相電流均從接近零值開始變化,證明了開通時無涌流。
圖7 混合式固態(tài)開關(guān)開通時三相電流波形
圖8為混合式固態(tài)開關(guān)關(guān)斷時A、B、C三相電流波形,從圖中可看出三相均在電流過零時自然關(guān)斷。
圖8 混合式固態(tài)開關(guān)關(guān)斷時三相電流波形
本文針對在傳統(tǒng)電力電子控制系統(tǒng)開發(fā)過程中,仿真與控制算法的實現(xiàn)存在無交互性、開發(fā)效率低下等問題,提出了基于CCS與 MATLAB/Simulink聯(lián)合仿真的思想,介紹了聯(lián)合仿真的基本原理,并給出了聯(lián)合仿真平臺的構(gòu)建方法和聯(lián)合仿真實現(xiàn)的方法。著重介紹了CCS IDE腳本文件編寫與基于 Level_2的 S-Functon函數(shù)編寫的關(guān)鍵步驟。最后通過混合式固態(tài)開關(guān)在聯(lián)合仿真下的研究,驗證了聯(lián)合仿真思想、仿真平臺的構(gòu)建及實現(xiàn)方法的正確性。也證明了聯(lián)合仿真可提高控制算法開發(fā)效率,在電力電子控制系統(tǒng)等領(lǐng)域具有較高的實用價值。
[1]YUAN S,SHEN Z.The design of MATLAB-DSP development environment for control system[C].Digital Manufacturing and Automation(ICDMA),2012 Third International Conference on.IEEE,2012:903-906.
[2]齊鑫,秦永元,朱新穎,等.基于 MATLAB/Simulink的捷聯(lián)慣性導航系統(tǒng)仿真[J].計算機測量與控制,2008,16 (8):1161-1163.
[3]李謹,鄧衛(wèi)華.AMESim與MATLAB/Simulink聯(lián)合仿真技術(shù)及應(yīng)用[J].情報指揮控制系統(tǒng)與仿真技術(shù),2004,26 (5):61-64.
[4]段國強,陳月云.MATLAB輔助DSP設(shè)計的研究與實現(xiàn)[J].微計算機信息,2007,23(7-2):130-132.
[5]冷斌,李學勇,劉建華.一種基于MATLAB的DSP調(diào)試及直接代碼生成方法[J].現(xiàn)代電子技術(shù),2008,31(20):68-70.
[6]HEIBERGER R M,BECKER R A.Design of an S function for robust regression using iteratively reweighted least squares[J].Journal of Computational and Graphical Statistics,1992,1(3):181-196.
[7]CHENG H D,CHEN Y H,SUN Y.A novel fuzzy entropy approach to image enhancement and thresholding[J].Signal Processing,1999,75(3):277-301.
[8]王松岑,湯廣福,于坤山,等.新型中壓固態(tài)切換開關(guān)的研究[J].電網(wǎng)技術(shù),2006,30(S2):311-315.
Construction and implementation of co-simulation platform based on CCS and MATLAB/Simulink
Qu Bogang,Yi Yingping
(School of Optical-Electrical and Computer Engineering,University of Shanghai for Science and Technology,Shanghai 200093,China)
In order to validate the DSP algorithm of power electronic control system and improve the development efficiency,this paper puts forward the co-simulation based on CCS and MATLAB/Simulink.This paper introduces the basic principle of co-simulation and gives the construction and implementation of co-simulation platform.The key steps of compilation of CCS IDE script file and S_Function based on Level-2 are also given.Finally,the Hybrid Solid State Switch(HSSS)model was constructed under Simulink,and the basic functions of HSSS were realized through co-simulation,which verifiedthe validity of the scheme.
DSP;CCS;Simulink;co-simulation;hybrid solid state switch
TP391.9
A
10.16157/j.issn.0258-7998.2016.04.030
滬江基金(B14002/D14002,C14002)
2015-12-18)
渠博崗(1990-),男,碩士研究生,主要研究方向:電力電子與電氣傳動。
易映萍(1967-),女,副教授,主要研究方向:電力電子與電氣傳動,電網(wǎng)大數(shù)據(jù)。
中文引用格式:渠博崗,易映萍.基于 CCS與 MATLAB/Simulink聯(lián)合仿真平臺的構(gòu)建與實現(xiàn)[J].電子技術(shù)應(yīng)用,2016,42 (4):106-110.
英文引用格式:Qu Bogang,Yi Yingping.Construction and implementation of co-simulation platform based on CCS and MATLAB/Simulink[J].Application of Electronic Technique,2016,42(4):106-110.