连续时间系统分析及MATLAB实现
连续时间系统分析及MATLAB实现(实例) 摘自:张登奇,张璇.连续时间系统分析及MATLAB实现[J]. 电子技术, 2010,(11) 摘 要:创建微分方程是分析线性时不变连续时间系统的基础,时域分析和频域分析是系统分析的重要内容,拉普拉斯变换是分析系统的有效工具。文章介绍了系统模型的创建方法,并用拉普拉斯变换对连续时间系统进行了时域和频域分析,实例列举了MATLAB实现的程序。 2 连续系统的时域分析 连续系统的时域分析主要是求解系统在连续信号激励下的输出。一个线性时不变连续时间系统可以用线性常系数微分方程描述,对系统的时域分析可归结为如何利用数学方法对该方程求解。早期的经典法就是直接求解微分方程[2],得到与齐次解对应的自由响应和与特解对应的强迫响应。这种方法计算复杂、花时费力。利用拉氏变换可简化运算,间接求解微分方程。设LTI因果系统的微分方程一般式为: 一般从激励信号的加入时刻开始计时,起始状态(简称0- 状态)包含了计算未来响应的全部过去信息。对微分方程两边进行下限为0- 的单边带拉氏变换,利用拉氏变换的微分性质,并考虑到及其各阶导数都为0,得: 整理成形式,有: 根据系统的微分方程,可直接写出和,由系统的起始状态可算出,将系统输入进行拉氏变换可得到。系统函数,将系统函数进行拉氏反变换就是单位冲激响应;将进行拉氏反变换得到零输入响应;将进行拉氏反变换得到零状态响应;零输入响应与零状态响应的和即为全响应。整个分析过程均可用MATLAB实现。 实例3: 在实例2所描述的系统中,设输入为:,起始状态为:,试利用拉氏变换法计算并图示系统的单位冲激响应、零输入响应、零状态响应和全响应。 利用MATLAB实现时域分析的m程序如下: clc;close all;clear; syms s t %定义符号对象 a=[1,6,15,24];b=[0,0,2,4]; %系数向量,不足可在前面补0对齐 As=poly2sym(a, s ),Bs=poly2sym(b, s ),%将系数向量变为符号多项式 xt=10*exp(-0.5*t)*heaviside(t), %定义输入 Xs=laplace(xt),%输入拉氏变换 y0=[1,0,-12];%定义起始状态 %求Cs,注意系数标号与变量下标的关系 n=length(a)-1;Cs=0; for k=1:n; for r=0:(k-1);Cs = Cs+a(n-k+1)*y0(r+1)*s^(k-1-r); end end Cs,%显示Cs符号多项式 ht=ilaplace(Bs/As);ht1=vpa(ht,4),pretty(ht1),%求冲激响应,保留4位有效数字,输出便读式 yzit=ilaplace(Cs/As);yzit1=vpa(yzit,4),pretty(yzit1),%求零输入响应 yzst=ilaplace(Bs*Xs/As);yzst1=vpa(yzst,4),pretty(yzst1),%求零状态响应 yt=yzit1+yzst1,pretty(yt), %计算全响应的解析解 %绘图程序: t1=linspace(0,5,100);%在0到5秒取100个时点 ht2=subs(ht1,t,t1);%利用置换函数求冲激响应各时点的数值解 subplot(2,1,1);plot(t1,ht2),%绘冲激响应 xlabel( 时间(秒) ),ylabel( 幅度 ),%加标签 grid,title( 系统冲激响应 ),%加网格和标题 yzit2=subs(yzit1,t,t1);%求零输入响应 subplot(2,1,2);plot(t1,yzit2, k: ),%绘零输入响应 yzst2=subs(yzst1,t,t1);%求零状态响应 hold on;plot(t1,yzst2, r-. ),%同窗绘零状态响应 yt2=subs(yt,t,t1);%求全响应 plot(t1,yt2, b- ),%同窗绘全响应 legend( 零输入 , 零状态 , 全响应 ,0),%加响应图例,位置自动最佳 xlabel( 时间(秒) ),ylabel( 幅度 ),%加标签 grid,title( 系统响应 ),%加网格和标题 程序运行结果图示如下。注意利用ilaplace函数计算各响应时域解析式时,输出结果一般还要进行手工合并处理。 3