在MATLAB的控制系统工具箱(Control System Toolbox)中,提供了很多函数、模块和应用程序包,实现控制系统的设计和校正。这里主要介绍 控制系统设计器APP的使用方法。
【实例】在一个单位负反馈控制系统中,已知被控传递函数为
为其设计控制器,使整个系统满足如下性能指标:
(1)单位阶跃响应的稳态稳态误差为0;
(2)上升时间小于1 s;
(3)调节时间小于2 s;
(4)超调量不超过20%;
结合实例,介绍基本的设计过程和方法。
如下图0-0所示,分别为校正前系统和校正后系统。
图 0-0 校正前系统和校正后系统
其中校正前系统输出波形为下图,无法有效跟踪输入信号。
图 1-1 校正前系统和输出波形
已知被控对象的传递函数,可以首先在命令行窗口用如下命令创建该环节的传递函数。
>>G=tf([1],[1,1]);
然后运行sisotool命令或者在app界面打开controlSystemDesigner。然后按下图操作:
打开后的设计器窗口如 图1-2所示。
图1-2 控制系统设计器窗口
在本例中,给定被控对象为一阶惯性环节。当控制器、传感器等其他环节的传递函数都取默认值1时,系统的开环Bode、根轨迹和单位阶跃响应都已经自动求出,并显示在设计器的三个图形区中。
显然,系统单位阶跃响应的稳态响应为0.5,稳态误差为0.5,不能满足题目所提第一项技术指标。因此,必须为该系统设计合适的控制器,以便使整个系统的性能指标满足题目所提的各项要求。
1.时域指标的添加
在阶跃响应图形区右击,在弹出的快捷菜单中依次单击Design Requirements和New菜单命令,打开如 图1-3所示对话框。
图1-3 添加时域设计指标
在对话框中,可以通过下列表选择设计指标的类型,在本例中,选择Step response bound选项,然后在下面的文本框中输入题目上所提的各项性能指标。之后回到设计器窗口,刚才输入的设计指标将在单位阶跃响应的波形上用阴影区域表示,如图1-4所示。
图1-4阶跃响应设计需求指标的图形化描述
2. 控制器设计
根据控制理论的基本概念和结论,设计控制器应该具有的数学模型及参数,使得系统满足时域指标
1.稳态误差的消除
为了满足设计指标的第一项,根据控制理论的知识,系统必须是I型,即开环传递函数中必须具有一个等于零的极点,对应一个积分环节。
为此,在根轨迹编辑器中右击,在弹出的快捷菜单中依次单击Add Pole or Zero(添加极点或者零点)和Integrator(积分器)菜单命令,向控制器中引入一个积分环节。此时,设计器窗口中显示的根轨迹和单位阶跃响应波形如 图1-6所示。
图1-6 添加积分环节后的根轨迹和单位阶跃响应
由此可见,在控制器中引入积分环节后,整个闭环控制系统称为二阶系统,其单位阶跃响应呈振荡变化。系统的稳态响应为1,稳态误差为0,第一项设计指标得到满足。但是,上升时间和调节时间都远远超过所提的设计指标。
3.根轨迹编辑器
为了加快系统的响应速度,使上升时间和调节时间满足要求,可以考虑引入一阶微分环节,即在控制器中引入实数零点。只要实数零点小于-1,系统的单位阶跃响应就一定是振荡变化的波形。实数零点越远离纵轴,振荡速度越快,但超调量也会增大。基于上述考虑,设计引入的实数零点近似为-2。
为引入该实数零点,在根轨迹编辑器中右击,在弹出的快捷菜单中依次单击Add Pole or Zero和Real Zero菜单命令。之后,在根轨迹图中靠近(-2, j0)点位置单击。如果该点超出了图形区,可以在任意位置单击,然后再将其拖动到期望的位置。
如果需要得到精确的零点,可以在设计器窗口左侧的Controllers and Fixed Blcoks面板中双击C,打开如 图1-7所示Compensator Editor(补偿器编辑器)。在该编辑器中单击列表的第二行Real Zero,并在右侧的Location文本框中输入零点-2。
图1-7 补偿器编辑器
完成上述设置后得到系统根轨迹,但是由单位阶跃响应的波形分析,上升时间和调节时间仍然不满足要求。
4.Bode图编辑器
根据控制理论的知识,通过增大系统的开环增益,可以加快响应速度,但会导致阶跃响应振荡幅度和超调量的增大,并引起系统不稳定。
首先考虑通过调节开环增益,使阶跃响应的上升时间和调节时间满足要求。为此,打开pid调节器进行pi可视化调节,如下图所示,直至输出曲线达到指标。
可以通过priview看见C的值。
设计结果的验证
设计完成后,得到C为 4.8513(s+2.077)/s,化成Kp、Ki形式:(4.851 s + 10.08)/s,Kp即为4.851,Ki为10.08。然后将之输入到下图PID控制器里:
运行结果,如下图,满足指标要求,可实现较好的跟踪效果。