鉅大LARGE | 點擊量:1061次 | 2020年04月02日
基于模型的設計簡化嵌入式電機控制系統開發
本文描述了圍繞基于ARM的嵌入式電機控制處理器構建的基于模型設計(MBD)平臺的詳細情況。隨后,本文供應最初部署的基本永磁同步電機(PMSM)控制算法示例,并介紹了方便的功能擴展,以包含自動化系統的多軸位置控制。
長期以來,系統和電路建模一直是電機控制系統設計的重要方面。采用MBD方法后,電氣、機械和系統級模型用于在構建和測試物理硬件前評估設計概念。MathWorks最新的仿真工具可以對完整的嵌入式控制系統進行建模,包括電氣電路和機械系統領域。同時,嵌入式編碼工具從控制系統模型生成C語言代碼,將控制算法部署在嵌入式控制平臺上。
這些工具實現了基于模型的設計過程,人們可以在最終硬件測試前先在仿真平臺上進行設計并完全測試。成功構建MBD平臺的關鍵是分隔系統模型和嵌入式軟件代碼。一旦MBD平臺使用已知算法和系統進行測試后,便可開發新算法,并在仿真平臺上以系統工作極限安全地測試。
完整的設計流程
MBD經過數十年的探討,直到最近幾年才發展為從模型創建到完整實現的完整設計流程。MBD是解決設計復雜嵌入式控制系統相關問題的數學和可視化方法。
設計師無需使用復雜的結構和大量軟件代碼,通過持續時間和離散時間構建模塊,就可以使用MBD含義具有高級功能特性的各種模型。這些與仿真工具一同使用的模型能夠縮短原型設計、軟件測試和硬件在環(HIL)仿真的時間。
通過仿真,我們能夠立即發現各種規范差異和模型誤差,不會等到設計周期的后續環節才發現。為了優化整體代碼生成過程,可以加入自動代碼生成來減少任何手動部署步驟,并進一步有助于縮短整體產品上市時間。總而言之,MBD方法使設計師能夠從更多經典設計方案開始擴展,以可控方式直接從模型創建轉到仿真、代碼生成和HIL測試,無需重新設計整個系統就可對系統行為作出遞增改變。
本文中的實驗性設置基于交流饋入閉合電機控制系統,如圖1所示。該系統表示一個功能完整的PMSM市電輸入電機驅動,具有功率因數校正、完全控制、通信信號隔離和光學編碼器反饋功能。該系統的核心是一個ARMCortex-M4混合信號控制處理器,即ADI的ADSP-CM408。它通過搭配IAR和MathWorks公司的工具,實現完整的MBD平臺部署。
圖1.驅動系統平臺(a)交流饋入閉合電機控制系統框圖(b)系統原型制作
交流電機驅動系統建模
目標驅動系統是帶有編碼器位置反饋的PMSM,連接三相交流電源逆變器,帶有隔離式相位電流反饋。驅動控制算法部署在混合信號專用信號處理器(ASSP),包含外設,可捕獲電機反饋信號并控制電源逆變器。
系統有三個重要組件可用于建模:電源逆變器和電機(對象)、控制反饋電路和數字控制器。對象模型使用SimulinkSimscape組件來仿真持續時間域內的電源逆變器電氣電路和電機機電元素。反饋電路模型處理控制器和電機驅動模型之間的增益和數據類型。
Simulink嵌入式編碼器工具創建的C語言代碼可以在仿真平臺和嵌入式控制處理器上精確反映算法的執行。基于模型設計的成功執行有賴于精確的系統和電路模型,以及正確分隔系統模型和嵌入式控制軟件。由于系統中混合了離散和持續時間函數,因此該仿真求解器采用了固定步長離散求解器。
驅動系統硬件包括電源板、控制板、以及帶編碼器反饋的PMSM(參見圖1b)。電源板包含輸入整流器、三相逆變器模塊、電流和電壓傳感器、數字和模擬信號隔離電路,以及編碼器信號緩沖器。控制板包含電機控制ASSP(集成240MHzARMCortex-M4F內核)以及專用電機控制外設(包括PWM按時器、正交編碼計數器、Sinc濾波器和嵌入式模數轉換器(ADC))。硬件包含電機電流反饋選項,采用隔離電流傳感器(集成嵌入式ADC)或分流器(集成隔離式ADCSigma-Delta型轉換器),以及嵌入式Sinc濾波器。
反饋信號采集和控制算法執行通過處理器中斷機制與PWM開關頻率同步。由于對象中被關注的時間常數遠長于PWM開關周期,系統仿真采用相同的時間步長。由于全開關信號仿真無法供應有用的控制信息,電源逆變器使用平均值模型。
PMSM電機模型來源于MathWorksSimPower系統庫,受配置菜單(甚至預設模型參數)的支持。用戶可以在自含義電機或逆變器模型之間切換,具體取決于設計開發的要求。
電機控制(MC)算法模型是一組離散時間函數,每一個時間步進均在仿真和嵌入式平臺上執行。通常,MC算法函數包含在單個子系統模塊內,簡化代碼產生過程。代碼生成器創建C語言代碼,來執行算法輸入、輸出和狀態變量的控制算法和數據結構。算法本身是常用的磁場定向控制(FOC),具有外部速度環路、內部d軸和q軸電流環路,如圖2所示。
圖2.FOC算法
逆變器接口和反饋路徑分為傳感器信號調理和嵌入式接口模塊。電流傳感器和信號調理模型是簡單的增益元素,因為它們的帶寬超出了控制反饋所關心的范圍。位置傳感器模型更為復雜,因為它供應高分辨率增量位置信號和低分辨率絕對位置信號。
嵌入式信號接口模型包括類型轉換函數,因為ADC、Sinc濾波器、計數器和按時器外設具有16位或32位定點輸出數據寄存器。每個嵌入式接口的增益都是外設系統時鐘速率、采樣速率和接口外設寄存器設置的函數。模型參數必須匹配嵌入式系統配置,確保仿真結果的精確性。
軟件分隔和代碼生成
電機驅動系統執行多種功能和電機控制算法。嵌入式軟件分為多個功能模塊,來實現平臺靈活性,并方便開發。關鍵的代碼功能是系統初始化、通信接口、應用任務、電機控制接口和電機控制算法。圖3顯示的是高電平驅動程序流程圖,圖4顯示的是代碼結構。
圖3.ISR說明
圖4.代碼分隔
主程序調用初始化例程來配置ASSP硬件,然后將處理器置于持續等待環路。所有其它函數都由事件驅動型中斷服務例程(ISR)調用。ADC中斷具有最高優先級,而當新傳感器數據樣本就緒時,ADCISR調用電機控制函數。ADC采樣與PWM切換同步,為控制環路供應執行時序。ADCISR每一個PWM周期執行一次,但僅在電機運行標識置位時才調用電機控制例程(PMSMctrl)。在代碼構建前選擇電機電流反饋路徑。
PWM觸發中斷是異步的;它僅在響應硬件故障時才會調用,而且是延遲故障的唯一函數,因為硬件PWM觸發函數會自動關斷逆變器PWM信號。通信端口ISR具有較低的優先級,處理用戶命令,并發送調試監控器函數捕捉的數據。內核按時器ISR管理背景應用任務,比如電機啟動和停止序列、調試監控器接口以及其它管理類任務。
嵌入式代碼按照功能組織而不是按編程順序組織。系統初始化代碼時以標準方式設置處理器時鐘、電源和內核按時器,與應用程序函數幾乎無關。通信和應用程序任務代碼通過用戶接口和系統管理要求含義,與電機控制算法幾乎沒有關系。
電機控制(MC)接口函數管理電機驅動硬件和控制算法之間的信號數據流。此代碼專門用于控制驅動電路以及控制為控制算法供應反饋信號的電機控制相關外設。電機控制算法是獨立于平臺的代碼,由Simulink生成,包含反饋和輸出信號的數據結構。所有其它驅動代碼均為手動編碼。
實現細節
若要發揮MBD的最大效益,理解電機控制系統不同部分的建模詳細要求并盡可能將關鍵物理系統參數與相應模型參數相匹配很重要。這包括將已建模的系統分隔為不同的詳細部分。總體而言,以PWM平均值方式對整個系統建模就足夠了。例如,在高頻PWM開關周期中以平均值處理所有信號,并且在電壓或電流信號中不包含PWM紋波或開關分量。
系統模型分隔至邏輯模塊內,如圖5所示(圖中顯示相關信號流)。每一個模塊再進一步細分(如圖中右側所示),且每一個子模塊采取適當的建模方法,如表1中所列。表中未列出用戶命令模塊。用戶命令通過C語言代碼內部的全局參數結構與內核算法通信;一旦它們在Simulink算法中含義為全局可調參數后,便可正確處理。
圖5.系統模型分隔
表1.模型考慮因素
*括號中的數字對應圖5中的框圖。
除了基本設置(比如類型大小、字節順序等),通過使自動代碼生成變為不針對某個特定目標,便可最大程度實現代碼便攜性和易于維護。MathWorks供應特定處理器的代碼生成模塊,可直接尋址處理器外設和驅動器。雖然某些情況下這種功能非常吸引人,其缺陷是代碼便攜性不足,且設備驅動程序或外設配置的任何改變(比如新處理器變體)都將要求更改代碼。因此,在本文所述的設計示例中,代碼生成僅限控制算法,而Simulink模型包含全部外設函數模型,并在應用項目中手動編碼。此方法在圖6中強調;由圖可知,MathWorks控制器模型生成的代碼連接至主應用程序項目的其它代碼和庫模塊。
圖6.模型代碼接口
帶分隔模型模塊的Simulink模型如圖7所示。如圖所示,代碼由模型的電機控制算法部分生成。代碼生成的重要設置可在配置代碼硬件部署窗口中選擇(該窗口中可以選擇整體設備類型),以及在配置參數代碼生成接口窗口中選擇(在該窗口中選擇標準數學庫)。
圖7.建模和代碼生成部署
影響代碼效率的另一個因素是使用的C語言方言。大部分代碼生成工具以及嵌入式工作臺支持的常見方言是C89/C90和C99。最重要的是,在工具中應當使用相同的方言。例如,假如嵌入式工作臺配置為根據C99構建代碼,則自動代碼生成工具必須同樣依據C99標準構建代碼。假如不能做到這一點,則代碼性能會大打折扣,甚至在最差的情況下會使代碼產生非預期的作用。
另一個重要的因素是定點和浮點類型表示。兩種編碼方言均支持定點,因此這種情況下選擇何種方言并不重要,只要在所有工具中使用相同的方言即可。然而,假如使用了浮點類型,則C方言的選擇就變得很重要。
C89/C90不區分單精度浮點和雙精度浮點。假如代碼要在支持雙精度的處理器上運行,那這樣做也許是可以接受的;但關于僅支持單精度的處理器而言(比如ARMCortex-M4),情況就大為不同了。請記住,應當確保自動代碼生成工具以及嵌入式工作臺設置為使用C99方言。
Simulink供應Simscape和SimMechanics等工具箱,當物理參數已知時可用來為機電系統輕松建模。即使物理參數未完全特性化,預含義組件模型(比如電機)可以加載大致相當的規格,實現電機控制算法的初步設計。就算法本身來說,某些模塊很有用,比如Park變換和正弦余弦CORDIC近似模塊可以簡化電機控制算法的開發。
自動代碼接口由初始化函數調用和一個或多個時間步長函數調用含義,必須在主應用程序代碼內以適當的時間步長調用。本例中有兩個時間步進函數主控制算法,在10kHzPWM速率時調用,以及速度測量函數,在1kHz速率時調用。自動生成的代碼模塊集成至主項目中,如圖8所示。
圖8.代碼模塊組織和算法函數調用
如圖所示,代碼以模塊化方式組織,集成特定應用函數,比如聯網和保護,非常直觀。高優先級任務(比如電機控制算法)從圖3中的ISR處調用。應用程序級任務從基本調度程序內核處作為調度任務調用。MC接口例程包含于電機控制和測量代碼模塊中,后者包含所有電流反饋信號處理代碼。ADI電機代碼包含用于系統測試的調試監視器函數,可以在電機運行時捕捉應用和控制算法信號數據。數據通過串行鏈路傳輸至PC,以供顯示和分析。
系統測試與調試
通過測量、計算和查閱數據手冊確定表1中的關鍵參數后,速度和電流環路的正確控制器增益便可使用Simulink模型確定。這可以利用標準PID調諧法[2]或MathWorks供應的調諧工具(比如PID調諧器工具)實現。該過程詳見參考文獻3。
建模和實驗操作的電流環路性能如圖9和圖10所示。該曲線中的實驗數據僅每隔5ms采樣一次,因此存在一些混疊,但整體趨勢非常明顯。
圖9.比較模型操作和經驗操作的(a)速度響應以及(b)q軸電流參考
圖10.電流環路性能模型和經驗結果
基于模型的自動生成代碼的性能可以通過在PWM周期內檢查代碼執行的時間期限確定。這可以使用I/O引腳和示波器來完成,或更簡單地使用IAREmbeddedWorkbenchC-SPY調試器中的ITM事件功能來完成。PWM周期中事件的序列如圖11時間期限所示。
圖11.代碼執行時間期限
PWM同步脈沖發生在每一個新PWM周期開始處,并在硬件中連接ADC按時器,控制每個ADC通道的采樣。這種情況下,電機電流將在PWM同步脈沖之后立即采樣,并直接存儲器存儲(DMA)至存儲器,然后執行算法,并生成PWM占空比更新值。如圖11所示,執行基于模型的自動生成代碼消耗的PWM周期不到10%,從而允許有大量的其它背景任務開銷。以前關于自動生成代碼效率的擔憂將不復存在。
就代碼尺寸而言,算法自動代碼的相對尺寸如表2所示;可以看出,自動生成的代碼僅占據略大于10kb的存儲器,約為總尺寸的15%。ADSP-CM408的可用SRAM為384kB,顯然可以輕松支持該存儲器要求,允許程序以最高速率從SRAM運行,并供應足夠多的裕量用于更復雜的算法和其它監控或用戶接口功能。
表2.代碼模塊尺寸
新應用程序開發
本文所討論的軟件假設為含有兩個重要組件的系統。第一個是基于模型的組件,部署控制算法。雖然模型以嵌入式目標為原則開發,從自動生成工具獲取的代碼本質上是通用的。第二個是手寫軟件組件,將通用算法代碼綁定至嵌入式目標,處理調度并分配處理器資源。在重用模型和擴展性方面,這種系統分隔有一定優勢。
本文討論了單個電機(單軸)的控制開發。現在,想象驅動程序規格通過同一個處理器調用兩個電機(雙軸)控制。無疑,這對系統來說是一個很大的變化,但采用通用模型進行工作的優勢也得以凸顯。已經完成開發的單軸模型不對處理器外設作出任何假設它是PM電機的通用控制算法。因而,創建一個可以控制單軸/雙軸的模型就變成了創建單軸模型第二個實例的問題。
自然,手寫代碼要修改才能支持單軸/雙軸,但假設處理器具有一組正確的外設和計算資源來控制雙軸,則手寫代碼的修改也很直觀。無論控制的是單軸或是雙軸,手寫代碼的重要任務都是將數值分配至模型的輸入、將模型的輸出寫入處理器外設,以及調度模型的執行時間。因此,從單軸到雙軸只不過是外設的分配/配置,并調度新增軸的算法執行時間。該過程是無縫的,并由于模型是通用的這一事實而得以實現。
假如只開發一個單控制系統,那么使用基于模型的設計優勢有限。然而,大多數情況下,產品開發意味著多個產品變體,并且關于這些情況而言,重用模型具有很大的吸引力不僅因為縮短了開發時間,還由于使用受信任模型而導致的質量不斷上升。隨著時間的推移,算法開發人員將會創建模型庫;假如部署正確,這些模型可在不同產品之間重用。由于模型是通用的,它們可以運行在目前和未來的處理器上。
除了滿足產品變體的潛在要求或控制多軸之外,開發人員有時候還能供應不同的控制器模式。一個典型的例子便是供應扭矩控制、速度控制和位置控制模式的應用。在電流和速度控制算法的基礎構建塊上可以部署位置控制算法。
在大多數應用中,位置控制環路作為圍繞內層速度和電流環路的外層。基本的位置控制器僅需比例增益項。一般不要積分項,因為位置環路中的任何穩態誤差都會導致非零速度參考。若內層電流和速度環路經過良好調諧,則這些可以視為理想的單位增益模塊,以及調諧位置環路變為一個直觀的任務。
除了外層比例控制環路,包含一個位置參考也可能很重要,以便負載遵循含義的周期和加速度與減速度速率。這關于最大程度減少很多系統中的機械應力而言十分重要。在本應用示例中,恒定加速度、恒定速度和恒定減速度曲線施加到位置參考變化,如圖12所示;圖中表示位置參考、曲線位置參考以及相應的理想速度曲線。至于哪個實際速度遵循該曲線則取決于速度控制器的動態響應。
圖12.位置參考曲線
所有這些功能位置環路增益、位置曲線以及輔助功能(比如回零定位和終端-停止檢測)作為額外模塊部署在代碼中基于模型的部分。唯一要的手寫代碼更改是I/O配置,以支持家庭位置和終端-停止信號。
結論
基于模型的設計是強大的工具,可以加速電機驅動制造商的嵌入式開發。假如以通用方式設置和配置,則可以大幅減輕手寫代碼開發和維護的重擔。它還能加快產品上市時間,因為代碼開發可在缺少硬件的情況下初始處理只要供應關鍵系統組件的合理精確模型。
這些特性已在PMSM驅動器情形中得到證實,該驅動器在擴展至多軸和位置控制的FOC下操作。對軟件模塊和基于模型的組件進行分割的方法已經詳細說明,可以優化基于模型的解決方案供應的數值。實驗數據也表明了模型在優化速度控制器參數、代碼生成緊湊性和效率方面的優勢。
本文轉載自亞德諾半導體。
上一篇:如何判斷通信開關電源的優劣?