王海濱+閆鵬程+武濤+歐棟杰
摘 要 隨著現代控制技術的發展,控制算法越來越復雜,控制算法的自動驗證和代碼自動生成已經成為趨勢。傳統的電機控制算法開發是系統仿真,編寫代碼,最后測試。采用傳統手工編程的方式去編寫復雜的控制算法,對于初學者來說難度非常大。對于算法設計人員來說,需要一種方法能夠解決以上問題。
關鍵詞 基于模型的設計;Embedded Coder;磁場定向算法;永磁同步電機;PIL
中圖分類號:TP309 文獻標識碼:A 文章編號:1671-7597(2014)05-0053-01
Matlab提供的基于模型設計平臺(Model Based Design,MBD),可以實現從需求分析到代碼驗證的整個開發過程,用戶可以建立系統級模型的仿真驗證,優化系統參數,自動生成高效的目標器件專用代碼。利用Matlab提供的開發環境,用戶可以開發和驗證控制算法,成功的完成從算法的設計驗證到自動生成代碼過程。
1 電機控制系統開發流程
在開發中,首先是通過文本需求建立可執行文檔,在這一部分中,主要是建模,通過建模可以避免傳統文本的弊端,通過可視化和可執行化的模型避免文本需求的歧義和冗余。建模之后,為生成符合相關安全標準的代碼,需要對模型進行建模規范檢查,使用Simulink V&V工具集可自動完成這一流程。為驗證算法的正確性,模型檢查通過后,Matlab提供的System Test(系統測試)與Simulink DesignVerifier(設計驗證器)工具可以完成對控制系統的測試。模型測試后,使用Embedded coder工具生成嵌入式代碼,通過編譯連接生成目標代碼,下載到處理器中做代碼的等效性測試,如處理器在環測試(PIL)等。通過這完整的流程,從文本需求到系統測試提供了一個統一的平臺,方便開發人員交流,極大的提高了開發的效率。
2 建模規范檢查與測試
模型出來并且可以編譯之后,首先要做建模標準檢查,這個過程使用工具Simulink Verification&Validation工具集提供的model advisor自動化的完成。Model Advisor可以理解模型的靜態檢查,用來驗證模型是否正確的搭建出來。這是建模檢查的第一步,對建立的模型進Model Advisor檢查,這在設計初期非常重要,用戶通過檢查,能夠找出模型中與建模標準或者安全標準不相符合的部分,對模型中隱含的問題給予警告,并且指導用戶修改,是代碼生成前重要的工作。Model Advisor提供了常見的建模標準和安全標準供用戶選擇,同時通過API接口,用戶可以建立自己公司的建模標準。
3 處理器在環測試
圖1 PIL工作流程圖
處理器在環測試是在Simulink中搭建被控對象的模型,而將控制器算法代碼下載到目標處理器中去執行,通過串口或者網絡接口通信,對處理器和Simulink進行實時數據交換,這種硬件在環實時仿真技術可以反映控制器的實際工作情況,得到算法的執行時間,便于及早的發現錯誤。其工作原理如圖1所示。
PIL環節是基于模型設計中非常重要的環節,因為系統控制系統模型的仿真只能驗證算法的正確性,但是由于算法對處理器性能要求很高,算法的執行時間直接關系到整個控制系統是否穩定。在電機控制系統中,如果FOC算法的執行算法的時間大于PWM的周期,則會導致整個系統無法工作。
對于處理器在環測試設置比較復雜,所以為能夠完成自動化的測試,本文建立自動化的測試程序如下:
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為系統仿真的模型,通過上述程序既可以自動進行PIL測試。用戶運行profile(IDE_Obj,execution,report)即可以生成代碼實時運行的結果如圖2所示。
圖2 PIL仿真結果圖
4 總結
基于模型的設計優勢在于算法的早期驗證,使得開發者可以將主要精力放在算法開發上,代碼則由Matlab自動生成,很好的提高工作效率。在實際的開發中,將算法生成為函數進行調用,一般底層驅動和控制流程使用匯編語言或者C手工編寫。如果通過Matlab對底層驅動建模則十分復雜,得不償失,控制流程開發也沒有C語言靈活。
參考文獻
[1]劉杰.基于模型的設計及其嵌入式實現[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
摘 要 隨著現代控制技術的發展,控制算法越來越復雜,控制算法的自動驗證和代碼自動生成已經成為趨勢。傳統的電機控制算法開發是系統仿真,編寫代碼,最后測試。采用傳統手工編程的方式去編寫復雜的控制算法,對于初學者來說難度非常大。對于算法設計人員來說,需要一種方法能夠解決以上問題。
關鍵詞 基于模型的設計;Embedded Coder;磁場定向算法;永磁同步電機;PIL
中圖分類號:TP309 文獻標識碼:A 文章編號:1671-7597(2014)05-0053-01
Matlab提供的基于模型設計平臺(Model Based Design,MBD),可以實現從需求分析到代碼驗證的整個開發過程,用戶可以建立系統級模型的仿真驗證,優化系統參數,自動生成高效的目標器件專用代碼。利用Matlab提供的開發環境,用戶可以開發和驗證控制算法,成功的完成從算法的設計驗證到自動生成代碼過程。
1 電機控制系統開發流程
在開發中,首先是通過文本需求建立可執行文檔,在這一部分中,主要是建模,通過建模可以避免傳統文本的弊端,通過可視化和可執行化的模型避免文本需求的歧義和冗余。建模之后,為生成符合相關安全標準的代碼,需要對模型進行建模規范檢查,使用Simulink V&V工具集可自動完成這一流程。為驗證算法的正確性,模型檢查通過后,Matlab提供的System Test(系統測試)與Simulink DesignVerifier(設計驗證器)工具可以完成對控制系統的測試。模型測試后,使用Embedded coder工具生成嵌入式代碼,通過編譯連接生成目標代碼,下載到處理器中做代碼的等效性測試,如處理器在環測試(PIL)等。通過這完整的流程,從文本需求到系統測試提供了一個統一的平臺,方便開發人員交流,極大的提高了開發的效率。
2 建模規范檢查與測試
模型出來并且可以編譯之后,首先要做建模標準檢查,這個過程使用工具Simulink Verification&Validation工具集提供的model advisor自動化的完成。Model Advisor可以理解模型的靜態檢查,用來驗證模型是否正確的搭建出來。這是建模檢查的第一步,對建立的模型進Model Advisor檢查,這在設計初期非常重要,用戶通過檢查,能夠找出模型中與建模標準或者安全標準不相符合的部分,對模型中隱含的問題給予警告,并且指導用戶修改,是代碼生成前重要的工作。Model Advisor提供了常見的建模標準和安全標準供用戶選擇,同時通過API接口,用戶可以建立自己公司的建模標準。
3 處理器在環測試
圖1 PIL工作流程圖
處理器在環測試是在Simulink中搭建被控對象的模型,而將控制器算法代碼下載到目標處理器中去執行,通過串口或者網絡接口通信,對處理器和Simulink進行實時數據交換,這種硬件在環實時仿真技術可以反映控制器的實際工作情況,得到算法的執行時間,便于及早的發現錯誤。其工作原理如圖1所示。
PIL環節是基于模型設計中非常重要的環節,因為系統控制系統模型的仿真只能驗證算法的正確性,但是由于算法對處理器性能要求很高,算法的執行時間直接關系到整個控制系統是否穩定。在電機控制系統中,如果FOC算法的執行算法的時間大于PWM的周期,則會導致整個系統無法工作。
對于處理器在環測試設置比較復雜,所以為能夠完成自動化的測試,本文建立自動化的測試程序如下:
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為系統仿真的模型,通過上述程序既可以自動進行PIL測試。用戶運行profile(IDE_Obj,execution,report)即可以生成代碼實時運行的結果如圖2所示。
圖2 PIL仿真結果圖
4 總結
基于模型的設計優勢在于算法的早期驗證,使得開發者可以將主要精力放在算法開發上,代碼則由Matlab自動生成,很好的提高工作效率。在實際的開發中,將算法生成為函數進行調用,一般底層驅動和控制流程使用匯編語言或者C手工編寫。如果通過Matlab對底層驅動建模則十分復雜,得不償失,控制流程開發也沒有C語言靈活。
參考文獻
[1]劉杰.基于模型的設計及其嵌入式實現[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
摘 要 隨著現代控制技術的發展,控制算法越來越復雜,控制算法的自動驗證和代碼自動生成已經成為趨勢。傳統的電機控制算法開發是系統仿真,編寫代碼,最后測試。采用傳統手工編程的方式去編寫復雜的控制算法,對于初學者來說難度非常大。對于算法設計人員來說,需要一種方法能夠解決以上問題。
關鍵詞 基于模型的設計;Embedded Coder;磁場定向算法;永磁同步電機;PIL
中圖分類號:TP309 文獻標識碼:A 文章編號:1671-7597(2014)05-0053-01
Matlab提供的基于模型設計平臺(Model Based Design,MBD),可以實現從需求分析到代碼驗證的整個開發過程,用戶可以建立系統級模型的仿真驗證,優化系統參數,自動生成高效的目標器件專用代碼。利用Matlab提供的開發環境,用戶可以開發和驗證控制算法,成功的完成從算法的設計驗證到自動生成代碼過程。
1 電機控制系統開發流程
在開發中,首先是通過文本需求建立可執行文檔,在這一部分中,主要是建模,通過建模可以避免傳統文本的弊端,通過可視化和可執行化的模型避免文本需求的歧義和冗余。建模之后,為生成符合相關安全標準的代碼,需要對模型進行建模規范檢查,使用Simulink V&V工具集可自動完成這一流程。為驗證算法的正確性,模型檢查通過后,Matlab提供的System Test(系統測試)與Simulink DesignVerifier(設計驗證器)工具可以完成對控制系統的測試。模型測試后,使用Embedded coder工具生成嵌入式代碼,通過編譯連接生成目標代碼,下載到處理器中做代碼的等效性測試,如處理器在環測試(PIL)等。通過這完整的流程,從文本需求到系統測試提供了一個統一的平臺,方便開發人員交流,極大的提高了開發的效率。
2 建模規范檢查與測試
模型出來并且可以編譯之后,首先要做建模標準檢查,這個過程使用工具Simulink Verification&Validation工具集提供的model advisor自動化的完成。Model Advisor可以理解模型的靜態檢查,用來驗證模型是否正確的搭建出來。這是建模檢查的第一步,對建立的模型進Model Advisor檢查,這在設計初期非常重要,用戶通過檢查,能夠找出模型中與建模標準或者安全標準不相符合的部分,對模型中隱含的問題給予警告,并且指導用戶修改,是代碼生成前重要的工作。Model Advisor提供了常見的建模標準和安全標準供用戶選擇,同時通過API接口,用戶可以建立自己公司的建模標準。
3 處理器在環測試
圖1 PIL工作流程圖
處理器在環測試是在Simulink中搭建被控對象的模型,而將控制器算法代碼下載到目標處理器中去執行,通過串口或者網絡接口通信,對處理器和Simulink進行實時數據交換,這種硬件在環實時仿真技術可以反映控制器的實際工作情況,得到算法的執行時間,便于及早的發現錯誤。其工作原理如圖1所示。
PIL環節是基于模型設計中非常重要的環節,因為系統控制系統模型的仿真只能驗證算法的正確性,但是由于算法對處理器性能要求很高,算法的執行時間直接關系到整個控制系統是否穩定。在電機控制系統中,如果FOC算法的執行算法的時間大于PWM的周期,則會導致整個系統無法工作。
對于處理器在環測試設置比較復雜,所以為能夠完成自動化的測試,本文建立自動化的測試程序如下:
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為系統仿真的模型,通過上述程序既可以自動進行PIL測試。用戶運行profile(IDE_Obj,execution,report)即可以生成代碼實時運行的結果如圖2所示。
圖2 PIL仿真結果圖
4 總結
基于模型的設計優勢在于算法的早期驗證,使得開發者可以將主要精力放在算法開發上,代碼則由Matlab自動生成,很好的提高工作效率。在實際的開發中,將算法生成為函數進行調用,一般底層驅動和控制流程使用匯編語言或者C手工編寫。如果通過Matlab對底層驅動建模則十分復雜,得不償失,控制流程開發也沒有C語言靈活。
參考文獻
[1]劉杰.基于模型的設計及其嵌入式實現[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