实验二 MATLAB用于时域分析
一、 实验目的
通过使用MATLAB完成系统的输出响应分析、稳定性分析、求动态性能指标以及稳态误差分析等工作。 二、 实验原理
在MATLAB中,可以通过单输入单输出系统的传递函数,进行系统的脉冲响应,阶跃响应以及一般输入响应等时域分析。用到以下函数: 单位阶跃响应 step(num,den,t) 单位脉冲响应impluse(num,den,t) 一般输入响应 y=Isim(num,den,u,t)
时间t是事先定义的矢量,u为输入信号。此外,还可以求出系统的超调量,调节时间以及稳态误差。
SIMULINK是MATLAB的一个附加组件,用来提供一个系统的建模、动态仿真及综合分析的工作平台。SIMULINK模型可以用来模拟线性或非线性、连续或离散,或者两者混合的系统,即可用它来模拟几乎所有的动态系统。 三、 实验内容
通过MATLAB以及其中的SIMULINK完成系统的输出响应分析、稳定性分析、求动态性能指标以及稳态误差分析等工作。 四、 实验代码 1、
一阶系统响应
sys1=tf([100],[1 0]); sys2=tf([0.1],[1]); sys=feedback(sys1,sys2);
2、
step(sys) 二阶系统响应 wn=1 t=0:0.1:12; num=[1]; zeta1=0;
den1=[1 2*zeta1 1]; zeta3=0.3;
den3=[1 2*zeta3 1]; zeta5=0.5;
den5=[1 2*zeta5 1]; zeta7=0.7;
den7=[1 2*zeta7 1]; zeta9=1.0;
den9=[1 2*zeta9 1]; [y1,x,t]=step(num,den1,t); [y3,x,t]=step(num,den3,t); [y5,x,t]=step(num,den5,t); [y7,x,t]=step(num,den7,t); [y9,x,t]=step(num,den9,t); plot(t,y1,t,y3,t,y5,t,y7,t,y9)
3、
grid on; 稳定性分析 den=[1 1 2 24]; roots(den) 求动态性能指标 t=0:0.01:2; num=[1000]'; den=[1 34.5 1000]; [y,x,t]=step(num,den,t); plot(t,y); maxy=max(y); yes=y(length(t)); pos=100*(maxy-yes)/yes for i=1:1:201 if y(i)==maxy,n=i;end end
tp=(n-1)*0.01 for i=1:1:201
if(y(i)<1.05&y(i)>0.95),n=i;end break; end
5、
ts=(n-1)*0.01 稳态误差分析 t=0:0.1:15;
[num1,den1]=cloop([1],[1 1]); [num2,den2]=cloop([1],[1 1 0]); [num3,den3]=cloop([4 1],[1 1 0 0]); y1=impulse(num1,den1,t);
4、
y2=impulse(num2,den2,t); y3=impulse(num3,den3,t); subplot(311);plot(t,y1); subplot(312);plot(t,y2); subplot(313);plot(t,y3); er1=0-y1(length(t)) er2=0-y2(length(t))
6、
er3=0-y3(length(t))
求单位阶跃响应及其稳态误差 t=0:0.1:20
[num1,den1]=cloop([1],[1 1]); [num2,den2]=cloop([1],[1 1 0]); [num3,den3]=cloop([4 1],[1 1 0 0]); y1=step(num1,den1,t); y2=step(num2,den2,t); y3=step(num3,den3,t); subplot(311);plot(t,y1); subplot(312);plot(t,y2); subplot(313);plot(t,y3); er1=1-y1(length(t)); er2=1-y2(length(t));
7、
er3=1-y3(length(t));
求单位斜坡响应及其稳态误差 t=0:0.1:20; t1=0:0.1:100;
[num1,den1]=cloop([1],[1 1]); [num2,den2]=cloop([1],[1 1 0]); [num3,den3]=cloop([4 1],[1 1 0 0]); y1=step(num1,[den1 0],t1); y2=step(num2,[den2 0],t); y3=step(num3,[den3 0],t); subplot(311);plot(t1,y1,t1,t1); subplot(312);plot(t,y2,t,t); subplot(313);plot(t,y3,t,t); er1=t1(length(t1))-y1(length(t1)) er2=t(length(t))-y2(length(t))
8、
er3=t(length(t))-y3(length(t)) 实例分析
kp=[0.11 6]; t=[0:0.01:1]; num1=303.03*kp(1);
den1=[0.00001 0.00633 0.20167 21.21*kp(1)+1]; y1=step(num1,den1,t); num2=303.03*kp(2);
den2=[0.00001 0.00633 0.20167 21.21*kp(2)+1]; y2=step(num2,den2,t); subplot(211);plot(t,y1); subplot(212);plot(t,y2); gtext('kp=0.11');
9、
gtext('kp=6');
SIMULINK用于系统仿真
五、 实验结果 1、
一阶系统响应
2、
二阶系统响应
3、
稳定性分析
4、
求动态性能指标
5、
稳态误差分析