基於模型的設計簡化嵌入式電機控製係統開發
發布時間:2017-11-17 來源:Dara O''Sullivan, Jens Sorensen, 和 Aengus Murray 責任編輯:wenwei
【導讀】本文描述了圍繞基於ARM®的嵌入式電機控製處理器構建的基於模型設計(MBD)平台的詳細情況。隨後,本文提供最初部署的基本永磁同步電機(PMSM)控製算法示例,並介紹了方便的功能擴展,以包含自動化係統的多軸位置控製。
長期以來,係統和電路建模一直是電機控製係統設計的重要方麵。采用MBD方法後,電氣、機械和係統級模型用於在構建和測試物理硬件前評估設計概念。MathWorks最新的仿真工具可以對完整的嵌入式控製係統進行建模,包括電氣電路和機械係統領域。同時,嵌入式編碼工具從控製係統模型生成C語言代碼,將控製算法部署在嵌入式控製平台上。
這些工具實現了基於模型的設計過程,人們可以在最終硬件測試前先在仿真平台上進行設計並完全測試。成功構建MBD平台的關鍵是分隔係統模型和嵌入式軟件代碼。一旦MBD平台使用已知算法和係統進行測試後,便可開發新算法,並在仿真平台上以係統工作極限安全地測試。
完整的設計流程
MBD經過數十年的探討,直到最近幾年才發展為從模型創建到完整實現的完整設計流程。MBD是解決設計複雜嵌入式控製係統相關問題的數學和可視化方法。
設計師無需使用複雜的結構和大量軟件代碼,通過連續時間和離散時間構建模塊,就可以使用MBD定義具有高級功能特性的各種模型。這些與仿真工具一同使用的模型能夠縮短原型設計、軟件測試和硬件在環(HIL)仿真的時間。
通tong過guo仿fang真zhen,我wo們men能neng夠gou立li即ji發fa現xian各ge種zhong規gui範fan差cha異yi和he模mo型xing誤wu差cha,不bu會hui等deng到dao設she計ji周zhou期qi的de後hou續xu環huan節jie才cai發fa現xian。為wei了le優you化hua整zheng體ti代dai碼ma生sheng成cheng過guo程cheng,可ke以yi加jia入ru自zi動dong代dai碼ma生sheng成cheng來lai減jian少shao任ren何he手shou動dong部bu署shu步bu驟zhou,並bing進jin一yi步bu有you助zhu於yu縮suo短duan整zheng體ti產chan品pin上shang市shi時shi間jian。總zong而er言yan之zhi,MBD方法使設計師能夠從更多經典設計方案開始擴展,以可控方式直接從模型創建轉到仿真、代碼生成和HIL測試,無需重新設計整個係統就可對係統行為作出遞增改變。
本文中的實驗性設置基於交流饋入閉合電機控製係統,如圖1所示。該係統表示一個功能完整的PMSM市電輸入電機驅動,具有功率因數校正、完全控製、通信信號隔離和光學編碼器反饋功能。該係統的核心是一個ARM Cortex®-M4混合信號控製處理器,即ADI的ADSP-CM408。它通過搭配IAR和MathWorks公司的工具,實現完整的MBD平台部署。

圖1. 驅動係統平台(a)交流饋入閉合電機控製係統框圖(b)係統原型製作
交流電機驅動係統建模
目標驅動係統是帶有編碼器位置反饋的PMSM,連接三相交流電源逆變器,帶有隔離式相位電流反饋。驅動控製算法部署在混合信號專用信號處理器(ASSP),包含外設,可捕獲電機反饋信號並控製電源逆變器。
係統有三個主要組件可用於建模:電源逆變器和電機(對象)、控製反饋電路和數字控製器。對象模型使用Simulink Simscape組件來仿真連續時間域內的電源逆變器電氣電路和電機機電元素。反饋電路模型處理控製器和電機驅動模型之間的增益和數據類型。
Simulink嵌入式編碼器工具創建的Cyuyandaimakeyizaifangzhenpingtaiheqianrushikongzhichuliqishangjingquefanyingsuanfadezhixing。jiyumoxingshejidechenggongzhixingyoulaiyujingquedexitonghedianlumoxing,yijizhengquefengexitongmoxingheqianrushikongzhiruanjian。youyuxitongzhonghunhelelisanhelianxushijianhanshu,yincigaifangzhenqiujieqicaiyonglegudingbuchanglisanqiujieqi。
驅動係統硬件包括電源板、控製板、以及帶編碼器反饋的PMSM (參見圖1b)。電源板包含輸入整流器、三相逆變器模塊、電流和電壓傳感器、數字和模擬信號隔離電路,以及編碼器信號緩衝器。控製板包含電機控製ASSP(集成240 MHz ARM Cortex-M4F內核)以及專用電機控製外設(包括PWM定時器、正交編碼計數器、Sinc濾波器和嵌入式模數轉換器(ADC))。硬件包含電機電流反饋選項,采用隔離電流傳感器(集成嵌入式ADC)或分流器(集成隔離式ADC Σ-Δ型轉換器),以及嵌入式Sinc濾波器。
反饋信號采集和控製算法執行通過處理器中斷機製與PWM開關頻率同步。由於對象中被關注的時間常數遠長於PWM開關周期,係統仿真采用相同的時間步長。由於全開關信號仿真無法提供有用的控製信息,電源逆變器使用平均值模型。
PMSM電機模型來源於MathWorks SimPower係統庫,受配置菜單(甚至預設模型參數)的支持。用戶可以在自定義電機或逆變器模型之間切換,具體取決於設計開發的要求。
電機控製(MC)算法模型是一組離散時間函數,每一個時間步進均在仿真和嵌入式平台上執行。通常,MC算法函數包含在單個子係統模塊內,簡化代碼產生過程。代碼生成器創建C語言代碼,來執行算法輸入、輸出和狀態變量的控製算法和數據結構。算法本身是常用的磁場定向控製(FOC),具有外部速度環路、內部d軸和q軸電流環路,如圖2所示。

圖2. FOC算法
nibianqijiekouhefankuilujingfenweichuanganqixinhaotiaoliheqianrushijiekoumokuai。dianliuchuanganqihexinhaotiaolimoxingshijiandandezengyiyuansu,yinweitamendedaikuanchaochulekongzhifankuisuoguanxindefanwei。weizhichuanganqimoxinggengweifuza,yinweitatigonggaofenbianlvzengliangweizhixinhaohedifenbianlvjueduiweizhixinhao。
嵌入式信號接口模型包括類型轉換函數,因為ADC、Sinc濾波器、計數器和定時器外設具有16位或32位定點輸出數據寄存器。每個嵌入式接口的增益都是外設係統時鍾速率、采樣速率和接口外設寄存器設置的函數。模型參數必須匹配嵌入式係統配置,確保仿真結果的精確性。
軟件分隔和代碼生成
電(dian)機(ji)驅(qu)動(dong)係(xi)統(tong)執(zhi)行(xing)多(duo)種(zhong)功(gong)能(neng)和(he)電(dian)機(ji)控(kong)製(zhi)算(suan)法(fa)。嵌(qian)入(ru)式(shi)軟(ruan)件(jian)分(fen)為(wei)多(duo)個(ge)功(gong)能(neng)模(mo)塊(kuai),來(lai)實(shi)現(xian)平(ping)台(tai)靈(ling)活(huo)性(xing),並(bing)方(fang)便(bian)開(kai)發(fa)。關(guan)鍵(jian)的(de)代(dai)碼(ma)功(gong)能(neng)是(shi)係(xi)統(tong)初(chu)始(shi)化(hua)、通信接口、應用任務、電機控製接口和電機控製算法。圖3顯示的是高電平驅動程序流程圖,圖4顯示的是代碼結構。

圖3. ISR說明

圖4. 代碼分隔
主程序調用初始化例程來配置ASSP硬件,然後將處理器置於連續等待環路。所有其它函數都由事件驅動型中斷服務例程(ISR)調用。ADC中斷具有最高優先級,而當新傳感器數據樣本就緒時,ADC ISR調用電機控製函數。ADC采樣與PWM切換同步,為控製環路提供執行時序。ADC ISR每一個PWM周期執行一次,但僅在電機運行標識置位時才調用電機控製例程(PMSMctrl)。在代碼構建前選擇電機電流反饋路徑。
PWM觸發中斷是異步的;它僅在響應硬件故障時才會調用,而且是延遲故障的唯一函數,因為硬件PWM觸發函數會自動關斷逆變器PWM信號。通信端口ISR具有較低的優先級,處理用戶命令,並發送調試監控器函數捕捉的數據。內核定時器ISR管理背景應用任務,比如電機啟動和停止序列、調試監控器接口以及其它管理類任務。
嵌入式代碼按照功能組織而不是按編程順序組織。係統初始化代碼時以標準方式設置處理器時鍾、電(dian)源(yuan)和(he)內(nei)核(he)定(ding)時(shi)器(qi),與(yu)應(ying)用(yong)程(cheng)序(xu)函(han)數(shu)幾(ji)乎(hu)無(wu)關(guan)。通(tong)信(xin)和(he)應(ying)用(yong)程(cheng)序(xu)任(ren)務(wu)代(dai)碼(ma)通(tong)過(guo)用(yong)戶(hu)接(jie)口(kou)和(he)係(xi)統(tong)管(guan)理(li)要(yao)求(qiu)定(ding)義(yi),與(yu)電(dian)機(ji)控(kong)製(zhi)算(suan)法(fa)幾(ji)乎(hu)沒(mei)有(you)關(guan)係(xi)。
電機控製(MC)jiekouhanshuguanlidianjiqudongyingjianhekongzhisuanfazhijiandexinhaoshujuliu。cidaimazhuanmenyongyukongzhiqudongdianluyijikongzhiweikongzhisuanfatigongfankuixinhaodedianjikongzhixiangguanwaishe。dianjikongzhisuanfashiduliyupingtaidedaima,youSimulink生成,包含反饋和輸出信號的數據結構。所有其它驅動代碼均為手動編碼。
實現細節
若要發揮MBDdezuidaxiaoyi,lijiedianjikongzhixitongbutongbufendejianmoxiangxiyaoqiubingjinkenengjiangguanjianwulixitongcanshuyuxiangyingmoxingcanshuxiangpipeihenzhongyao。zhebaokuojiangyijianmodexitongfengeweibutongdexiangxibufen。zongtieryan,yiPWM平均值方式對整個係統建模就足夠了。例如,在高頻PWM開關周期中以平均值處理所有信號,並且在電壓或電流信號中不包含PWM紋波或開關分量。
係統模型分隔至邏輯模塊內,如圖5所示(圖中顯示相關信號流)。每一個模塊再進一步細分(如圖中右側所示),且每一個子模塊采取適當的建模方法,如表1中所列。表中未列出用戶命令模塊。用戶命令通過C語言代碼內部的全局參數結構與內核算法通信;一旦它們在Simulink算法中定義為全局可調參數後,便可正確處理。

圖5. 係統模型分隔

表1. 模型考慮因素
*括號中的數字對應圖5中的框圖。
除了基本設置(比如類型大小、字節順序等),通過使自動代碼生成變為不針對某個特定目標,便可最大程度實現代碼便攜性和易於維護。MathWorkstigongtedingchuliqidedaimashengchengmokuai,kezhijiexunzhichuliqiwaishehequdongqi。suiranmouxieqingkuangxiazhezhonggongnengfeichangxiyinren,qiquexianshidaimabianxiexingbuzu,qieshebeiqudongchengxuhuowaishepeizhiderenhegaibian(比如新處理器變體)都將要求更改代碼。因此,在本文所述的設計示例中,代碼生成僅限控製算法,而Simulink模型包含全部外設函數模型,並在應用項目中手動編碼。此方法在圖6中強調;由圖可知,MathWorks控製器模型生成的代碼連接至主應用程序項目的其它代碼和庫模塊。

圖6. 模型代碼接口
帶分隔模型模塊的Simulink模型如圖7所示。如圖所示,代碼由模型的電機控製算法部分生成。代碼生成的重要設置可在配置代碼硬件部署窗口中選擇(該窗口中可以選擇整體設備類型),以及在配置參數代碼生成接口窗口中選擇(在該窗口中選擇標準數學庫)。

圖7. 建模和代碼生成部署
影響代碼效率的另一個因素是使用的C語言"方言"。大部分代碼生成工具以及嵌入式工作台支持的常見"方言"是C89/C90和C99。最重要的是,在工具中應當使用相同的"方言"。例如,如果嵌入式工作台配置為根據C99構建代碼,則自動代碼生成工具必須同樣依據C99標準構建代碼。如果不能做到這一點,則代碼性能會大打折扣,甚至在最差的情況下會使代碼產生非預期的作用。
另一個重要的因素是定點和浮點類型表示。兩種編碼"方言"均支持定點,因此這種情況下選擇何種"方言"並不重要,隻要在所有工具中使用相同的"方言"即可。然而,如果使用了浮點類型,則C"方言"的選擇就變得很重要。
C89/C90不區分單精度浮點和雙精度浮點。如果代碼要在支持雙精度的處理器上運行,那這樣做也許是可以接受的;但對於僅支持單精度的處理器而言(比如ARM Cortex-M4),情況就大為不同了。請記住,應當確保自動代碼生成工具以及嵌入式工作台設置為使用C99"方言"。
Simulink提供Simscape和SimMechanics等工具箱,當物理參數已知時可用來為機電係統輕鬆建模。即使物理參數未完全特性化,預定義組件模型(比如電機)可以加載大致相當的規格,實現電機控製算法的初步設計。就算法本身來說,某些模塊很有用,比如Park變換和正弦餘弦CORDIC近似模塊可以簡化電機控製算法的開發。
自zi動dong代dai碼ma接jie口kou由you初chu始shi化hua函han數shu調tiao用yong和he一yi個ge或huo多duo個ge時shi間jian步bu長chang函han數shu調tiao用yong定ding義yi,必bi須xu在zai主zhu應ying用yong程cheng序xu代dai碼ma內nei以yi適shi當dang的de時shi間jian步bu長chang調tiao用yong。本ben例li中zhong有you兩liang個ge時shi間jian步bu進jin函han數shu——主控製算法,在10 kHz PWM速率時調用,以及速度測量函數,在1 kHz速率時調用。自動生成的代碼模塊集成至主項目中,如圖8所示。

圖8. 代碼模塊組織和算法函數調用
如圖所示,代碼以模塊化方式組織,集成特定應用函數,比如聯網和保護,非常直觀。高優先級任務(比如電機控製算法)從圖3中的ISR處調用。應用程序級任務從基本調度程序內核處作為調度任務調用。MC接口例程包含於電機控製和測量代碼模塊中,後者包含所有電流反饋信號處理代碼。ADI電機代碼包含用於係統測試的調試監視器函數,可以在電機運行時捕捉應用和控製算法信號數據。數據通過串行鏈路傳輸至PC,以供顯示和分析。
係統測試與調試
通過測量、計算和查閱數據手冊確定表1中的關鍵參數後,速度和電流環路的正確控製器增益便可使用Simulink模型確定。這可以利用標準PID調諧法[2]或MathWorks提供的調諧工具(比如PID調諧器工具)實現。該過程詳見參考文獻3。
建模和實驗操作的電流環路性能如圖9和圖10所示。該曲線中的實驗數據僅每隔5 ms采樣一次,因此存在一些混疊,但整體趨勢非常明顯。

圖9. 比較模型操作和經驗操作的(a)速度響應以及(b) q軸電流參考

圖10. 電流環路性能——模型和經驗結果
基於模型的自動生成代碼的性能可以通過在PWM周期內檢查代碼執行的時間期限確定。這可以使用I/O引腳和示波器來完成,或更簡單地使用IAR Embedded Workbench C-SPY調試器中的ITM事件功能來完成。PWM周期中事件的序列如圖11時間期限所示。

圖11. 代碼執行時間期限
PWM同步脈衝發生在每一個新PWM周期開始處,並在硬件中連接ADC定時器,控製每個ADC通道的采樣。這種情況下,電機電流將在PWM同步脈衝之後立即采樣,並直接存儲器存儲(DMA)至存儲器,然後執行算法,並生成PWM占空比更新值。如圖11所示,執行基於模型的自動生成代碼消耗的PWM周期不到10%,從而允許有大量的其它背景任務開銷。以前對於自動生成代碼效率的擔憂將不複存在。
就代碼尺寸而言,算法自動代碼的相對尺寸如表2所示;可以看出,自動生成的代碼僅占據略大於10 kb的存儲器,約為總尺寸的15%。ADSP-CM408的可用SRAM為384 kB,顯然可以輕鬆支持該存儲器要求,允許程序以最高速率從SRAM運行,並提供足夠多的裕量用於更複雜的算法和其它監控或用戶接口功能。

表2. 代碼模塊尺寸
新應用程序開發
本ben文wen所suo討tao論lun的de軟ruan件jian假jia設she為wei含han有you兩liang個ge主zhu要yao組zu件jian的de係xi統tong。第di一yi個ge是shi基ji於yu模mo型xing的de組zu件jian,部bu署shu控kong製zhi算suan法fa。雖sui然ran模mo型xing以yi嵌qian入ru式shi目mu標biao為wei原yuan則ze開kai發fa,從cong自zi動dong生sheng成cheng工gong具ju獲huo取qu的de代dai碼ma本ben質zhi上shang是shi通tong用yong的de。第di二er個ge是shi手shou寫xie軟ruan件jian組zu件jian,將jiang通tong用yong算suan法fa代dai碼ma綁bang定ding至zhi嵌qian入ru式shi目mu標biao,處chu理li調tiao度du並bing分fen配pei處chu理li器qi資zi源yuan。在zai重zhong用yong模mo型xing和he擴kuo展zhan性xing方fang麵mian,這zhe種zhong係xi統tong分fen隔ge有you一yi定ding優you勢shi。
本文討論了單個電機(單軸)的控製開發。現在,想象驅動程序規格通過同一個處理器調用兩個電機(雙軸)kongzhi。wuyi,zheduixitonglaishuoshiyigehendadebianhua,dancaiyongtongyongmoxingjinxinggongzuodeyoushiyedeyituxian。yijingwanchengkaifadedanzhoumoxingbuduichuliqiwaishezuochurenhejiashe——它是PM電機的通用控製算法。因而,創建一個可以控製單軸/雙軸的模型就變成了創建單軸模型第二個實例的問題。
自然,手寫代碼需要修改才能支持單軸/shuangzhou,danjiashechuliqijuyouyizuzhengquedewaishehejisuanziyuanlaikongzhishuangzhou,zeshouxiedaimadexiugaiyehenzhiguan。wulunkongzhideshidanzhouhuoshishuangzhou,shouxiedaimadezhuyaorenwudoushijiangshuzhifenpeizhimoxingdeshuru、將模型的輸出寫入處理器外設,以及調度模型的執行時間。因此,從單軸到雙軸隻不過是外設的分配/配置,並調度增加軸的算法執行時間。該過程是無縫的,並由於模型是通用的這一事實而得以實現。
ruguozhikaifayigedankongzhixitong,nameshiyongjiyumoxingdeshejiyoushiyouxian。raner,daduoshuqingkuangxia,chanpinkaifayiweizheduogechanpinbianti,bingqieduiyuzhexieqingkuangeryan,zhongyongmoxingjuyouhendadexiyinli——不僅因為縮短了開發時間,還由於使用受信任模型而導致的質量不斷上升。隨著時間的推移,算法開發人員將會創建模型庫;如果部署正確,這些模型可在不同產品之間重用。由於模型是通用的,它們可以運行在目前和未來的處理器上。
除了滿足產品變體的潛在要求或控製多軸之外,開發人員有時候還能提供不同的控製器模式。一個典型的例子便是提供扭矩控製、速度控製和位置控製模式的應用。在電流和速度控製算法的基礎構建塊上可以部署位置控製算法。
zaidaduoshuyingyongzhong,weizhikongzhihuanluzuoweiweiraoneicengsuduhedianliuhuanludewaiceng。jibendeweizhikongzhiqijinxubilizengyixiang。yibanbuxuyaojifenxiang,yinweiweizhihuanluzhongderenhewentaiwuchadouhuidaozhifeilingsuducankao。ruoneicengdianliuhesuduhuanlujingguolianghaotiaoxie,zezhexiekeyishiweilixiangdedanweizengyimokuai,yijitiaoxieweizhihuanlubianweiyigezhiguanderenwu。
chulewaicengbilikongzhihuanlu,baohanyigeweizhicankaoyekenenghenzhongyao,yibianfuzaizunxundingyidezhouqihejiasuduyujiansudusulv。zheduiyuzuidachengdujianshaohenduoxitongzhongdejixieyinglieryanshifenzhongyao。zaibenyingyongshilizhong,hengdingjiasudu、恒定速度和恒定減速度曲線施加到位置參考變化,如圖12所示;圖中表示位置參考、曲線位置參考以及相應的理想速度曲線。至於哪個實際速度遵循該曲線則取決於速度控製器的動態響應。

圖12. 位置參考曲線
所有這些功能——位置環路增益、位置曲線以及輔助功能(比如回零定位和終端-停止檢測)作為額外模塊部署在代碼中基於模型的部分。唯一需要的手寫代碼更改是I/O配置,以支持家庭位置和終端-停止信號。
結論
jiyumoxingdeshejishiqiangdadegongju,keyijiasudianjiqudongzhizaoshangdeqianrushikaifa。ruguoyitongyongfangshishezhihepeizhi,zekeyidafujianqingshouxiedaimakaifaheweihudezhongdan。tahainengjiakuaichanpinshangshishijian,yinweidaimakaifakezaiqueshaoyingjiandeqingkuangxiachushichuli——隻要提供關鍵係統組件的合理精確模型。
這些特性已在PMSM驅動器情形中得到證實,該驅動器在擴展至多軸和位置控製的FOCxiacaozuo。duiruanjianmokuaihejiyumoxingdezujianjinxingfengedefangfayijingxiangxishuoming,keyiyouhuajiyumoxingdejiejuefangantigongdeshuzhi。shiyanshujuyebiaominglemoxingzaiyouhuasudukongzhiqicanshu、代碼生成緊湊性和效率方麵的優勢。
本文轉載自亞德諾半導體。
推薦閱讀:
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 從機械執行到智能互動:移遠Q-Robotbox助力具身智能加速落地
- 品英Pickering將亮相2026航空電子國際論壇,展示航電與電池測試前沿方案
- 模擬芯片設計師的噩夢:晶體管差1毫伏就廢了,溫度升1度特性全飄
- 3A大電流僅需3x1.6mm?意法半導體DCP3603重新定義電源設計
- 芯科科技Tech Talks與藍牙亞洲大會聯動,線上線下賦能物聯網創新
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索



