主要内容

单输入单输出工厂的模型预测控制

这个例子展示了如何在Simulink®中控制具有输入饱和的双积分器装置。万博1manbetx

定义植物模型

将工厂模型定义为双积分器(输入是操纵变量以及输出测量的输出)。

植物= TF(1,[1 0 0]);

设计MPC控制器

使用0.1秒的采样周期创建控制器对象,预测地平线为10个步骤和3个移动的控制地平线。

MPCobj = MPC(植物,0.1,10,3);
- - - >“权重。mpc对象的操纵变量属性为空。假设默认的0.00000。- - - >“权重。mpc对象的操控变量率属性为空。假设默认的0.10000。- - - >“权重。mpc对象的属性为空。假设默认的1.00000。

由于您未指定由控制器最小化的二次成本函数的权重,因此假设其值是默认的一个(对于被操纵变量为0,为操作变量为0.1,为输出变量为1)。此外,此时,MPC问题仍然不受约束,因为您尚未指定任何约束。

将执行器饱和度指定为在操纵变量上的约束。

mpcobj.mv = struct('min',-1,'最大限度',1);

使用仿真软件模拟万博1manbetx

万博1manbetxSimulink是一个用于多域系统仿真的图形框图环境。您可以连接表示动态系统的块(在这种情况下,工厂和MPC控制器)并模拟闭环。

%检查Simulink是否万博1manbetx已安装,否则显示消息并返回如果〜mpcchecktoolboxinstalled('万博1manbetxsimulink')disp(“万博1manbetx运行这个示例需要Simulink。”返回结束

打开闭环仿真的预先存在的Simulink模型万博1manbetx。工厂模型用串联的两个集成器块实现。可变步骤ODE45集成算法用于计算连续时间循环行为。MPC控制器块配置为使用工作区mpcobj.对象作为控制器。操纵变量和输出和参考信号。输出信号也由to-workspace块保存。

mdl =“mpc_doubleint”;Open_System(MDL)

模拟Simulink中线性植物模型的闭环控制。万博1manbetx请注意,在仿真开始植物模型之前mpcobj.被转换为离散状态空间模型。默认情况下,控制器用作Kalman滤波器设计器的观察者,假设每个工厂输出上的白噪声干扰。

SIM(MDL)%您还可以通过按“RUN”按钮来模拟。
- >将“MPC”对象的“Model.Plant”属性转换为状态空间。- >将模型转换为离散时间。假设没有添加到测量的输出通道#1中的干扰。- >“MPC”对象的“Model.Noise”属性为空。假设每个测量的输出通道上的白噪声。

闭环响应显示出良好的设定值跟踪性能,因为工厂输出在约2.5秒后跟踪其参考。如预期的那样,操纵变量保持在预定约束范围内。

关闭打开的Simulink模型万博1manbetx而不保存任何更改。

BdClose(MDL)

也可以看看

||

相关的话题