这个例子展示了如何比较多个控制器的响应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_Copy
来mpcSoft
.
在调优选项卡,在控制器部分,在MPC控制器下拉列表,选择mpcSoft
作为电流控制器。
该应用程序添加mpcSoft
控制器对输入响应而且输出响应情节。
在设计部分中,点击约束.
在“约束”对话框中,在输出约束部分,输入MaxECR的价值One hundred.
让UO软化约束。
点击好吧.
响应图更新以反映新的内容mpcSoft
配置。在输出响应情节,mpcSoft
显示先前控制器响应之间的折衷。
若要仅比较两个受约束控制器,可以从输入和输出响应图中删除默认的无约束控制器。
在MPC设计师选项卡,在结果部分中,点击比较控制器>mpcNone.
应用程序删除mpcNone
来自输入响应而且输出响应情节。
控件中任意控制器的显示可以切换数据浏览器除了当前正在调优的控制器。下比较控制器时,显示响应的控制器用复选标记表示。