主要内容

设计平衡工作点模型预测控制器

这个例子展示了如何设计一个标称值非零的模型预测控制器。

电厂模型是通过在非零稳态工作点对Simulink®中的非线性电厂进行线性化而获得的。万博1manbetx

非线性对象模型的线性化

要运行此示例,请使用Simulink和Si万博1manbetxmulink控件设计™ 是必需的。

如果~mpcchecktoolbox已安装(“万博1manbetxsimulink”)disp('万博1manbetx运行此示例需要Simulink。')回来终止如果~mpcchecktoolbox已安装(“slcontrol”)disp('万博1manbetx运行此示例需要Simulink控件设计。')回来终止

在Simulink模型中实现了该非线性对象万博1manbetxmpc_nloffset并使用线性化功能来自Simulink控制万博1manbetx设计。

为当前模型初始条件创建操作点规范。

plant_mdl =“mpc_nloffsets”; op=操作规范(工厂mdl);

计算这个初始条件的工作点。

[op_点,op_报告]=findop(工厂mdl,op);
操作点搜索报告:--------------------------------- mpc_nloffsets模型的操作点搜索报告。(t=0时评估的时变分量)成功满足工作点规范。州 : ---------- ( 1) mpc_nloffsets /集成商x: 0.575 dx: -1.82 e-14 (0) (2) mpc_nloffsets / Integrator2 x: 2.15 dx: -8.38 e-12(0)输入 : ---------- ( 1) mpc_nloffsets / In1 u: -1.25(负无穷到正无穷)输出 : ---------- ( 1) mpc_nloffsets /着干活y: -0.529(负无穷到正无穷)

从计算的工作点提取标称状态、输出和输入值。

x0 = [op_report.States(1)方式;op_report.States(2)方式);y0 = op_report.Outputs.y;情况= op_report.Inputs.u;

在初始条件下线性化该装置。

工厂=线性化(工厂mdl,操作点);

MPC控制器的设计

使用指定的采样时间创建MPC控制器对象Ts,预测地平线P,和控制视界M.

Ts=0.1;p=20;m=3;mpcobj=mpc(电厂,Ts,p,m);
-->“mpc”对象的“Weights.ManufacturedVariables”属性为空。“mpc”对象的“Weights.ManufacturedVariablesRate”属性为空。“mpc”对象的“Weights.OutputVariables”属性为空。假设默认值为1.00000。

在控制器中设置标称值。

mpcobj.Model.Nominal=struct(“X”,x0,“你”,u0,“是的”,y0);

设置输出测量噪声模型(白噪声,零均值,方差=0.01)。

mpcobj.Model.Noise=0.1;

设置操纵变量约束。

mpcobj.MV.Max=0.2;

使用Simulink进行模拟万博1manbetx

指定输出信号的参考值。

r0=1.5*y0;

打开并模拟模型。

mdl=“mpc_补偿”;开放式系统(mdl)sim卡(mdl)
-->将模型转换为离散时间。-->假设添加到测量输出通道#1的输出干扰为积分白噪声。

模拟使用模拟命令

模拟控制器。

Tf=圆形(10/Ts);r=r0*个(Tf,1);[y1,t1,u1,x1,xmpc1]=sim(mpcobj,Tf,r);

绘制并比较模拟结果。

子批次(1,2,1)绘图(y.时间,y.信号值,t1,y1,t1,r)图例(“非线性”,“线性化”,“参考”)头衔(“输出”图(u.time,u.signals.values,t1,u1)“非线性”,“线性化”)头衔(“输入”)网格

bdclose(工厂)bdclose(工厂)

另见

|