主要内容

使用MPC设计器比较多个控制器响应

这个例子展示了如何比较多个控制器的响应MPC设计师.特别地,比较了具有不同输出约束配置的控制器。

定义植物模型

创建工厂的状态空间模型,并指定MPC信号类型。

A = [-0.0285 -0.0014;-0.0371 - -0.1476);B = [-0.0850 0.0238;0.0802 - 0.4462);C = [0 1;1 0];D = 0 (2,2);plant = ss(A,B,C,D);植物= setmpcsignals(植物,“MV”, 1“UD”2,“莫”, 1“UO”2);

开放MPC设计师,并导入植物模型。

mpcDesigner(植物)

应用程序将指定的植物添加到数据浏览器除了默认控制器,mpc1,默认模拟场景,scenario1

定义模拟场景

配置干扰抑制模拟场景。

MPC设计师,在MPC设计师选项卡上,单击编辑场景>scenario1

在“模拟场景”对话框中指定仿真时间40秒。

参考信号表,在信号下拉列表,选择常数使两个输出的设定值保持在它们的标称值。

无边无际的干扰表,在信号下拉列表,选择一步.使用默认值时间而且一步值。

这个场景模拟了在1秒的时间内未测量的输入扰动的单位阶跃变化。

点击好吧

该应用程序运行更新的模拟场景,并更新控制器响应图。在输出响应图,默认控制器返回测量输出,MO1,到其标称值,但控制动作导致未测量输出增加,UO1

创建带有硬输出约束的控制器

假设控制规范表明,这种增加的不可测扰动是不可取的。为了限制未测量扰动的影响,创建一个具有硬输出约束的控制器。

请注意

在实践中,不建议使用硬输出约束。当输出变量由于扰动而移动到约束边界之外时,这样的约束会产生一个不可行的优化问题。

数据浏览器,在控制器节中,右键单击mpc1,并选择复制

应用程序创建一个默认控制器的副本,并将其添加到数据浏览器

双击每个控制器,重命名如下。

右键单击mpcHard控制器,并选择调谐(使电流).该应用程序添加mpcHard控制器对输入响应而且输出响应情节。

调优选项卡,在控制器节中,mpcHard被选为当前MPC控制器被调整。

设计部分中,点击约束

在“约束”对话框中,在输出约束部分,在马克斯列时,指定最大输出约束为3.为未测输出(UO)。

默认情况下,所有的输出约束都是软的,即控制器可以允许在计算最优控制移动时违反约束。

若要使未测量的输出约束变得困难,请单击约束软化设置,并进入MaxECR的价值0对于UO。该设置对控制器输出施加了严格的限制,不能违反。

点击好吧

响应图更新以反映新的内容mpcHard配置。在输出响应图,在UO1情节,mpcHard响应限制为最大3..作为交换,控制器不能返回MO1对其名义价值的响应。

提示

如果图例阻塞了响应信号,您可以将图例拖到不同的位置。

创建带有软输出约束的控制器

假设MO1从它的名义价值来说太大了。你可以在两个控制目标之间软化输出约束:MO1输出跟踪和UO1约束的满意度。

调优选项卡,在分析部分中,点击存储控制器保存的副本mpcHard数据浏览器

数据浏览器,在控制器节中,重命名mpcHard_CopympcSoft

调优选项卡,在控制器部分,在MPC控制器下拉列表,选择mpcSoft作为电流控制器。

该应用程序添加mpcSoft控制器对输入响应而且输出响应情节。

设计部分中,点击约束

在“约束”对话框中,在输出约束部分,输入MaxECR的价值One hundred.让UO软化约束。

点击好吧

响应图更新以反映新的内容mpcSoft配置。在输出响应情节,mpcSoft显示先前控制器响应之间的折衷。

删除默认控制器响应图

若要仅比较两个受约束控制器,可以从输入和输出响应图中删除默认的无约束控制器。

MPC设计师选项卡,在结果部分中,点击比较控制器>mpcNone

应用程序删除mpcNone来自输入响应而且输出响应情节。

控件中任意控制器的显示可以切换数据浏览器除了当前正在调优的控制器。下比较控制器时,显示响应的控制器用复选标记表示。

另请参阅

相关的话题