MATLAB求系统的稳态响应怎么求响应!

0. 原由
工科的同学对阶跃响应应该不会陌生,简单来说,阶跃响应是指输入量发生阶跃变化时动态系统的输出响应特性,通过分析输出阶跃响应的性能指标,可以分析和比较动态系统的动态性能和稳态性能。1. 定义
阶跃响应性能指标主要包括稳态值、上升时间、峰值时间和超调量,定义如下:稳态值 y_s :当时间趋近于无穷大时,阶跃响应的输出值, y_s=y(\infty) 。上升时间 t_r :输出阶跃响应达到90%稳态值时所对应的时刻。峰值时间 t_m :输出阶跃响应峰值 y_m 所对应的时刻。超调量 \sigma :输出阶跃响应峰值 y_m 与稳态值 y_s 之差所占稳态值 y_s 的百分比, \sigma
= (y_m-y_s) / y_s 。调整时间 t_s :输出阶跃响应进入稳态值 y_s\pm\Delta 误差带范围内所对应的时刻, 一般取 \Delta=0.02 或 \Delta=0.05 。2. 函数按照阶跃响应性能指标的定义,笔者使用Matlab开发了函数Fun_Step_Performance.m,使用数值算法求出各类阶跃响应的性能指标值,函数简单、易用、通用性好。function [ys,tr,ts,tm,ov] = Fun_Step_Performance(t,y,drawflag)
% [ys,tr,ts,ov] = Fun_Step_Performance(t,y) 标准阶跃响应的性能指标求解
% 本程序适用于标准阶跃响应曲线,末尾时间必须已经接近稳态值
% t-y 为阶跃响应的时间-输出配对序列,可由[y,t] = step(sys)求得
% drawflag为时候作图标志,不输入或输入非0值时,默认作图,输入0时不做图
% ys 稳态值
% tr 上升时间,默认为0-90%的上升时间
% ts 调整时间,默认为2%的调整时间
% tm 为峰值时间
% ov 超调量 %
% e.g.
%
sys = tf(1,[1 2*0.5*1 1]);
%
[y,t] = step(sys,15);
%
[ys,tr,ts,tm,ov] = Fun_Step_Performance(t,y,1);3. 演示3.1 一阶系统阶跃响应性能指标% Eg 1 一阶系统
sys = tf(1,[3 1]);
[y,t] = step(sys,25);
[ys,tr,ts,tm,ov] = Fun_Step_Performance(t,y);%% 阶跃响应指标结果: 上升时间:7s调整时间:11.5s峰值时间:25s , 超调量:0% 稳态值:1%% 阶跃响应指标结果显示结束3.2 求复杂系统阶跃响应性能指标 % 5阶系统
sys = tf(1,[1 2*0.20*1 1]) * tf(1,[2 1]) * tf([1.5 1],[1 2*0.25*3 9]);
[y,t] = step(sys,35);
[ys,tr,ts,tm,ov] = Fun_Step_Performance(t,y);%% 阶跃响应指标结果:上升时间:2.0877s调整时间:17.3158s峰值时间:3.5614s,超调量:40.1285%稳态值:0.111%% 阶跃响应指标结果显示结束3.3 不同阻尼比时二阶系统的阶跃响应性能指标% Eg 3 求解不同阻尼比时二阶系统的阶跃响应特性
wn = 1;
% 固有频率
kes_vet = [0.2 0.4 0.6 0.8 1 1.2];
% 阻尼比序列
figure
hold on
for ii = 1:length(kes_vet)
kes = kes_vet(ii);
sys = tf(1,[1 2*kes*wn wn^2]);
% 二阶系统传递函数
[y,t] = step(sys,50);
% 阶跃响应
[ys(ii),tr(ii),ts(ii),tm(ii),ov(ii)] = Fun_Step_Performance(t,y,0);
% 求解阶跃响应,不绘图
plot(t,y)
Str{ii} = [ '\xi = '
num2str(kes)];
end
legend(Str)
xlabel('时间t/s')
ylabel('输出响应y')阻尼比0.20.40.60.81.01.0上升时间1.83492.07372.45402.99544.00004.9407调整时间19.26618.29495.82823.68665.50007.9051峰值时间3.21103.45623.98775.1843//超调量52.662225.37259.46101.5144//对于二阶系统,阻尼比的变化不影响输出稳态值,随着阻尼比增加,上升时间逐步增大、调整时间先减小再增大、峰值时间逐步变大、超调量逐步变小;当阻尼比在0.707左右时,上升时间和调整时间较快,且超调量很小,系统综合性能较好,工程上通常设计阻尼比在0.707左右,称之为最佳阻尼比。源程序下载
《信号与系统matlab实验3连续时间LTI分析》由会员分享,可在线阅读,更多相关《信号与系统matlab实验3连续时间LTI分析(13页珍藏版)》请在人人文库网上搜索。1、实验三连续时间LTI系统分析姓名学号班级 通信一班一、实验目的(一)掌握使用Matlab 进行连续系统时域分析的方法1、学会使用符号法求解连续系统的零输入响应和零状态响应2、学会使用数值法求解连续系统的零状态响应3、学会求解连续系统的冲激响应和阶跃响应(二)掌握使用Matlab 进行连续时间LTI系统的频率特性及频域分析方法1、学会运用 MATLAB分析连续系统地频率特性2、学会运用 MATLAB进行连续系统的频域分析(三)掌握使用Matlab 进行连续时间LTI系统 s 域分析的方法1、学会运用 MATLAB求拉普拉斯变换( LT)2、学会运用 MATLAB求拉普拉斯反变换( ILT)3、学。2、会在 MATLAB环境下进行连续时间LTI系统 s 域分析二、实验原理及实例分析(一)连续系统时域分析(详细请参见实验指导第二部分的第5 章相关部分)(二)连续时间LTI系统的频率特性及频域分析(详细请参见实验指导第二部分的第8 章相关部分)(三)拉普拉斯变换及连续时间系统的s 域分析(详细请参见实验指导第二部分的第10、11 章相关部分)三、实验过程(一)熟悉三部分相关内容原理(二)完成作业已知某系统的微分方程如下:r (t)3r (t )2r (t)e (t )3e(t )其中,e(t )为激励,r (t)为响应。1、用 MATLAB命令求出并画出e(t)e3tu(t),r (0)1,r 。3、(0 )2 时系统的零状态响应和零输入响应( 零状态响应分别使用符号法和数值法求解,零输入响应只使用符号法求解); eq=D2y+3*Dy+2*y=0; cond=y(0)=1,Dy(0)=2; yzi = dsolve(eq,cond);yzi = simplify(yzi); eq1 = D2y+3*Dy+2*y=Dx+3*x;eq2 = x= exp(-3*t)*Heaviside(t);cond = y(-0.01)=0,Dy(-0.001)=0;yzs = dsolve(eq1,eq2,cond);yzs = simplify(yzs.y)yzs =heaviside(t)*(-ex。4、p(-2*t)+exp(-t) yt = simplify(yzi+yzs) yt =-3*exp(-2*t)+4*exp(-t)-exp(-2*t)*heaviside(t)+exp(-t)*heaviside(t) subplot(3,1,1); ezplot(yzi,0,8);grid on; title (rzi); subplot(3,1,2); ezplot(yzs,0,8); grid on; title(rzs); subplot(3,1,3); ezplot(yt,0,8);grid on; title( 完全响应 )sys = tf(1,3,1,3,2);t = ts:dt。5、:te;f = exp(-3*t).*uCT(t);y = lsim(sys,f,t);plot(t,y),grid on;axis(0,8,-0.02,0.27);xlable(Time(sec),ylable(y(t);title( 零状态响应 )2、 r(t ) 3r(t ) 2r (t )e (t)3e(t)e(t )e 3t u(t ),r (0 ) 1,r (0) 2使用 MATLAB命令求出并画出 系统的冲激响应和阶跃响应(数值法) ;用卷积积分法 求系统的零状态响应并与(1)中结果进行比较;t = 0:0.001:4;sys = tf(1,3,1,3,2);h = impuls。6、e(sys,t);g = step(sys,t);subplot(2,1,1);plot(t,h),grid on;xlable(Time(sec),ylable(h(t);title( 冲激响应 );subplot(2,1,2);plot(t,g),grid on;xlable(Time(sec),ylable(g(t);title ( 阶跃响应 )_dt = 0.01;t1 = 0:dt:8;f1=exp(-3*t1);t2 = t1;sys = tf(1,3,1,3,2);f2 = impulse(sys,t2);t,f= ctsconv(f1,f2,t1,t2,dt)functionf。7、,t = ctsconv(f1,f2,t1,t2,dt)f = conv(f1,f2);f = f*dt;ts = min(t1)+min(t2);te = max(t1)+max(t2);t = ts:dt:te;subplot(1,1,1)plot(t,f);grid on;axis(min(t),max(t),min(f)-abs(min(f)*0.2),max(f)+abs(max(f)*0.2);title( 卷积结果 )3、 r (t)3r (t )2r (t)e (t)3e(t )使用 MATLAB 命令求出并画出 此系统的幅频特性和相频特性;使用频域分析法 求解系统的零状态响应。8、并与( 1)中结果进行比较; w = -3*pi:0.01:3*pi; b = 1,3;a = 1,3,2;H = freqs(b,a,w); subplot(2,1,1); plot(w,abs(H),grid on; xlabel(omega(rad/s),ylabel(|H(omega)|);title (H(w) 的幅频特性 );subplot(2,1,2);plot(w,angle(H),grid on;xlabel(omega(rad/s),ylabel(phi(omega);title(H(w) 的相频特性 )H = sym(1/(i2*w2+3*i*w+2);H= simpli。9、fy(ifourier(H);subplot(3,1,1);ezplot(H,0,8),grid on;title( 零状态响应 )4、 r (t )3r (t ) 2r (t ) e (t)3e(t)使用命令求出并画出 e(t)cos 2t 时系统的稳态响应;MATLABt = 0:0.1:20;w = 2;H = (j*w+3)/(j2*w2+3*j*w+2);f = cos(2*t);y = abs(H)*cos(w*t+angle(H);subplot(2,1,1);plot(t,f);grid on;ylabel(f(t),xlabel(Time(s);title( 输入信号的波形 。10、);subplot(2,1,2);plot(t,y);grid on;ylabel(y(t),xlabel(Time(sec);title( 稳态响应的波形 )5、 r (t )3r (t )2r (t )e (t)3e(t)若已知条件同( 1),借助 MATLAB符号数学工具箱实现拉普拉斯正反变换的方法求出并画出 e(t)e 3t u(t),r (0 )1,r (0)2 时系统的零状态响应和零输入响应,并与(1)的结果进行比较。 syms t sYzis = (s+5)/(s2+3*s+2);yzi= ilaplace(Yzis)yzi =-3*exp(-2*t)+4*exp(-t) xt 。11、= exp(-3*t)*Heaviside(t); Xs = laplace(xt);Yzss = (3+s)*Xs/(s2+3*s+2);yzs = ilaplace(Yzss)yzs =2*exp(-3/2*t)*sinh(1/2*t) yt = simplify(yzi+yzs) yt =-3*exp(-2*t)+4*exp(-t)+2*exp(-3 /2*t)*sinh(1 /2*t) ts = 0:0.1:20;yzil = -3*exp(-2*ts)+4*exp(-ts); yzsl =2*exp(-3/2*ts).*sinh(1/2*ts);ytl =-3*exp(-2*ts)+。12、4*exp(-ts)+2*exp(-3/2*ts).*sinh(1/2*ts); subplot(3,1,1);plot(ts,yzil);grid on; title( 零输入 ); subplot(3,1,2); plot(ts,yzsl);grid on; title( 零状态 ); subplot(3,1,3); plot(ts,ytl);grid on; title( 全响应 );(三)补充作业已知某二阶因果连续 LTI系统的方框图如题7 图所示,2e(t) + +r (t )3 + +-7-10题 7 图其中 e(t ) 是激励信号, r (t ) 是系统响应,且同时已知e(t )。13、e 2 t u(t ) , r (0 )r (0 )1,试求解系统的零输入响应rzi (t ) ,零状态响应 rzs (t ) 和全响应 r (t) 。eq=D2y+7*Dy+10*y=0;cond=y(0)=1,Dy(0)=1;yzi=dsolve(eq,cond);yzi=simplify(yzi)eq1=D2y+7*Dy+10*y=2*Dx+3*x;eq2=x=exp(-2*t)*Heaviside(t);cond=y(-0.001)=0,Dy(-0.001)=0;yzs=dsolve(eq1,eq2,cond);yzs=simplify(yzs.y)yt=simplify(yzi+yzs)subplot(311)ezplot(yzi,0,8);grid onaxis(0,3.5,0,1.5)title( 零输入响应 )subplot(312)ezplot(yzs,0,8);grid onaxis(0,3.5,0,0.3)title( 零状态响应 )subplot(313)ezplot(yt,0,8);grid onaxis(0,3.5,0,1.5)title( 完全响应 )四、实验结论和讨论使用时域分析和频域分析得到的系统响应是一样的,用时域需要卷积, 在频域相乘就可以了。五、实验思考需要注意ifourier 的参数选取。
**实验二**实验内容题目一:clear all;
ts=0;te=5;dt=0.01;
num=[0 3 2];
den=[1 5 6];
sys=tf(num,den);
t=ts:dt:te;
y=impulse(sys,t);
plot(t,y);grid;xlabel('time(sec)');ylabel('h(t)')
题目二:clear all;
ts=0;te=5;dt=0.01;
num=[0 0 1];
den=[2 1 8];%zuo
sys=tf(num,den);
t=ts:dt:te;
y=impulse(sys,t);
subplot(1,2,1)
plot(t,y);grid;xlabel('time(sec)');ylabel('h(t)')
subplot(1,2,2)
step(num,den);
axis([-5 30 0 0.4])
题目三:t1=-1:0.01:3;
t2=0:0.01:4;
f1=1.*(t1>1)-1.*(t1>2);
f2=1.*(t2>2)-1.*(t2>3);
c=0.01*conv(f1,f2);
t3=-1:0.01:7;
subplot(3,1,1);plot(t1,f1);grid
subplot(3,1,2);plot(t2,f2);grid
subplot(3,1,3);plot(t3,c);grid
题目四:4.1:clear all;
ts=0;te=5;dt=0.01;
a=[0 1 5];
b=[0 3 0];
sys=tf(b,a);
t=ts:dt:te;
y=impulse(sys,t);
plot(y,t)
4.2:clear all;
ts=0;te=5;dt=0.01;
a=[1 2 1];
b=[0 2 0];
sys=tf(b,a);
t=ts:dt:te;
y=exp(2*t).*(t>0);
lsim(sys,y,t)

我要回帖

更多关于 系统的稳态响应怎么求 的文章