(文/程文智)隨著高效節能概念深入人心,電機耗能越來越受到重視。而電機控制方案的開發是一個復雜的過程,特別是電機控制算法,如果要做好的話,電機控制算法還是挺復雜的。在5月12日的STM32中國峰會上ST聯合其合作伙伴邁斯沃克軟件(MathWorks)就電機控制解決方案所遇到的挑戰,給出了他們的應對之策。
開發電機控制方案面臨四大挑戰
據邁斯沃克軟件中國通信、電子和半導體行業市場經理陳曉挺介紹,他們很早就開始了合作,其合作內容主要有兩塊:
一是MathWorks的工具可以被ST的工程師所使用,包括研發工程師和應用工程師;
二是他們有很多的共同客戶,在支持共同客戶方面有不少合作。由于支持客戶是他們的共同目標,因此最近兩年開展了很多技術合作,比如相互培訓,MathWorks培訓ST的工程師,ST也培訓MathWorks的工程師,讓雙方更加了解彼此的產品,同時也共同做一些市場活動,將雙方最新的技術帶給用戶,另外,還合作錄制了一些視頻,幫助用戶了解MathWorks的工具與ST的硬件。
談到雙方合作,會給電機控制行業帶來哪些好處時,陳曉挺表示,談優勢,先要了解電機控制本身的難度。在他看來,目前電機控制方案的開發主要有以下四個難點:
一是系統建模:電機控制系統需要進行精確的建模,以便進行仿真和控制算法的設計。建模的難點在于需要考慮到電機的物理特性、控制電路的特性、傳感器的精度等多個因素,同時需要對系統進行多維度的建模,以便準確地預測系統的行為。
二是控制算法設計:電機控制系統需要設計出適用于特定應用場景的控制算法。算法設計的難點在于需要綜合考慮系統的特性、控制要求,以及實際應用環境等多個因素,同時需要對算法進行多層次的優化和測試,以確保算法的穩定性和可靠性。
三是硬件設計:電機控制系統的硬件設計需要考慮到電路的復雜性、功率損耗、EMI等多個因素,同時需要保證硬件的可靠性和穩定性,以確保系統的長期運行。
四是調試和測試:電機控制系統的調試和測試需要進行多個環節的驗證,包括模擬仿真、實驗測試、系統集成等多個環節,需要投入大量的時間和精力,以確保系統的穩定性和性能。
ST與MathWorks合作應對電機控制方案設計挑戰
在陳曉挺看來,采用MathWorks的工具軟件MATLAB提供的基于模型設計(MBD)的電機控制工作流程能很好地應對電機控制方案設計時遇到的挑戰。他表示,一般來說采用MBD電機控制工作流程主要有以下幾個步驟:
基于MBD的電機控制方案對開發工程師來說好處主要有四個:
一是提高開發效率:MBD可以幫助開發工程師更快速地進行電機控制算法的設計、仿真和測試,從而提高開發效率。通過使用基于模型的設計工具,開發工程師可以更加直觀地設計和測試算法,減少開發周期和成本。
二是提高代碼質量:MBD可以幫助開發工程師更好地管理代碼,提高代碼質量。通過使用模型驗證和測試工具,開發工程師可以更好地檢測算法中的錯誤和缺陷,從而提高代碼質量和可靠性。
三是提高系統性能:MBD可以幫助開發工程師更優化地設計電機控制算法,從而提高系統性能。通過使用模型優化工具,開發工程師可以更好地優化算法參數和控制策略,從而提高系統響應速度和精度。
四是降低開發風險:通過使用模型驗證和測試工具,開發工程師可以更好地識別 和解決潛在的問題和風險,從而降低開發風險和成本。
也就是說,MBD電機控制方案可以幫助開發工程師提高開發效率、提升代碼質量和系統性能,同時還能降低開發風險和成本。
意法半導體中國區微控制器和數字IC產品部(MDG)總監曹錦東表示,目前MathWorks的MBD電機控制工作流程可以支持ST主流的MCU型號,比如STM32F4、STM32F7、STM32G4、STM32H7、STM32L4、STM32L5等產品系列。
由于ST的產品很多,每年會推出很多的新產品,而MathWorks的軟件每年發布兩個版本,每個版本有新的工具箱和新的功能加進去,那么如何做好新產品的適配呢?據陳曉挺介紹,目前對ST開發板的支持是通過ST自己的STM32CubeMX來支持外圍的I/O配置,內核Arm是通過對Arm指令集的支持來支持的。因此,對于新產品是適配,如果新產品的I/O與原來適配過的產品差不多,那么原來的工具鏈是可以很快改過來的,如果新產品是一個多核異構產品,那么適配的難度就會比較大。當然,如果這款全新的架構很有市場前景,雙方都會投入更多的資源去做開發,一般來說,會在拿到樣片后一年左右推出軟件的整個工具鏈。
曹錦東認為MathWorks通過STM32CubeMX來支持ST的產品是非常聰明的一個做法,因為STM32CubeMX不管從哪個MCU出來,CubeMX可以生成整個系統的配置軟件,比如在使用STM32C0,在STM32CubeMX選一個封裝,I/O口配置什么功能,點完以后就有一個示意圖出來,包括封裝、引腳。MathWorks的軟件如果和STM32CubeMX有對接功能或者從可以從STM32CubeMX把芯片資源拿過來,對于ST來講升級是非常快的,ST推出新的芯片出來之后,已經在STM32CubeMX有比如I/O口外設配置,同時可以兼容最新ARM內核指令級,對一個MCU的兩方面,內核和外設,如果這兩部分可以通過不同的方式抓取到配置文件,內核指令的兼容,對MathWorks來說升級就會很快。他相信MathWorks的軟件越來越多地可以支持其STM32系列產品。
那么,如何將MATLAB設計的電機控制算法和AI算法部署到STM32等嵌入式處理器當中呢?陳曉挺解釋稱,MathWorks有幾十年汽車和軍工等行業產品應用歷史的自動化代碼生成能力,他們有一個獨特的代碼生成框架,可以在任何地方部署在MATLAB或Simulink中開發的模型。拿STM32來說,Embedded Coder能將MATLAB和Simulink算法轉換成C/C++代碼,并針對STM32的處理器優化代碼,替換掉標準C代碼。
他同時指出,MathWorks允許客戶將模型導入MATLAB做AI訓練,因為AI訓練需要數據集,因此他們支持客戶收集并預處理自己的數據集,然后利用AI模型做訓練,訓練好后的AI模型可以部署到STM32上,也可以部署到PC機的GPU上。因為深度學習網絡參數很多,運算量很大,因此,在部署到嵌入式CPU之前,最重要的是選擇一種最合適用戶應用的盡量輕量化的AI模型,然后對已選擇的AI算法做網絡剪枝(修剪或移除深層神經網絡突觸和神經元),量化(對int8數據類型的激活、權重和偏差的量化),這些壓縮AI模型的工作都可以通過MATLAB提供的易用工具來完成,以方便在資源受限的硬件上進行推斷。也就是說,MathWorks支持從算法到落地的完整流程。
意法半導體微控制器市場經理丁曉磊補充稱,STM32在AI上 有一個STM32 Cube.AI工具,該工具與MATLAB的一些功能配合后可以很好地做整個AI開發流程的連接,“STM32 Cube.AI做的是從已經被訓練好的模型到如何更好地優化和部署到STM32 MCU上,因為我們對自己MCU的情況更了解,部署更優化,內存占用率更小,流代碼開發效率更高,但是之前有各種主流的AI模型和框架,我們可以通過ONNX接口就可以轉化為被訓練好的模型,所以,在這里面跟MATLAB的合作,使得開發用戶可以從前端模型數據收集模型的選擇和訓練,一直到能夠生成ONNX格式的模型之后,再用ST的Cube.AI做后面的發布部署,這樣就會形成更加優化的模型訓練到優化、到部署,整個一套開發在AI就會更為順暢、更能落地。”
“我們會越來越重視跟軟件支持伙伴的合作,做芯片本身不是很困難,困難的是怎么提供和芯片相關的軟件和特定應用化的系統讓客戶做開發。”曹錦東進一步指出。他同時強調,軟件是非常關鍵的,與MathWorks這樣的合作伙伴合作,可以幫助客戶熟悉了解如何用MCU做特定應用,這是ST的生態系統中非常重要的環節。
-
mcu
+關注
關注
146文章
17123瀏覽量
350982 -
電機控制
+關注
關注
3534文章
1876瀏覽量
268740 -
ST
+關注
關注
32文章
1133瀏覽量
128911 -
MathWorks
+關注
關注
16文章
74瀏覽量
61206
發布評論請先 登錄
相關推薦
評論