前言:pid中積分的作用是消除穩態誤差,所以他很重要,為了提高他的運算精度,於是引入梯形積分。
梯形積分公式:
說明:普通pid的積分就是將誤差累加起來,而梯形積分就是將相鄰兩個差值的中值累加起來(注意梯形積分第乙個中值是第乙個差值的一半,因為公式中i從0開始)
clear all;
close all;
%獲取離散化模型
ts =
0.001
;%取樣時間
sys =tf(
[523500],
[1,87.35
,10470,0
]);dsys =
c2d(sys,ts,
'z')
;[num,den]
=tfdata
(dsys,
'v')
;%設定pid引數
k_p=
0.5;
k_i=
0.001
;k_d=
0.001
;%設定輸入訊號形式
y_d =
ones(1
,500);
%輸入訊號為階躍訊號
%y_d =
[ones(1
,250
)zeros(1
,250)]
; 輸入訊號為階躍訊號
%for k=1:
1:500%輸入訊號為正弦訊號
%y_d
(k)=
0.5*
sin(
4*pi*k*ts)
;% end
y =zeros(1
,500);
%初始化輸出訊號
y_feed=0;
%反饋回來的訊號,y_feed=y
erro =0;
%訊號差值
erro_1 =0;
%上一時刻訊號差值
erro_middle =0;
%兩次訊號差值取中間值
erro_total =0;
%訊號差值累計值
y_1=0;
%上一時刻的輸出
y_2=0;
%上一上一時刻的輸出
y_3=0;
%上一上一上一時刻的輸出
pi_out=0;
%pid控制器的輸出,注意不是系統輸出
pi_out_1=0;
%上一時刻pid控制器的輸出,注意不是系統輸出
pi_out_2=0;
%上一上一時刻pid控制器的輸出,注意不是系統輸出
pi_out_3=0;
%上一上一上一時刻pid控制器的輸出,注意不是系統輸出
for k=1:
1:500time
(k)=k*ts;
%儲存時間,用於後面畫圖
erro=
y_d(k)
-y_feed;
erro_middle =
(erro + erro_1)/2
; erro_total = erro_total + erro_middle;
pi_out = erro*k_p+k_d*
(erro-erro_1)
/ts + k_i*erro_total*ts;
%對pid的輸出進行限幅
if pi_out>=
10 pi_out =10;
endif pi_out<=-10
pi_out =-10
; end
y(k)=
-den(2
)*y_1-
den(3)
*y_2-
den(4)
*y_3+
num(2)
* pi_out_1+
num(3)
*pi_out_2+
num(4)
*pi_out_3;
%控制物件
y_feed=
y(k)
;%更新系統輸出狀態
y_3=y_2;
y_2=y_1;
y_1=
y(k)
;%更新pid輸出狀態
pi_out_3=pi_out_2;
pi_out_2=pi_out_1;
pi_out_1=pi_out;
%更新訊號差值狀態
erro_1=erro;
end%畫圖plot
數字式PID控制的應用總結
pid控制是乙個二階線性閉環控制器,通過調整比例 積分和微分三項引數,使得大多數的工業控制系統獲得良好的閉環控制效能。pid控制 優點 a.技術成熟,b.易被人們熟悉和掌握,c.不需要建立數學模型,d.控制效果好,e.魯棒性。一.模擬量pid 控制演算法 模擬量pid 控制器的 基本算式為 式中u ...
PID控制器開發筆記之五 變積分PID控制器的實現
在普通的pid控制演算法中,由於積分係數ki是常數,所以在整個控制過程中,積分增量是不變的。然而,系統對於積分項的要求是,系統偏差大時,積分作用應該減弱甚至是全無,而在偏差小時,則應該加強。積分係數取大了會產生超調,甚至積分飽和,取小了又不能短時間內消除靜差。因此,如何根據系統的偏差大小改變積分速度...
費希爾DVC6200p數字式閥門控制器
費希爾dvc6200p數字式閥門控制器 作為一款 profibus pa 通訊儀表,fieldvue dvc6200p 數字式閥門控制器可將數字控制訊號轉換為氣動輸出以提供給執行機構。profibus通訊便於使用者快速地對迴路進行遠端除錯。dvc6200p數字閥門控制器可以輕鬆訪問對過程操作和過程控...