SimpleFOC調參1-力矩控制
Local Backup
背景介紹
FOC控制方式有兩種:
這裡主要總結閉環控制的幾種控制方式:力矩控制,速度控制,角度控制。這裡只總結了我自己調試的各種參數及圖形化意義。具體程序和方法參考simpleFOC官方文檔,裡面有詳細介紹。由於篇幅較長,分為兩篇來寫,本篇只總結力矩控制,下篇總結速度控制、位置控制。
1 電壓控制
-
此控制方式類似直流有刷馬達的控制,透過設定目標電壓Uq,同時讀取馬達角度angle(a),經過FOC演算法得到相電壓Ua、Ub、Uc,FOC演算法保障線圈產生的磁場方向與永磁鐵磁場方向垂直90°,從而保障扭力最大。相電壓透過驅動器BLDC Driver驅動馬達轉動。
電壓控制只用到了磁編碼器偵測到的角度,馬達參數(相電阻、KV值等),沒有PID參數設置,所以各個PID都是用預設參數,不會對控制效果產生影響。
1.1 pure voltage:不需要馬達參數
-
因為馬達線圈產生的電流與扭力成正比,而電流又與電壓成正比,所以有:
-
其中Uq:設定電壓值,I:相電流,k:比例係數,T:扭力。因為沒有電流回饋,只能根據角度回授來預估實際電壓U,所以實際電壓會不穩定。
注意:這個公式只適用於低速情況,在高速情況下,I = (Uq - EMF) /R,馬達線圈中的反向電動勢會產生顯著的影響,等式不再成立。
-
1.2 voltage + current estimation:需相電阻
1.3 voltage + current estimation + back-EMF compensation:需相電阻+KV值
-
在simpleFOC最新版(V2.2.2)中增加了一個馬達參數,KV值。在相電阻的基礎上,又增加了反向電動勢的回授。透過角度感測器偵測角度,角度微分後得到速度velocity(v),在經過低通濾波後除以KV值,可以預估出反向電動勢(BEMF),Ubemf = v/KV,可用作近似計算,二者不完全相等。
-
-
增加了KV值後,當輸入目標值0.2時,電壓會把BEMF一起計算進去。
當輸入目標值設為0時,給予一個啟動速度,馬達就會轉動(因為有BEMF產生)。加一個負載很容易停止(強制BEMF為0)。
由於電壓控制沒有用到PID調節器,修改所有PID參數都不會對結果產生影響。
2 電流控制DC current control
-
電流控制除了需要偵測角度之外,還需要同時偵測相電流,以便能夠直接控制電流大小,控制效果比電壓控制好很多,演算法要複雜一些,需要用到1個低通濾波(low pass filter), 1個current q PID調節器。
假設馬達產生的扭矩與驅動電流成正比,可以透過控制電流來控制扭矩。這個假設的前提是在低速情況下iDC=iq,id分量可以忽略不計,在高速情況下,id分量無法忽略,iDC=iq不再成立,此時就需要用到下一節總結的FOC電流控制了。
如下圖所示,simpleFOC studio透過串口把所有參數都顯示出來。左上方區域顯示感測器參數:
angle:磁編碼器偵測到的角度,單位:弧度
velocity:根據angle計算出來的角速度,單位:rad/s
current:電流偵測電路偵測到的電流,單位:A
target:使用者設定的目標值
右上方區域即時繪製監測變數:target,Vq,Vd,Cq,Cd,Vel,Angle
右下方區域是串口命令列
-
左下方列出了simpleFOC可以調整的參數:
motion config:運動方式配置
motion control type: torque ,velocity, angle,velocity openloop, angle openloop
torque control type: voltage, DC current , FOC current
motion downsample:1000, 取樣率/1000,頻繁採用會對FOC控製造成影響,所以要downsample
-
angle PID:位置環PID控制,在另一篇SimpleFOC調參3-位置控制中介紹
current q PID:本節詳細介紹各參數意義及對應圖形顯示
current d PID:下節詳細介紹各參數意義及對應圖形顯示
limits:馬達極限參數限制
velocity limi: 速度限制
voltage limit:電壓限制
current limit:電流限制
States:電機狀態參數
target:目標值
voltage q:電壓q分量
voltage d:電壓d分量
current q:電流q分量
current d:電流d分量
velocity:速度
angle:角度
sensor config:感測配置
general settings:通用配置
phase resistance:馬達相電阻
motor status:馬達狀態enabled,disabled
PWM modulation: PWM調變方式sine PWM, space vector PWM, trapezoidal 120, trapezoidal 150
modulation center: 調變中心對齊enabled, disabled
-
proportional gain: 比例增益,影響PID控制的反應速度,P值越大反應越快
Integral gain:積分增益,累積誤差的反應速度,I值為0時,current出現很大偏差,不會糾偏。 I=300、500時響應見下圖
Derivative gain:微分增益,未使用
output ramp:輸出斜率?意義不清楚
output limit:輸出限制,限制電壓
low pass filter: 低通濾波器Tf 濾波時間常數。影響濾波效果。
-
-
-
-
3 FOC電流控制FOC current
FOC Current
這種控制方式是真正的完全版FOC控制。需要用到磁編碼器,電流檢測。將同時同時電流的q分量和d分量。目標是使desired current Id與q分量相等,d分量等於零。這樣無論在低速、高速的情況下都會有較好的控制效果,不會受d分量影響。這裡用到2個PID控制器,2個low pass filter濾波器。
-
FOC電流控制與DC電流控制最大的差別是增加了current d控制,同樣設定target=0.2,同樣空載情況下,角速度可以達到175作用,而DC電流控制角速度只有80左右。用手去擋電機,讓電機停止後,明顯感覺力道變大了。這也說明:torque扭力控制,控制的是驅動電流大小,而不是真實的馬達扭力。
Current d PID個參數意義與Current q PID相同,但作用對像不同了。 current q = target value, current d = 0
proportional gain: 比例增益,影響PID控制的反應速度,P值越大反應越快
Integral gain:積分增益,累積誤差的反應速度,I值為0時,current出現很大偏差,不會糾偏。
Derivative gain:微分增益,未使用
output ramp:輸出斜率?意義不清楚
output limit:輸出限制,限制電壓
low pass filter: 低通濾波器Tf 濾波時間常數。影響濾波效果。
-
4. 三種不同控制方式對比
4.1 voltage
4.2 DC current
4.3 FOC current
5. 調試過程中問題
5.1 問題1:驅動電流單次變化太大時,電機會出現震盪,
參數設定:
motion control type:Torque
torque control type:FOC current
Current q PID: P=5, I=1000, D=0
Current d PID: P=5, I=1000, D=0
現象:設定目標值由低到高時一切正常,例如M0—M0.5,M0.5–M1.0。但是設定目標值由高到底時,單次變化過大會出現過衝,電流current q直接到-2A左右,系統在此達到平衡並震盪。
過衝值與比例因子P相關,設定current q、d的比例因子為10,結果如下圖
設定current q的比例因子為20,current d的比例因子為10,結果如下圖
最終如下圖,可比較好的結果。但當M1.5—M0時優惠出現震盪。要獲得穩定的加減速過程,需要逐步加速、減速,不能讓力矩控制環中的電流current q、d發生巨變,如果發生巨變很可能會造成馬達震盪,甚至損壞馬達、驅動電路。