这个例子展示了如何在Simulink中实现增益调度控制金宝app®模型采用一系列PID控制器。该PID控制器针对被控对象的一系列稳态工作点进行调整,具有高度的非线性。
本示例建立在所做的工作之上多工位PID控制器的设计。在这个例子中,连续搅拌釜式反应器(CSTR)装置模型在具有输出浓度的稳态工作点上被线性化C= 2, 3,…8 9。CSTR装置的非线性在不同的输出浓度下产生不同的线性化动态。示例使用pidtune
命令为每个输出浓度生成和调整一个单独的PID控制器。
您可以期望每个控制器在其相应的输出浓度附近的小工作范围内表现良好。这个例子展示了如何使用PID控制器块在增益调度配置中实现所有这些控制器。在这种配置下,PID增益随着输出浓度的变化而变化。这种配置确保了在控制系统运行范围内的任何输出浓度都有良好的PID控制。
从生成的控制器开始多工位PID控制器的设计。如果这些控制器不在MATLAB中®工作区,从数据文件加载它们PIDGainSchedExample.mat
。
负载PIDGainSchedExample
这个操作将两个变量放在MATLAB工作空间中,控制器
和C
。模型组控制器
包含八个pid
模型,每个调谐为一个输出浓度的矢量C
。
为了在增益调度配置中实现这些控制器,需要创建查找表,将每个输出集中与相应的PID增益集关联起来。仿真软件金宝app模型PIDGainSchedCSTRExampleModel
包含这样的查找表,配置为为CSTR工厂提供增益调度控制。打开这个模型。
open_system (“PIDGainSchedCSTRExampleModel”)
在这个模型中,PID控制器块被配置为有PID系数的外部输入端口。使用外部输入可以使系数随输出浓度的变化而变化。打开该块以检查配置。
设置源参数外部
为系数启用输入端口。
模型使用一维查找表块为每个PID系数。一般情况下,对于增益调度PID控制,使用调度变量作为查找表输入,相应的控制器系数值作为输出。在本例中,CSTR工厂的输出浓度是查找表的输入,输出是与该浓度对应的PID系数。要查看查找表是如何配置的,打开P查找表
块。
的表数据参数包含每个控制器的比例系数数组,Controllers.Kp
。属性的更多信息pid
模型控制器
数组,看到pid
)。该数组中的每个条目都对应于该数组中的一个条目C
在断点1参数。对于位于入口之间的浓度值C
,P查找表
块执行线性插值来确定比例系数的值。要设置积分和导数系数的查找表,请配置我查找表
和维查找表
块使用Controllers.Ki
和Controllers.Kd
,分别。对于本例,该配置已经在模型中完成。
的pid
模型控制器
将滤波器系数的导数表示为时间常数,Controllers.Tf
(见pid
更多信息参考页)。然而,PID控制器块将滤波器系数的导数表示为倒数常数,N
。因此,N查找表
块必须配置为使用中的每个值的倒数Controllers.Tf
。打开N查找表
阻塞以查看配置。
模拟模型。的浓度定位点
块被配置为步进遍历一系列跨越操作范围的设定值C = 2
和C = 9
(示波器上黄色部分显示)。仿真结果表明,增益调度配置在此范围内(范围上为粉色)可以实现良好的设定值跟踪。
如…所示多工位PID控制器的设计, CSTR装置在运行范围内是不稳定的C = 4
和C = 7
。增益控制的PID控制器稳定了被控对象,并在整个不稳定区域内产生良好的设定点跟踪。为了充分验证针对非线性装置的控制设计,应用各种各样的设定值测试序列,测试在操作范围内不同尺寸和方向的步骤的跟踪性能。控件中的所有条目也可以将性能与没有增益调度的设计进行比较控制器
数组相等。