王海濱+閆鵬程+武濤+歐棟杰
摘 要 隨著現(xiàn)代控制技術的發(fā)展,控制算法越來越復雜,控制算法的自動驗證和代碼自動生成已經(jīng)成為趨勢。傳統(tǒng)的電機控制算法開發(fā)是系統(tǒng)仿真,編寫代碼,最后測試。采用傳統(tǒng)手工編程的方式去編寫復雜的控制算法,對于初學者來說難度非常大。對于算法設計人員來說,需要一種方法能夠解決以上問題。
關鍵詞 基于模型的設計;Embedded Coder;磁場定向算法;永磁同步電機;PIL
中圖分類號:TP309 文獻標識碼:A 文章編號:1671-7597(2014)05-0053-01
Matlab提供的基于模型設計平臺(Model Based Design,MBD),可以實現(xiàn)從需求分析到代碼驗證的整個開發(fā)過程,用戶可以建立系統(tǒng)級模型的仿真驗證,優(yōu)化系統(tǒng)參數(shù),自動生成高效的目標器件專用代碼。利用Matlab提供的開發(fā)環(huán)境,用戶可以開發(fā)和驗證控制算法,成功的完成從算法的設計驗證到自動生成代碼過程。
1 電機控制系統(tǒng)開發(fā)流程
在開發(fā)中,首先是通過文本需求建立可執(zhí)行文檔,在這一部分中,主要是建模,通過建??梢员苊鈧鹘y(tǒng)文本的弊端,通過可視化和可執(zhí)行化的模型避免文本需求的歧義和冗余。建模之后,為生成符合相關安全標準的代碼,需要對模型進行建模規(guī)范檢查,使用Simulink V&V工具集可自動完成這一流程。為驗證算法的正確性,模型檢查通過后,Matlab提供的System Test(系統(tǒng)測試)與Simulink DesignVerifier(設計驗證器)工具可以完成對控制系統(tǒng)的測試。模型測試后,使用Embedded coder工具生成嵌入式代碼,通過編譯連接生成目標代碼,下載到處理器中做代碼的等效性測試,如處理器在環(huán)測試(PIL)等。通過這完整的流程,從文本需求到系統(tǒng)測試提供了一個統(tǒng)一的平臺,方便開發(fā)人員交流,極大的提高了開發(fā)的效率。
2 建模規(guī)范檢查與測試
模型出來并且可以編譯之后,首先要做建模標準檢查,這個過程使用工具Simulink Verification&Validation工具集提供的model advisor自動化的完成。Model Advisor可以理解模型的靜態(tài)檢查,用來驗證模型是否正確的搭建出來。這是建模檢查的第一步,對建立的模型進Model Advisor檢查,這在設計初期非常重要,用戶通過檢查,能夠找出模型中與建模標準或者安全標準不相符合的部分,對模型中隱含的問題給予警告,并且指導用戶修改,是代碼生成前重要的工作。Model Advisor提供了常見的建模標準和安全標準供用戶選擇,同時通過API接口,用戶可以建立自己公司的建模標準。
3 處理器在環(huán)測試
圖1 PIL工作流程圖
處理器在環(huán)測試是在Simulink中搭建被控對象的模型,而將控制器算法代碼下載到目標處理器中去執(zhí)行,通過串口或者網(wǎng)絡接口通信,對處理器和Simulink進行實時數(shù)據(jù)交換,這種硬件在環(huán)實時仿真技術可以反映控制器的實際工作情況,得到算法的執(zhí)行時間,便于及早的發(fā)現(xiàn)錯誤。其工作原理如圖1所示。
PIL環(huán)節(jié)是基于模型設計中非常重要的環(huán)節(jié),因為系統(tǒng)控制系統(tǒng)模型的仿真只能驗證算法的正確性,但是由于算法對處理器性能要求很高,算法的執(zhí)行時間直接關系到整個控制系統(tǒng)是否穩(wěn)定。在電機控制系統(tǒng)中,如果FOC算法的執(zhí)行算法的時間大于PWM的周期,則會導致整個系統(tǒng)無法工作。
對于處理器在環(huán)測試設置比較復雜,所以為能夠完成自動化的測試,本文建立自動化的測試程序如下:
set_param('model','ProdHWDeviceType','TexasInstruments->C2000','TemplateMakefile', 'ec_target.tmf', 'GenCodeOnly', 'off',...
'SimulationMode','processor-in-the-loop (pil)')
set_param('model','CodeExecutionProfiling', 'on',...'CodeExecutionProfileVariable','executionProfile',...
'CodeProfilingSaveOptions','AllData');
save_system('sensorless_foc.slx')
if exist('slprj','dir'), rmdir('slprj','s'); end
sim('model')
其中model為系統(tǒng)仿真的模型,通過上述程序既可以自動進行PIL測試。用戶運行profile(IDE_Obj,execution,report)即可以生成代碼實時運行的結果如圖2所示。
圖2 PIL仿真結果圖
4 總結
基于模型的設計優(yōu)勢在于算法的早期驗證,使得開發(fā)者可以將主要精力放在算法開發(fā)上,代碼則由Matlab自動生成,很好的提高工作效率。在實際的開發(fā)中,將算法生成為函數(shù)進行調用,一般底層驅動和控制流程使用匯編語言或者C手工編寫。如果通過Matlab對底層驅動建模則十分復雜,得不償失,控制流程開發(fā)也沒有C語言靈活。
參考文獻
[1]劉杰.基于模型的設計及其嵌入式實現(xiàn)[M].北京:北京航空航天大學出版社,2010.
[2]The MathWorks,Inc.Embedded coder6 Geting Started Guide,April 2011.
[3]The MathWorks,Inc.Embedded coder 6 Users Guide,April 2011.
[4]The MathWorks,Inc.Stateflow 7 Geting Started Guide,April 2011.
作者簡介
王海濱(1988-),安徽蚌埠人,安徽理工大學在讀碩士研究生,研究方向:電力電子與電力拖動。endprint
摘 要 隨著現(xiàn)代控制技術的發(fā)展,控制算法越來越復雜,控制算法的自動驗證和代碼自動生成已經(jīng)成為趨勢。傳統(tǒng)的電機控制算法開發(fā)是系統(tǒng)仿真,編寫代碼,最后測試。采用傳統(tǒng)手工編程的方式去編寫復雜的控制算法,對于初學者來說難度非常大。對于算法設計人員來說,需要一種方法能夠解決以上問題。
關鍵詞 基于模型的設計;Embedded Coder;磁場定向算法;永磁同步電機;PIL
中圖分類號:TP309 文獻標識碼:A 文章編號:1671-7597(2014)05-0053-01
Matlab提供的基于模型設計平臺(Model Based Design,MBD),可以實現(xiàn)從需求分析到代碼驗證的整個開發(fā)過程,用戶可以建立系統(tǒng)級模型的仿真驗證,優(yōu)化系統(tǒng)參數(shù),自動生成高效的目標器件專用代碼。利用Matlab提供的開發(fā)環(huán)境,用戶可以開發(fā)和驗證控制算法,成功的完成從算法的設計驗證到自動生成代碼過程。
1 電機控制系統(tǒng)開發(fā)流程
在開發(fā)中,首先是通過文本需求建立可執(zhí)行文檔,在這一部分中,主要是建模,通過建??梢员苊鈧鹘y(tǒng)文本的弊端,通過可視化和可執(zhí)行化的模型避免文本需求的歧義和冗余。建模之后,為生成符合相關安全標準的代碼,需要對模型進行建模規(guī)范檢查,使用Simulink V&V工具集可自動完成這一流程。為驗證算法的正確性,模型檢查通過后,Matlab提供的System Test(系統(tǒng)測試)與Simulink DesignVerifier(設計驗證器)工具可以完成對控制系統(tǒng)的測試。模型測試后,使用Embedded coder工具生成嵌入式代碼,通過編譯連接生成目標代碼,下載到處理器中做代碼的等效性測試,如處理器在環(huán)測試(PIL)等。通過這完整的流程,從文本需求到系統(tǒng)測試提供了一個統(tǒng)一的平臺,方便開發(fā)人員交流,極大的提高了開發(fā)的效率。
2 建模規(guī)范檢查與測試
模型出來并且可以編譯之后,首先要做建模標準檢查,這個過程使用工具Simulink Verification&Validation工具集提供的model advisor自動化的完成。Model Advisor可以理解模型的靜態(tài)檢查,用來驗證模型是否正確的搭建出來。這是建模檢查的第一步,對建立的模型進Model Advisor檢查,這在設計初期非常重要,用戶通過檢查,能夠找出模型中與建模標準或者安全標準不相符合的部分,對模型中隱含的問題給予警告,并且指導用戶修改,是代碼生成前重要的工作。Model Advisor提供了常見的建模標準和安全標準供用戶選擇,同時通過API接口,用戶可以建立自己公司的建模標準。
3 處理器在環(huán)測試
圖1 PIL工作流程圖
處理器在環(huán)測試是在Simulink中搭建被控對象的模型,而將控制器算法代碼下載到目標處理器中去執(zhí)行,通過串口或者網(wǎng)絡接口通信,對處理器和Simulink進行實時數(shù)據(jù)交換,這種硬件在環(huán)實時仿真技術可以反映控制器的實際工作情況,得到算法的執(zhí)行時間,便于及早的發(fā)現(xiàn)錯誤。其工作原理如圖1所示。
PIL環(huán)節(jié)是基于模型設計中非常重要的環(huán)節(jié),因為系統(tǒng)控制系統(tǒng)模型的仿真只能驗證算法的正確性,但是由于算法對處理器性能要求很高,算法的執(zhí)行時間直接關系到整個控制系統(tǒng)是否穩(wěn)定。在電機控制系統(tǒng)中,如果FOC算法的執(zhí)行算法的時間大于PWM的周期,則會導致整個系統(tǒng)無法工作。
對于處理器在環(huán)測試設置比較復雜,所以為能夠完成自動化的測試,本文建立自動化的測試程序如下:
set_param('model','ProdHWDeviceType','TexasInstruments->C2000','TemplateMakefile', 'ec_target.tmf', 'GenCodeOnly', 'off',...
'SimulationMode','processor-in-the-loop (pil)')
set_param('model','CodeExecutionProfiling', 'on',...'CodeExecutionProfileVariable','executionProfile',...
'CodeProfilingSaveOptions','AllData');
save_system('sensorless_foc.slx')
if exist('slprj','dir'), rmdir('slprj','s'); end
sim('model')
其中model為系統(tǒng)仿真的模型,通過上述程序既可以自動進行PIL測試。用戶運行profile(IDE_Obj,execution,report)即可以生成代碼實時運行的結果如圖2所示。
圖2 PIL仿真結果圖
4 總結
基于模型的設計優(yōu)勢在于算法的早期驗證,使得開發(fā)者可以將主要精力放在算法開發(fā)上,代碼則由Matlab自動生成,很好的提高工作效率。在實際的開發(fā)中,將算法生成為函數(shù)進行調用,一般底層驅動和控制流程使用匯編語言或者C手工編寫。如果通過Matlab對底層驅動建模則十分復雜,得不償失,控制流程開發(fā)也沒有C語言靈活。
參考文獻
[1]劉杰.基于模型的設計及其嵌入式實現(xiàn)[M].北京:北京航空航天大學出版社,2010.
[2]The MathWorks,Inc.Embedded coder6 Geting Started Guide,April 2011.
[3]The MathWorks,Inc.Embedded coder 6 Users Guide,April 2011.
[4]The MathWorks,Inc.Stateflow 7 Geting Started Guide,April 2011.
作者簡介
王海濱(1988-),安徽蚌埠人,安徽理工大學在讀碩士研究生,研究方向:電力電子與電力拖動。endprint
摘 要 隨著現(xiàn)代控制技術的發(fā)展,控制算法越來越復雜,控制算法的自動驗證和代碼自動生成已經(jīng)成為趨勢。傳統(tǒng)的電機控制算法開發(fā)是系統(tǒng)仿真,編寫代碼,最后測試。采用傳統(tǒng)手工編程的方式去編寫復雜的控制算法,對于初學者來說難度非常大。對于算法設計人員來說,需要一種方法能夠解決以上問題。
關鍵詞 基于模型的設計;Embedded Coder;磁場定向算法;永磁同步電機;PIL
中圖分類號:TP309 文獻標識碼:A 文章編號:1671-7597(2014)05-0053-01
Matlab提供的基于模型設計平臺(Model Based Design,MBD),可以實現(xiàn)從需求分析到代碼驗證的整個開發(fā)過程,用戶可以建立系統(tǒng)級模型的仿真驗證,優(yōu)化系統(tǒng)參數(shù),自動生成高效的目標器件專用代碼。利用Matlab提供的開發(fā)環(huán)境,用戶可以開發(fā)和驗證控制算法,成功的完成從算法的設計驗證到自動生成代碼過程。
1 電機控制系統(tǒng)開發(fā)流程
在開發(fā)中,首先是通過文本需求建立可執(zhí)行文檔,在這一部分中,主要是建模,通過建??梢员苊鈧鹘y(tǒng)文本的弊端,通過可視化和可執(zhí)行化的模型避免文本需求的歧義和冗余。建模之后,為生成符合相關安全標準的代碼,需要對模型進行建模規(guī)范檢查,使用Simulink V&V工具集可自動完成這一流程。為驗證算法的正確性,模型檢查通過后,Matlab提供的System Test(系統(tǒng)測試)與Simulink DesignVerifier(設計驗證器)工具可以完成對控制系統(tǒng)的測試。模型測試后,使用Embedded coder工具生成嵌入式代碼,通過編譯連接生成目標代碼,下載到處理器中做代碼的等效性測試,如處理器在環(huán)測試(PIL)等。通過這完整的流程,從文本需求到系統(tǒng)測試提供了一個統(tǒng)一的平臺,方便開發(fā)人員交流,極大的提高了開發(fā)的效率。
2 建模規(guī)范檢查與測試
模型出來并且可以編譯之后,首先要做建模標準檢查,這個過程使用工具Simulink Verification&Validation工具集提供的model advisor自動化的完成。Model Advisor可以理解模型的靜態(tài)檢查,用來驗證模型是否正確的搭建出來。這是建模檢查的第一步,對建立的模型進Model Advisor檢查,這在設計初期非常重要,用戶通過檢查,能夠找出模型中與建模標準或者安全標準不相符合的部分,對模型中隱含的問題給予警告,并且指導用戶修改,是代碼生成前重要的工作。Model Advisor提供了常見的建模標準和安全標準供用戶選擇,同時通過API接口,用戶可以建立自己公司的建模標準。
3 處理器在環(huán)測試
圖1 PIL工作流程圖
處理器在環(huán)測試是在Simulink中搭建被控對象的模型,而將控制器算法代碼下載到目標處理器中去執(zhí)行,通過串口或者網(wǎng)絡接口通信,對處理器和Simulink進行實時數(shù)據(jù)交換,這種硬件在環(huán)實時仿真技術可以反映控制器的實際工作情況,得到算法的執(zhí)行時間,便于及早的發(fā)現(xiàn)錯誤。其工作原理如圖1所示。
PIL環(huán)節(jié)是基于模型設計中非常重要的環(huán)節(jié),因為系統(tǒng)控制系統(tǒng)模型的仿真只能驗證算法的正確性,但是由于算法對處理器性能要求很高,算法的執(zhí)行時間直接關系到整個控制系統(tǒng)是否穩(wěn)定。在電機控制系統(tǒng)中,如果FOC算法的執(zhí)行算法的時間大于PWM的周期,則會導致整個系統(tǒng)無法工作。
對于處理器在環(huán)測試設置比較復雜,所以為能夠完成自動化的測試,本文建立自動化的測試程序如下:
set_param('model','ProdHWDeviceType','TexasInstruments->C2000','TemplateMakefile', 'ec_target.tmf', 'GenCodeOnly', 'off',...
'SimulationMode','processor-in-the-loop (pil)')
set_param('model','CodeExecutionProfiling', 'on',...'CodeExecutionProfileVariable','executionProfile',...
'CodeProfilingSaveOptions','AllData');
save_system('sensorless_foc.slx')
if exist('slprj','dir'), rmdir('slprj','s'); end
sim('model')
其中model為系統(tǒng)仿真的模型,通過上述程序既可以自動進行PIL測試。用戶運行profile(IDE_Obj,execution,report)即可以生成代碼實時運行的結果如圖2所示。
圖2 PIL仿真結果圖
4 總結
基于模型的設計優(yōu)勢在于算法的早期驗證,使得開發(fā)者可以將主要精力放在算法開發(fā)上,代碼則由Matlab自動生成,很好的提高工作效率。在實際的開發(fā)中,將算法生成為函數(shù)進行調用,一般底層驅動和控制流程使用匯編語言或者C手工編寫。如果通過Matlab對底層驅動建模則十分復雜,得不償失,控制流程開發(fā)也沒有C語言靈活。
參考文獻
[1]劉杰.基于模型的設計及其嵌入式實現(xiàn)[M].北京:北京航空航天大學出版社,2010.
[2]The MathWorks,Inc.Embedded coder6 Geting Started Guide,April 2011.
[3]The MathWorks,Inc.Embedded coder 6 Users Guide,April 2011.
[4]The MathWorks,Inc.Stateflow 7 Geting Started Guide,April 2011.
作者簡介
王海濱(1988-),安徽蚌埠人,安徽理工大學在讀碩士研究生,研究方向:電力電子與電力拖動。endprint