3.6 用Matlab 进行动态响应分析
利用Matlab 可方便地进行控制系统的时域分析。若读者对Matlab 的基本功能尚不了解,请先阅读本书的附录部分。
3.6.1绘制响应曲线
Matlab 提供了求取线性定常连续系统单位脉冲响应和单位阶跃响应的函数。分别为impulse ,step 。对单位斜坡响应,可间接求取。
如果已知闭环传递函数的分子num 与分母den ,则命令
impulse (num ,den ),impulse (num ,den ,t )
将产生单位脉冲响应曲线。命令
step (num ,den ),step (num ,den ,t )
将产生单位阶跃响应曲线。(t 为用户指定时间)
例3-5 用Matlab 绘制系统25
425)()()(2++==
Φs s s R s C s 的单位阶跃响应曲线。 解 首先得到模型,再绘制阶跃响
应曲线。 Matlab Program 3-1
num=[0 0 25];%分子多项式系数
den=[1 4 25];%分母多项式系数
step(num,den);%产生阶跃响应
grid; title(‘unit-step response of 25/(s^2+4s+25)’); %添加标题
程序运行结果如图3-20所示。
若希望求取单位脉冲响应曲线,只需将step(num,den)命令改成impulse (num ,den )函数即可。
图3-20 单位阶跃响应曲线
Matlab 中没有直接求取单位斜坡响应的命令,我们可利用单位斜坡函数为单位阶跃函数的积分来间接求得单位斜坡响应。方法是将待求系统传递函数乘以积分因子1/s ,求其单位阶跃响应,即为原系统的单位斜坡响应。利用该方法也可通过单位脉冲响应命令来求取系统的单位阶跃响应。
例如,求系统
25
425)()()(2++==Φs s s R s C s 的单位斜坡响应曲线。此时,系统输出的
拉氏变换为
s
s s s s s s s C 1)254(25125425)(222?++=?++=
为此,求该系统单位斜坡响应曲线的程序
如下: Matlab Program 3-2
num=[0 0 0 25];
den=[1 4 25 0];
step(num,den,3)
grid
title('unit-step response of 25/(s^2+4s+25)');
程序运行结果如图3-21所示。
3.6.2 阶跃响应性能分析
当阶跃命令左端含有变量时,如
[y,x,t]=step (num,den,t )
将不会显示响应曲线。阶跃响应的输出数据将保存在y 中,t 中保存各采样时间点。若希望绘制响应曲线,可采用plot 命令。
图3-21 单位斜坡响应曲线
当需要计算阶跃响应性能指标时,可根据各指标的定义,结合y 和t 中保存的数据,来计算各项性能指标。
例3-6 用Matlab 求系统25
425)()()(2++==Φs s s R s C s 的单位阶跃响应性能指标:上升时间、峰值时间、调节时间和超调量。
解 返回阶跃响应的数据点,再利用性能指标的定义逐一求取性能指标。 Matlab Program 3-3
num=[0 0 25];
den=[1 4 25];
[y,x,t]=step(num,den);
%求响应曲线的最大值
[peak,k]=max(y);
%计算超调量
overshoot=(peak-1)*100
%求峰值时间
tp=t(k)
%求上升时间
n=1;
while y(n)<1
n=n+1;
end
tr=y(n)
%求调节时间
m=length(t)
while(y(m)>0.98)&(y(m)<1.02)
m=m-1;
end
ts=t(m)
3.6.3 应用Simulink 进行仿真
Simulink 是一个可视化动态系统仿真环境。使用Simulink 可分析非常复杂的控制系统;而且,可以方便地分析系统参数变化对其性能的影响。
关于Simulink 的详细介绍参见附录Ⅱ,本节以一简单的例子说明Simulink 的建模和仿真过程。
例3-7 控制系统结构图如图3-22所示,试在Simulink 环境下构建系统方框图,并对系统的阶跃响应进行仿真。
解
第一步:进入Simulink 环境。
在Matlab 命令窗口键入simulink ,或直接点击命令窗口工具栏的simulink 图标
,即
可进入simulink 环境。
第二步:新建文件并构建开环系统。
点击“File ”菜单下“New →Model ”菜单项或直接点击新建工具栏,产生一空白“.mdl ”文件。
在元件库左侧点开simulink 项,点击Continuous ,进入连续系统元件库。在该界面选择“Transfer Fun ”的图标,按住鼠标左键,拖至新建的“.mdl ”文件。在“.mdl ”文件中双击该图标,修改参数为Numerator[5](分子多项式系数的排列),Denominator[1 5](分子多项式系数的排列),形成方框5+s 5。 图3-22 控制系统结构图
重复以上过程,形成方框
2s 5.1s 2++2。
第三步:选取输入信号 进入“Sources ”元件库,选取“step ”信号,将其拖至所建的“.mdl ”文件。可双击图标设置仿真初始时间和阶跃幅值。
第四步:选择输出方式
进入“Sinks ”元件库,选择采取何种方式输出。本例选择“Scope ”,即示波器。读者可根据需要选择其它的输出方式。
第五步:连接各元件
为了形成负反馈,还需从“Math operations ”元件库中找到“Sum ”图标,拖至“.mdl ”文件,并将“List of signs ”栏改为“+ -”。“+”端接输入信号,“-”端接反馈信号。
元件的连接非常简单,只需用鼠标在需连接的部分画线即可。这样,系统模型就建立起来了,接下来可以进行系统仿真了。
第六步:系统仿真
点击“.mdl ”文件窗口的“Simulation ”菜单下“start ”菜单项或直接点击“start Simulation ”工具栏,Simulink 即自动运行所搭建的系统。
运行结束后,双击“Scope ”即可看到系统阶跃响应曲线。
PID参数的整定
书上的常用口诀:
参数整定找最佳,从小到大顺序查;先是比例后积分,最后再把微分加;曲线振荡很频繁,比例度盘要放大;曲线漂浮绕大湾,比例度盘往小扳;曲线偏离回复慢,积分时间往下降;曲线波动周期长,积分时间再加长;曲线振荡频率快,先把微分降下来;动差大来波动慢。微分时间应加长