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