直流无刷电机FOC控制算法 理论到实践 —— 理论(二)
直流無刷電機FOC控制算法 理論到實踐 —— 理論(二)
上一章節:FOC直流無刷電機控制算法 理論到實踐 —— 理論(一)
下一章節:直流無刷電機FOC控制算法 理論到實踐 —— 實踐
說明:部分圖片素材來源于網絡
文章目錄
- 直流無刷電機FOC控制算法 理論到實踐 —— 理論(二)
- 1. 概述
- 2. Clark變化運算
- 3. Park變化運算
- 4. PID運算
- 5. 反Park變化運算
- 6. SVPWM運算
- 6.1 SVPWM 原理
- 6.2 扇區判斷
- 6.3 計算矢量作用時間
- 參考
1. 概述
續上一章: FOC直流無刷電機控制算法 理論到實踐 —— 理論(一)(點擊跳轉)
下一章: 直流無刷電機FOC控制算法 理論到實踐 —— 實踐
在上一章節,我們對于FOC大體有了一個介紹,本博文將詳細描述有關Clark變化、Park變化、反Park變化以及SVPWM的理論實現原理,也即相關數學運算實現。
2. Clark變化運算
在①處進行Clark運算,將靜止的a_b_c坐標系轉換為α_β坐標系
通過計算得到:
- Iα = Ia
- Iβ = (Ia + 2Ib) / sqrt(3)
3. Park變化運算
在②處進行Park變化,將靜止的α_β坐標系轉化為旋轉的d_q坐標系,同時通過Park變化,正弦運算轉化為常數運算
- Id = Iα · cosθ + Iβ · sinθ
- Iq = Iα · sinθ + Iβ · cosθ
- 注意此處的 θ 為電機此時的電角度
4. PID運算
通過clark變化和park變化,原本呈正弦變化的電流已經轉變為常數了,此時便方便我們進行其他計算了,因此在③處進行電流環PID運算;
PID輸入為 Iq_ref,Id_ref, Iq, Id,PID輸出為Uq,Ud
- Iq_ref:Q軸目標電流
- Id_ref:D軸目標電流
- Iq:Q軸反饋電流
- Id:D軸反饋電流
- Uq:Q軸目標電壓
- Ud:D軸目標電壓
根據我們在上一章節 FOC直流無刷電機控制算法 理論到實踐 —— 理論(一) 的分析可知,只有Q軸分量才是真正用來驅動電機的,D軸分量主要用于電機發熱,因此 Id_ref 應為0,甚至可以D軸直接不進行PID運算,直接將 Ud 設置為 0。
- 此處的PID模塊亦是一個隔離轉換模塊,輸入為電流量,輸出為電壓量
- 而在實際的FOC實現中,我們是通過程序控制實現的,在程序里最終控制的到電機的是定時器
- 因此此輸出量最終應該和定時器的參數(CCR)相互關聯,這也是PID的第二大妙處了
5. 反Park變化運算
通過①和②將原來的 a_b_c軸 轉化到了 d_q軸 進行運算完成之后,接下來需要做的便是將坐標系再變回去對電機進行控制了,首先進行④ 反Park變換,將 d_q軸 轉化為 α_β坐標系
- Uα = Ud · cosθ - Uq · sinθ
- Uβ = Ud · sinθ + Uq · cosθ
6. SVPWM運算
經過④反Park變換之后,坐標軸到了 α_β坐標系 ,首先大家想到的肯定是接下來是不是需要進行反Clark變換了,然而并不是,畢竟采用MCU程序實現,反Clark變化之后,并不方便實現對電機的控制,因此引入了SVPWM運算
6.1 SVPWM 原理
首先SVPWM是什么呢?
SVPWM,即Space Vector Pulse Width Modulation空間矢量脈寬調制的簡稱,其原理類似于力的合成
通過控制三相半橋的導通方式不同,我們可以生成6個不同方向的力矩,這也就是六步換相的原理,以三相半橋為例:
- 將三個半橋分別命名為 A B C
- 假定上半橋導通、下半橋關閉為 1
- 假定上半橋關閉、下半橋導通為 0
我們一共能出現8中組合方式,如下表所示: - 其中第1種和第8種組合為特殊組合
- 第1種組合上管全部關閉,下管全部打開
- 第8種模式,上管全部打開,下管全部關閉
- 此兩種模式均無力矩輸出
| 1 (V0) | 0 | 0 | 0 |
| 2 (V1) | 0 | 0 | 1 |
| 3 (V2) | 0 | 1 | 0 |
| 4 (V3) | 0 | 1 | 1 |
| 5 (V4) | 1 | 0 | 0 |
| 6 (V5) | 1 | 0 | 1 |
| 7 (V6) | 1 | 1 | 0 |
| 8 (V7) | 1 | 1 | 1 |
我們將以上幾種組合所產生的力矩方向在下圖中繪出,如下圖:
現在我們將電機的轉子簡化,看成是一對磁極(紅色:電機N機 藍色:電機S極),由于 磁場同性相斥,異性相吸 的原理,為了實現驅動效率最大化,也即力做功最大化,我們期望產生的合成力矩與轉子磁場成90°相切,即圖中的綠色箭頭所指方向,但是根據我們上面的分析可知,通過控制三相半橋的導通,僅僅只能實現在 V1 - V6 六個固定方向的力,那有如何產生圖中綠色箭頭所指的方向的力呢?
這個時候就需要使用到我們高中所學的力的合成了,根據力的合成:
- 在一個作用周期 Ts內,產生Tx時間的V4方向的力F4,產生Ty時間的V6方向的力F6
- 在周期T內,將一部分作用時間 Tz分配給 V0 和 V7 ,通過這種方式控制合成力F的幅值大小
- 同時滿足 Ts = Tx + Ty +Tz
通過合理的控制 Tx 、 Ty 和 Tz 在一個周期內所占用的時間,根據伏秒平衡等效原理了。亦可看成產生了一個周期為 Ts 的合成力F
這里我們為了調節合成磁力F的幅值,引入了兩個零矢量 V0 和 V7,為什么需要引入兩個0矢量呢?引入一個是否也可以呢?這里便涉及到FOC理論如何轉化到實際控制的問題,也就是大家常說的七段式SVPWM 和 五段式SVPWM
首先講下為什么引入零矢量呢?引入零矢量有兩個目的:
- 通過零矢量調節合成矢量的幅值
- 通過插入零矢量,使得七段式/五段式SVPWM在每一段切換時,只需要動作一路開關,同時得到的是成中央堆成的PWM,大大減少諧波分量
七段式SVPWM控制如下圖所示:
五段式SVPWM控制如下圖所示:
七段式和五段式的區別是:七段式諧波分量更小,但是每個周期會有六次開關切換,開關損耗比較大;五段式每個周期只需要四次開關切換,開關損耗相對較小,但是諧波分量更大
綜上,以 V0 ~ V7 為基礎力矩,通過這六個方向的基礎力矩便可合成任意方向的大小幅值可調的合成磁力F,從而實現以最大效率驅動電機運轉,這便是SVPWM,空間矢量脈寬調制的原理了
需要注意的是,合成力矩的調節范圍為六邊形的內,在實際控制過程中,為了獲得良好的控制效果,我們期望給到電機的力是均勻的,因此在實際控制中,我們會將力矩控制在六邊形的內切圓內,如下圖所示:
以下是在網上找的一張動圖輔助大家理解力矩的合成
α_β坐標系內的Uα和Uβ,通過SVPWM模塊,可以輸出三相相位相差120°的馬鞍波,任意兩相馬鞍波相減,即可得到正弦波,這便是采用SVPWM實現直流無刷電機控制的原理。
SVPWM運算具體實現大概可以分為兩個步驟,接下來將逐步講解SVPWM的實現。
6.2 扇區判斷
根據上述分析,通過控制三個半橋的導通,我們可以獲得 V0 ~ V7 八個方向的基礎矢量力矩,我們根據這 V1 ~ V6 將360°拆分為六個扇區,扇區Ⅰ到扇區Ⅵ,同時根據 V1~V6 建立六邊形坐標系
接下來我們先整理下我們的目標和工具:
- V0 - V7是我們通過控制三個半橋可以得到的矢量,這是我們的工具
- 經過Park變化后的 Uα 和 Uβ 是我們需要去實現的目標
那么接下來我們只需要思考如何采用我們已擁有的工具去實現我們需要實現的目標即可。
此外在目標與工具之間還存在著一個橋梁,將兩者相互連接起來,那便是 Vref ,亦可這么理解:其實只是實現 Vref 在α_β坐標系和V1~V6六邊形坐標系之間的相互轉化
在六邊形坐標系中,Vref的合成是需要區分其在哪一個扇區,需要采用哪兩個基礎矢量實現合成,因此首先需要做的便是判斷扇區,而根據Uα和Uβ,我們可以知道 Vref 所在哪一個扇區
由于markdown不方便編輯復雜公式,因此采用word編輯之后截圖貼圖說明
同理其他情況亦可按此方法進行推導分析,最終得到下表:
| 扇區 | 無 | 4 | 6 | 5 | 2 | 3 | 1 | 無 |
| N = 4C + 2B +1A | 0 | 4 | 2 | 6 | 1 | 5 | 3 | 7 |
| N = 4A + 2B + 1C | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
在實際計算中,我們通過Park變化后的 Uα 和 Uβ 計算 U1 U2 U3的正負,可以得到N,N的計算方式可以選擇 N = 4C + 2B +1A 或 N = 4A + 2B + 1C 任意一種,之后通過查表的方式,得到實際的扇區
此外,在上述扇區計算中,還有一點需要特別注意,那便是(A,B,C) 為(0,0,0) 或(1,1,1) 的時候,對應的扇區為無,這個的原因是:
- 當(A,B,C) 為(0,0,0) 的時候,得到U1 = 0, U2 = 0, U3 = 0, Uα 和 Uβ均為0,不在扇區內;
- 當(A,B,C) 為(1,1,1) 的時候,得到U1 = 1, U2 = 1, U3 = 1,不存在 Uα 和 Uβ 滿足條件。
6.3 計算矢量作用時間
通過扇區判斷,我們可以知道目標矢量 Vref 在哪一個扇區內,而 Vref 則可由其相鄰的兩個 V1 - V6 基本矢量合成,那么此兩個相鄰矢量以及為了調節 Vref 的幅度,在周期T內引入V0或者V7這個兩個0矢量,這幾個部分在一個周期內各自分配多長時間呢?
我們以 Vref 在第Ⅰ扇區舉例,那么 Vref 則由V4、V6、V0和V7合成,首先假定:
- Vref 的作用時間為 Ts
- V0 ~ V7 的作用時間分別為T0 ~ T7
同樣還是和力的分解一樣,我們以扇區Ⅰ舉例,假定此時我們需要得到的 Vref 在扇區Ⅰ內,則
- 在α軸上有:Vref * cosθ * Ts = V4 * T4 + V6 * cos60° * T6
- 在β軸上有:Vref * sinθ * Ts = V6 * cos30° * T6
和力的分解與合成一樣,我們可以將 Vref 以及 V4 V6分別分解到 α_β 坐標軸上
同理,其他扇區亦可按照此方法計算,得到下表:
參考
下一章節:直流無刷電機FOC控制算法 理論到實踐 —— 實踐
總結
以上是生活随笔為你收集整理的直流无刷电机FOC控制算法 理论到实践 —— 理论(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 语法体系:揭秘同位语从句day9
- 下一篇: SOTA到底是什么算法