主要内容

用于多个操作点的PID控制器的设计系列

此示例显示了如何在Simulink中为非线性工厂设计一组PID控制器,该设备在各种操作点上运行。金宝app

开放式植物模型

该植物是一种连续的搅拌釜反应器(CSTR),在各种操作点上运行。单个PID控制器可以有效地使用冷却液温度来调节PID控制器设计的小操作范围内的输出浓度。然而,由于工厂是强烈的非线性系统,因此如果操作点显着变化,控制性能会降低。闭环系统甚至可以变得不稳定。

打开CSTR工厂模型。

mdl ='scdcstrctrlant';Open_System(MDL)

有关此系统的更多信息,请参阅[1]。

增益调度介绍

解决非线性控制问题的常见方法是使用线性控制器使用增益调度。一般来说,设计增益调度控制系统需要四个步骤。

  1. 获得每个操作区域的工厂模型。通常的做法是在几种平衡操作点线性化植物。

  2. 设计一系列线性控制器,例如PID控制器,用于上一步中获得的工厂模型。

  3. 实现调度机制,使得基于调度变量的值改变诸如PID增益的控制器系数。控制器之间的平滑(无浮丧和)转移是最小化对工厂操作的干扰。

  4. 使用仿真评估控制性能。

有关增益调度的更多信息,请参阅[2]。

此示例侧重于设计非线性CSTR工厂的PID控制器系列。

获得多个操作点的线性植物型号

输出集中C用于识别不同的操作区域。CSTR设备可以在低转换率之间以任何转换速率运行(C=9.)和高转换率(C=2)。在此示例中,将操作范围划分为八个区域C=2通过9.

指定操作区域。

C = [2 3 4 5 6 7 8 9];

创建默认操作点规范数组。

op = operspec(mdl,numel(c));

通过指定输出浓度是已知值并指定输出浓度值来初始化操作点规范。

为了ct = 1:numel(c)op(ct).outputs.known = true;OP(CT).outputs.y = C(CT);结尾

计算对应于值的平衡操作点C

OPOINT = SINDOP(MDL,OP,FindopOptions('displayReport''离开'));

在这些操作点线性化植物。

植物=线性化(MDL,OPOINT);

由于CSTR工厂是非线性的,线性模型显示不同的特性。例如,具有高和低转换率的工厂模型稳定,而其他工厂则不是。

isstable(植物,“elem”'
ANS = 1x8逻辑阵列1 1 0 0 0 0 1 1

为工厂型号设计PID控制器

要批量设计多个PID控制器,请使用Pidtune.功能。以下命令以并行形式生成一个PID控制器数组。所需的开环交叉频率为1RAD / SEC和相位裕度是默认值60.程度。

控制器= PidTune(植物,'pidf',1);

显示控制器C=4.

控制器(::,4)
ans = 1 s kp + ki * --- + kd * -------- s tf * s + 1带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连续时间PIDF控制器以并行形式。

构造闭环系统,并对新控制器绘制闭环步骤响应。

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取依赖控制器''单控制器'

针对每个浓度分开设计的PID控制器阵列提供比单个控制器更好的性能。

然而,基于全非线性系统的线性近似来计算上面所示的闭环响应。要验证设计,请使用PID控制器块在模型中实现调度机制,如图所示实施增益预定的PID控制器(金宝appSimulink Control Design)

关闭模型。

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。

也可以看看

|(金宝appSimulink Control Design)|(金宝appSimulink Control Design)

相关话题