1 连续时间系统的表示
大部分连续时间线性时不变系统都可以用常系数线性微分方程表示;在MATLAB中,一般用tf函数来建立,调用格式为:
s
y
s
=
t
f
(
b
,
a
)
sys=tf(b,a)
sys=tf(b,a)
其中b,a分别指输入输出信号的系数向量。
如描述系统 y ′ ′ ( t ) + 3 y ′ ( t ) + 2 y ( t ) = x ′ ( t ) y''(t)+3y'(t)+2y(t)=x'(t) y′′(t)+3y′(t)+2y(t)=x′(t)时,在命令行中输入以下内容:
>> a=[1,3,2];
>> b=[1,0];
>> sys=tf(b,a)
就可以得到以微分算子
s
s
s表示的系统函数
H
(
s
)
=
s
2
+
3
s
+
2
H(s)=s^{2}+3s+2
H(s)=s2+3s+2
2 连续时间系统的零状态响应
零状态响应则是指在系统的初始状态为零(即系统开始时没有任何能量存储)的情况下,由外部输入信号引起的系统响应。这种响应完全由输入信号的特性和系统的特性共同决定。例如,当一个电路的开关闭合,电容器开始充电时,电容器上的电压随时间变化的响应就是零状态响应。
利用控制系统工具箱中的
l
s
i
m
lsim
lsim函数求解,调用格式为:
l
s
i
m
=
(
s
y
s
,
u
,
t
,
x
0
)
lsim=(sys,u,t,x0)
lsim=(sys,u,t,x0)
其中u为输入信号;t为时间抽样值;向量x0表示系统的初始状态,当x0=0时,得到的结果就是零状态响应
如系统的微分方程为 y ′ ′ ( t ) + 3 y ′ ( t ) + 2 y ( t ) = x ′ ( t ) y''(t)+3y'(t)+2y(t)=x'(t) y′′(t)+3y′(t)+2y(t)=x′(t),输入信号为 x ( t ) = 2 e − 3 t u ( t ) x(t)=2e^{-3t}u(t) x(t)=2e−3tu(t),求系统的零状态响应:
%求一个x(t)信号在系统里的零状态响应
clc;clear;close all; %清除命令行窗口、变量、图形窗口
a=[1,3,2]; %输出信号的系数向量
b=[1,0]; %输入信号的系数向量
sys=tf(b,a); %系统函数
dt=0.01; %定义时间间隔为0.01
t =0:dt:10; %时域自变量
Xt =2*exp(-3*t); %X(t)输入信号
yzs=lsim(sys,Xt,t,0); %零状态响应
subplot(1,2,1);plot(t,Xt); %绘制x(t)信号
xlabel('t');title('x(t)信号'); %X轴标签,Figure标题
subplot(1,2,2);plot(t,yzs); %绘制零状态响应
xlabel('t');title('零状态响应'); %X轴标签,Figure标题
3 连续时间系统的零输入响应
零输入响应是指在没有外加激励(输入)的情况下,仅由系统的初始状态(如电容器的初始电荷或电感器的初始电流)引起的系统响应。这种响应完全取决于系统的初始能量状态,并且随着时间的推移而衰减。例如,一个充电的电容器通过电阻放电的过程就是一个典型的零输入响应例子。
利用
d
s
o
l
v
e
dsolve
dsolve函数求得解析解。调用格式为:
S
=
d
s
o
l
v
e
(
e
q
u
,
c
o
n
d
)
S=dsolve(equ,cond)
S=dsolve(equ,cond)
其中equ为方程,cond为初始条件
如系统的微分方程为 y ′ ′ ( t ) + 3 y ′ ( t ) + 2 y ( t ) = x ′ ( t ) y''(t)+3y'(t)+2y(t)=x'(t) y′′(t)+3y′(t)+2y(t)=x′(t),初始条件为 y ( 0 − ) = 0 , y ′ ( 0 − ) = − 5 y(0^{-})=0 ,y'(0^{-})=-5 y(0−)=0,y′(0−)=−5,求该系统的零输入响应:
clc;clear;close all; %清除命令行窗口、变量、图形窗口
yzi=dsolve('D2y+3*Dy+2*y','y(0)=0','Dy(0)=-5'); %解析解
fplot(yzi,[0 10]);title('零输入响应'); %绘制
4 连续时间系统的冲激响应与阶跃响应
冲激响应:
冲激响应,也称为单位冲激响应,是指系统对狄拉克冲激函数(δ(t))的响应。狄拉克冲激函数是一个理想化的函数,它在除了零以外的所有点上都是零,但在全时间上的积分为1。冲激响应是系统固有的特性,反映了系统对突变的响应能力。在数学上,冲激响应通常用h(t)表示。
冲激响应的特性:
- 它是一个系统的固有响应,与输入信号无关。
- 它可以用来通过卷积来确定系统对任何其他输入信号的响应。
阶跃响应:
阶跃响应是指系统对单位阶跃函数(u(t))的响应。单位阶跃函数是一个在t=0时从0跳变到1的函数,并且在t>0时保持为1。阶跃响应描述了系统从零状态开始,对一个恒定输入信号的响应。在数学上,阶跃响应通常用s(t)表示。
阶跃响应的特性:
- 它显示了系统从零状态开始,对一个恒定输入信号的响应。
- 它可以用来分析系统的稳定性和暂态行为。
冲激响应和阶跃响应之间的关系:
- 冲激响应是阶跃响应的导数。如果一个系统的阶跃响应是s(t),那么它的冲激响应h(t)是s(t)的导数。
- 阶跃响应可以通过冲激响应的积分来获得。
如系统的微分方程为 y ′ ′ ( t ) + 3 y ′ ( t ) + 2 y ( t ) = x ′ ( t ) y''(t)+3y'(t)+2y(t)=x'(t) y′′(t)+3y′(t)+2y(t)=x′(t),求该系统的冲激响应与阶跃响应:
clc;clear;close all; %清除命令行窗口、变量、图形窗口
a=[1,3,2]; %输出信号的系数向量
b=[1,0]; %输入信号的系数向量
sys=tf(b,a); %系统函数
dt=0.01; %定义时间间隔为0.01
t =0:dt:10; %时域自变量
ht=impulse(sys,t); %冲激响应
st=step(sys,t); %阶跃响应
subplot(1,2,1);plot(t,ht); %绘制冲激响应
xlabel('t');title('冲激响应'); %X轴标签,Figure标题
subplot(1,2,2);plot(t,st); %绘制阶跃响应
xlabel('t');title('阶跃响应'); %X轴标签,Figure标题