趙曉龍 陳卓 李強(qiáng)勝 何俊賢
摘? 要: 針對實際電力系統(tǒng)運行和控制的復(fù)雜性與Matlab仿真非實時性的矛盾,提出跨平臺聯(lián)合仿真。采用基于Matlab/Simulink代碼生成技術(shù)與RTDS實時仿真系統(tǒng)相結(jié)合的方法,以高壓直流輸電系統(tǒng)模型為研究對象,利用Embedded Coder開發(fā)工具對系統(tǒng)的控制模塊進(jìn)行代碼生成,并在RTDS中完成代碼移植實驗。通過對比仿真波形,驗證得到結(jié)果行為一致。由此表明,該方法能夠有效利用Simulink良好的開發(fā)環(huán)境和RTDS的實時仿真特性,在離線仿真成功的基礎(chǔ)上,完成實時仿真測試,使工作便捷高效,同時保證結(jié)果精準(zhǔn)可信。
關(guān)鍵詞: 代碼生成技術(shù); 跨平臺聯(lián)合仿真; Matlab/Simulink; 實時仿真測試; 高壓直流輸電系統(tǒng)建模; 模型參數(shù)計算; 控制模塊代碼移植; 仿真波形對比
中圖分類號: TN710?34; TM721.1? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識碼: A? ? ? ? ? ? ? ? ? 文章編號: 1004?373X(2020)09?0161?05
Application of Matlab/Simulink?based code generation technology in RTDS
ZHAO Xiaolong, CHEN Zhuo, LI Qiangsheng, HE Junxian
(College of Electrical Engineering, Guizhou University, Guiyang 550025, China)
Abstract: In view of the contradiction between the complexity of actual power system operation and control and the non?real?time characteristic of Matlab simulation, the cross?platform co?simulation is proposed. A method on the basis of the combination of Matlab/Simulink?based code generation technology and RTDS?based (real time digital simulator) real?time simulation system is adopted. By taking the high voltage DC transmission system model as the research object, the development tool Embedded Coder is used to generate code for the control module of the system and complete the code transplantation experiment in RTDS. It is verified that the result and the behavior are consistent by contrasting the simulation waveforms. Therefore, it shows that the proposed method can effectively utilize the excellent development environment of Simulink and the real?time simulation characteristics of RTDS to complete real?time simulation test on the basis of successful off?line simulation, which makes the work convenient and efficient and ensures the accuracy and credibility of the results.
Keywords: code generation technology; cross?platform co?simulation; Matlab/Simulink; real?time simulation test; high voltage DC transmission system modeling; model parameter calculation; control module code transplantation; simulation waveform contrast
0? 引? 言
Matlab/Simulink是一款功能強(qiáng)大的高效計算機(jī)仿真軟件,但其仿真大多為非實時仿真,在對于仿真實時性要求較高的任務(wù)中,單純的Matlab/Simulink仿真難以勝任。如文獻(xiàn)[1?2]中利用軟硬件協(xié)同控制,文獻(xiàn)[3?4]中采取重新建模的方式,都是可行的方法,但是缺點也很明顯,其中有的工程化不完全,有的步驟繁瑣,內(nèi)容重復(fù),并不是最佳方案。
在對仿真實時性要求高或者需要跨平臺硬件測試的情況下,使用Simulink Coder或者專門針對嵌入式系統(tǒng)的Embedded Coder工具箱,將Simulink模型轉(zhuǎn)換為C/C++語言模型,即通常所說的C代碼,根據(jù)目標(biāo)配置能夠生成不同環(huán)境下的程序文件,載入到RTDS等平臺進(jìn)行硬件擴(kuò)展,可以與測試對象進(jìn)行實時互動,由此實現(xiàn)動態(tài)系統(tǒng)的硬件調(diào)試,得到高效實時的仿真結(jié)果。
本文以高壓直流輸電模型為研究對象,進(jìn)行Simulink建模與代碼轉(zhuǎn)換,并在RTDS上進(jìn)行仿真測試,驗證C代碼跨平臺實驗的可行性。
1? 模型分析
1.1? 高壓直流輸電系統(tǒng)建模
本文以國際大電網(wǎng)會議高壓直流輸電標(biāo)準(zhǔn)測試系統(tǒng)(CIGRE HVDC標(biāo)準(zhǔn)測試系統(tǒng))為研究對象[5],如圖1所示。
此高壓直流輸電系統(tǒng)采用單極輸電,系統(tǒng)的構(gòu)成包括交流系統(tǒng)、直流系統(tǒng)、等效阻抗、濾波器、電容器、變壓器和換流器等元件。整流側(cè)和逆變側(cè)都使用12脈波換流器,并且采用一組高通濾波器和一組雙調(diào)諧濾波器。為了使輸電模型更加簡潔直觀,直流輸電線路則由等效的T型電路代替。
1.2? 模型的控制策略
整流側(cè)采用定電流控制,取測量的實際電流值與整定電流值的偏差進(jìn)行PI控制。其中,整定電流值是由低壓限流裝置VDCOL和主控層的電流調(diào)制控制器共同決定的。PI控制環(huán)節(jié)進(jìn)行計算后,輸出控制閥所需的延遲觸發(fā)角指令,閥控裝置根據(jù)這個指令生成相應(yīng)的控制脈沖,控制框圖如圖2所示。
為使直流電流能夠流通,整流側(cè)的直流電壓需要高于逆變側(cè)的直流電壓,同時,整流器的定電流控制也具備抑制直流電流增加的作用。
逆變側(cè)采用定關(guān)斷角控制為主,定電流控制為輔的控制方式。從直流系統(tǒng)的逆變側(cè)換流器測得上一周期關(guān)斷角的最小值[γ],然后將逆變側(cè)測得的直流電流實際值與整定值之差通過電流偏差控制,得到電流偏差角度[Δγ]。電流偏差控制能夠使逆變側(cè)的控制方式在定關(guān)斷角控制和定電流控制之間進(jìn)行平滑過渡。CIGRE標(biāo)準(zhǔn)一般規(guī)定直流系統(tǒng)的整定[γ]角為[15°],最大偏差限制為[-31°]。通過PI控制后,輸出逆變側(cè)延遲觸發(fā)角指令,控制框圖如圖3所示。
通過這種控制方式,其目的一方面是為了防止逆變器換相失敗,同時又保證無功需求最小。通過對實際關(guān)斷角和設(shè)定值差的補(bǔ)正量,確保所需最小的關(guān)斷角。補(bǔ)正量會讓關(guān)斷角向增大的方向移動。
逆變側(cè)定電流控制與整流側(cè)原理類似,區(qū)別在于逆變側(cè)整定電流值比整流側(cè)整定電流值要小一個電流裕度,通常取為0.1 p.u.,所以整定值比實際電流小,一般作為輔助控制手段。
1.3? 模型的參數(shù)計算
在CIGRE標(biāo)準(zhǔn)中,濾波器、電容器和等效阻抗等數(shù)據(jù)已經(jīng)給出,只需計算出換流器的參數(shù)。由于每個12脈波換流器由兩個6脈波換流器組成,所以采用雙繞組變壓器,結(jié)合CIGRE標(biāo)準(zhǔn)給出的系統(tǒng)參數(shù),可以得到整流側(cè)電路數(shù)據(jù),并計算出每個變壓器的容量[Tmva]和正序電抗[XL](單位:p.u.):
[Vo=V?3?2π] (1)
[Vdc=Vo?cos α-3ωLπ?Idc] (2)
[Tmva=Pdc?π3cos α-3ωLπ?IdcVo] (3)
[Zbase=V2Tmva] (4)
[XL(p.u.)=ωLZbase] (5)
式中:[Vdc],[Idc]和[Pdc]分別為整流側(cè)的直流電壓、直流電流和直流功率(電壓和功率只有實際值的一半);[V]為變壓器二次側(cè)電壓;[α]為觸發(fā)角。
晶閘管的緩沖電路電阻和電容取決于額定直流電壓,RC時間常數(shù)至少是仿真步長的兩倍,當(dāng)仿真步長為50 μs時,需要[Rs?Cs>100 μs]。最后,利用CIGRE標(biāo)準(zhǔn)提供參考的PI參數(shù),結(jié)合文獻(xiàn)[6?8]完成PI參數(shù)的優(yōu)化。
2? 代碼轉(zhuǎn)換
2.1? 代碼生成流程
使用Build Model將已經(jīng)通過離線仿真檢驗的CIGRE HVDC標(biāo)準(zhǔn)測試模型轉(zhuǎn)換為rtw文件,然后通過Simulink Coder中的目標(biāo)語言編譯器將rtw文件轉(zhuǎn)換為一系列的源文件,這個過程中TLC所使用的文件包括3類:系統(tǒng)目標(biāo)文件、模塊的目標(biāo)文件和支持代碼生成的TLC函數(shù)庫等文件。模型的源代碼全部生成之后,就可以導(dǎo)入目標(biāo)硬件中進(jìn)行實機(jī)運行。代碼生成流程如圖4所示。
2.2? 直流輸電模型代碼生成的配置方法
在進(jìn)行代碼生成時,需要對Simulink模型進(jìn)行參數(shù)的設(shè)置,在Configuration Parameter中集中管理著Simulink模型的代碼生成方法、格式等約束條件。為了生成能夠在RSCAD中正確運行的代碼,需要修改以下參數(shù)。
1) 在solver頁面的solver options一欄中,type參數(shù)設(shè)置為Fixed?step,選擇ode3(Bogacki?Shampine)解法器,同時,設(shè)置Fixed?step size為50 μs,這是因為代碼生成支持的是固定步長的模型,而且控制模塊計算只需用到常微分方程。
2) 在Code Generation頁面的Target selection一欄,System target file參數(shù)配置為選擇生成ert.tlc文件,這是Embedded Coder提供的系統(tǒng)目標(biāo)文件,針對嵌入式進(jìn)行性能與內(nèi)存的優(yōu)化,同時保證結(jié)構(gòu)簡潔,方便調(diào)用。
3) 由于模型存在連續(xù)時間函數(shù)模塊,但是嵌入式器件的運行是由固定時鐘進(jìn)行驅(qū)動,必須為離散模塊,因此,需要在Code Generation的Interface頁面中的Software environment一欄勾選continuous time選項,確保代碼成功生成。
通過正確配置,完成高壓直流輸電控制模塊嵌入式C代碼的生成。同時可以選擇自動生成報告(Create Code Generation Report),Simulink自帶注釋(Include comments),參數(shù)內(nèi)聯(lián)(Inline parameters)等,使得代碼易于修改,并增強(qiáng)可讀性。
最后,為了提高生成的C代碼的可靠性,需要進(jìn)行軟件在環(huán)(SIL)測試,即在Code Generation的Verification頁面,將Create block選為SIL,用于生成控制模塊的[S]函數(shù)。由于SIL測試時要求模型中不能有連續(xù)時間函數(shù),所以需要將采樣時間設(shè)置成離散,同時由于模型中有非內(nèi)聯(lián)函數(shù),需要在Code Generation?>Interface頁面勾選non?Inlined S?functions項,保證成功生成[S]函數(shù)。最后給予[S]函數(shù)和原控制模型相同的輸入,并將兩組輸出結(jié)果做減法運算,驗證代碼與模型的行為一致性。
3? 硬件驗證
3.1? 實時仿真機(jī)RTDS
實時仿真機(jī)(Real Time Digital Simulator,RTDS)是一種專門用于研究電力系統(tǒng)電磁暫態(tài)現(xiàn)象的裝置。其算法繼承了H.W.Dommel建立的經(jīng)典電磁暫態(tài)計算理論,將那些復(fù)雜的電力網(wǎng)絡(luò)進(jìn)行等值變化,能夠獲得等值計算網(wǎng)絡(luò),然后對其進(jìn)行方程求解,獲得所需要的結(jié)果。由于它的電力系統(tǒng)運算法則能被計算得足夠快,能產(chǎn)生連續(xù)的輸出結(jié)果,這些輸出代表在實際網(wǎng)絡(luò)中的情形[9]。
RTDS基本組成單元稱為Rack,裝置由IRC,GPC,WIF等多種板卡和處理器組成,一個CPU模擬一個電力系統(tǒng)元件,CPU之間采用并行?串行?并行的通信方式。本次RTDS高壓直流輸電仿真模型使用了1個RACK,共計6塊PB5處理器,將4塊PB5分給控制模塊用于快速計算,其余2塊用于模擬交流電源、變壓器和換流器等器件模型。
3.2? RSCAD仿真
RSCAD軟件是RTDS自帶的專業(yè)仿真軟件,作為電磁暫態(tài)仿真的一種,通常會將仿真步長設(shè)置為50 μs。在進(jìn)行高壓直流輸電代碼移植的仿真實驗時,需要在RSCAD的Draft模塊搭建高壓直流輸電的基本電路模型,通過CBuilder中的Tools/Import Simulink Component工具,將Simulink生成的嵌入式C代碼移植到RSCAD中,形成用戶自定義模塊[10?12],如圖5所示。
在C File Associations頁面,進(jìn)入Edit中對代碼的接口名稱進(jìn)行修改,方便用戶識別,此時還能夠添加用戶自行編程的代碼,增強(qiáng)自定義模塊的功能。另外,在Parameters和Graphics頁面,以表格化的固定形式編輯模型,定義模型數(shù)據(jù)格式與可變參數(shù),方便在模型使用時進(jìn)行調(diào)節(jié)與管理。
最后在進(jìn)行Draft建模時,通過器件庫的Add Component功能添加用戶自定義模塊到電路中去,這樣就完成控制模塊從Simulink模型到RTDS模型的移植。值得注意的是,RTDS中電壓與電流的單位都是kV和kA。
完成Draft設(shè)計之后,對模型進(jìn)行編譯,通過compile生成相關(guān)文件。其中.sib文件集顯示仿真結(jié)果與調(diào)節(jié)相關(guān)參數(shù)為一體,打開.sib文件,然后關(guān)聯(lián)所需信號與對應(yīng)的顯示面板。同時,還要設(shè)置關(guān)聯(lián)控制按鈕和滑輪,這樣可以在實時仿真中隨時調(diào)節(jié)所關(guān)聯(lián)的電壓參數(shù),以及控制模型整流和逆變的啟動和停止。
3.3? 仿真結(jié)果分析
CIGRE高壓直流輸電標(biāo)準(zhǔn)測試系統(tǒng)的額定直流電流為2 kA,額定電壓為500 kV,整流側(cè)交流電壓為345 kV,逆變側(cè)交流電壓為230 kV。圖6和圖7為模型在Simulink中仿真的直流電流和電壓波形,在主控制器的調(diào)控下,系統(tǒng)根據(jù)設(shè)定在[0.02 s]啟動,電流與電壓能夠按照額定的速率平緩地上升到額定值,并保持穩(wěn)定運行。
為了突出控制模塊的作用,對比Simulink仿真與RTDS仿真啟動時無主控的情況,現(xiàn)除去主控制器,由選定的控制策略單獨控制,圖8和圖9為Simulink仿真的直流電流和電壓波形圖,可以看出,在啟動的極短時間內(nèi),電流和電壓都會有較大的波動,隨后在控制模塊的控制下,模型會進(jìn)入并維持在穩(wěn)定狀態(tài)。
在RTDS中仿真的波形如圖10和圖11所示,電流和電壓的波形與Simulink仿真中的基本一致,只是在啟動時的波動有偏差,這是由兩個平臺使用的脈波發(fā)生器的差異以及仿真算法的不同導(dǎo)致的。另外,RTDS仿真由于多CPU并行計算的速度足夠快,因此產(chǎn)生了連續(xù)的輸出結(jié)果,基本能夠代表實際運行網(wǎng)絡(luò)中的情形,這也是實時仿真的優(yōu)勢,并且RTDS仿真在運行過程中能夠方便地調(diào)節(jié)系統(tǒng)基本參數(shù),以此展現(xiàn)出動態(tài)波形的變化,方便對系統(tǒng)整體運行的分析與研究,這也是單純的Simulink仿真無法比擬的。
通過對比發(fā)現(xiàn),CIGRE高壓直流輸電系統(tǒng)在相同的控制模塊下,于Matlab平臺和RTDS平臺上都能夠持續(xù)穩(wěn)定地運行,證明了利用代碼生成技術(shù)將系統(tǒng)的控制模塊向RTDS上的移植是可行的。
4? 結(jié)? 語
通過Simulink的代碼移植,實現(xiàn)跨平臺仿真,由于Matlab應(yīng)用的廣泛性,從而擁有豐富的Simulink模型庫和大量的實例。另外,Matlab的離線性可以方便工作人員進(jìn)行仿真設(shè)計,在完成離線驗證之后,再移植到對應(yīng)的平臺,省去重復(fù)查找錯誤的步驟,提高工作效率。而且C代碼具備通用性,不僅限于在RTDS上的移植,還可以應(yīng)用于多個平臺[13?14],針對不同平臺硬件的差異進(jìn)行編譯,從而實現(xiàn)多平臺互聯(lián),這使得代碼生成技術(shù)具有很強(qiáng)的實用性。
參考文獻(xiàn)
[1] 錢振天,徐曉軼,諶平平,等.基于Matlab/Simulink的軟件在環(huán)仿真技術(shù)研究[J].電力電子技術(shù),2016,50(10):5?7.
[2] LAI C K, TSAI C C. The modeling and simulation for current regulation of PMSM drive system using Verilog HDL and variable structure control [C]// 2016 International Automatic Control Conference. Taichung, China: IEEE, 2016: 218?219.
[3] 關(guān)紅兵,黃立濱,周鵬鵬,等.基于RTDS的高壓直流控制系統(tǒng)鎖相環(huán)仿真研究[J].電力系統(tǒng)保護(hù)與控制,2017,45(12):128?132.
[4] 武霄,崔勇,黃志龍,等.基于RTDS的高壓直流輸電控制功能研究[J].華北電力大學(xué)學(xué)報(自然科學(xué)版),2014,41(6):60?66.
[5] FARUQUE M O, ZHANG Y, DINAVAHI V. Detailed mo?deling of CIGRE HVDC benchmark system using PSCAD/EMTDC and PSB/SIMULINK [J]. IEEE transactions on power deli?very, 2005, 21(1): 378?387.
[6] 李天云,劉智銘,黨震宇,等.基于Simulink的HVDC PI控制器參數(shù)優(yōu)化方法[J].電力自動化設(shè)備,2012,32(1):45?48.
[7] 于飛,鐘秋海,張望,等.基于Matlab的超高壓直流輸電系統(tǒng)仿真研究[J].繼電器,2004,32(13):31?34.
[8] KWON D H, MOON H J, KIM R G, et al. Modeling of CIGRE benchmark HVDC system using PSS/E compared with PSCAD [C]// International Youth Conference on Energy. Pisa, Italy: IEEE, 2015: 1?8.
[9] 翟凱.基于RTDS的雙單元背靠背直流輸電系統(tǒng)仿真與研究[D].北京:華北電力大學(xué),2017.
[10] 徐志恒,錢珞江.RTDS用戶自定義元件模型(UDC)的應(yīng)用方法[J].電力系統(tǒng)保護(hù)與控制,2009,37(22):141?145.
[11] 楊洋,肖湘寧,陶順,等.多端口電磁?機(jī)電暫態(tài)混合實時仿真接口技術(shù)與應(yīng)用[J].電工技術(shù)學(xué)報,2017,32(4):231?240.
[12] 楊柳林,李德奎,陳延明,等.基于RTDS的電弧接地故障自定義建模及仿真分析[J].電力系統(tǒng)保護(hù)與控制,2016,44(16):137?142.
[13] 劉濤,蔡燕,張海華,等.基于代碼生成技術(shù)的Matlab/Simulink實驗教學(xué)改革[J].實驗技術(shù)與管理,2018,35(8):157?159.
[14] 王夢茹,周珊,王金波,等.基于Matlab的智能測試系統(tǒng)PMSM物理實時仿真平臺[J].系統(tǒng)仿真學(xué)報,2018,30(6):2225?2235.