FOC又稱矢量控制,是通過控制變頻器輸出電壓的幅值和頻率控制三相直流無刷電機(jī)的一種變頻驅(qū)動控制方法。FOC的實質(zhì)是運用坐標(biāo)變換將三相靜止坐標(biāo)系下的電機(jī)相電流轉(zhuǎn)換到相對于轉(zhuǎn)子磁極軸線靜止的旋轉(zhuǎn)坐標(biāo)系上,通過控制旋轉(zhuǎn)坐標(biāo)系下的矢量大小和方向達(dá)到控制電機(jī)目的。由于定子上的電壓量、電流量、電動勢等都是交流量,并都以同步轉(zhuǎn)速在空間上不斷旋轉(zhuǎn),控制算法難以實現(xiàn)控制。通過坐標(biāo)變換之后,旋轉(zhuǎn)同步矢量轉(zhuǎn)換成靜止矢量,電壓量和電流量均變?yōu)橹绷髁?。再根?jù)轉(zhuǎn)矩公式,找出轉(zhuǎn)矩與旋轉(zhuǎn)坐標(biāo)系上的被控制量之間關(guān)系,實時計算和控制轉(zhuǎn)矩所需的直流給定量,從而間接控制電機(jī)達(dá)到其性能。由于各直流量是虛構(gòu)的,在物理上并沒有實際意義,因而還需通過逆變換變?yōu)閷嶋H的交流給定值。
1、測量電機(jī)運行時三相定子電流,可得到Ia、Ib、Ic。將三相電流通過 Clark 變換至兩相電流Iα和Iβ,其是相互正交的時變電流信號。
2、Iα和Iβ通過Park變換得到旋轉(zhuǎn)坐標(biāo)系下的電流Id和Iq 。在電機(jī)達(dá)到穩(wěn)定狀態(tài)時,Id和Iq 是常量。此時所使用的轉(zhuǎn)子位置為上一次迭代計算出來的角度值。
3、Id的參考值決定了電機(jī)轉(zhuǎn)子磁通量,Iq 的參考值決定了電機(jī)的轉(zhuǎn)矩輸出大小,二者各自的實際值與參考值進(jìn)行比較得到的誤差,作為電流環(huán) PI 控制器的輸入。通過PI控制計算輸出得到Vd和Vq, 即要施加到電機(jī)繞組上的電壓矢量。
4、有傳感器FOC根據(jù)Hall信號或者通過無感估算計算出轉(zhuǎn)子位置和電機(jī)轉(zhuǎn)速。新的轉(zhuǎn)子角度可告知 FOC算法下一個電壓矢量在何處。計算出的電機(jī)轉(zhuǎn)速將用于電機(jī)狀態(tài)的切換,環(huán)路切換,堵轉(zhuǎn)保護(hù)等子功能模塊的數(shù)據(jù)支持。
5、利用新的電機(jī)角度,Vd和Vq 經(jīng)過 Park 逆變換到兩相靜止坐標(biāo)系上。該計算將產(chǎn)生下一個正交電壓值 Vα、 Vβ。再采用 SVPWM 算法判定其合成的電壓矢量位于哪個扇區(qū),計算出三相各橋臂開關(guān)管的導(dǎo)通時間。最后經(jīng)過三相逆變器驅(qū)動模塊輸出電機(jī)所需的三相電壓。
基于電壓的力矩控制是最基本的力矩控制模式,它為你提供了一個抽象的無刷直流電機(jī),以便你可以控制它作為直流電機(jī)。它基于簡單的歐姆定律(忽略了電流動態(tài)特性),因此不需要任何電流檢測相關(guān)的硬件。這種力矩控制方法無論其是否具有電流感應(yīng),都能夠在任何無刷直流電機(jī)驅(qū)動板上工作。

這種模式也就是我們知道的電機(jī)這種的模型
基于直流電流的力矩控制能夠像控制直流電機(jī)那樣控制無刷電機(jī)。電流檢測用于獲取通過電機(jī)的電流大小及方向,我們假設(shè)力矩和總電流是成正比的。這種模式好處在于可以非常精確地控制無刷電機(jī)的實際電流,一些性能較低的處理器(如ATMega328系列)也能有較快較穩(wěn)定的效果。
看左邊的無刷電機(jī),就是沒有換向器這種東西
基于直流電流的力矩控制是唯一真正的力矩控制方法。它控制電流 q 和 d的兩個分量。我們假設(shè)力矩與 q 電流分量成比例,并控制電流的 d 分量保持等于0。
關(guān)于三種的比較方式在這里

代碼在這里被設(shè)置

幾種配置的結(jié)構(gòu)

不用我說了吧?

基于電壓的控制
獲得轉(zhuǎn)的角度和現(xiàn)在給的電壓,算法給出三項電壓,FOC算法確保這些電壓產(chǎn)生的磁力恰好與電機(jī)轉(zhuǎn)子的永磁場偏移 90度 ,從而保證了最大力矩,這稱為換向。
假設(shè)電機(jī)產(chǎn)生的力矩與設(shè)定電壓 Uq 成正比,也就是說最大力矩與Uq 有關(guān),而這個Uq 則受到供電電壓的限制。最小力矩當(dāng)然即Uq = 0。
如果給出電機(jī)的相電阻的話,那直接給電流也是可以的:

閉環(huán)的模型變成了這樣的

我們來看第二個,基于電流的控制
直流電流力矩控制算法讀取無刷直流電機(jī)的相電流(通常是ia 和 ib)。該算法從位置傳感器讀取角度 a。相電流通過逆Clarke和簡化的Park變換轉(zhuǎn)換為直流電流iDC。而后,PID控制器利用目標(biāo)電流Id和測量電流iDC計算出相應(yīng)的設(shè)置到電機(jī)的電壓值Uq,而Ud始終保持為0。最后,F(xiàn)OC對電機(jī)設(shè)置相應(yīng)的ua, ub 和 uc 。FOC會確保這些電壓產(chǎn)生的磁力恰好與電機(jī)轉(zhuǎn)子的永磁場保持90度偏移,從而保證了最大力矩,這稱為換向。這種力矩控制模式是假設(shè)在電機(jī)的力矩是和電機(jī)的直流電流iDC成比例的(iDC=iq),因此可以通過控制電流來實現(xiàn)力矩的控制。但是這種假設(shè)僅限于低速的情況,在高速情況下,id分量會變得很高,致使iDC=iq就不成立了。
我們來看看FOC
FOC電流力矩控制算法讀取無刷直流電機(jī)(通常為ia 和 ib)的相電流。此外,該算法從位置傳感器讀取角度 a 。相電流通過逆Clarke和Park變換轉(zhuǎn)換為 d 分量電流 id 和 q分量電流 iq 。而后,每個相PID控制器利用目標(biāo)電流Id和測量電流值 iq 和 id計算出相應(yīng)的設(shè)置到電機(jī)的電壓值Uq和Ud,以保持iq=Id,id=0。最后,F(xiàn)OC利用Park和Clark(或空間矢量SpaceVector)變換設(shè)置合適的 ua, ub 和 uc 。通過測量相電流,力矩控制算法能夠確保這些電壓生成在電機(jī)轉(zhuǎn)子中產(chǎn)生合適的電流和磁力,并恰好與電機(jī)轉(zhuǎn)子的永磁場保持90度偏移,從而保證最大轉(zhuǎn)矩,這稱為換向。電機(jī)產(chǎn)生的力矩與q分量的電流 iq成比例,這原理使這種力矩控制模式成為無刷直流電動真正的力矩控制。簡單來說,voltage control mode是最簡單的接近電機(jī)力矩控制的方法。它基本在任何電機(jī)+驅(qū)動器+mcu的組合中運行。DC current mode 是voltage control mode的更進(jìn)一步,它比voltage control mode更精確,但需要電流傳感和更強(qiáng)大的mcu。FOC current mode 是真正的電機(jī)力矩控制方法,不同于前兩者的“近似”,因此也需要電流傳感器,也比DC current mode對MCU的處理能力有更高的要求。電壓模式直接給目標(biāo)電壓,電流模式就是給的電流,其實和上面的模式比較就是一個相電阻的變化。
本來我是想開個新的文章來寫邵峰科技的FOC算法的,但是我覺得沒有必要,那我這里就直接的寫了。







反正換向這個事情一直都是有的,這就是電機(jī)的工作原理?

幾個相位直接的合成和變換

記住最上面的電流就行垂直磁體的是運動部分


電動機(jī)的模型

上面這句話是說的真好

低測采樣

這個沒有看太懂,應(yīng)該是復(fù)用了一個ADC的做法

這個一學(xué)就會了

嗯吶

還有很多
https://www.fortiortech.com/study/learning