这个例子展示了如何在Simulink中为一个运行在大范围工作点上的非线性装置设计一组PID控制器。金宝app
该植物是一种连续的搅拌釜反应器(CSTR),在各种操作点上运行。单个PID控制器可以有效地使用冷却液温度来调节PID控制器设计的小操作范围内的输出浓度。然而,由于工厂是强烈的非线性系统,因此如果操作点显着变化,控制性能会降低。闭环系统甚至可以变得不稳定。
打开CSTR工厂模型。
mdl ='scdcstrctrlant';Open_System(MDL)
有关此系统的更多信息,请参阅[1]。
解决非线性控制问题的一种常用方法是使用线性控制器的增益调度。一般来说,设计增益调度控制系统需要四个步骤。
获得每个操作区域的工厂模型。通常的做法是在几种平衡操作点线性化植物。
针对上一步所得到的对象模型,设计一系列线性控制器,如PID控制器。
实现一种调度机制,使控制器系数,如PID增益,根据调度变量的值改变。控制器之间的平滑(无扰动)传输是必需的,以减少对设备运行的干扰。
使用仿真评估控制性能。
有关增益调度的更多信息,请参阅[2]。
这个例子着重于为非线性CSTR装置设计一系列PID控制器。
输出浓度C
用于识别不同的操作区域。CSTR设备可以在低转换率之间以任何转换速率运行(C
=9
)及高转换率(C
=2
)。在此示例中,将操作范围划分为八个区域C
=2
通过9
。
指定操作区域。
C = [2 3 4 5 6 7 8 9];
创建默认操作点规范的数组。
op = operspec (mdl元素个数(C));
通过指定输出浓度为已知值并指定输出浓度值来初始化工作点规范。
为ct = 1:numel(C) op(ct). outputs。知道= true;op (ct) .Outputs。y = C (ct);结束
计算对应于值的平衡操作点C
。
op, opoint = findop (mdl findopOptions (“DisplayReport”,'离开'));
在这些操作点线性化植物。
植物=线性化(mdl opoint);
由于CSTR对象是非线性的,线性模型表现出不同的特性。例如,高转化率和低转化率的工厂模型是稳定的,其他的则不是。
isstable(植物,“elem”)”
ans = 1x8逻辑阵列1 1 0 0 0 0 1 1
要批量设计多个PID控制器,请使用Pidtune.
函数。下面的命令以并行形式生成一组PID控制器。所需的开环交叉频率为1
rad/sec,相位裕度为默认值60
度。
控制器= pidtune(植物,'pidf',1);
显示控制器C
=4
。
控制器(::,4)
ans = 1 s Kp + Ki *—+ Kd * -------- s Tf*s+1 with Kp = -12.4, Ki = -1.74, Kd = -16, Tf = 0.00875并行形式的连续时间PIDF控制器。
为了分析步进设定值跟踪的闭环响应,首先构造闭环系统。
clsys =反馈(植物*控制器,1);
绘制闭环响应。
图持有上为ct = 1:长度(C)%从LTI数组中选择一个系统sys = clsys (:,:, ct);sys。Name = ('c ='num2str (C (ct)));sys。InputName ='参考';%图阶跃响应stepplot (sys, 20);结束传奇(“显示”,“位置”,'东南')
所有封闭的环都稳定,但环路的过冲与植物不稳定(C
=4
,通过7
)太大了。为了提高不稳定的工厂模型的结果,增加目标开环带宽10
rad / sec。
控制器= pidtune(植物,'pidf',10);
显示控制器C
=4
。
控制器(::,4)
ans = 1 s Kp + Ki *—+ Kd * -------- s Tf*s+1, Kp = -283, Ki = -151, Kd = -128, Tf = 0.0183并行形式的连续时间pid控制器。
构造闭环系统,并绘制新控制器的闭环阶跃响应。
clsys =反馈(植物*控制器,1);图持有上为ct = 1:长度(C)%从LTI数组中选择一个系统。sys = clsys (:,:, ct);设置(sys,“名字”,['c ='num2str (C (ct))),'InputName','参考');%绘制阶跃响应。Stepplot(SYS,20)结束传奇(“显示”,“位置”,'东南')
所有闭环响应现在都令人满意。有关在所有操作点使用相同的控制器时,请检查响应。创建另一组闭环系统,其中每个组合使用C
=2
控制器,并绘制他们的响应。
clsys_flat =反馈(植物*控制器(:,:1),1);图stepplot (clsys clsys_flat 20)传说(“C-dependent控制器”,“单一控制器”)
针对每个浓度分开设计的PID控制器阵列提供比单个控制器更好的性能。
然而,上述的闭环响应是基于全非线性系统的线性近似计算的。为了验证设计,使用PID控制器块在您的模型中实现调度机制,如实施增益预定的PID控制器。
关闭模式。
BdClose(MDL)
[1] Seborg,Dale E.,Thomas F. Edgar和Duncan A. Mellichamp。过程动力学与控制。2,John Wiley&Sons,Inc,2004,PP。34-36。
[2] Rugh,Wilson J.和Jeff S. Shamma。“研究进度调度”。自动化36岁的没有。10(2000年10月):1401-1425。