【導(dǎo)讀】怎樣才能把多個(gè)CPU內(nèi)核、硬件加速器塊以及10G以太網(wǎng)接口結(jié)合起來控制一個(gè)電機(jī)呢?對于采用1美元微控制器 (MCU) 來運(yùn)行電機(jī)的設(shè)計(jì)人員而言,這一問題太荒謬了。答案可能來自令人感興趣的控制系統(tǒng)設(shè)計(jì)案例,實(shí)時(shí)系統(tǒng)體系結(jié)構(gòu)的發(fā)展等。
起點(diǎn)
讓我們介紹一種在我們應(yīng)用場景中處于中心位置的永磁同步電機(jī),即PMSM。PMSM有很多種外形和體積,適合很多種應(yīng)用,從開關(guān)門到機(jī)器人手術(shù)工具關(guān)節(jié)等。在這一領(lǐng)域中,它得到了廣泛的應(yīng)用,這是因?yàn)槠涔逃械目煽啃浴⒌统杀?,在我們的?yīng)用中,經(jīng)過適當(dāng)?shù)目刂?,可以?shí)現(xiàn)高精度和高效率。實(shí)際上,應(yīng)用的要求越來越高,PMSM支持您降低機(jī)電設(shè)計(jì)的復(fù)雜性,在軟件中實(shí)現(xiàn)復(fù)雜的功能。
PMSM機(jī)械和電氣特性非常簡單(圖1) 。轉(zhuǎn)子正如其名稱所示,是永磁體。通常有三個(gè)定子繞組,在電機(jī)中均勻的120度角分布。真正的訣竅在于繞組的不同:轉(zhuǎn)動(dòng)密度是圍繞定子呈正弦分布,因此,繞組實(shí)際上在邊緣上相互重疊。在繞組合適的相位上應(yīng)用正弦電流,您能夠建立與轉(zhuǎn)子場角度垂直的旋轉(zhuǎn)磁場,從而在轉(zhuǎn)子上高效的產(chǎn)生扭矩。
圖1. PMSM截面
控制PMSM并不是高科技。一個(gè)簡單的MCU使用查找表和插值來生成所需的驅(qū)動(dòng)電流時(shí)變正弦信號,為繞組提供電流。如果算法正確,繞組會產(chǎn)生電機(jī)旋轉(zhuǎn)磁場,轉(zhuǎn)子隨之轉(zhuǎn)動(dòng)。雖然起步有些復(fù)雜,但畢竟完成任務(wù)了,對吧?不完全是這樣。
現(xiàn)場定位控制
開環(huán)控制的問題總是很復(fù)雜。啟動(dòng)電機(jī),特別是有負(fù)載的情況,會比較難,效率也不高。開環(huán)控制器的響應(yīng)并不能很好的適應(yīng)負(fù)載扭矩或者速度命令的變化,無法抑制振動(dòng)。出于通常的考慮,反饋控制系統(tǒng)工作起來會更好一些。
問題是要控制什么。很明顯,我希望控制轉(zhuǎn)動(dòng)角度,在某些應(yīng)用中,旋轉(zhuǎn)速度。我們必須通過控制產(chǎn)生旋轉(zhuǎn)磁場的三個(gè)繞組電流來完成這一工作。對此最好的方法是,在業(yè)界已經(jīng)應(yīng)用的多路步進(jìn),即,線程定位控制 (FOC) (圖2) 。
圖2. 驅(qū)動(dòng)結(jié)構(gòu)圖
[page]
第一,我們采集來自轉(zhuǎn)軸編碼器的轉(zhuǎn)子位置采樣,以及三個(gè)繞組中兩個(gè)繞組的電流采樣。
由于一些很好的數(shù)學(xué)算法,我們并不需要所有三個(gè)繞組電流。這些采樣告訴我們轉(zhuǎn)子以及定子旋轉(zhuǎn)磁場的瞬時(shí)位置和滯后速度。我們的工作是控制轉(zhuǎn)子的速度和位置,這通過控制定子繞組的電流大小來實(shí)現(xiàn),同時(shí)還要讓旋轉(zhuǎn)磁場比轉(zhuǎn)子磁場超前90度。
通過兩個(gè)簡單的變換,我們很容易完成這一工作。Clarke變換將兩個(gè)定子繞組的電流采樣 — 它們分開120度,映射到一對正交矢量上。矢量的方向相對于定子是固定的,當(dāng)然,其矢量和是旋轉(zhuǎn)磁場矢量。Clarke變換只需要將電流值乘以常數(shù),加上乘積——簡單的乘累加運(yùn)算。
第二種變換是Park變換,將這兩個(gè)正交矢量映射到轉(zhuǎn)子參考的旋轉(zhuǎn)幀中。
一個(gè)矢量與轉(zhuǎn)子磁場對齊,另一個(gè)正交矢量,角度與其垂直。Park變換比較難處理。在進(jìn)行矢量乘法把矢量變換成轉(zhuǎn)子參考幀之前,它使用瞬時(shí)轉(zhuǎn)軸位置來計(jì)算sin(θ)和cos(θ)系數(shù)。
現(xiàn)在,我們可以控制信號。我們把與轉(zhuǎn)子對齊的矢量保持為0,表示定子磁通量沒有對轉(zhuǎn)子產(chǎn)生扭矩。我們使用正交分量來控制轉(zhuǎn)子位置和速度,定子磁通量實(shí)際上產(chǎn)生了扭矩。
例如,控制器會處理所需位置的輸入,將其與傳統(tǒng)分立時(shí)間比例積分(PI) 控制電流的實(shí)際轉(zhuǎn)軸角度相對比,產(chǎn)生誤差信號,輸出至 FOC 模塊。FOC 模塊然后會把這一誤差信號送入正交扭矩信號中,使轉(zhuǎn)子旋轉(zhuǎn)。模塊會應(yīng)用 Park 反變換,把扭矩映射回定子參考的固定幀,然后,通過Clarke反 變換,把扭矩信號映射到電流中,送入三個(gè)繞組。這樣就改變了定子繞組所需位置和所需速度輸入激勵(lì)信號,旋轉(zhuǎn)定子磁場,使轉(zhuǎn)子處于所需的角度上。
計(jì)算負(fù)載并沒有那么復(fù)雜:FOC模塊每一采樣間隔可能是兩次三角運(yùn)算,10次乘法,7次加法,以及一些其他運(yùn)算來實(shí)現(xiàn)PI控制器。所有這些算法都可以在定點(diǎn)中實(shí)現(xiàn),需要仔細(xì)一些。采用目前的典型16 kHz采樣和脈沖寬度調(diào)制速率,我們并沒有降低現(xiàn)代32位MCU的整體性能。但是,不止于此。
無傳感控制
讓我們從那個(gè)轉(zhuǎn)軸編碼器開始。FOC算法必須有精確的轉(zhuǎn)軸角度反饋。傳統(tǒng)上,這一數(shù)據(jù)來自轉(zhuǎn)軸編碼器與電機(jī)轉(zhuǎn)軸連接的光機(jī)電設(shè)備。但是,編碼器提高了系統(tǒng)中每一電機(jī)的成本、體積、重量,增加了新的失效模式。它需要控制器工業(yè)標(biāo)準(zhǔn)接口。
原理上,有足夠的定子繞組電壓和電流信息來確定轉(zhuǎn)子位置。這樣,可以實(shí)現(xiàn)無傳感工作 — 至少可以不采用轉(zhuǎn)軸編碼器,采用更多的電流傳感器和三個(gè)電壓傳感器來替代它,所有這些信號都需要精確的模數(shù)轉(zhuǎn)換。這樣,很多復(fù)雜的機(jī)械功能可以在軟件中實(shí)現(xiàn)。
就是這種想法。繞組負(fù)載上的電壓有兩個(gè)主要分量:繞組串聯(lián)電阻導(dǎo)致的IR壓降,來自繞組電感的后向EMF。但是,后向EMF本身有兩個(gè)來源:繞組自身的電感,以及轉(zhuǎn)子通過繞組磁力線導(dǎo)致的漏磁通量。如果您能夠隔離電壓變化的最后部分,基本上就能夠計(jì)算出轉(zhuǎn)子角度。實(shí)際上,這樣做涉及到一些計(jì)算,包括Park變換,積分評估,以及每一采樣間隔期間的反三角函數(shù)運(yùn)算。
然而,除了實(shí)驗(yàn)室環(huán)境,您不太可能獲得電機(jī)特性的精確數(shù)據(jù),例如,繞組阻抗和電感等。不同的電機(jī)有不同的這類指標(biāo),而且這些指標(biāo)還對溫度和老化等其他參數(shù)非常敏感。
由此,開發(fā)人員建議了各種方案從狀態(tài)變量矩陣中提取出轉(zhuǎn)子角度。這些想法包括鎖定由轉(zhuǎn)子導(dǎo)致的電壓波紋的鎖相環(huán),計(jì)算轉(zhuǎn)子位置的狀態(tài)估算器,將其結(jié)果與以前的數(shù)據(jù)進(jìn)行對比,還有最終的估算器,Kalman
濾波器。與直接計(jì)算相比,這些方法至少讓計(jì)算負(fù)載增加了一倍,每一周期至少需要30次算術(shù)運(yùn)算。
振動(dòng)控制
FOC的優(yōu)點(diǎn)之一是能夠控制振動(dòng)及其伴隨噪聲。這類測量提高了能效和機(jī)械可靠性,有可能不需要太多的機(jī)械設(shè)計(jì)。在消費(fèi)類市場上,這能夠把600美元的洗衣機(jī)抬高到售價(jià)800 美元的豪華型。
原理還是那么簡單。如果振動(dòng)的原因是控制環(huán)不穩(wěn)定造成的,那么您可以改變 PI 控制器的增益,使其更接近臨界阻尼。如果振動(dòng)是由電機(jī)、驅(qū)動(dòng)轉(zhuǎn)軸或者負(fù)載機(jī)械共振造成的,您可以通過吸收扭矩信號共振頻率功率來消除振動(dòng)。比較方便的是,F(xiàn)OC方法使您能夠在扭矩信號變成三路時(shí)變正弦信號之前訪問它,因此,增加陷波濾波器吸收共振頻率功率就可以了。
不論哪一操作,增加增益環(huán)還是濾除錯(cuò)誤信號,都會對系統(tǒng)動(dòng)態(tài)速度和位置誤差產(chǎn)生不利影響。但是在很多應(yīng)用中,對于平滑安靜的操作,轉(zhuǎn)軸速度的瞬時(shí)誤差并不重要。
[page]
振動(dòng)控制需要三種主要的處理模塊:快速傅里葉變換(FFT),從轉(zhuǎn)軸位置或者繞組電流數(shù)據(jù)中提取出頻譜,探測和響應(yīng)模塊,找到頻譜最大值,確定怎樣處理它們,還有一個(gè)或者更多的可編程陷波濾波器,去掉扭矩信號中的雜波頻率(圖3) 。
圖3.扭矩控制器和Park反變換之間的可編程陷波濾波器能夠改進(jìn)系統(tǒng)的共振。
這些模塊都適合應(yīng)用。在某些系統(tǒng)中,共振是固定的,或者慢變的,F(xiàn)FT會是啟動(dòng)或者后臺任務(wù)。在共振變化很快的系統(tǒng)中,F(xiàn)FT需要連續(xù)運(yùn)行。響應(yīng)模塊與應(yīng)用有很大的關(guān)系,確定對PI環(huán)路增益的調(diào)整,增加濾波器,選擇濾波器參數(shù)等,在很大程度上取決于整個(gè)電機(jī)系統(tǒng)的特性。因此,在沒有詳細(xì)了解系統(tǒng)的情況下,不太可能估算振動(dòng)控制所需要的計(jì)算負(fù)載。
工作堆疊
目前為止我們已經(jīng)進(jìn)行了很多工作,每一16 kHz周期可能有幾百項(xiàng)算術(shù)指令,還有FFT計(jì)算。我們所面臨的是,任務(wù)的增長已經(jīng)超出了低成本MCU的簡單中斷服務(wù)。但還有更多。
最明顯的是增加了很多電機(jī)。很多控制任務(wù)本質(zhì)上都是多軸的:例如,粉碎機(jī)的工具位置,或者全關(guān)節(jié)機(jī)器人手等。在集成級,在軸上需要共享實(shí)時(shí)數(shù)據(jù)等,就能夠體現(xiàn)多通道控制器的優(yōu)點(diǎn)。但是由于軸之間有很少的冗余計(jì)算,因此,更多的通道只是增加了工作負(fù)載。
還有采樣率。目前的采樣率從以前的搜索RMS位置或者速度誤差的16 kHz標(biāo)準(zhǔn),增長到 100 kHz。自然的,提高采樣間隔會減少完成實(shí)時(shí)計(jì)算的時(shí)間,必須在采樣間隔期間完成實(shí)時(shí)計(jì)算。
工廠之外的變化也對控制器體系結(jié)構(gòu)帶來了壓力:子系統(tǒng)聯(lián)網(wǎng)了。一個(gè)主要的轉(zhuǎn)換點(diǎn)是設(shè)計(jì)中增加了工業(yè)網(wǎng)絡(luò)接口。逐漸的,系統(tǒng)設(shè)計(jì)人員希望通過網(wǎng)絡(luò)發(fā)送命令,檢查狀態(tài),讀取日志數(shù)據(jù)。網(wǎng)絡(luò)接口不僅增加了必要的物理層和介質(zhì)訪問硬件,而且還有異步執(zhí)行的協(xié)議棧,與控制環(huán)的同步采樣活動(dòng)是異步的?,F(xiàn)在,我們不僅有簡單的中斷觸發(fā)實(shí)時(shí)任務(wù),還有時(shí)間限制的兩項(xiàng)任務(wù),一個(gè)實(shí)時(shí)的,一個(gè)面向網(wǎng)絡(luò)的。在這一點(diǎn),很難不采用RTOS。
網(wǎng)絡(luò)訪問隨之而來的是容易受到攻擊。對聯(lián)網(wǎng)控制系統(tǒng)進(jìn)行攻擊,不論是否直接連接互聯(lián)網(wǎng),都有可能受到黑客的攻擊。沒有絕對的安全。相應(yīng)的,即使是看起來不太重要的電機(jī)控制器的子系統(tǒng)今后也要受到保護(hù)。這意味著,它們必須有本地認(rèn)證消息,以及加密和解密數(shù)據(jù)。這通常表明需要加密加速器。
因此,這就回答了我們最初的問題。我們看到PMSM控制器在增加,更多的特性在軟件中實(shí)現(xiàn),從低成本MCU的簡單任務(wù)到某些任務(wù)所需要的硬件加速的大量計(jì)算。我們注意到需要 FFT、有限沖擊響應(yīng)(IIR)濾波器、網(wǎng)絡(luò)接口,以及隨之而來的安全功能。非對稱多處理逐漸成為提供足夠計(jì)算能力并保持實(shí)時(shí)和后臺任務(wù)相互隔離最好的方法。
計(jì)算環(huán)境已經(jīng)從中斷驅(qū)動(dòng)的裸金屬代碼擴(kuò)展到復(fù)雜環(huán)境工作負(fù)載,這具有很多難以處理的實(shí)時(shí)任務(wù),以及某些通信相關(guān)的背景任務(wù),其中的一些會有工業(yè)網(wǎng)絡(luò)時(shí)限要求。這么復(fù)雜的需求需要采用RTOS。我們看到安全要求內(nèi)核可信。不論是在FPGA中實(shí)現(xiàn)還是采用基于單元的技術(shù)實(shí)現(xiàn),我們的小電機(jī)控制器都是一種很好的異構(gòu)多核SoC。