主要内容

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

此示例显示了如何在Simulink®中控制具有输入饱和的双积分植物。金宝app

定义植物模型

将植物模型定义为双积分器(输入是操纵变量,而输出的输出)。

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

设计MPC控制器

以0.1秒的采样周期(预测范围为10个步骤)以及3个移动的控制范围,创建控制器对象。

mpcobj = mpc(植物,0.1,10,3);
- >“ weights.manipulationvariables”属性为空。假设默认为0.00000。- >“ weights.manipulationVariablesrate”属性为空。假设默认为0.10000。- >“ weight.outputvariables”属性为空。假设默认为1.00000。

因为您尚未指定控制器最小化的二次成本函数的权重,所以假定其值为默认值(对于操作变量为0,为0.1,对于操作变量速率为0.1,输出变量为1)。同样,在这一点上,MPC问题仍然没有约束,因为您尚未指定任何约束。

将执行器饱和度限制为操纵变量的约束。

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

使用Simulink模拟金宝app

金宝appSimulink是用于多域系统模拟的图形框图环境。您可以连接代表动态系统的块(在这种情况下为工厂和MPC控制器),并模拟封闭环。

%检查是否安装了Simul金宝appink,否则显示消息并返回如果〜mpcCheckToolboxInstall('金宝appsimulink')disp(“金宝app需要Simulink才能运行此示例。”返回结尾

为闭环模拟打开预先存在的Simulink模型金宝app。植物模型由两个集成块串联实现。可变步骤ODE45集成算法用于计算连续的时循环行为。MPC控制器块配置为使用工作区mpcobj对象作为控制器。操纵变量以及输出和参考信号。输出信号也由to-workspace块保存。

mdl ='mpc_doubleint';Open_System(MDL)

模拟Simulink中线性植物模型的闭环控制。金宝app请注意,在模拟开始植物模型之前mpcobj转换为离散状态空间模型。默认情况下,控制器用作观察者的卡尔曼滤波器设计器,假设每个工厂输出都有白噪声干扰。

SIM(MDL)%您还可以通过按“运行”按钮来模拟。
- >将“ model.plant”属性转换为状态空间。- >将模型转换为离散时间。假设未在测量的输出通道#1中添加干扰。- >“ model.noise”属性为空。假设每个测得的输出上都有白噪声。

闭环响应显示出良好的设定点跟踪性能,因为工厂输出在大约2.5秒后跟踪其参考。正如预期的那样,操纵变量保留在预定义的约束中。

关闭开放的Simulink模型金宝app,而无需保存任何更改。

BDCLOSE(MDL)

也可以看看

对象

应用

相关话题