基于matlab理解学习连续时间系统的时域分析

前言

卷积积分是线性系统时域分析最基本的方法,为加深对线性系统时域分析的理解,下面先讨论卷积积分
所用matlab函数:
stepfun(t,t0) 阶跃函数,t0为起点为1;
conv(f1,f2) 卷积;
ezplot(dslove(‘微分方程’,‘零状态’),[A,B])函数ezplot无需数据准备,可以直接画出函数的图形;ezplot(f,[A,B]):f是关于x的函数(A<x<B) 且自动将函数表达式当做标题显示
sys=tf(b,a); 传输函数,分子的系数为b,分母的系数为a;
impulse(sys,t) 求其冲激响应;
step(sys,t) 求其阶跃响应;
y=lsim(sys,f,t,zi); 对系统输出进行仿真求其输入f的全响应,zi为初始条件 ;
1.分子分母形式:lsim(num,den,u,t);
2.传递函数形式:lsim(sys,u,t) ;
3.状态空间形式: [A B C D]=tf2ss(b,a); %将传递函数转换到状态空间表达式lsim(A,B,C,D,u,t) %然后求其响应
或者将状态空间用sys表示:sys=ss(A,B,C,D);lsim(sys,u,t)
不加zi初始条件,则是零状态响应;

卷积

在这里插入图片描述
这是卷积的表达式,
1.任意函数与冲激函数卷积等于函数本身
2.任意函数与冲激函数延迟t0卷积等于函数延迟t0
3.任意函数与阶跃函数卷积等于函数的积分
卷积的性质
1.交换律 2.分配率 3.结合律 4.时移性质 5.微积分性质
常用信号的卷积公式
在这里插入图片描述
例题来深入理解卷积
NO.1
用MATLAB画出门函数3[ε(t+1)–ε(t–2)]与指数函数2e–2t卷积的图形。
解:MATLAB程序如下:

%求f1和f2的卷积
T=0.01;
t1=-2:T:2;
t2=0:T:3;   %生成两个待卷积信号的时间向量
f1=3*(stepfun(t1,-1)-stepfun(t1,2));
f2=2*exp(-2*t2);
y=conv(f1,f2);
y=y*T;  **%卷积运算求的是重叠区域的值相乘求积分,即是面积,所以要乘上时间间隔**
t=-2:T:5;    **%序列y的非零值的宽度 m+n-1   t11+t21:t12:t22**
subplot(311)
plot(t1,f1);
axis([-2 5 min(f1) max(f1)+0.5]);
title('f1')
subplot(312)
plot(t2,f2);
axis([-2 5 min(f2) max(f2)+0.5]);
title('f2')
line([0,0],[0,max(f2)]);
subplot(313)
plot(t,y);
axis([-2 5 min(y) max(y)+0.5]);
title('卷积结果y')

在这里插入图片描述
NO.2
画出门函数[ε(t+1)–ε(t–2)]与门函数3[ε(t)–ε(t–2)]卷积的图形。
解:MATLAB程序如下:

%求f1和f2的卷积
T=0.01;
t1=-2:T:2;
t2=0:T:3;   %生成两个待卷积信号的时间向量
f1=(stepfun(t1,-1)-stepfun(t1,2));
f2=3*(stepfun(t2,0)-stepfun(t2,2));
y=conv(f1,f2);
y=y*T;  %卷积运算求的是重叠区域的值相乘求积分,即是面积,所以要乘上时间间隔
t=-2:T:5;    %序列y的非零值的宽度 m+n-1   t11+t21:t12:t22
subplot(311)
plot(t1,f1);
axis([-2 5 min(f1) max(f1)+0.5]);
title('f1')
subplot(312)
plot(t2,f2);
axis([-2 5 min(f2) max(f2)+0.5]);
title('f2')
line([0,0],[0,max(f2)]);
subplot(313)
plot(t,y);
axis([-2 5 min(y) max(y)+0.5]);
title('卷积结果y')

在这里插入图片描述
NO.3
在这里插入图片描述
求系统零输入响应

%求解系统的零输入响应
subplot(311);
ezplot(dsolve('D2y+5*Dy+6*y=0','y(0)=1,Dy(0)=-1'),[0 8])    %函数ezplot无需数据准备,可以直接画出函数的图形,画隐函数图形很方便
% ezplot(f,[A,B]):f是关于x的函数(A<x<B) 且自动将函数表达式当做标题显示
axis auto
subplot(312);
ezplot(dsolve('D2y+2*Dy+5*y=0','y(0)=2,Dy(0)=-2'),[0 8])
axis auto
subplot(313);
ezplot(dsolve('D3y+4*D2y+5*Dy+2*y=0','y(0)=0,Dy(0)=-1,D2y(0)=-1'),[0 8])
axis auto

在这里插入图片描述
NO.4
已知系统为i’’(t)+5i’(t)+6i(t)=e’(t),利用MATLAB求系统的冲激响应和阶跃响应。
解:求系统零状态响应的MATLAB程序如下:

%求解系统的冲激响应和阶跃响应
%D2i+5*Di+6*i=De
b=[1 0];
a=[1 5 6];
sys=tf(b,a);  %传输函数,分子的系数为b,分母的系数为a
t=0:0.1:10;
y=impulse(sys,t) %求其冲激响应
plot(t,y)
figure
y=step(sys,t) %求其阶跃响应
plot(t,y)

在这里插入图片描述
在这里插入图片描述
NO.5
利用MATLAB解方程y″(t)+4y′(t)+3y(t)=f′(t)+3f(t),f(t)=e–tε(t)的零状态响应。
解:求系统零状态响应的MATLAB程序为:

%求解y''(t)+4y'(t)+3y(t)=f'(t)+3f(t),f(t)=exp(-t)u(t) 零状态响应
 clear all;
 ts=0;te=10;dt=0.01;
 sys=tf([1 3],[1 4 3]);
 t=ts:dt:te;
 x=exp(-1*t);
 y=lsim(sys,x,t)                 %计算零状态响应?x为输入 t为时间向量
 plot(t,y);   
 xlabel('t(sec)');ylabel('y(t)');   
 axis([t(1) t(length(t)) -0.5 0.5]); 
 grid on;

在这里插入图片描述
NO.6
已知系统为y″(t)+y(t)=f(t),初始条件y′(0)=–1,y(0)=0,激励f(t)=cos2πt,利用MATLAB求系统的完全响应。

%求y''(t)+y(t)=f(t) y'(0)=-1 y(0)=0 f(t)=cos(2pit) 完全响应
clear;
b=[1];a=[1 0 1];       %b是分子的系数矩阵,a是分母的系数矩阵??    
sys=tf(b,a);    
t=0:0.1:30;
f=cos(t);
zi=[-1 0];   %初始条件
y=lsim(sys,f,t,zi);  %1.分子分母形式lsim(num,den,u,t)
%2.传递函数形式 lsim(sys,u,t)  3.状态空间形式lsim(A,B,C,D,u,t)  [A B C D]=tf2ss(b,a); sys=ss(A,B,C,D);  不加初始条件就是零状态响应
plot(t,y);   
xlabel('时间(t)');
ylabel('y(t)');   title('系统的全响应');   line([0,30],[0,0]);

在这里插入图片描述

  • 8
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值