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