主要内容

运行时的输入和输出界限

这个例子展示了如何在实时控制中改变输入和输出的饱和限制。对于命令行和Simulink®模拟,您可以在每个控制万博1manbetx间隔指定更新的输入和输出约束。然后MPC控制器将输入和输出信号保持在其指定的范围内。

有关在运行时更新线性约束的详细信息,请参阅在运行时更新约束

创建设备模型和MPC控制器

定义一个具有采样时间的SISO离散时间对象Ts

ts = 0.1;植物= C2D(TF(1,[1 .8 3]),TS);[A,B,C,D] = SSDATA(工厂);

创建具有指定预测视野的MPC控制器,p、控制地平线,c和采样时间,Ts.使用植物作为内部预测模型。

p = 10;m = 4;mpcobj = mpc(植物,ts,p,m);
- - - >“权重。操控变量的“mpc”对象的属性为空。假设默认的0.00000。- - - >“权重。“mpc”对象的属性为空。假设默认的0.10000。- - - >“权重。mpc对象的属性为空。假设默认的1.00000。

指定控制器调整权重。

mpcobj.Weights.MV = 0;mpcobj.Weights.MVrate = 0.5;mpcobj.Weights.OV = 1;

对于本例,操作变量的上界和下界以及输出变量的上界在运行时是不同的。为此,您必须首先为MPC控制器对象中的这些约束定义初始虚拟有限值。指定的值MV。最小值mv.max., 和机汇。马克斯

在运行时,使用mpcmoveopt.对象或对应的MPC控制器块的输入信号。

mpcobj.mv.min = 1;mpcobj.mv.max = 1;mpcobj.ov.max = 1;

使用Simulink模拟模型万博1manbetx

打开Sim万博1manbetxulink模型。

mdl =“mpc_varbounds”;Open_System(MDL)

在该模型中,输入最小和最大约束端口(umumax)和输出最大约束端口(ymax)的MPC Controller块已启用。由于最小输出界是无约束的,所以ymin输入端口被禁用。

配置输出设定值,裁判和仿真持续时间,

ref = 1;尖= 20;

运行模拟,并在I / O范围中查看输入和输出响应。

(mdl sim (mdl) open_system (' /我/ / O '])
- - - >转换”模型。将“mpc”对象的属性移植到状态空间。假设在测量输出通道#1上添加的输出扰动是集成白噪声。——>”模式。mpc对象的Noise属性为空。假设每个测量输出通道上都有白噪声。

在命令行中模拟模型

指定设备和控制器的初始状态。

x = 0(大小(B, 1), 1);xmpc = mpcstate (mpcobj);

存储闭环输出,操纵变量和MPC控制器的状态轨迹在阵列中YYUU, 和XX,分别。

YY = [];UU = [];XX = [];

创建一个mpcmoveopt.用于指定运行时绑定值的对象。

选项= mpcmoveopt;

运行模拟循环。

T = 0:圆形(TSIM / TS)%存储植物状态。XX = [XX;x];%计算并存储工厂输出。没有直接的馈通%从输入到输出。y = C * x;YY = [YY;y ');%从Simulink输出的数据中获得参考信号值万博1manbetx% 模拟。ref = yout.Data (t + 1、2);%更新输入和输出界限。为了一致性,使用%约束值由Simulink仿真输出。万博1manbetx选项。MVMin = uout.Data (t + 1、2);选项。MVMax = uout.Data (t + 1, 3);选项。OutputMax = yout.Data (t + 1, 3);%计算MPC控制操作。u = mpcmove (mpcobj xmpc y ref,[],选项);%更新设备状态并存储输入信号值。x = A*x + B*u;UU = [UU;u ');结束

比较仿真结果

绘制来自Simulink和命令行模拟的输入和输出信号以及不断变化的输入和输出边界。万博1manbetx

figure subplot(1,2,1) plot(0:Ts:尖,[UU uout.Data(:,1) uout.Data(:,2) uout.Data(:,3)])'输入')传说(命令行输入的模万博1manbetx型输入的'下限'...“上界”'地点'“东南”)子图(1,2,2)绘图(0:TS:TSIM,[YY YOUT.DATA(:,1)YOUT.DATA(:,3)])网格标题('输出')传说(的命令行输出'万博1manbetxSimulink输出'“上界”...'地点'“东南”

命令行和Simulink仿真的结果是相同的。万博1manbetx随着在整个模拟中的约束改变的情况下,MPC控制器将输入和输出信号保持在指定边界内。

BdClose(MDL)

另请参阅

相关话题