資源簡介
用matlab實現的PID算法,簡單易懂。感興趣的朋友可以下載學習!
代碼片段和文件信息
%設一被控對象G(s)=50/(0.125s^2+7s)
%用增量式PID控制算法編寫仿真程序
%(輸入分別為單位階躍、正弦信號,采樣時間為1ms,控制器輸出限幅:[-55]
%??仿真曲線包括系統輸出及誤差曲線,并加上注釋、圖例)。
clear?all;
close?all;?
ts=0.001;?????????????????%采樣時間
sys=tf(50[0.1257?0]);?%tf是傳遞函數??即被控對象函數G();
dsys=c2d(systs‘z‘);????%把控制函數離散化
[numden]=tfdata(dsys‘v‘);%?離散化后提取分子、分母??
u_1=0.0;
u_2=0.0;
y_1=0.0;
y_2=0.0;
x=[000]‘;
error_1=0;
error_2=0;
for?k=1:1:1000
time(k)=k*ts;????????????????????????%采樣次數
S=2;
if?S==1
????kp=10;ki=0.1;kd=15;?????????????%初始化PID??
????rin(k)=1;???????????????????????%Step?Signal?
elseif?S==2
????kp=10;ki=0.1;kd=15;?????????????
????rin(k)=0.5*sin(2*pi*k*ts);???????%Sine?Signal?????即實際輸入????
end?
du(k)=kp*x(1)+kd*x(2)+ki*x(3);??????%PID?Controller???控制系數??
u(k)=u_1+du(k);?????????????????????%Restricting?the?
- 上一篇:MATLAB 截屏
- 下一篇:BP神經網絡 預測 matlab代碼
評論
共有 條評論