你的位置:首頁(yè) > 電源管理 > 正文

基于模型的設(shè)計(jì)簡(jiǎn)化嵌入式電機(jī)控制系統(tǒng)開(kāi)發(fā)

發(fā)布時(shí)間:2017-11-17 來(lái)源:Dara O''Sullivan, Jens Sorensen, 和 Aengus Murray 責(zé)任編輯:wenwei

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



一文讀懂磁傳感器
工業(yè)物聯(lián)網(wǎng)檢測(cè)和測(cè)量:邊緣節(jié)點(diǎn)
較真:一節(jié)干電池的電流到底是多少?
利用無(wú)線振動(dòng)傳感器實(shí)現(xiàn)連續(xù)可靠的過(guò)程監(jiān)控
資深工程師分享學(xué)習(xí)FPGA的一些經(jīng)驗(yàn)
 
 
 
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉