【導(dǎo)讀】借助高級(jí)處理器功能來簡(jiǎn)化設(shè)計(jì)已成為主流。設(shè)計(jì)靈活性的提高使工程師能夠采用標(biāo)準(zhǔn)的MATLAB和 Simulink模型設(shè)計(jì),使電機(jī)控制系統(tǒng)得到優(yōu)化,將整體設(shè)計(jì)時(shí)間縮短。而且設(shè)計(jì)工程師將仿真模型重復(fù)利用,確保系統(tǒng)在終端市場(chǎng)應(yīng)用中具有正確的功能和所需性能。
圖1:設(shè)計(jì)發(fā)展史和設(shè)計(jì)能力
基于模型的設(shè)計(jì) (MBD) 經(jīng)過數(shù)十年的探討,直到最近幾年才發(fā)展為完整的設(shè)計(jì)流程:從模型創(chuàng)建到完整實(shí)現(xiàn)。在 1970 年代,仿真可采用模擬計(jì)算平臺(tái),但是控制硬件卻只能借助晶體管實(shí)現(xiàn)。2000 年代仿真
工具的發(fā)展迎來了圖形化控制原理圖輸入工具和控制設(shè)計(jì)工具,大大簡(jiǎn)化了復(fù)雜的控制設(shè)計(jì)和評(píng)估任務(wù)。但是,控制系統(tǒng)設(shè)計(jì)師仍然需要編寫 C 語言來開發(fā)硬件控制算法,以反映仿真設(shè)計(jì)的情況。本世紀(jì)初,完整的 MBD 能夠?qū)崿F(xiàn)仿真平臺(tái)和硬件實(shí)現(xiàn)平臺(tái)的通用控制設(shè)計(jì),把復(fù)雜控制算法迅速運(yùn)用至硬件平臺(tái)。
圖2:MBD設(shè)計(jì)流程
MBD 是指在整個(gè)開發(fā)過程中使用一個(gè)系統(tǒng)模型作為可執(zhí)行規(guī)范。與傳統(tǒng)基于硬件原型的設(shè)計(jì)方法相比,基于仿真的方法有助于更好地理解設(shè)計(jì)備選方案和權(quán)衡要素,從而能夠優(yōu)化設(shè)計(jì),達(dá)到預(yù)定的性能標(biāo)準(zhǔn)。設(shè)計(jì)師無需使用復(fù)雜的結(jié)構(gòu)和大量軟件代碼,通過連續(xù)時(shí)間和離散時(shí)間構(gòu)建模塊,就可以定義具有高級(jí)功能特性的各種模型。將現(xiàn)有 C 代碼與標(biāo)準(zhǔn)控制庫模塊整合,可實(shí)現(xiàn)設(shè)計(jì)效率最大化。這些與仿真工具一同使用的模型能夠縮短原型設(shè)計(jì)、軟件測(cè)試和硬件回路 (HIL) 仿真的時(shí)間。通過仿真,我們能夠立即發(fā)現(xiàn)各種規(guī)范差異和模型誤差,不會(huì)等到設(shè)計(jì)周期的后續(xù)環(huán)節(jié)才發(fā)現(xiàn)。在硬件平臺(tái)上運(yùn)行相同算法時(shí),自動(dòng)代碼生成省去了手動(dòng)步驟。這可簡(jiǎn)化設(shè)計(jì)過程、減少硬件設(shè)計(jì)實(shí)現(xiàn)過程的錯(cuò)誤,并縮短整體上市時(shí)間。
MBD 過程有多個(gè)步驟可優(yōu)化整體設(shè)計(jì)中的各項(xiàng)任務(wù)。這些任務(wù)可由不同的設(shè)計(jì)工程師或設(shè)計(jì)團(tuán)隊(duì)完成,然后組合在一起形成整體設(shè)計(jì)和完整的系統(tǒng)。借助此方法,各項(xiàng)任務(wù)可在更高的抽象層進(jìn)行設(shè)計(jì),從而針對(duì)給定的最終應(yīng)用優(yōu)化整體設(shè)計(jì)流程??偠灾?,MBD 使設(shè)計(jì)師能夠從更多經(jīng)典設(shè)計(jì)方案開始擴(kuò)展,以可控方式直接從模型創(chuàng)建轉(zhuǎn)到仿真、代碼生成和 HIL 測(cè)試,無需重新設(shè)計(jì)整個(gè)系統(tǒng)就可對(duì)系統(tǒng)行為做出遞增改變。
圖3:MBD實(shí)現(xiàn)的概念
在圖 3中,我們以直觀的方式顯示 MBD 流程的不同設(shè)計(jì)階段和每個(gè)步驟的范圍。這些步驟共同描述了 MBD 的“標(biāo)準(zhǔn)”流程。以電機(jī)控制設(shè)計(jì)為例,該流程包括:
1、運(yùn)行概念
2、電機(jī)系統(tǒng)的整體功能
3、工廠建模/系統(tǒng)架構(gòu)
4、電機(jī)、負(fù)載、功率電子設(shè)備、信號(hào)調(diào)理等設(shè)備的模型開發(fā)
5、控制器建模和要求
6、三相永磁電機(jī)基于編碼器的磁場(chǎng)定向控制
7、分析和綜合 – 詳細(xì)設(shè)計(jì)
8、上述創(chuàng)建模型用于確定工廠模型的動(dòng)態(tài)特性
9、系統(tǒng)調(diào)諧和配置
10、驗(yàn)證和測(cè)試
11、離線仿真和/或?qū)崟r(shí)仿真
12、動(dòng)態(tài)系統(tǒng)時(shí)間響應(yīng)調(diào)查
13、嵌入式目標(biāo)實(shí)施過程 – 全面運(yùn)行
14、自動(dòng)代碼生成
15、測(cè)試和驗(yàn)證
16、更新控制器模型
圖4:MBD設(shè)置
以上可構(gòu)成調(diào)整整體設(shè)計(jì)的多步驟方法,并且可單獨(dú)分析每個(gè)控制步驟。軟硬件規(guī)范完成后,就可針對(duì)整個(gè)系統(tǒng)的具體算法和功能部署建立完整的系統(tǒng)架構(gòu)(參見圖4 )??蓪?duì)控制器和工廠模型的仿真過程進(jìn)行評(píng)估,還可對(duì)不涉及硬件的算法離線開發(fā)過程進(jìn)行合理構(gòu)建并微調(diào),從而達(dá)到整個(gè)系統(tǒng)的性能要求。對(duì)于初始生成的代碼,無論是“重復(fù)使用”的現(xiàn)有代碼還是由代碼生成工具生成的代碼,均可在嵌入式控制器中實(shí)施,以便將 PC 上的系統(tǒng)仿真情況與硬件目標(biāo)的實(shí)際實(shí)現(xiàn)數(shù)據(jù)進(jìn)行對(duì)比。設(shè)計(jì)師在定義 MBD 的平衡結(jié)構(gòu)時(shí),必須考慮模型的復(fù)雜度。不過,某個(gè)平衡概念實(shí)現(xiàn)之后,也可以快速更改設(shè)計(jì)內(nèi)的獨(dú)立模型,使整個(gè)驅(qū)動(dòng)系統(tǒng)獲得更準(zhǔn)確的結(jié)果。
本文采用的實(shí)驗(yàn)設(shè)置是基于ADI公司的 ARM CortexTM-M4 混合信號(hào)控制處理器,它與 IAR 和 MathWorks 公司的組合工具一同使用,實(shí)現(xiàn) MBD 平臺(tái)。上述每個(gè)步驟都可直接鏈接至可用工具和整個(gè)實(shí)現(xiàn)過程。
圖5:Mathworks和IAR系統(tǒng)優(yōu)勢(shì)
參見圖5,每條工具鏈都具有使用價(jià)值。在 MBD 中,設(shè)計(jì)師必須選擇如何平衡使用這些工具鏈與獨(dú)立 MBD 平臺(tái)創(chuàng)造的全部?jī)r(jià)值二者之間的關(guān)系。
圖6:實(shí)施環(huán)境
對(duì)于目標(biāo)平臺(tái),實(shí)時(shí)開發(fā)環(huán)境現(xiàn)可適用于建模、仿真、評(píng)估、部署和優(yōu)化整個(gè)系統(tǒng)的性能和功能。這一切都基于 MBD 和平衡選擇系統(tǒng)參數(shù),從而使需要特定優(yōu)化的設(shè)計(jì)具有一流的靈活性。這使得系統(tǒng)的可擴(kuò)展模型得以實(shí)現(xiàn),進(jìn)而有助于代碼的使用和重復(fù)使用,這些代碼可以基于現(xiàn)有舊代碼或功能,也可以基于標(biāo)準(zhǔn) C 的全新構(gòu)建模塊或圖形化功能(Simulink/MATLAB 模型對(duì)應(yīng)完整的仿真和實(shí)施階段)。不僅從軟件角度來看可以更改整體設(shè)置,而且在為系統(tǒng)開發(fā)出正確的設(shè)備驅(qū)動(dòng)程序之后,設(shè)計(jì)師也可更改最終應(yīng)用或系統(tǒng)的資源、硬件元件和整個(gè)應(yīng)用軟件。此外,還能夠?qū)崟r(shí)控制整個(gè)系統(tǒng)的時(shí)序,所以直接借助此環(huán)境就可實(shí)現(xiàn)系統(tǒng)調(diào)度最優(yōu)化。
圖7:驅(qū)動(dòng)系統(tǒng)框圖
仔細(xì)觀察這個(gè)典型的驅(qū)動(dòng)系統(tǒng)框圖,便可直觀地了解此架構(gòu)的功能。我們可以優(yōu)化“驅(qū)動(dòng)系統(tǒng)”中的每個(gè)要素,并著重關(guān)注對(duì)最終系統(tǒng)最為重要的要素。舉例來說,如果保護(hù)功能和數(shù)值范圍最重要,則應(yīng)著重關(guān)注與電氣控制和功率系統(tǒng)結(jié)合的機(jī)械系統(tǒng)??删C合運(yùn)用仿真結(jié)果和實(shí)時(shí)數(shù)據(jù)來監(jiān)控系統(tǒng)行為,共同實(shí)現(xiàn)“即時(shí)”優(yōu)化。另一方面,如果噪聲干擾降低了系統(tǒng)的整體效率水平,則可以在可擴(kuò)展濾波器和觀測(cè)器中使用其測(cè)量值,最大程度地減少硬件噪聲問題以實(shí)現(xiàn)最佳狀態(tài)。針對(duì)所有因素建模并收集相關(guān)數(shù)據(jù)之后,就可以開始實(shí)施階段的最后一步,而目標(biāo)系統(tǒng)的完整實(shí)現(xiàn)階段亦可成為現(xiàn)實(shí)。
圖8:實(shí)現(xiàn)與編譯
通過 MBD 設(shè)計(jì)流程和 MathWorks 與 IAR,可對(duì)代碼進(jìn)行編譯,并使整體模型得以實(shí)現(xiàn)。“驅(qū)動(dòng)系統(tǒng)”模型的每個(gè)階段或要素都可通過 MATLAB 和 Simulink 模型來表示,該模型已調(diào)整至符合最優(yōu)設(shè)計(jì)標(biāo)準(zhǔn)的適當(dāng)水平。模型中的每個(gè)要素均基于 MathWorks 的標(biāo)準(zhǔn)工具箱和模塊集,在特定設(shè)計(jì)中可以與任何要素一同重復(fù)使用。這些要素還可表示驅(qū)動(dòng)系統(tǒng)的不同域,并且均可進(jìn)行微調(diào),以便最大程度減少模型相對(duì)于實(shí)施的誤差。通過實(shí)時(shí)實(shí)施方法并在此混合環(huán)境下編譯,還可將現(xiàn)有手寫 C 代碼與由 Embedded Coder(嵌入式編碼器)生成并經(jīng)過 ARM Cortex M4 優(yōu)化的 C 代碼相結(jié)合。Embedded Coder是一款適用于 MATLAB 和 Simulink 的生產(chǎn)代碼生成工具。整個(gè)過程使得用戶能夠正確地重復(fù)使用現(xiàn)有的電機(jī)控制設(shè)計(jì)知識(shí)。此時(shí),IAR 嵌入式工作臺(tái)可獲取生成的代碼,并對(duì) ARM Cortex M4 的完整項(xiàng)目進(jìn)行編譯,這也表示此系統(tǒng)的 MBD 實(shí)現(xiàn)階段結(jié)束。
圖9:處理數(shù)據(jù)及仿真數(shù)據(jù)
自 MBD 問世以來,人們就一直在質(zhì)疑其相較于傳統(tǒng)系統(tǒng)開發(fā)的性能和功能,以及系統(tǒng)整體資源的使用效率。經(jīng)過元件供應(yīng)商、仿真和實(shí)施供應(yīng)商以及工具編譯器供應(yīng)商的不懈努力,現(xiàn)如今 MBD 已經(jīng)與傳統(tǒng)實(shí)施方式不相上下。當(dāng)然,任何為實(shí)時(shí)系統(tǒng)編寫和開發(fā)代碼的過程均可能效率低下,這取決于所使用的實(shí)現(xiàn)方法。借助 MBD,可以將性能分析、交叉優(yōu)化選項(xiàng)以及安全關(guān)鍵系統(tǒng)開發(fā)的強(qiáng)大優(yōu)勢(shì)組合在一起,從而盡可能減少代碼開發(fā)費(fèi)用,實(shí)現(xiàn)最高性能。MathWorks 會(huì)按照 IEC 61508、ISO 26262 和相關(guān)功能安全標(biāo)準(zhǔn)對(duì)嵌入式編碼器進(jìn)行工具資格驗(yàn)證。
在標(biāo)準(zhǔn)設(shè)計(jì)流程中,實(shí)現(xiàn)這一系列功能要困難得多。在上述例子中,標(biāo)準(zhǔn)磁場(chǎng)定向控制 (FOC) 模型在ADI公司的 ADSP-CM40x 系列上實(shí)現(xiàn)。該模型的位置反饋和電流環(huán)路反饋的執(zhí)行時(shí)間為 15 us,并且可對(duì)電流方案和調(diào)試設(shè)備進(jìn)行實(shí)時(shí)分析。該模型還可追蹤整個(gè) FOC 方案的功能性??梢詫?duì) MBD 仿真結(jié)果和實(shí)時(shí)數(shù)據(jù)進(jìn)行評(píng)估,并與理想的系統(tǒng)功能和目標(biāo)規(guī)格進(jìn)行比較。因此,設(shè)計(jì)師能夠不斷提高系統(tǒng)效率、功能和性能,還能評(píng)估信號(hào)鏈中指定要素或組件的表現(xiàn)與目標(biāo)規(guī)格的差異情況。