foc学习笔记1——准备工作
foc學習筆記1——準備工作
寫在前面:如今網上關于foc的文章和教程很多,但初學者往往會被那些專業且復雜的公式搞暈,不知道自己到底在學什么。而本文旨在幫助大家梳理思路,如果各位看了其他文章有云里霧里的感覺、不思其解的地方,或許本文能為您解惑。但本文也只能起到輔助作用,并不是零基礎教程,還請結合其他文章一同學習。
最后:本人既不是電機工程師也不是相關專業的學生,純屬個人理解,有什么錯誤還請指出,也希望各位專業人士能嘴下留情。
1.foc是什么
(1)電機持續轉動的秘密:換相
? 首先說一說為什么電機能夠轉動:電機的線圈繞組就相當于電磁鐵,通電后能夠產生磁場,而轉子上裝有永磁體。根據同性相斥異性相吸的原理,轉子的N極會吸向定子的S極、轉子的S極會吸向定子的N極。
? 然后呢,轉子不就被吸住不再轉動了,那怎么樣才能讓電機不停轉動呢?很簡單,換一個繞組繼續通電,產生另一個方向的磁場,重新讓轉子轉動。每當轉子轉到特定位置便換一個繞組繼續通電,如此循環往復下去,電機便可不停旋轉。用專業點的說法,這叫“換相”。
? 上圖這樣的換相方式便是六步換相法,轉子每轉過60°換一次相,換相6次即轉過一圈。在每個60°的扇區內,電機只有兩相線圈繞組是通電的,第三相截止(或懸空)。使用這種驅動方式便可以讓我們的無刷電機或是永磁同步電機轉起來了。(圖隨便畫的,知道意思就行,不用太糾結)
(2)拉磨盤的磁場力
? 我們可以把轉子想象成一個磨盤,把定子和轉子間的磁場相互作用力想象成拉磨盤的力,如下圖所示:
? 我們肯定希望拉磨盤的力能始終垂直于木柄,因為這樣才能使我們的力達到最佳效果。但遺憾的是,我們很難做到用力方向始終和木柄保持90°。力F能夠分解為Fq和Fd兩個分量,Fq是讓磨盤轉動的力,而Fd純粹是無用功。(這兩個分量的方向便是后面說的D軸和Q軸的方向)
? 我們再來看看六步換相法是如何拉“磨盤”的:
? 六部換向法是每隔60°換一次相,在即將換相的臨界處力的方向任然保持和剛剛換相時一樣,此時的Fd分量就很大了,影響效率。同時在換相的瞬間,由于力的方向突變,會產生較大的轉矩波動,影響電機轉動時的平穩性(當然實際應用中并不是在0°、60°、120°。。。處換相,而是在-30°、30°、90°。。。處換相,這樣能避免在換相臨界處Fd過大的問題,但仍然無法避免換向時力的方向突變)。而我們的老朋友直流有刷電機在這方面做得更糟糕,因此它的轉矩脈動更大。
? 那我們有沒有辦法去解決這一問題呢?當然有,那就是用foc控制。
(3)foc:無限步換相
? 終于輪到我們的主角登場了,foc的全名叫磁場定向控制。意思就是它能產生任意方向的磁場,無論是30°,還是59.9999°(當然這只是理想情況下的,實際上受限于數字系統的分辨率),而我們的六步換相法,充其量也只能產生6個方向的磁場。理想情況下的foc產生的磁場力的方向始終與“磨盤的木柄”相差90°(不包括弱磁),因此它每時每刻的效率都是最高的,也不會產生力的方向上的突變。也可以說每當轉子轉過Δθ,便換一次相,因此我稱之為無限步換相。那么它這么厲害是如何做到的?時刻獲取轉子的準確位置,然后產生與之相差90°的磁場。
最后介紹一下一次foc的完整過程(有些暫時看不懂也沒關系,以后再回來看,框圖內的細節以后也會逐一介紹):
采集電機三相電流IA、IB、IC
-> Clarke變換:通過三軸變兩軸的坐標變換將采集到的三相電流變化為兩相電流Iα和Iβ
-> Park變換:通過兩軸靜止變兩軸旋轉的坐標變換將轉子電角度θ、交流的Iα和Iβ變換為直流的Id和Iq
-> 電流環:將Id和Iq經過PID運算,輸出Ud和Uq
-> 反Park變換:通過兩軸旋轉變兩軸靜止的坐標變換將當前轉子電角度θ、直流的Ud和Uq變為交流的Uα和Uβ
-> 反Clarke變換:通過兩軸變三軸的坐標變換將兩相的Uα和Uβ變為三相的UA、UB、UC
-> SVPWM:將三相電壓計算成三個PWM通道的占空比值
-> 三相逆變電路:輸出三相等效馬鞍波
-> 電機
2.一些觀念
(1)電壓給定的情況下,空載時候電流最小、輸出轉矩最低,堵轉的時候電流最大也是電機輸出轉矩最大的時候。
? 電機的輸出轉矩和電流可以近似認為是成正比的,有些電機還會標有扭矩常數(N·m/A)。但要清楚,只有給電機輸出軸增加負載,才能使電機輸出更大轉矩、消耗更大的電流。否則,當電機空載的時候,電機的輸出軸只需要克服微乎其微的空氣阻力和摩擦力,自然就無需輸出多少轉矩,所以耗費的電流也是很小的。這一點在調試電流環的時候很有幫助,不要奇怪為什么實測的iq到不了給定值,你都沒給電機加負載。但是,在沒有電流環的情況下,堵轉電機往往是一件非常危險的事情,因為此時反電動勢等于0,加在線圈上的電壓就等于輸入電壓,所以此時線圈中流過的電流就等于電壓除以線圈的電阻。
(2)一臺永磁同步電機的最大轉速只與電壓有關而與換相速度無關。
? 換相是被動的,增加電壓是主動的??傊涀∫稽c,是因為轉子要轉得更快了所以才提高換相速度,而不是因為提高換相速度就能使轉速變快。
? 為什么不能提高換相速度來提高轉速,步進電機不就是這樣的嗎?我們獲取轉子位置的目的就是為了換相,是因為轉子已經轉到特定位置了,我們才給它換相,讓它永遠也追不上旋轉磁場的同時也不至于被拉下太遠(這里的追不上是指旋轉磁場的速度和轉子的速度相同,而旋轉磁場之前就已經處于轉子的前頭)。如果我們不關心轉子位置而強行提高換相速度,轉子就會因為跟不上旋轉磁場的速度(這里的跟不上是指旋轉磁場的速度大于轉子的速度,如同跑道超圈),就像步進電機高速失步那樣。
? 那為什么說提高電壓就能提高轉速?增加電壓的瞬間,電機繞組中的電流變大、磁場強度跟著變大,給予了轉子更大的力矩,所以轉子加速轉動,直到達到新的平衡,此時電機的轉速相比之前更快(負載不變的前提下)。
(3)電機的三相繞組是兩兩導通還是三相全導通?
? 使用六步換相驅動是兩兩導通,使用foc驅動是三相全導通。
3.名詞解釋
(1)svpwm
? 原名叫空間矢量脈寬調制。它是foc軟件中的最后一環,個人覺得也是最麻煩的一環。通過單片機定時器的中心對齊模式輸出三通道的pwm波,驅動三相逆變電路輸出等效為馬鞍波的方波,而這三相方波(等效馬鞍波)最終則施加在電機的UVW三相上(ABC三相)。為什么能等效這里就不解釋了,如果對spwm有了解的肯定能明白,如果你用示波器測量只能看到輸出方波,但如果加上一個rc低通濾波器就能看到馬鞍波了。可能有人會有疑問為什么要輸出方波來等效,而不是用dac輸出再像三極管放大那樣直接輸出馬鞍波?因為那樣要讓晶體管工作在線性區,功耗是非常嚇人的,就如同開關電源和線性電源一樣。
(2)bldc和pmsm
? 直流無刷電機和永磁同步電機,兩種電機非常像,都是用永磁體作為轉子,三相繞組作為定子。比較常見的說法是bldc的反電動勢是梯形波,而pmsm的反電動勢是正弦波,所以bldc適合用六步換相驅動,pmsm適合用foc驅動。但我發現手邊的無刷電機無論是航模電機還是云臺電機,反電動勢全是正弦波,這就很奇怪了。
(3)kv
? 玩過航模的一定不陌生,是電機的轉速常數,單位是rpm/V。意思是電機每通1V的電壓,轉速便提升kv數轉每分鐘。假如有一臺1000kv的電機,那么給它通10V的電壓,它的轉速是一萬轉每分鐘(空載情況下)。轉速常數的存在也印證了永磁同步電機的轉速只與電壓有關而根換相速度無關。
(4)反電動勢
? 一臺電機,它是電動機的同時也是一臺發電機,當電機通電旋轉的時候,它實際上是一邊被磁場力拖著轉動,同時也因為它在轉動而在發電。理想空載的情況下,電機發電的電壓和加在電機線圈上的電壓是相等的,也就是說加在電機上的電壓恰好被反電動勢給抵消了,這就是為什么電機的空載電流非常小。反電動勢常數的單位是V/rpm, 大小恰好是kv的倒數。
(5)極對數
? 解釋不清看圖吧。
? 我們學習的時候為了方便理解一般用一對極的電機來學習,長上邊這樣↑。
? 而我們實際用的電機可能長這樣↑, 繞銅線的是定子,上邊貼磁鐵的是轉子。只要分析明白一對極的電機就夠了,不需要再去分析多極電機,它們差的也只是一個系數,千萬不要被嚇到。
? 對于二圖的無刷電機,極對數等于轉子上磁鐵個數除以2。
(6)電角度
? 電機機械上轉過的角度除以極對數就等于電角度轉過的角度。比如說一臺7對極的電機,機械上轉動一圈等于電角度轉過7圈,具體原因個人暫時無法解釋。這個有什么用呢?因為foc算法需要時刻獲取轉子位置(也可以說是轉子的電角度),而我們所用的編碼器只能讀到轉子的機械角度,這個時候就需要把它換算成電角度來做foc運算。(對于無感foc,同樣需要獲取轉子電角度,不過用的不是編碼器而是觀測器,本文只涉及有感foc)
(7)電周期
? 電角度轉過360°就是一個電周期。
參考資料:
文檔:SVPWM的原理及法則推導和控制算法詳解第五修改版 提取碼:2617
視頻:硬石相關章節
博客:FOC入門教程
視頻:野火相關章節
視頻:唐老師講電賽
總結
以上是生活随笔為你收集整理的foc学习笔记1——准备工作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Direct3D(D3D)简介
- 下一篇: 如何从缓存白嫖网易云音乐