平衡工作点模型预测控制器设计
这个例子展示了如何设计一个具有非零标称值的模型预测控制器。
植物模型是通过在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)