1、用的是compare和five那個
2、FOC(field-oriented control)為磁場定向控制,又稱為矢量控制(vectorcontrol),是目前無刷直流電機(BLDC)和永磁同步電機(PMSM permanent-magnet synchronous motor)高效控制的最佳選擇。FOC 可以精確地控制磁場大小與方向,使得電機轉矩平穩(wěn)、噪聲小、效率高,并且具有高速的動態(tài)響應。目前已在很多應用上逐步替代傳統的控制方式,在運動控制行業(yè)中備受矚目。
3、FOC的優(yōu)勢
低轉速下控制
由于控制原理的區(qū)別,無刷電調只能控制電機工作在高轉速下,低速下很難控制;而FOC控制器則完全沒有這個限制,不論在什么轉速下都可以實現精確控制。
電機換向
同上面的理由,由于無感電調無法反饋轉子位置,因此很難實現電機正反轉的換向;而FOC驅動器的換向性能極其優(yōu)秀,最高轉速下正反轉切換可以非常順暢;此外FOC還可以以能量回收的形式進行剎車控制。
力矩控制(力矩和電流成正比)
普通電調都只能控制電機轉速,而FOC可以進行電流(力矩)、速度、位置三個閉環(huán)控制。
噪音
FOC驅動器的噪音會比電調小很多,原因是普通電調采用方波驅動,而FOC是正弦波。
4、電調的優(yōu)勢:
兼容性
電調驅動不同的BLDC不需要進行參數整定,而FOC需要。
算法復雜度
電調的算法實現更簡單,運算量少,很適合需要提高帶寬的超高轉速電機。
成本
電調的成本比FOC低很多。
5、控制過程
對電機三相電流進行采樣得到:ia、ib、ic;
將 ia、ib、ic 經過 clarke 變換得到 iα、iβ;
將 iα、iβ 經過 park 變換得到 iq、id;
計算 iq、id 和其設定值 iq_Ref、id_Ref 的誤差;
將上述誤差輸入到兩個 PID(只用到 PI)控制器,得到輸出的控制電壓 Vq、Vd;
將 Vq、Vd 進行反 park 變換得到 Vα、Vβ;
將 Vα、Vβ 輸入 SVPWM 模塊進行調制,合成電壓空間矢量,輸出該時刻三個半橋的開關狀態(tài)進而控制電機旋轉;
循環(huán)上述步驟。
坐標變換
視頻講解
由于直接檢測到的三相電流正弦的,因此控制極為不變,因此需要將其變換為一個常數,這樣控制就方便了。首先將三相電流經過Clarke變換,變換到靜止坐標系α、β上,這個就從三相變?yōu)榱藘上嗾伊?再經過Park變換,這里要用到轉動的角度,將靜止坐標系變換到同步旋轉坐標系了(同步旋轉坐標系,就是建立在旋轉體上的),此時起到驅動作用的只有q,如果我們想要保持驅動力恒定,那么僅需通過PID 控制q軸大小恒定,而d軸對驅動不起作用,只會起到發(fā)熱作用,因此我們將d軸的大小控制為 0;這里我們再將所控制的值轉換為靜止坐標系的值,也就是反Park變換,因為SVPWM控制就需要用到反Park的值,也就是靜止坐標系的值。
Clark變換
如果要平穩(wěn)地驅動三相電機轉動,我們就需要生成三個相位相差 120 度的正弦波,三相正弦波會合成一個矢量,這個矢量就會不停的旋轉。我們要變換的就是這個矢量。
首先將這個矢量變換到α和β軸上,也就是Clark變換。
因為abc與α、β軸(靜止坐標系)的夾角是固定的,因此變換矩陣都是常數。
合成到α、β軸上后有什么作用呢:
1)SVPWM中用來判斷現在這個矢量在哪個扇區(qū)。
2)在SVPWM中用來計算V1/V2(也就是相鄰的兩個基矢量,基矢量就是110這種,也就是6個mos管哪個導通這種)導通的時間。因為就是通過導通時間來代表基矢量的長度,用來合成這個矢量。
Park變換
將靜止坐標系(α、β),轉換到旋轉坐標系,即將 Clarke 變換后的 α—β 坐標系旋轉θ度,其中θ為轉子旋轉的角度,旋轉角度θ需通過編碼器/霍爾傳感器讀取
我們直接控制的就是Id,Iq。其中,**Id(勵磁電流分量)**設置為0,Iq設置為我們想要的,如果恒推力的話,q就是一直不變的。我們直接給定一個iq,然后與反饋回來的iq作差,傳遞給pid模塊,然后給出輸出,再反Park變換轉換為αβ(這里需要角度值,因為iq就是一個大小,需要給定他的位置)給SVPWM,通過SVPWM控制mos管實現控制。
所以此時wt(也就是角度)的大小就非常重要了。也就是αβ值是一直在變的,但是為什么dq值是恒定的呢,也可以看做是因為乘以了角度的關系??梢钥瓷厦娴膒ark變換公式
至此坐標變換就都完成了,接下來就將變換好的dq軸進行PID控制后的值,進行反Park變換(因為SVPWM 算法的實現需要用到靜止的 α—β 坐標系,所以當我們完成了控制信號的 PID 運算后,還需進行反 Park 變換。),輸入到SVPWM
直線電機這個是我自己做的,PMLSM接口方面有點問題,問題是不知道怎么Simscape(物理系統)塊和simulink(數字/數學)塊不能直接兼容。
注意事項
如果我們使用上面坐標系自己搭建,那么永磁同步電機需要選擇
而如果使用那么就是用的matlab自帶的變換矩陣
SVPWM解析
參考1
正點視頻解析
SVPWM算法的本質實際就是,就算三相逆變器的六個開關何時導通,何時切斷。
原理
1、如果要平穩(wěn)地驅動三相電機轉動,我們就需要生成三個相位相差 120 度的正弦波,因此就誕生了SPWM,他是直接構造出旋轉所需的正弦電壓,但這種情況是沒有反饋的,所產生的電流并不一定是我們所要的,不能準確的控制定子電流。
2、SVPWM依靠的是MOS管的開關順序和開關時間以此來模擬出正弦電流。而SPWM不依賴開關順序,三相獨立調制。
3、矢量的合成:
使用的硬件為由六個開關器件組成的三個半橋所構成的三相全橋電路。
通過不同的開關順序(當 = 1時,代表 A 相上橋臂導通,=0就是下橋臂),可以產生六個非零矢量,和000/111這樣的兩個零矢量。
利用上述的8個矢量,就可以合成360°內的任意矢量。
首先是將我們要合成的矢量,分解到離他最近的那兩個基本矢量上,之后通過調節(jié)基本矢量的作用時間(作用時間就代表了基本矢量的大小),就可以合成這個矢量了。這個就是通過時間去合成所需矢量的原理,也就是實現電壓波形近似于正弦波的原理。
上述的這個矢量,就是abc通過坐標變換轉換到dq軸的iq,其中id一直讓他保持為0,因為這個分量是我們不需要的,驅動電機轉動只需要一個iq即可。
比如下面的110,就是abc電壓就是1/3Udc 1/3Udc -2/3Udc合成的(分別在abc軸大小這樣)合成后就是這個U6這個位置
1、扇區(qū)判斷
1、這里的ab就是指α,β(經過第一個變換即clack變換后得到的)。當b>0,則A=0,這樣的,根據α、β進行扇區(qū)的判別。
這個模塊輸出的就是第幾個扇區(qū)
2、時間計算
計算T1、T2的時間,也就是相鄰兩個基本矢量的總的作用時間。比如V1和V2、V2和V3等。
? = ? + ? + ? 0
其中,為期望電壓矢量;為開關周期;、、0分別為對應兩個非零電壓矢量、 和零電壓矢量0在一個采樣周期的作用時間;其中可表示0或7兩個零矢量。上式的意義是,矢量在時間內所產生的積分效果值和、、0分別在時間、、0內產生的積分效果相加總和值相同。
下面計算出來的T1和T2是V1、V2作用的總時長
3、7斷式時間分配
當 = 1時,代表 A 相上橋臂導通,=0的時候,代表A相下橋臂導通。
他這個需要保證的是每次只改變一個。
這個模塊的作用就是分別計算,給Sa、Sb、Sc導通的具體時間
下面這個就是對時間進行更詳細的分配,也就是每段V1(100),V2(110),V0(000/111)的時間進行分配。
4、載波調制
其他
總體框圖
永磁同步直線電機模型的建立
根據下面數學公式建立的
電磁部分的建立
機械部分框圖
整體框圖
模糊PID 模塊
matlab中的FuzzyLogic工具包可以幫助我們快速搭建模糊PID模塊。通過使用該工具,我們僅需要對輸入和輸出量進行合理的取值,并制定相應的模糊控制規(guī)則,如下圖所示,即可在simulink中實現模糊控制模塊的搭建,從而實現良好的仿真效果。通過輸入fuzzy喚出:
在simulink中搭建的模糊PID模塊,可以看做是由模糊控制部分和PID控制部分組成,如下圖所示,其中模糊控制部分的輸入為變量E和變量的變化率EC,輸出量則是△KP、△KI、△KD。
模糊PID模塊的控制原理是,根據輸入的誤差和誤差變化率,通過模糊控制的輸出量與PID控制器的固定參數相加,作為PID控制器最終的參數,從而實現PID三個控制參數的整定,最終使整個系統實現達到穩(wěn)定且性能優(yōu)良的控制性能。
最后調系數的時候,用gain比較好一點,模糊輸出系數就不要調了





