现代控制理论实验02.docx
《现代控制理论实验02.docx》由会员分享,可在线阅读,更多相关《现代控制理论实验02.docx(26页珍藏版)》请在冰豆网上搜索。
![现代控制理论实验02.docx](https://file1.bdocx.com/fileroot1/2023-1/1/cd284260-ba5f-489a-9ae1-222259d38439/cd284260-ba5f-489a-9ae1-222259d384391.gif)
现代控制理论实验02
实验2
自动实1301杨晓丹
一、实验内容及目的
仿真一阶系统和二阶系统在单位脉冲、阶跃、斜坡、抛物线输入信号下的响应曲线,改变T、k、Wn、y的值,观察响应曲线的变化,观察响应曲线间的关系。
本次实验熟悉一阶系统和二阶系统的各种响应曲线,以及参数改变对响应曲线的影响。
二、实验方案内容
(1)一阶系统仿真
一阶系统传递函数为G(S)=k/(TS+1),代码如下
clc;
clearall;
closeall;
s=tf('s');
k=1;
T=1;
kc=1;
Tc=1;
num1=[k];
den1=[T1];
numc=[kc];
denc=[Tc1];
sys1=tf(num1,den1);
sys2=sys1/s;%fort^2/2
sysc1=tf(numc,denc);
sysc2=sysc1/s;
te=15;%endtime
st=0.01;%step
t=0:
st:
te;
t=t';
y1=impulse(sys1,t);
y2=step(sys1,t);
y3=lsim(sys1,t,t);
y4=lsim(sys2,t,t);
yc1=impulse(sysc1,t);
yc2=step(sysc1,t);
yc3=lsim(sysc1,t,t);
yc4=lsim(sysc2,t,t);
y1d=zeros(te/st+1,1);%itisderivative
y2d=zeros(te/st+1,1);
y3d=zeros(te/st+1,1);
y4d=zeros(te/st+1,1);
fori=1:
(te/st-1)%calculatederivative
y1d(i)=(y1(i+1)-y1(i))/st;
y2d(i)=(y2(i+1)-y2(i))/st;
y3d(i)=(y3(i+1)-y3(i))/st;
y4d(i)=(y4(i+1)-y4(i))/st;
end
figure
(1);
plot(t,y1,'b',t,y2d,'r',t,yc1,'k--');
figure
(2);
plot(t,y2,'b',t,y3d,'r',t,yc2,'k--');
figure(3);
plot(t,y3,'b',t,y4d,'r',t,yc3,'k--');
figure(4);
plot(t,y4,'b',t,yc4,'k--');
绘图中蓝线为原图像,红线为另一响应曲线求导得到的曲线,黑线为修改K,T值后的曲线。
1.观察一阶系统输入单位脉冲、阶跃、斜坡、抛物线信号时的响应曲线
2.观察响应曲线求导后的关系
3.更改K,T,观察响应曲线的变化
(2)二阶系统仿真
二阶系统传递函数为G(S)=Wn^2/(S^2+2*y*Wn*s+Wn^2),代码如下
clc;
clearall;
closeall;
s=tf('s');
wn=1;
y=1;
wnc=3;%changed
yc=1;
numc=[wnc*wnc];
denc=[12*yc*wncwnc*wnc];
sysc1=tf(numc,denc);
sysc2=sysc1/s;
num1=[wn*wn];
den1=[12*y*wnwn*wn];
sys1=tf(num1,den1);
sys2=sys1/s;%fort^2/2
te=15;%endtime
st=0.01;%step
t=0:
st:
te;
t=t';
y1=impulse(sys1,t);
y2=step(sys1,t);
y3=lsim(sys1,t,t);
y4=lsim(sys2,t,t);
yc1=impulse(sysc1,t);
yc2=step(sysc1,t);
yc3=lsim(sysc1,t,t);
yc4=lsim(sysc2,t,t);
y1d=zeros(te/st+1,1);%itisderivative
y2d=zeros(te/st+1,1);
y3d=zeros(te/st+1,1);
y4d=zeros(te/st+1,1);
fori=1:
(te/st-1)%calculatederivative
y1d(i)=(y1(i+1)-y1(i))/st;
y2d(i)=(y2(i+1)-y2(i))/st;
y3d(i)=(y3(i+1)-y3(i))/st;
y4d(i)=(y4(i+1)-y4(i))/st;
end
[a,b,c,d,e,f,g]=value(y2,st);
figure
(1);
plot(t,y1,'b',t,y2d,'r:
',t,yc1,'k--');
figure
(2);
plot(t,y2,'b',t,y3d,'r:
',t,yc2,'k--');
legend(g,4);
figure(3);
plot(t,y3,'b',t,y4d,'r:
',t,yc3,'k--');
figure(4);
plot(t,y4,'b',t,yc4,'k--');
绘图中蓝线为原图像,红线为另一响应曲线求导得到的曲线,黑线为修改y,Wn值后的曲线。
1.观察二阶系统输入单位脉冲、阶跃、斜坡、抛物线信号时的响应曲线
2.观察响应曲线求导后的关系
3.更改y,Wn,观察响应曲线的变化
三、实验结果及分析
(1)一阶系统
对信号进行拉普拉斯变换,则u1(s)=1,u2(s)=1/s,u3(s)=1/s^2,u4(s)=1/s^3。
带入得y1(S)=k/(1+TS),y2(S)=k/(1+TS)/S,y3(S)=k/(1+TS)/S^2,y4(S)=k/(1+TS)/S^3。
y1(t)=k/T*exp(-t/T)
y2(t)=k-k*exp(-t/T)
y3(t)=k*t-T*k+T*k*exp(-t/T)
y4(t)=T^2*k+(k*t^2)/2-T^2*k*exp(-t/T)-T*k*t
1.K=1,T=1时
脉冲
阶跃
斜坡
抛物线
图像与对应的方程相同
2.各个信号和各个响应曲线间的关系
对响应曲线求导,发现图像性状相似,将相似的图像绘制到同一张图上。
脉冲信号的响应曲线和阶跃信号的响应曲线的求导曲线:
阶跃信号的响应曲线和斜坡信号的响应曲线的求导曲线:
斜坡信号的响应曲线和抛物线信号的响应曲线的求导曲线:
两条曲线(蓝、红)完全重合,由方程可知y1(t)=y2’(t)=k/t*exp(-t/T),y2(t)=y3’(t)=k-k*exp(-t/T),y3(t)=y4’(t)=k*t-T*k+T*k*exp(-t/T)。
二者存在导数关系。
验证了若f2(t)=f1’(t),则g2(t)=g1’(t)。
3.改变K值
K从1到10变化:
脉冲
阶跃
斜坡
抛物线
随着K值的增大,y1的初值成比例增大,y2、y3、y4的终值成比例增大,但是y1和y2的稳定时间没有变化,y3和y4上升到相应值的时间也没有变化。
y1(t),y2(t),y3(t),y4(t)的表达式中不难看出,k值的改变让y(t)增大了k倍,与图像相符。
4.改变T值
T从1到3变化:
脉冲
阶跃
斜坡
抛物线
y1的初值随T的增大而减小,衰减率随T的增大而减小。
y2的终值不变,ts随T的增大而增大。
y3的初始增长速度随T的增大而减小,增长速度最终相等。
y4的初值增长速度随T的增大而减小,增长速度最终相等。
这是由于
y1(t)=k/T*exp(-t/T),初值为k/T,衰减率为exp(-t/T)。
y2(t)=k-k*exp(-t/T),y2终值与T无关,而y2在某一时刻的值与t/T的值有关。
y3(t)=k*t-T*k+T*k*exp(-t/T),刚开始T*k*exp(-t/T)影响较大,随后影响较小。
y4(t)=T^2*k+(k*t^2)/2-T^2*k*exp(-t/T)-T*k*t,刚开始-T*k*t和-T^2*k*exp(-t/T)影响较大,随后影响减小。
(2)二阶系统
对信号进行拉普拉斯变换,则u1(s)=1,u2(s)=1/s,u3(s)=1/s^2,u4(s)=1/s^3。
带入得y1(s)=Wn^2/(s^2+2*y*Wn*s+Wn^2),y2(s)=Wn^2/(s^2+2*y*Wn*s+Wn^2)/s,
y(3)=Wn^2/(s^2+2*y*Wn*s+Wn^2)/s^2,y(4)=Wn^2/(s^2+2*y*Wn*s+Wn^2)/s^3。
y1(t)=(Wn*exp(-Wn*t*y)*sin(Wn*t*(1-y^2)^(1/2)))/(1-y^2)^(1/2)
y2(t)=1-exp(-Wn*t*y)*(cosh(Wn*t*(y^2-1)^(1/2))+(y*sinh(Wn*t*(y^2-1)^(1/2)))/(y^2-1)^(1/2))
y3(t)=t-(2*y)/Wn+(2*y*exp(-Wn*t*y)*(cosh(Wn*t*(y^2-1)^(1/2))-(sinh(Wn*t*(y^2-1)^(1/2))*(Wn*y+(-4*Wn*y^2+Wn)/(2*y)))/(Wn*(y^2-1)^(1/2))))/Wn
y4(t)=(4*y^2-1)/Wn^2+t^2/2-(2*t*y)/Wn-(exp(-Wn*t*y)*(cosh(Wn*t*(y^2-1)^(1/2))-(sinh(Wn*t*(y^2-1)^(1/2))*(Wn*y+(-8*Wn*y^3+4*Wn*y)/(4*y^2-1)))/(Wn*(y^2-1)^(1/2)))*(4*y^2-1))/Wn^2
1.Wn=1,y=1
脉冲
阶跃
斜坡
抛物线
2.各个信号和各个响应曲线间的关系
对响应曲线求导,发现图像性状相似,将相似的图像绘制到同一张图上。
脉冲信号的响应曲线和阶跃信号的响应曲线的求导曲线:
阶跃信号的响应曲线和斜坡信号的响应曲线的求导曲线:
斜坡信号的响应曲线和抛物线信号的响应曲线的求导曲线:
两条曲线(蓝、红)完全重合。
验证了若f2(t)=f1’(t),则g2(t)=g1’(t)。
3.改变Wn的值
Wn的值见右下角
Wn增大,ts减小,tr减小。
Wn减小,ts增大,tr增大。
Wn和ts以及tr成反比。
4.
改变y的值
y值和Wn的值在图片的右下角。
当y<0时,系统是发散的,随着y的减小,系统发散的程度增大。
当y=0时,系统处于临界状态。
当0ts与y近似的成反比。
当y≥1时,随着y的增大,ts增大,tr增大。
四、实验中存在的问题
1.用MATLAB对二阶系统做拉普拉斯逆变换得到的方程较为复杂,出现了双曲三角函数,难以像一阶系统一样的进行分析。
2.实验中直接改Wn,y的值便于分析,但却不能直接体现出参数之间的矛盾,需要通过Wn=sqrt(K/J),y=B/2*sqrt(1/T/K)推导得出。
将代码改为用K,B,J来定Wn和y或许更能体现这一点。
3.实验报告的图较多,浏览起来并不方便。