主要内容

单投入单输出设备的模型预测控制

这个例子展示了如何在Simulink®中控制输入饱和的双积分器装置。金宝app

定义工厂模型

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

Plant = tf(1,[1 0 0]);

设计MPC控制器

创建采样周期为0.1秒的控制器对象,预测范围为10步,控制范围为3步。

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

由于您没有指定控制器要最小化的二次代价函数的权重,因此假定它们的值为默认值(操作变量为0,操作变量率为0.1,输出变量为1)。此外,在这一点上,MPC问题仍然是不受约束的,因为你还没有指定任何约束。

指定执行器饱和限制作为被操纵变量的约束。

mpcobj。MV = struct(“最小值”, 1“马克斯”1);

使用Simulink进行模拟金宝app

金宝appSimulink是一个用于多域系统仿真的图形框图环境。您可以连接表示动力系统的块(在本例中是工厂和MPC控制器)并模拟闭环。

检查Simulink是否已金宝app安装,否则显示消息并返回如果~ mpcchecktoolboxinstalled (“金宝app模型”) disp (“金宝app运行这个例子需要Simulink。”返回结束

打开预先存在的Simulink模型进行闭环仿金宝app真。工厂模型由两个积分器块串联实现。采用变步长ode45积分算法计算连续时间循环行为。MPC Controller块被配置为使用工作区mpcobj对象作为控制器。被操纵的变量以及输出和参考信号。输出信号也由To-Workspace块保存。

mdl =“mpc_doubleint”;open_system (mdl)

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

sim (mdl)%你也可以模拟按下“运行”按钮。
——>转换“模型”。属性到状态空间。——>转换模型到离散时间。假设测量的输出通道1没有任何扰动。——>”模式。“噪音”属性为空。假设每个测量输出都有白噪声。

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

关闭打开的Simulink模型金宝app,不保存任何更改。

bdclose (mdl)

另请参阅

对象

应用程序

相关的话题