1 傳統的位式控制算法

用戶期望值Sv(設定值)經控制算法輸出一個輸出信號OUT,輸出信號加載到執行部件上(像MOS管等)對控制對象進行控制(步進電機、加熱器等),控制對象的當前值(Pv)如速度通過傳感器反饋給控制算法與Sv相比較。
特點:1 位式算法輸出的控制信號只有兩種狀態‘H’或者‘L’。
2 算法輸出信號OUT的依據:
如果Pv>=Sv 輸出信號高了
如果Pv<Sv 輸出信號低了
缺點:只能考察控制對象的當前值
2 PID算法

Sv:用戶的設定值(目標值)
Pv:反應負載當前的狀態值(控制對象當前的狀態值)
E = Sv - Pv :偏差值
2.1 PID算法分析
1.從開始工作到當前時刻得到一個采樣點序列(假如每秒采樣一次,Xk表示當前時刻的采樣值):
X1,X2,X3,..........Xk-1,Xk
2.分析采樣點序列得到三個信息:
1> 偏差值Ek = Sv - Xk 反映了當前時刻,傳感器反饋回來的值與目標值偏差的程度;
如果:Ek>0 表示當前時刻未達標
Ek=0 表示當前時刻已達標
Ek<0 表示當前時刻已超標
設:Pout = Kp * Ek ——比例控制
特點:比例控制一般輸出為PWM信號,通過調節PWM的占空比,來對輸出進行控制。比例控制只考慮當前時刻是否有偏差,當Ek=0時,負載就處於失控狀態,PWM此時可不起作用;比例控制沒有偏差時是不起作用的,需要始終有一個偏差。
一般地在算法上加一個常數:
Pout = Kp * Ek + out0 ;
2>歷史偏差序列(有正數有負數)
設:E1=Sv-X1,E2=Sv-X2,E3=Sv-X3,.........Ek = Sv - Xk
得序列:E1,E2,E3,.............Ek.
Sk=E1+E2+E3+............+Ek
如果:Sk>0 過去時間段大多數時刻未達標
Sk=0 過去時間段總體情況較好
Sk<0 過去時間段大多數時刻超標
根據歷史狀態輸出信號得:
Iout = Kp * Sk ——積分算法
單純的積分控制Sk=0時,會嚴重干擾當前情況,進入失控狀態;一般的
Iout = Kp * Ek + out0
3>最近兩次的偏差相減
Dk=Ek-Ek-1
如果:Dk>0 偏差有增大趨勢
Dk=0 偏差趨勢沒有變化
Dk<0 偏差有減小趨勢
Dout =Dk * Kp ——微分控制
微分控制不可以獨立行動,微分算法只關心偏差有沒有變化趨勢
Dout =Dk * Kp + out0
