物理模型建立
在現代車輛的反饋控制系統中,自動巡航控制一個典型的例子。巡航控制系統的目的是在不受外界干擾(如風或坡度變化)的情況下保持恆定的車速。可以通過測量測速,將其與期望速度或參考速度進行比較,並根據控制規律自動調節油門來實現。
這裏我們考慮一個簡單的車輛動力學模型,如上面的受力分析圖。質量爲m
的車輛收到控制力u
的作用,作用力u
表示在道路/輪胎面產生的力,對於這個簡化的模型,我們將假定我們可以直接控制該力,而忽略產生該力的動力總成,輪胎等影響。假定由於滾動摩擦和風阻而產生的阻力bv
隨車速v
線性變化,作用方向與車輛運動方向相反。
系統動力方程式
基於以上假設,我們可以建立一階質量阻尼器系統,沿x
方向求和應用牛頓第二定律,我們得出以下系統方程:
由於我們對控制車輛的速度感興趣,因此輸出方程選擇如下:
系統參數配置
對於上述例子,我們假設系統的參數爲:
m
車輛質量 1000 kg
b
阻尼係數 50 N.s/m
u
額定控制力 500 N
狀態空間模型
一階系統只有一種能量存儲模式,該例子中是汽車的動能,因此只需要一個狀態變量,即速度。因此,狀態空間表示爲:
我們使用以下命令將狀態空間模型輸入到MATLAB中:
m = 1000;
b = 50;
A = -b/m;
B = 1/m;
C = 1;
D = 0;
cruise_ss = ss(A,B,C,D);
傳遞函數模型
將控制微分方程進行拉普拉斯變換,並假設零初始條件,可以得到巡航控制系統的傳遞函數爲:
我們使用以下命令將傳遞函數模型輸入到MATLAB中:
s = tf('s');
P_cruise = 1/(m*s+b);
控制指標設計
現在爲系統設計控制指標,當發動機提供500 N的力時,汽車將達到 10 m/s的最大速度,現在設計汽車在不到 5s 的時間內加速達到該速度,在本應用中,速度上 10% 的超調和 2% 的穩態誤差就可以滿足要求。
因此我們對該系統提出了以下設計標準:
- 上升時間 < 5s
- 超調 < 10%
- 穩態誤差 < 2%
開環階躍響應
在MATLAB中模擬該系統在沒有反饋控制的情況下對 500N 的階躍作用力的開環響應:
m = 1000;
b = 50;
u = 500;
s = tf('s');
P_cruise = 1/(m*s+b);
step(u*P_cruise)
我們可以看到,開環系統沒有過沖和振盪(一階系統的特性),並且確實達到了所需的 10m/s 的穩態速度。但是,上升時間太慢,約 60s。因此,我們需要設計一種反饋控制器,該控制器在不對其他動態性能指標產生不利影響的情況下加快響應速度。
開環極點/零點
巡航控制系統在 處具有一個單極點,我們可以使用以下命令在 s 平面上繪製該極點。
pzmap(P_cruise)
axis([-1 1 -1 1])
我們觀察到開環系統是穩定的,不會振盪,因爲極點是負實數。此外,響應速度由該極點的幅度 決定:幅度越大,系統越快達到穩態值,由於通常無法更改系統參數來改變系統的動態響應,因此必須設計控制器來調整閉環系統的極點和零點,來滿足所需的性能指標。
開環伯德圖
我們還可以使用以下命令來繪製系統的開環頻率響應圖:
bode(P_cruise)
我們可以看到,伯德圖顯示了一階系統的特徵。