基于MATLAB控制系统的校正设计
1实验目的
① 掌握串联校正环节对系统稳定性的影响。
② 了解使用SISO系统设计工具(SISO Design Tool)进行系统设计。
2 设计任务
串联校正是指校正元件与系统的原来部分串联,如图1所示。
图1串联校正图
图中,Gc?s?表示校正部分的传递函数,Go?s?表示系统原来前向通道的传递函数。
1?aTs1?aTs?a?1?,为串联超前校正;当Go?s???a?1?,为串联迟后校正。 1?Ts1?Ts我们可以使用 SISO系统设计串联校正环节的参数,SISO系统设计工具(SISO Design Tool)是用于单输入单输出反馈控制系统补偿器设计的图形设计环境。通过该工具,用户可以快速完成以下工作:利用根轨迹方法计算系统的闭环特性、针对开环系统 Bode图的系统设计、添加补偿器的零极点、设计超前/滞后网络和滤波器、分析闭环系统响应、调整系统幅值或相位裕度等。
(1)打开 SISO系统设计工具
在 MATLAB命令窗口中输入 sisotool命令, 可以打开一个空的 SISO Design Tool, 也可以在 sisotool命令的输入参数中指定 SISO Design Tool启动时缺省打开的模型。注意先在 MATLAB的当前工作空间中定义好该模型。如图 2 所示。
图2 SISO系统的图形设计环境
(2)将模型载入 SISO设计工具
通过file/import命令,可以将所要研究的模型载入SISO设计工具中。点击该菜单项后,将弹出Import System Data对话框,如图3所示。
图3 Import System Data对话框
(3)当前的补偿器(Current Compensator)
图2中当前的补偿器(Current Compensator)一栏显示的是目前设计的系统补偿器的结构。缺省的补偿器增益是一个没有任何动态属性的单位增益,一旦在跟轨迹图和Bode图中添加零极点或移动曲线,该栏将自动显示补偿器结构。 (4)反馈结构
SISO Design Tool 在缺省条件下将补偿器放在系统的前向通道中,用户可以通过“+/-”按钮选择正负反馈,通过“FS”按钮在如下图4几种结构之间进行切换。
图 4 SISO Design Tool中的反馈控制结构
例1 图1所示的控制系统,原开环传递函数为
用SISO系统设计工具 (SISO Design Tool)设计超前校正环节,使其校正后系统的静态速Gc?s??度误差系数Kv?6,相角裕度为45°,并绘制校正前后的Bode图,并计算校正前后的相角裕度。
⑴ 将模型载入 SISO设计工具
在 MATLAB命令窗口先定义好模型Go?s??2,用MATLAB编程如下:
s?0.1s?1??0.3s?1?num=2;
den=conv([0.1,1,0],[0.3,1]); G=tf(num,den)
运行得到结果如下: Transfer function: 2
---------------------- 0.03 s^3 + 0.4 s^2 + s
输入 sisotool命令,可以打开一个空的 SISO Design Tool,通过 file/import 令,可以将模型 G载入SISO设计工具中,如图5所示。
图5 改变增益后的系统
(2)调整增益
根据要求系统的静态速度误差系数Kv?6,补偿器的增益应为 3,将图 5 中的C(s)=1 改为 3,如图5所示。从图中 Bode相频图左下角可以看出相位裕度??21.2?,不满足要求。 (3)加入超前校正网络
在开环 Bode图中点击鼠标右键,选择“Add Pole/Zero”下的“Lead”菜单,该命令将在控制器中添加一个超前校正网络。这时鼠标的光标将变成“X”形状,将鼠标移到 Bode 图幅频曲线上接近最右端极点的位置按下鼠标,得到如图6所示的系统。
图 6 增加超前网络后的系统 从图中 Bode 相频图左下角可以看出相位裕度??28.4?,仍不满足要求,需进一步调整超前环节的参数。
(4)调整超前网络的零极点
将超前网络的零点移动到靠近原来最左边的极点位置,接下来将超前网络的极点向右移动,并注意移动过程中相角裕度的增长,一直到相角裕度达到45°,此时超前网络满足设计要求。如图7所示。
图 7 最后满足要求的系统 从图中可以看出来,超前网络的传递函数为
3?1?0.26s?,最后系统的Kv?6,??46?。
1?0.054s例2 图 1 所示的控制系统,原开环传递函数为
试用 SISO 系统设计工具(SISO Design Tool)设计超前校正环节,使其校正后系统的静态速度误差系数Kv?100,相角裕度为30°,并绘制校正前后的 Bode图,并计算校正前后的相角裕度。 例3 使用 SISO Design Tool 设计直流电机调速系统。典型电机结构示意图如图8所示,控制系统的输入变量为输入电压Ua?t?,系统输出是电机负载条件下的转动角速度??t?。现设计补偿器的目的是通过对系统输入一定的电压,使电机带动负载以期望的角速度转动,并要求系统具有一定的稳定裕度。
图 8 直流电动机调速系统
直流电机动态模型本质上可以视为典型二阶系统,设某直流电机的传递函数为
系统的设计指标为:上升时间tr﹤0.5s,稳态误差ess﹤5%,最大超调量Mp%?10%,幅值
裕度Lg?20dB,相角裕度??40?。
系统设计步骤:
(1) 调整补偿器的增益
如果对该系统进行时域仿真,可发现其阶跃响应时间很大,提高系统响应速度的最简单方法就是增加补偿器增益的大小。在 SISO 的设计工具中可以很方便的实现补偿器增益的调节:鼠标移动到 Bode 幅值线上,按下鼠标左键抓取 Bode幅值线,向上拖动,释放鼠标,系统自动计算改变的系统增益和极点。
既然系统要求上升时间tr﹤0.5s,应调整系统增益,使得系统的穿越频率?c位于3rad/s附近。这是因为 3rad/s的频率位置近似对应于 0.33s的上升时间。
为了更清楚的查找系统的穿越频率,点击鼠标右键,在快捷菜单中选择“Grid”命令,将在 Bode图中绘制网格线。
观察系统的阶跃响应,可以看到系统的稳态误差和上升时间已得到改善,但要满足所有的设计指标,还应加入更复杂的控制器。 (2) 加入积分器
点击鼠标右键,在弹出的快捷菜单中选择“Add Pole/Zero”下的“Integrator”菜单,这时系统将加入一个积分器,系统的穿越频率随之改变,应调整补偿器的增益将穿越频率调整回 3rad/s的位置。 (3) 加入超前校正网络
为了添加一个超前校正网络,在开环 Bode图中点击鼠标右键,选择“Add Pole/Zero”下的“Lead” 菜单,该命令将在控制器中添加一个超前校正网络。这时鼠标的光标将变成“X”形状,将鼠标移到 Bode图幅频曲线上接近最右端极点的位置按下鼠标。
从 Bode图中可以看出幅值裕度还没有达到要求,还需进一步调整超前环节的参数。 (4)移动补偿器的零极点
为了提高系统的响应速度,将超前网络的零点移动到靠近电机原来最左边的极点位置,接下来将超前网络的极点向右移动,并注意移动过程中幅值裕度的增长。也可以通过调节增益来增加系统的幅值裕度。
试按照上述方法调整超前网络参数和增益,最终满足设计的要求。
3 实验步骤及结果
上述例2中,试用 SISO 系统设计工具(SISO Design Tool)设计超前校正环节,使其校正后系统的静态速度误差系数Kv?100,相角裕度为30°,并绘制校正前后的 Bode图,并计算校正前后的相角裕度。
(1) 将模型载入 SISO设计工具 在 MATLAB命令窗口先定义好模型Go?s??MATLAB程序如下: num=1;
den=conv([1,0],[0.2,1]); G=tf(num,den)
k
s?0.2s?1?输入 sisotool命令,可以打开一个空的 SISO Design Tool,通过 file/import 命令,可以将模型 G载入SISO设计工具中,如图9所示:
图9 增益为1时SISO系统
(2) 调整增益
根据要求系统的静态速度误差系数Kv?100,补偿器的增益应为 100,将上图中的 C(s)=1 改为 100,如图10所示。从图中 Bode相频图左下角可以看出相位裕度γ= 12.8°,不满足要求。
图10 增益为100的系统
(3) 加入超前校正网络
在开环 Bode图中点击鼠标右键,选择“Add Pole/Zero”下的“Lead”菜单,该命令将在控制器中添加一个超前校正网络。这时鼠标的光标将变成“X”形状,将鼠标移到 Bode 图幅频曲线上接近最右端极点的位置按下鼠标,得到如下图11所示的系统:
图11 调节至相位裕度γ=12.9°的系统
从图中 Bode 相频图左下角可以看出相位裕度γ=12.9°,仍不满足要求,需进一步调整超前环节的参数。
(4) 调整超前网络的零极点
超前网络的零点移动到靠近原来最左边的极点位置,接下来将超前网络的极点向右移动,并注意移动过程中相角裕度的增长,一直到相角裕度达到30°,此时超前网络满足设计要求,如图12所示。
图12相角裕度达到30°的系统 从图中可以看出来,超前网络的传递函数为
100?1?0.21s?,最后系统的Kv?100,γ
1?0.033s=30°。
3使用 SISO Design Tool 设计直流电机调速系统。
直流电机动态模型本质上可以视为典型二阶系统,设某直流电机的传递函数为
系统的设计指标为:上升时间tr﹤0.5s,稳态误差ess﹤5%,最大超调量Mp%?10%,幅值裕度Lg?20dB,相角裕度??40?。 (1) 将模型载入 SISO设计工具 在 MATLAB命令窗口先定义好模型G?s??1.5
s2?14s?40.02编MATLAB程序如下: num=1.5;
den=[1 14 40.02]; G=tf(num,den)
输入sisotool命令,通过 file/import 命令,将模型G载入SISO工具中,如图13所示: ⑵调整补偿器的增益
鼠标移动到 Bode 幅值线上,按下鼠标左键抓取Bode 幅值线,向上拖动,释放鼠标,系统自动计算改变的系统增益和极点。既然系统要求上升时间tr﹤0.5s,应调整系统增益,使得系统的穿越频率?c,位于3rad/s附近。这是因为3rad/s的频率位置近似对应于0.33s的上升时间。此时,系统增益为 34.8,如下图14所示。
观察系统的阶跃响应,可以看到系统的稳态误差和上升时间已得到改善,但要满足所有的设计指标,还应加入更复杂的控制器。
图14 增益为34.8时的系统
⑶ 加入积分器
点击鼠标右键,在弹出的快捷菜单中选择“Add Pole/Zero”下的“Integrator”菜单,系统加入一个积分器,系统的穿越频率随之改变,应调整补偿器的增益将穿越频率调整回3rad/s的位置,此时系统增益为108,如图15所示:
图15 加入积分器时的系统
⑷加入超前校正网络
在开环 Bode图中点击鼠标右键,选择“Add Pole/Zero”下的“Lead”菜单,该命令将在控制器中添加一个超前校正网络。这时鼠标的光标将变成“X”形状,将鼠标移到 Bode 图幅频曲线上接近最右端极点的位置按下鼠标。如图16所示:
图16 加入超前校正网格时的系统
从Bode图中可以看出幅值裕度还没有达到要求,还需进一步调整超前环节的参数。 ⑸移动补偿器的零极点
为了提高系统的响应速度,将超前网络的零点移动到靠近电机原来最左边的极点位置,接下来将超前网络的极点向右移动,并注意移动过程中幅值裕度的增长。如图17所示:
图17移动补偿器的零极点时的系统 从图中可以看出,此时幅值裕度Lg?20.4dB,相角裕度γ=65.4°,满足要求, 穿越频率
?c=3.99rad/s, 位于3rad/s附近,观察其阶跃响应,可以看到系统的稳态误差和超调量均满足要求,此时补偿器的传递函数为
相关推荐: