前言:
為什么要學(xué)習(xí)FOC?
1.電機(jī)控制是自動(dòng)化控制領(lǐng)域重要一環(huán)。
2.目前直流無(wú)刷電機(jī)應(yīng)用越來(lái)越廣泛,如無(wú)人機(jī)、機(jī)械臂、云臺(tái)、仿生機(jī)器人等等。
需要什么基礎(chǔ)?
1.C語(yǔ)言,指針,結(jié)構(gòu)體,編程規(guī)范。
2.STM32外設(shè)使用。
3.原理圖閱讀。
4.芯片手冊(cè)閱讀。
5.數(shù)序坐標(biāo)系知識(shí)
為什么要出本教程?
1.直流無(wú)刷電機(jī)應(yīng)用越來(lái)越廣泛,網(wǎng)上資料比較散落,因此想要出一篇系統(tǒng)性的教程,從頭到尾,深入淺出,幫助初學(xué)者快速入門直流無(wú)刷電機(jī)控制。
第一章 直流無(wú)刷電機(jī)簡(jiǎn)介
基本物理知識(shí)準(zhǔn)備
左手定則
百度百科
已知電流方向和磁感線方向,判斷通電導(dǎo)體在磁場(chǎng)中受力方向,如電動(dòng)機(jī)。伸開左手,讓磁感線穿入手心(手心對(duì)準(zhǔn)N極,手背對(duì)準(zhǔn)S極), 四指指向電流方向 ,那么大拇指的方向就是導(dǎo)體受力方向。
右手螺旋定則
百度百科
用右手握住通電螺線管,讓四指指向電流的方向,那么大拇指所指的那一端是通電螺線管的N極
直流有刷電機(jī)簡(jiǎn)介
直流有刷電機(jī)通過(guò)換向器來(lái)改變電流方向,進(jìn)而改變繞組的受力方向。由于其是機(jī)械換向,因此就帶來(lái)一系列缺點(diǎn),例如摩擦大,發(fā)熱大,效率低等缺點(diǎn)
直流無(wú)刷電機(jī)簡(jiǎn)介

直流無(wú)刷電機(jī)通過(guò)使用電子器件代替機(jī)械換向,解決了直流有刷電機(jī)的缺點(diǎn)。為了便于分析我們將直流無(wú)刷電機(jī)抽象出上圖模式,定子由三個(gè)線圈組成,轉(zhuǎn)子由一對(duì)磁極組成。通過(guò)改變ABC三者電流方向來(lái)改變定子產(chǎn)生的磁場(chǎng)方向,從而使磁鐵轉(zhuǎn)動(dòng)起來(lái)。
第二章 六步換向控制方式
直流無(wú)刷電機(jī)六步換向

如上圖所示,通過(guò)控制ABC三相電流方向我們可以控制直流無(wú)刷電機(jī)旋轉(zhuǎn),具體步驟如下:
可以看出,我們只需要像步進(jìn)電機(jī)那樣不斷的重復(fù)這六部換向就可以讓BLDC轉(zhuǎn)動(dòng)起來(lái),甚至?xí)a(chǎn)生一種錯(cuò)覺(jué),是不是我們換向越快電機(jī)轉(zhuǎn)的越快呢?答案是:否,這里我們一定要認(rèn)識(shí)到,是當(dāng)轉(zhuǎn)子處于特定位置時(shí)才去觸發(fā)換向操作,換向是被動(dòng)換向,想要提高轉(zhuǎn)速一定是要提高電流,讓定子產(chǎn)生的磁場(chǎng)更強(qiáng),讓轉(zhuǎn)子更快的達(dá)到目標(biāo)點(diǎn)然后觸發(fā)換向,具體如下表所示。
正轉(zhuǎn):
反轉(zhuǎn)
如何獲得轉(zhuǎn)子角度?
我們已經(jīng)知道了要先檢測(cè)角度再去換向,那么如何檢測(cè)當(dāng)前角度呢?,有以下三種方式。
1.通過(guò)安裝編碼器來(lái)計(jì)算出當(dāng)前角度。
2.通過(guò)安裝霍爾元件計(jì)算當(dāng)前角度。
3.通過(guò)檢測(cè)電流來(lái)計(jì)算當(dāng)前角度
編碼器方式獲取電機(jī)當(dāng)前角度
編碼器方式分為兩種,增量式編碼器和絕對(duì)式編碼器。
增量式編碼器:
每次啟動(dòng)之氣都需要做一次校準(zhǔn),而且為了防止單片機(jī)性能問(wèn)題導(dǎo)致脈沖丟失,還需要對(duì)編碼器每圈校準(zhǔn)一次。因此經(jīng)常使用ABZ三軸編碼器,AB輸出正交信號(hào),Z軸輸出中斷。
絕對(duì)式編碼器:
只需要在出廠之前做一次校準(zhǔn),之后如果沒(méi)有拆機(jī)便不需要校準(zhǔn),通訊方式一般是SPI和IIC,需要考慮通訊時(shí)間對(duì)系統(tǒng)的影響。
為什么要對(duì)編碼器進(jìn)行校準(zhǔn)?
因?yàn)槲覀儫o(wú)法保證在安裝的時(shí)候讓編碼器的0°(機(jī)械角度)剛好對(duì)應(yīng)電機(jī)繞組的0°(電氣角度)
霍爾元件獲取電機(jī)當(dāng)前角度
霍爾元件介紹
百度百科
霍爾元件有兩種安裝方式,互差120°和互差60°兩種方式,因此在使用之前要判斷電機(jī)是那種安裝方式。
假設(shè)當(dāng)有N級(jí)指向霍爾元件時(shí)霍爾元件輸出電平1
霍爾電平和轉(zhuǎn)子角度之間的對(duì)應(yīng)關(guān)系如下表所示



霍爾電平和轉(zhuǎn)子角度之間的對(duì)應(yīng)關(guān)系如下表所示
檢測(cè)電流獲取電機(jī)當(dāng)前角度
由于電機(jī)旋轉(zhuǎn)過(guò)程中產(chǎn)生的電流理想波形如下圖
我們便可以根據(jù)采集到的電流就判斷出電機(jī)當(dāng)前的角度在哪個(gè)范圍。
具體分析在FOC控制方法中講解。
程序編寫
引出問(wèn)題
相信看到這里大家都有一些疑問(wèn),就是六步換向的方式只能控制電機(jī)正反轉(zhuǎn),然后通過(guò)控制相電壓調(diào)節(jié)轉(zhuǎn)速,那么如何控制電機(jī)位置呢,而且這種方式有一部分電流是讓電機(jī)旋轉(zhuǎn),有一部分是讓電機(jī)發(fā)熱,那么如何做到效率最高呢。通過(guò)觀察電流發(fā)現(xiàn),電機(jī)三相電流并不是正弦波,為了解決以上問(wèn)題便出現(xiàn)了FOC矢量控制。
第三章 FOC矢量控制
FOC控制框架圖
相信很多人在網(wǎng)上都看到過(guò)這個(gè)控制框圖,咋一看還挺復(fù)雜,充斥著各種變換和檢測(cè),很多資料直接對(duì)著這個(gè)框圖進(jìn)行講解,而本教程到這里只是讓大家對(duì)這個(gè)框圖有基本印象,接下來(lái)我們逐步分析各個(gè)模塊來(lái)源,讓大家都能自己畫出來(lái)這個(gè)控制框圖。
第四章 FOC開環(huán)控制
控制框圖簡(jiǎn)化
看著FOC詳細(xì)控制框圖我們發(fā)現(xiàn)無(wú)從下手,不知道從哪坐起,我們回想一下直流有刷電機(jī)的學(xué)習(xí)過(guò)程,首先是讓電機(jī)轉(zhuǎn)起來(lái),然后進(jìn)行速度控制,再進(jìn)一步進(jìn)行位置控制,同樣我們?cè)贔OC學(xué)習(xí)過(guò)程中依然可以這樣做,我們首先將位置環(huán)和速度環(huán)去掉,然后就剩下SVPWM,和電流檢測(cè)部分,既然只是讓電機(jī)轉(zhuǎn)起來(lái)那么電流檢測(cè)也不需要了,我們就直接給一個(gè)目標(biāo)速度,開環(huán)運(yùn)行,這時(shí)候控制框架就能簡(jiǎn)化成下圖所示。
備注:(這時(shí)候可能會(huì)有人有疑問(wèn),我們不是用六步換向的方式已經(jīng)讓電機(jī)轉(zhuǎn)動(dòng)起來(lái)了嗎,為什么這里又要學(xué)習(xí)如何讓電機(jī)轉(zhuǎn)動(dòng)?是因?yàn)榱綋Q向方式存在一些缺點(diǎn),而這里使用另一種控制方式(FOC)讓電機(jī)轉(zhuǎn)動(dòng)更加平滑,效率更高。)
接下來(lái)我們對(duì)這部分做詳細(xì)講解
IQ與ID介紹
仔細(xì)觀察我們可以發(fā)現(xiàn),當(dāng)三相繞組產(chǎn)生的磁場(chǎng)方向始終與轉(zhuǎn)子磁鐵相切的時(shí)候最為理想,這樣相同電流下產(chǎn)生的旋轉(zhuǎn)力量最大(圖中IQ),當(dāng)我們?nèi)嗬@組產(chǎn)生的磁場(chǎng)方向與轉(zhuǎn)子磁場(chǎng)方向反向平行時(shí),這時(shí)候電機(jī)會(huì)被吸在原地不動(dòng)(圖中ID),電流都用來(lái)產(chǎn)生熱量。因此我們以轉(zhuǎn)子磁鐵為參考,建立DQ坐標(biāo)系,DQ坐標(biāo)系隨轉(zhuǎn)子轉(zhuǎn)動(dòng)。(備注:為了便于理解我對(duì)磁鐵進(jìn)行了放大)
如圖當(dāng)我們讓ID為0, IQ為1則轉(zhuǎn)子就會(huì)逆時(shí)針旋轉(zhuǎn),且轉(zhuǎn)速隨著IQ的變大而變大。
如圖當(dāng)我們讓ID為1, IQ為0則轉(zhuǎn)子就會(huì)定在原地,且發(fā)熱量隨著ID的變大而變大。
因此可以總結(jié)一下,要想讓轉(zhuǎn)子平穩(wěn)的轉(zhuǎn)動(dòng)下去就需要讓三相繞組產(chǎn)生的磁場(chǎng)方向一直和轉(zhuǎn)子磁鐵的磁場(chǎng)方向垂直,即圖中的IQ, 同時(shí)使ID盡可能為0以減小發(fā)熱。那么怎么讓繞組產(chǎn)生的磁場(chǎng)方向等效為IQ ID呢由此變引入Park反變換和Clark反變換。
Park反變換
我們知道DQ坐標(biāo)系是旋轉(zhuǎn)坐標(biāo)系,但我們的三相繞組是靜止的,因此首要任務(wù)是將旋轉(zhuǎn)坐標(biāo)系變換為靜止坐標(biāo)系,即找到一個(gè)靜止坐標(biāo)系使其產(chǎn)生的磁場(chǎng)等同于DQ坐標(biāo)其,我們將這個(gè)坐標(biāo)系命名為αβ坐標(biāo)系,其中由DQ坐標(biāo)系向αβ坐標(biāo)系這一變換過(guò)程稱為反Park變換。
其中阿爾法軸與a相繞組對(duì)齊。
Uα = Udcosθ - Uqsinθ
Uβ = Uqcosθ + Udsinθ
經(jīng)過(guò)Park反變換我們將旋轉(zhuǎn)坐標(biāo)系變成了靜止坐標(biāo)系,接下來(lái)便是讓靜止的兩相坐標(biāo)系向3相繞組坐標(biāo)系進(jìn)行變換。
Clark反變換
Clark反變換的目的是把兩個(gè)垂直的坐標(biāo)系轉(zhuǎn)變?yōu)槿嗬@組坐標(biāo)系。經(jīng)過(guò)Clark反變換后就可以通過(guò)三相繞組去產(chǎn)生ID和IQ了。(備注FOC控制框圖中沒(méi)有Clark變換的原因是通過(guò)后邊公式的化簡(jiǎn)發(fā)現(xiàn)只需要Iα和Iβ即可)
但是我們最終能控制到的硬件是三相全橋即六個(gè)MOS管的導(dǎo)通,因此我們最終要的是MOS管的導(dǎo)通時(shí)間,即定時(shí)器輸出的高電平時(shí)間,即PWM的占空比,因此我們接下來(lái)要通過(guò)Ua Ub Uc求出Mos導(dǎo)通時(shí)間。
8個(gè)矢量介紹
我們已知我們的輸入是控制Ua Ub Uc導(dǎo)通狀態(tài)導(dǎo)通時(shí)間和轉(zhuǎn)子角度,我們的目標(biāo)(輸出)是ID IQ,我們要解決的問(wèn)題是如何通過(guò)輸入產(chǎn)生輸出,在解決問(wèn)題之前我們要先看一看我們的輸入是什么,有什么物理含義。
由于同一橋臂上下兩個(gè)MOS不能同時(shí)導(dǎo)通(短路),因此6個(gè)MOS總共由8種狀態(tài),由于每種狀態(tài)都會(huì)產(chǎn)生一個(gè)固定方向的磁場(chǎng),我們將8種狀態(tài)稱為8種矢量。
假設(shè)我們的電機(jī)處于0°位置,那么要想讓電機(jī)轉(zhuǎn)動(dòng)起來(lái)我們只需要產(chǎn)生一個(gè)90°的矢量,那么只需要在一個(gè)周期內(nèi)矢量2和矢量6作用的時(shí)間各占一半即可產(chǎn)生一個(gè)90°的矢量,總結(jié)來(lái)說(shuō)就是我們通過(guò)控制相鄰矢量導(dǎo)通時(shí)間比例可以控制矢量的方向,通過(guò)插入0矢量可以改變矢量的大小,因此我們?cè)谝粋€(gè)控制周期內(nèi)通過(guò)8個(gè)矢量的配比來(lái)產(chǎn)生任意方向和任意大小的矢量。(只要我們能夠產(chǎn)生任意方向的矢量我們就可以先讀取當(dāng)前轉(zhuǎn)子角度,然后產(chǎn)生一個(gè)超前90度的矢量,這個(gè)矢量即是IQ)。
我們知道矢量方向的范圍是0-360度那么矢量的大小是什么呢?由于三相繞組阻值基本一樣,因此每個(gè)矢量的最大值為Udc2/3,其中Udc為母線電壓(電源電壓),但我們發(fā)現(xiàn)各個(gè)方向上矢量最大值并不一樣,為了讓電機(jī)平滑轉(zhuǎn)動(dòng),我們的目標(biāo)矢量的最大值應(yīng)為上圖中六邊形的內(nèi)切圓的半徑,即Udc2/3*sqrt(3)/2 = Udc/sqrt(3).具體參考下圖。
SVPWM生成
接下來(lái)先看一個(gè)例子,例如我們想要產(chǎn)生0-60°的任意一個(gè)方向的矢量。
通過(guò)計(jì)算我們可以得出其他幾個(gè)扇區(qū)的矢量作用時(shí)長(zhǎng)
由于所有結(jié)果格式基本相同因此我們假設(shè):
K = sqrt(3) * Ts / Udc
U1 = Uβ
U2 = -sqrt(3) / 2 * Uα - Uβ/2
U3 = sqrt(3) / 2 * Uα - Uβ/2
則可以總結(jié)出下表:
得出上表之后我們就可以通過(guò)8個(gè)矢量來(lái)產(chǎn)生任意大小和任意方向的矢量了。通過(guò)表格發(fā)現(xiàn)不同扇區(qū)用到的矢量不一樣,因此我們需要做一下扇區(qū)判斷,之前講過(guò)扇區(qū)判斷有3種方式,其中電流檢測(cè)在這里講解。
利用電流做扇區(qū)判斷
觀察反Clark變換公式和我們之前U1,U2,U3可以發(fā)現(xiàn),這兩個(gè)公式極其相像。
由圖可以看出我們能夠使用U1 U2 U3的正負(fù)來(lái)判斷當(dāng)前所處扇區(qū)
設(shè) U1>0 時(shí) A=1, 否則 A=0;
設(shè) U2>0 時(shí) B=1, 否則 B=0;
設(shè) U3>0 時(shí) C=1, 否則 C=0;
設(shè) N=4C+2B+A。
既然我們已經(jīng)拿到了每個(gè)矢量的作用時(shí)長(zhǎng),我們便可以求出每個(gè)Mos的導(dǎo)通時(shí)間,接下來(lái)便是把這些導(dǎo)通時(shí)間兌換成PWM形式。
七段式SVPWM
我們已知任意一個(gè)方向和大小的矢量需要的8個(gè)矢量的作用市場(chǎng),那么如何控制硬件電路實(shí)現(xiàn)呢,我們熟悉的硬件電路控制是PWM模式,那么有辦法把矢量作用時(shí)長(zhǎng)換成Mos的導(dǎo)通時(shí)間嗎,當(dāng)然可以,首先我們看一下每個(gè)矢量對(duì)應(yīng)的MOS導(dǎo)通時(shí)間,然后通過(guò)組合把這些時(shí)間組成PWM模式。
接下來(lái)我們要做的是把這些矢量信號(hào)排列組合成PWM信號(hào)例如在第一個(gè)扇區(qū)我們用到了矢量T0 T4 T6 T7
按照同樣方法便可分析出所有扇區(qū)對(duì)應(yīng)的PWM信號(hào)
這樣的波形不就是我們熟悉的中央對(duì)其方式的PWM波嗎。到此我們已經(jīng)完成了FOC開環(huán)運(yùn)行。
程序編寫
第五章 FOC電流閉環(huán)
其實(shí)到這里我想大家應(yīng)該已經(jīng)明白Clark變換和Park變換的作用了,我們拉開視角再看我們剛剛開環(huán)做了什么。
1.給出目標(biāo)電流
2.通過(guò)定時(shí)器控制三相全橋電路輸出這個(gè)目標(biāo)電流。
(不用糾結(jié)電壓電流,因?yàn)樗鼈冎g只是個(gè)系數(shù)問(wèn)題)
那么我們要閉環(huán)豈不是只需要檢測(cè)出實(shí)際電流然后做個(gè)PID閉環(huán)即可。那么為什么要用到Clark變換和Park變換呢,因?yàn)槲覀內(nèi)绻挥眠@些變換那么我們的目標(biāo)電流和實(shí)際電流都是正弦波,這對(duì)我們PID控制很不利,因?yàn)槲覀兪煜さ腜ID是目標(biāo)值不變,讓實(shí)際值去跟隨目標(biāo)值。而且我們拿到的三相電流Ia Ib Ic不直觀,Iα和Iβ也不直觀,而Iq和Id就直觀的多,Id用于發(fā)熱,Iq用于旋轉(zhuǎn)。對(duì)Iq和Id進(jìn)行閉環(huán)控制通俗易懂還能配合速度環(huán),因?yàn)橄胍D(zhuǎn)的快就增加Iq唄。
Clark變換
Clark變換的目的在于三相變兩相。
Park變換
Park變換的目的在于靜止變旋轉(zhuǎn)。
經(jīng)過(guò)變換之后我們就要面臨電流采樣問(wèn)題了。通過(guò)上一章對(duì)7段式SVPWM的分析我們發(fā)現(xiàn)在一個(gè)周期內(nèi),不同時(shí)刻Mos的導(dǎo)通是不一樣的,一般采樣電阻都是接在下橋臂,因此只能在相關(guān)橋壁的下MOS管打開時(shí)刻進(jìn)行該相的電流采樣。
由電路圖可知
1.必須在三相全橋的下橋臂打開的時(shí)候才能進(jìn)行該相電流采樣。
2.Mos的開關(guān)瞬間會(huì)對(duì)相電流產(chǎn)生干擾,因此采樣時(shí)間避開Mos導(dǎo)通狀態(tài)切換的時(shí)刻。
3.3電阻可以在任意時(shí)刻進(jìn)行電流采樣
4.根據(jù)SVPWM波形發(fā)現(xiàn)每個(gè)扇區(qū)都有兩相電流變化較小,一相電流變化較大,因此三電阻采樣時(shí)要采集電流變化較小的兩相。
5.由于當(dāng)目標(biāo)電流較大時(shí),可能會(huì)存在一相的占空比接近100%,則導(dǎo)致該相電流無(wú)法采樣,因此雙電阻采樣要對(duì)最大輸出電流做限制,流出電流采樣時(shí)間。
6.單電阻要在一個(gè)周期內(nèi)采樣兩次電流。
我們可以在t5和t6時(shí)刻采樣到-ic和ia電流完成電流采樣
程序編寫
第六章 速度閉環(huán)
相信大家到這里已經(jīng)較為清楚了,速度環(huán),目標(biāo)是給定速度,反饋是實(shí)際速度,輸出是Id Iq,其中Id為0,Iq越大轉(zhuǎn)的越快。
程序編寫
第七章 位置閉環(huán)
位置環(huán)同理,目標(biāo)是給定位置,反饋是實(shí)際位置,輸出是目標(biāo)速度。
程序編寫
程序編寫
第六章 速度閉環(huán)
相信大家到這里已經(jīng)較為清楚了,速度環(huán),目標(biāo)是給定速度,反饋是實(shí)際速度,輸出是Id Iq,其中Id為0,Iq越大轉(zhuǎn)的越快。
程序編寫
第七章 位置閉環(huán)
位置環(huán)同理,目標(biāo)是給定位置,反饋是實(shí)際位置,輸出是目標(biāo)速度。
原文鏈接:
https://blog.csdn.net/qq_35947329/article/details/115483413
-- END --
免責(zé)聲明:本文轉(zhuǎn)自網(wǎng)絡(luò),版權(quán)歸原作者所有,如涉及作品版權(quán)問(wèn)題,請(qǐng)及時(shí)與我們聯(lián)系,謝謝!
-
電機(jī)控制
+關(guān)注
關(guān)注
3559文章
1937瀏覽量
270635 -
無(wú)刷電機(jī)
+關(guān)注
關(guān)注
59文章
865瀏覽量
46860 -
FOC
+關(guān)注
關(guān)注
21文章
333瀏覽量
43683
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論