使用基于模型的設計進行早期驗證和確認
MATLAB 簡化了線性控制設計,但是在實際應用中,系統很少是線性的。因此,即使在設計了控制器后,對其進行測試和調整仍然意味著需要構建系統的硬件原型,并對算法進行編碼。或者,因為沒有樣機而無法進行測試,只有等到開發流程后期才能開展測試活動。
本文引用地址:http://www.104case.com/article/151119.htm為了將算法應用到硬件之前驗證這些算法,工程師們借助數值技術來仿真控制算法對系統(也稱為“對象”)的控制行為。控制工程師們學習編寫 C 或 Fortran 程序來嘗試構建系統模型,借用他們認為可能會適用于其系統類型的數值積分例程,在系統模型程序中復制其控制算法,并仿真整個系統。如果要使系統完全正常工作,那么整個仿真-開發流程需要耗費大量時間并且極具挑戰性。
The MathWorks 在 1990 年發布了Simulink,一種用于對動態系統進行建模和仿真的軟件環境。在控制設計中使用 Simulink 可帶來兩大好處。首先,該軟件提供了一種直觀的框圖環境,可用于對算法和對象以及可能影響系統行為的非線性實際效果進行建模。其次,該軟件包括一個基于一流數值積分方法創建的仿真引擎。這些核心功能極大地簡化了控制工程師通過仿真來驗證控制算法的工作。但是控制工程師們仍然必須在最后對算法進行編碼,以在硬件樣機或實際系統上測試這些算法。
大約五年后,隨著 Simulink 模型自動代碼生成的推出,此流程變得簡單得多。對于調試和測試在原型系統中運行的代碼,控制工程師們不必再擔心將算法模型轉換為代碼時出現錯誤。
控制工程發展的下一步曾是個很大的挑戰:產品級的代碼生成。快速原型代碼通常包含許多調試例程、數據收集代碼、主機-目標通信代碼以及用于交互測試的其他補充代碼。一般而言,這些代碼的優化程度不足以將其運用在可交付使用的系統中。代碼生成工具經過改進后,可以生成高效率的代碼,足以部署到產品級嵌入式系統中。今天,許多行業都認為從控制模型自動生成產品級代碼是最佳的做法。
Model-Based Design(基于模型的設計)
處理器速度和內存的快速增加有助于在桌面上開發建模、仿真和代碼生成工具,同樣也使嵌入式軟件開發人員可以改進嵌入式控制器的功能和復雜性。此步驟繼而推動了這樣一種需求:即使用文本編輯器和調試器的傳統代碼開發技術不再是一種局限,未來的設計將以模型為中心。這種以模型為中心的開發方法稱為 Model-Based Design(基于模型的設計)(圖 1)。
圖1:以模型為中心的開發方法稱為 Model-Based Design(基于模型的設計)。
通過基于模型的設計,團隊可根據書面需求使用模型開發其設計。由于采用了仿真引擎,因此這些模型成為“可執行的規范”。對于開發和檢查規范的團隊而言,“規范可執行”是個極大的好處。檢查完高級模型后,可使用設計詳細信息修改模型,以便將其轉換為代碼。從詳細設計模型自動生成代碼極大優化了實現過程,并避免了從設計到代碼轉換過程中引入錯誤的可能。
傳統的嵌入式控制系統的開發過程和V 型圖一致(圖 2)。
圖2:傳統的嵌入式控制系統的開發過程和V 型圖一致。
評論