主要内容

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

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

植物模型是通过在Simulink®中非线性植物在非零稳态工作点的线性化得到的。万博1manbetx

线性化非线性植物模型

在Simulink模型中实现了非线性植物万博1manbetxmpc_nloffsets并在默认操作条件下线性化使用线性化函数从Simulink控制设万博1manbetx计。

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

plant_mdl =“mpc_nloffsets”;Op = operspec(plant_mdl);

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

[op_point, op_report] = findop(plant_mdl,op);
工作点搜索报告:--------------------------------- opreport = mpc_nloffsets模型的工作点搜索报告。(time - varying Components evaluate at time t=0)满足工作点规格。州 : ---------- 最小x最大dxMin dx dxMax  ___________ ___________ ___________ ___________ ___________ ___________ ( 1) mpc_nloffsets /集成商负0.57514正0 -1.8208 e-14 0 (2) mpc_nloffsets / 2.1503 Integrator2负无穷到正无穷0 -8.3844 e-12 0输入 : ---------- 最小u最大  ______ ______ ______ ( 1) mpc_nloffsets / In1负-1.252正输出 : ---------- 最小y最大  ________ ________ ________ ( 1) mpc_nloffsets /着干活负-0.52938正无穷

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

x0 = [op_report.States(1).x;op_report.States(2).x];y0 = op_report.Outputs.y;u0 = op_report. input .u;

在初始条件下线性化植物。

Plant = linearize(plant_mdl,op_point);

MPC控制器设计

创建具有指定采样时间的MPC控制器对象Ts,预测层20.,控制视界3.

Ts = 0.1;mpcobj = mpc(plant,Ts,20,3);
- - - >“权重。属性为空。假设默认值为0.00000。- - - >“权重。属性为空。假设默认为0.10000。- - - >“权重。OutputVariables属性为空。假设默认值为1.00000。

在控制器中设置标称值。

mpcobj.Model.Nominal = struct(“X”x0,“U”情况,“Y”, y0);

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

mpcobj.Model.Noise = 0.1;

设置被操纵变量约束。

mpcobj.MV.Max = 0.2;

使用Simulink进行模拟万博1manbetx

指定输出信号的参考值。

R0 = 1.5*y0;

打开并模拟模型。

mdl =“mpc_offsets”;open_system (mdl) sim (mdl)
——>转换模型到离散时间。假设添加到测量输出通道#1的输出扰动是集成白噪声。

模拟使用sim卡命令

模拟控制器。

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

绘制并比较仿真结果。

Subplot (1,2,1) plot(y.time,y.signals.values,t1,y1,t1,r)“非线性”“线性化”“参考”)标题(“输出”)网格subplot(1,2,2) plot(u.time,u.signals.values,t1,u1)“非线性”“线性化”)标题(“输入”网格)

bdclose (plant_mdl) bdclose (mdl)

另请参阅

|

相关的话题