易映萍 侯文 蔣玲 謝明
摘? 要: 為了快速驗證電力電子控制系統(tǒng)中的控制算法,提高控制算法的效率,處理器在環(huán)測試(PIL)將生成的代碼運行到目標處理器上,以驗證代碼和模型是否一致,并獲得算法在實際控制器上的最長運行時間。本文以電力電子能量轉換器三相半橋DC/AC為例,在Simulink環(huán)境下構建了離散仿真模型,讓學生很快學會三相半橋DC/AC的工作原理、主回路設計以及控制系統(tǒng)設計,然后通過學會處理器在環(huán)仿真去驗證測試軟件和模型的一致性。通過相同的方法,學生很快能完成電力電子技術課程中的其他能量轉換電路控制系統(tǒng)的設計,并在實驗之前驗證、分析結果,以防因控制算法設計不當在實驗過程中出現(xiàn)損壞實驗器件的現(xiàn)象。
關鍵詞: 電力電子技術;處理器在環(huán)仿真;課程教學
中圖分類號: TP391.41? ? 文獻標識碼: A? ? DOI:10.3969/j.issn.1003-6970.2019.07.026
【Abstract】: To fast verify the control strategies in the power electronic control systems and improve the efficiency of the control strategies, the processor-in-the-loop (PIL) will run the code in the target processor to verify whether codes agree with models and acquire the longest operation time of the algorithms on the actual controllers.? This paper takes three-phase half-bridge DC/AC power electronics energy converter as an example and builds a discrete simulation model in Simulink to let students learn the principles of the three-phase half-bridge DC/AC converter and the design of the main circuit and control system. Then, students will learn how to use PIL to verify the consistency of the software and the model. Through the same method, students can complete the design of the control systems of other kinds of energy converters in the power electronics course quickly. Besides, they can verify and analyze the results before the experiments, which can prevent the damage to the experimental equipment during the experiment due to the improper design of the control algorithms.
【Key words】: Power electronics technology; Processor-in-the-loop; Course teaching
0? 引言
用戶通過Matlab軟件,采用基于模型設計的方法進行建模仿真,來學習電力電子轉換器的工作原理,進行對主回路以及控制系統(tǒng)的設計[1]。利用Matlab中Simulink工具進行模型設計,然后將設計好的控制模型模塊運用目標代碼直接生成功能,轉換為數(shù)字程序,再聯(lián)合CCS進行聯(lián)合仿真對控制模型進行驗證,最后將聯(lián)合仿真驗證正確的控制算法程序下載到平臺的DSP芯片中,再次驗證所設計的電路及控制算法的正確性[2-3]。
將Matlab軟件與CCS軟件成功安裝之后,在Matlab/Simulink環(huán)境下搭建目標代碼直接生成模型之前,需要下載C2000系列的硬件支持包;對模型進行編譯生成工程文件和燒錄文件之前,需要將Matlab軟件與CCS軟件進行鏈接,使 Matlab在編譯過程中能順利調用CCS軟件,以便于生成工程文件和燒錄文件[4]。
1? 離散仿真模型的搭建
在Matlab/Simulink中搭建三相半橋DC/AC的仿真模型[5-6],其中仿真模型中主電路模型如圖1? 所示。
PIL仿真模型如圖2所示,其中Controller模塊是電流內環(huán)閉環(huán)控制器;Rate Transition為采樣頻率轉換器,由于DSP芯片控制頻率與Matlab仿真步長頻率不一致,在做PIL仿真時需要對仿真頻率進行轉換,Rate Transition1為輸入側,設置的數(shù)值由
做PIL仿真時DSP芯片所需控制頻率決定,若DSP控制頻率為10 K,則該模塊的設置值為1e-4,該值的設置決定了在PIL仿真時單位時間內DSP執(zhí)行生成代碼的頻率;Rate Transition2為輸出側,設置的數(shù)值由模型的仿真步長決定,其設置值應與仿真步長相同;數(shù)據(jù)轉換模塊Single和Double是Matlab/ Simulink和DSP芯片進行數(shù)據(jù)交換的紐帶,在Simulink環(huán)境下,存儲數(shù)據(jù)和計算數(shù)據(jù)一般都為Double類型,而Matlab與DSP芯片進行通訊時,傳輸數(shù)據(jù)的位寬要求不高于32位,因此從Matlab輸入的數(shù)據(jù)必須由Double類型轉換成Single類型,從模塊輸出到Matlab的數(shù)據(jù)由Single類型轉換到Double類型,兩者在進行數(shù)據(jù)交換時需要進行數(shù)據(jù)轉換才能保證PIL仿真的正常運行[7-12]。
打開圖2中的Controller模塊,其搭建的控制策略的模型如圖3所示。
為了實現(xiàn)了逆變器的控制,需要研究合適的控制算法,圖3中電流內環(huán)模型的搭建如圖4所示。通過Park變換將所測的逆變器側電流由三相靜止坐標下的交流量變?yōu)橥叫D坐標下的直流量,再? 通過PI控制器構成的負反饋系統(tǒng)實現(xiàn)對Id和Iq的?控制。
將Id_ref的大小設置為0.7 A,進行仿真,得到Iabc的波形如下所示,電流幅值最終穩(wěn)定在0.7 A左右。如圖5所示。其仿真結果實現(xiàn)了對三相半橋DC/AC仿真搭建的驗證。
2? 處理器在環(huán)(PIL)仿真
所謂處理器在環(huán)(PIL)仿真,就是基于模型的設計而自動生成的C代碼,可以將其直接下載至控制板中運行。為了進一步驗證基于模型的設計而自動生成的代碼的可行性,可以通過Matlab和DSP控制器間的聯(lián)合仿真進行處理器在環(huán)測試,在該測試中,除了控制器是實物,其它均為虛擬硬件[13-16],這是對系統(tǒng)的一種半實物仿真。利用上節(jié)所搭建的三相半橋DC/AC的仿真模型來做處理器在環(huán)仿真,以驗證所設計的控制策略的正確性,以及處理器在環(huán)仿真的可行性。其處理器在環(huán)仿真步驟如下:
(1)將USB轉TTL通訊模塊與DSP板進行連接,并在電腦設備管理器上查看通訊口為COM幾,并在屬性中設置波特率;
(2)在Matlab命令欄中輸入命令,串口號根據(jù)設備管理器中的查看得到的串口一致;
(3)配置Configuration中的Solver,其中Fixed-step size的設置根據(jù)仿真步長決定;
(4)配置Hardware implementation,其中CCS configuration根據(jù)自己的配置文件所在路徑進行設置,不要使用默認選項,否則程序有可能出現(xiàn)下載不成功的現(xiàn)象。將Groups中的External mode界面中參數(shù)進行配置,注意COM串口要與步驟(1)中查看的COM口一致;
(5)配置Verification參數(shù),將Advanced parameters的Create block選擇為PIL;
(6)將想要生成代碼的控制算法封裝成一個子系統(tǒng),如圖6所示,搭建的仿真模型中的Controller。
(7)右鍵子系統(tǒng)模塊,點擊C/C++ Code中的Deploy this Subsystem to Hardware,再點擊跳出窗口里的Build,會在新的窗口里生成PIL模型;
(8)將生成的PIL模塊移植至原來搭建的離散模型中,替換被生成代碼的子系統(tǒng);
(9)將電腦和DSP芯片的下載線和通訊模塊連接好,將DSP板通電,點擊仿真按鈕即可進行PIL仿真,在PIL仿真中換流器的輸出電流的波形如圖7所示。
由圖7可知,換流器輸出電流的幅值也控制為0.7A,其整體波形也與之前Simulink仿真波形一致,證明了DSP中的算法能夠實現(xiàn)閉環(huán)控制,生成的代碼沒有錯誤。
3? 結論
控制算法的實現(xiàn)需要編寫相關代碼,然后下載至相關控制器中實現(xiàn)相應功能。手編控制代碼不僅費時和容易出錯,而且不便于校驗和維護。Matlab為嵌入式處理器應用程序的開發(fā)提供了強大的功能,利用MathWorks公司和TI公司聯(lián)合開發(fā)的MATLAB Link for CCS Development Tools工具箱,可以實現(xiàn)對DSP芯片的可視化編程,像操作Matlab變量一樣來操作DSP器件的存儲器和寄存器,使得用戶在Matlab環(huán)境下完成對DSP的操作,能夠極大提高DSP應用系統(tǒng)的開發(fā)進程。
本文以電力電子能量轉換器三相半橋DC/AC為例,在Simulink環(huán)境下構建了離散仿真模型,利用處理器在環(huán)仿真將生成的代碼運行到目標處理器上,以驗證代碼和模型是否一致,仿真結果正確良好,驗證了所搭建的三相半橋DC/AC模型與所生成的代碼一致性。因此可以通過相同的方法,學生很快能完成電力電子技術課程中的其他能量轉換電路控制系統(tǒng)的設計,并在實驗之前驗證、分析結果,以防因控制算法設計不當在實驗過程中出現(xiàn)損壞實驗器件的現(xiàn)象。
參考文獻
[1] 黃忠霖. 電力電子技術的MATLAB實踐[M]. 北京: 國防工業(yè)出版社. 2009.
[2] 錢振天, 徐曉軼, 諶平平, 姚文熙. 基于Matlab/Simulink的軟件在環(huán)仿真技術研究[J]. 電力電子技術, 2016, 50(10): 5-7.
[3] 渠博崗, 易映萍. 基于CCS與MATLAB/Simulink聯(lián)合仿真平臺的構建與實現(xiàn)[J]. 電子技術應用, 2016, 42(04): 106-110.
[4] 張雄偉, 陳亮, 曹鐵. DSP芯片的原理與開發(fā)應用(第3版)[M]. 北京: 電子工業(yè)出版社. 2009.
[5] 雒明世, 張倩琳. 基于MATLAB 的OFDM 系統(tǒng)仿真與教學研究[J]. 軟件, 2015, 36(6): 152-157.
[6] 王巧明, 李中健, 姜達郁. Matlab平臺DSP自動代碼生成技術研究[J]. 現(xiàn)代電子技術, 2012, 35(14): 11-13.
[7] 何舜, 張建文, 蔡旭. 風電變流器的RT-LAB硬件在環(huán)仿真系統(tǒng)設計與實現(xiàn)[J]. 電力系統(tǒng)保護與控制, 2013, 41(23): 43-48.
[8] 李艷. 基于Matlab-GUI單相全控橋整流電路仿真設計[J]. 軟件, 2012, 33(8): 84-85.
[9] 徐安平. 基于電流的電機驅動系統(tǒng)逆變器故障檢測方法研究[D]. 電子科技大學, 2015.
[10] 李拓, 杜慶楠. 基于 TMS320F28335 的三相感應電機矢量控制系統(tǒng)的研究[J]. 軟件, 2018, 39(3): 130-135.
[11] 陳鵬偉, 劉向軍, 劉洋. 基于Simulink的無刷直流電機自抗擾控制系統(tǒng)的仿真[J]. 軟件, 2012, 33(9): 81-84.
[12] 郭元彭, 盧子廣, 楊達亮. 基于DSP代碼自動生成的實時控制平臺[J]. 電力電子技術, 2010, 44(10): 65-67.
[13] 宋璐雯. 基于DSP平臺的JPEG2000 EBCOT-Tier2算法實現(xiàn)及優(yōu)化[J]. 軟件, 2018, 39(5): 139-143.
[14] 林渭勛. 現(xiàn)代電力電子技術[M]. 北京: 機械工業(yè)出版社, 2006.
[15] 李獻, 駱志偉. 精通MATLAB/Simulink系統(tǒng)仿真[M]. 北京: 清華大學出版社, 2015.
[16] 劉和平. DSP原理及電機控制應用[M]. 北京: 北京航空航天大學出版社. 2006.