在学习《控制工程基础》第三章之时,总结整理复现课本MATLAB进行系统时间响应分析部分如下:
%%
% 借助MATLAB进行系统时间响应分析
% 1.连续时间系统的仿真函数
% 阶跃输入激励:step() [y,x]=step(sys,t) t为选定的仿真时间向量,
% 不加则为自动选择,该函数只返回数据,x为自动选择的状态变量的时间响应数据
% y为系统在各个仿真时刻的输出组成的矩阵
% 脉冲激励:impulse() 格式与step相同
% 任意输入激励:lsim() [y,x]=lsim(sys,u,t) u为给定输入构成的列向量,绘制曲线同step
% 绘制曲线则为step(sys,t)或step(sys)
% eg.单输入模型sys对u(t)=sin(t)在5s之内的输入响应仿真
num=[1 11 39 52 26]
den=[1 10 35 50 24]
sys=tf(num,den)
t=0:0.01:5;
u=sin(t)
lsim(sys,u,t)
% 2.离散时间系统
% dstep,dimpulse,dlsim格式与连续不完全相同,用help进行查看学习
% eg.绘制系统Xo(s)/Xi(s)=50/(25*s^2+2*s+1)的单位阶跃响应曲线
num=[0,0,50]
den=[25,2,1]
step(num,den)
grid
% eg.绘制系统Xo(s)/Xi(s)=50/(25*s^2+2*s+1)的单位脉冲响应曲线
num=[0,0,50]
den=[25,2,1]
impulse(num,den)
grid
% eg.绘制系统Xo(s)/Xi(s)=50/(25*s^2+2*s+1)的斜坡响应曲线
% 在MATLAB中没有斜坡响应命令,可利用阶跃响应命令求斜坡响应。
% 先用s除G(s),再利用阶跃响应命令。
% 单位斜坡输入量Xi(s)=1/s^2.则Xo(s)=50/((25*s^3+2*s^2+s)*s)
num=[0,0,0,50];
den=[25,2,1,0];
t=0:0.01:100;
step(num,den,t)
grid
%%
% 借助MATLAB进行系统时间响应分析
% 1.连续时间系统的仿真函数
% 阶跃输入激励:step() [y,x]=step(sys,t) t为选定的仿真时间向量,
% 不加则为自动选择,该函数只返回数据,x为自动选择的状态变量的时间响应数据
% y为系统在各个仿真时刻的输出组成的矩阵
% 脉冲激励:impulse() 格式与step相同
% 任意输入激励:lsim() [y,x]=lsim(sys,u,t) u为给定输入构成的列向量,绘制曲线同step
% 绘制曲线则为step(sys,t)或step(sys)
% eg.单输入模型sys对u(t)=sin(t)在5s之内的输入响应仿真
num=[1 11 39 52 26]
den=[1 10 35 50 24]
sys=tf(num,den)
t=0:0.01:5;
u=sin(t)
lsim(sys,u,t)
% 2.离散时间系统
% dstep,dimpulse,dlsim格式与连续不完全相同,用help进行查看学习
% eg.绘制系统Xo(s)/Xi(s)=50/(25*s^2+2*s+1)的单位阶跃响应曲线
num=[0,0,50]
den=[25,2,1]
step(num,den)
grid
% eg.绘制系统Xo(s)/Xi(s)=50/(25*s^2+2*s+1)的单位脉冲响应曲线
num=[0,0,50]
den=[25,2,1]
impulse(num,den)
grid
% eg.绘制系统Xo(s)/Xi(s)=50/(25*s^2+2*s+1)的斜坡响应曲线
% 在MATLAB中没有斜坡响应命令,可利用阶跃响应命令求斜坡响应。
% 先用s除G(s),再利用阶跃响应命令。
% 单位斜坡输入量Xi(s)=1/s^2.则Xo(s)=50/((25*s^3+2*s^2+s)*s)
num=[0,0,0,50];
den=[25,2,1,0];
t=0:0.01:100;
step(num,den,t)
grid