目录
1、题目
设被控对象为,采样时间T = 20s,画出系统框图,采用PID控制,设计Smith数字预估器。实验要求:(1)绘制系统框图;(2)计算负反馈调节器D(z)参数,对数字PID控制器进行参数整定;(3)计算并确定Smith预估补偿器参数;(4)利用MATLAB进行系统仿真,并绘制阶跃输入下控制器输出和系统输出的响应曲线。
2.方法1
滞后时间根据自已的题目要求来
3、方法2
close all
clear
clc
Ts=20;
%被控对象
kp=1;Tp=60;tol=80;
sys=tf([kp],[Tp,1],'inputdelay',tol);
dsys=c2d(sys,Ts,'zoh');
[num,den]=tfdata(dsys,'v');
M=2; %M=1不精确,M=2精确,M=3PI
if M==1 %模型不精确
kp1=kp*1.10;
Tp1=Tp*1.10;
tol1=tol*1.0;
elseif M==2|M==3%模型精确
kp1=kp;
Tp1=Tp;
tol1=tol;
end
%补偿闭环特征方程Gk(s)
sys1=tf([kp1],[Tp1,1],'inputdelay',tol1)
dsys1=c2d(sys1,Ts,'zoh');
[num1,den1]=tfdata(dsys1,'v');
%%控制量
u_1=0.0;u_2=0.0;u_3=0.0;u_4=0.0;u_5=0.0;
el_1=0;e2=0;e2_1=0.0;ei=0;
xm_1=0.0;ym_1=0.0;y_1=0.0;
for k=1:1:400
time(k)=k*Ts/20;
S=1; %S=1阶跃
if S==1%阶跃输入信号
rin(k)=1.0;
end
% if S==2 %方波输入信号
% rin(k)=sign(sin(0.0002*2*pi*k*Ts));
% end
% 没有时滞的模型系统输出
xm(k)=-den1(2)*xm_1+num1(2)*u_1;
%有时滞的模型系统输出
ym(k)=-den1(2)*ym_1+num1(2)*u_5;
%有时滞的实际系统输出
yout(k)=-den(2)*y_1+num(2)*u_5;
if M==1%模型不精确:PI+Smith
e1(k)=rin(k)-yout(k);
e2(k)=e1(k)-xm(k)+ym(k);
ei=ei+Ts*e2(k);
u(k)=0.50*e2(k)+0.010*ei;
e1_1=e1(k);
elseif M==2%模型精确:PI+Smith
e2(k)=rin(k)-xm(k);
ei=ei+Ts*e2(k);
u(k)=0.50*e2(k)+0.010*ei;
e2_1=e2(k);
elseif M==3%PI控制
e1(k)=rin(k)-yout(k);
ei=ei+Ts*e1(k);
u(k)=0.2*e1(k)+0.001*ei;
e1_1=e1(k);
end
xm_1=xm(k);
ym_1=ym(k);
u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);
y_1=yout(k);
end
plot(time,rin,'k',time,yout,'b');
xlabel('time(s)');ylabel('rin.yout');
根据设定的M值,选择PI控制还是Smith预估。
标签:ei,xm,0.0,Smith,Ts,补偿,e1,预估,e2 From: https://blog.csdn.net/2301_80376602/article/details/139520783