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

该示例示出了如何设计具有非零标称值模型预测控制器。

工厂模型是通过在Simulink®中非线性植物的线性化以非零稳态工作点获得。金宝app

线性化非线性工厂模型

要运行这个例子,Simulink和Simu金宝applink的控制设计™是必需的。

如果〜mpcchecktoolboxinstalled('金宝appSIMULINK')DISP(的金宝appSimulink需要运行这个例子。“返回结束如果〜mpcchecktoolboxinstalled('slcontrol')DISP(“金宝app需要运行这个例子Simulink的控制设计。”返回结束

在Simulink模型中实现了非线性对象金宝appmpc_nloffsets以及使用所述默认的操作条件线性化线性化从Simulink的控制设计金宝app功能。

创建当前模型的初始条件下运行点规范。

plant_mdl ='mpc_nloffsets';OP = operspec(plant_mdl);

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

[op_point,op_report] = findop(plant_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;

使工厂在初始条件下线性化。

植物=线性化(plant_mdl,op_point);

设计MPC控制器

与指定的采样时间创建MPC控制器对象TS,预测地平线p和控制地平线

TS = 0.1;P = 20;M = 3;mpcobj = MPC(植物中,Ts,P,M);
- >“MPC”对象的“We​​ights.ManipulatedVariables”属性是空的。假设默认0.00000。- >“MPC”对象的“We​​ights.ManipulatedVariablesRate”属性是空的。假设默认0.10000。- >“MPC”对象的“We​​ights.OutputVariables”属性是空的。假设默认1.00000。

在控制器设置的标称值。

mpcobj.Model.Nominal =结构('X',X0,'U',U0,'Y',Y0);

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

mpcobj.Model.Noise = 0.1;

设置调节变量的约束。

mpcobj.MV.Max = 0.2;

模拟使用Simulink金宝app

指定的输出信号的参考值。

R0 = 1.5 * Y0;

打开和仿真模型。

MDL ='mpc_offsets';open_system(MDL)SIM(MDL)
- >转换模型,以离散时间。- >加入到测量的输出信道#1假设输出干扰被集成白噪声。

使用模拟SIM卡命令

模拟控制器。

TF =轮(10 / TS);R = R0 *那些铁蛋白(Tf,1);[Y1,T1,U1,X1,xmpc1] = SIM(mpcobj,TF,R);

情节和比较仿真结果。

副区(1,2,1)情节(y.time,y.signals.values,T1,Y1,T1,r)的图例(“非线性”“线性”“参考”)标题(“输出”(1,2,2) plot(.time, .signal .values,t1,u1)“非线性”“线性”)标题(“输入”)网格

bdclose(plant_mdl)bdclose(MDL)

也可以看看

|