主要内容

单输入单输出装置的模型预测控制

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

定义植物模型

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

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

设计MPC控制器

创建采样周期为0.1秒、预测视界为10步、控制视界为和3步的控制器对象。

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

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

指定驱动器饱和限制作为操纵变量的约束。

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

使用仿真软件模拟金宝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)你也可以通过按“运行”按钮来模拟。
- - - >转换”模型。将“mpc”对象的“属性”放入状态空间。——>模型转换为离散时间。假设对测量的输出通道#1没有增加任何干扰。——>”模式。mpc对象的Noise属性为空。假设每个测量输出通道上都有白噪声。

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

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

bdclose (mdl)

另请参阅

对象

应用程序

相关的话题