-
大小: 45KB文件類型: .rar金幣: 2下載: 0 次發布日期: 2021-06-10
- 語言: Matlab
- 標簽:
資源簡介
抗積分飽和PID控制算法PDF文檔+MATLAB源程序,全部通過測試

代碼片段和文件信息
%PID?Controler?with?intergration?sturation
clear?all;
close?all;
ts=0.001;
sys=tf(5.235e005[187.351.047e0040]);
dsys=c2d(systs‘z‘);
[numden]=tfdata(dsys‘v‘);
u_1=0.0;u_2=0.0;u_3=0.0;
y_1=0;y_2=0;y_3=0;
x=[000]‘;
error_1=0;
um=6;
kp=0.85;ki=9.0;kd=0.0;???
rin=30;???????????%Step?Signal
for?k=1:1:800
time(k)=k*ts;
???
u(k)=kp*x(1)+kd*x(2)+ki*x(3);???%?PID?Controller
if?u(k)>=um
???u(k)=um;
end
if?u(k)<=-um
???u(k)=-um;
end
%Linear?model
yout(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3+num(2)*u_1+num(3)*u_2+num(4)*u_3;
error(k)=rin-yout(k);
M=2;
if?M==1??%Using?intergration?sturation
if?u(k)>=um
???if?error(k)>0
??????alpha=0;
???else?
??????alpha=1;
???end
elseif?u(k)<=-um
???if?error(k)>0
??????alpha=1;
???else?
??????alpha=0;
???end
else
???alpha=1;
end
elseif?M==2??%Not?using?intergration?sturation
alpha=1;???
end
%Return?of?PID?parameters
u_3=u_2;u_2=u_1;u_1=u(k);???
y_3=y_2;y_2=y_1;y_1=yout(k);
error_1=error(k);
???
x(1)=error(k);????????????????%?Calculating?P
x(2)=(error(k)-error_1)/ts;???%?Calculating?D
x(3)=x(3)+alpha*error(k)*ts;??%?Calculating?I
xi(k)=x(3);
end
figure(1);
subplot(311);
plot(timerin‘b‘timeyout‘r‘);
xlabel(‘time(s)‘);ylabel(‘Position?tracking‘);
subplot(312);
plot(timeu‘r‘);
xlabel(‘time(s)‘);ylabel(‘Controller?output‘);
subplot(313);
plot(timexi‘r‘);
xlabel(‘time(s)‘);ylabel(‘Integration‘);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????48915??2018-01-21?16:47??抗積分飽和PID控制算法及仿真.pdf
?????文件???????1441??2004-06-13?12:22??chap1_15.m
-----------?---------??----------?-----??----
????????????????50356????????????????????2
評論
共有 條評論