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