主要内容

单输入单输出对象的模型预测控制

此示例显示了如何在Simulink®中控制具有输入饱和的双积分设备。万博1manbetx

定义工厂模型

将电厂模型定义为双积分(输入为操纵变量,输出为测量输出)。

植物=tf(1[10]);

MPC控制器的设计

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

mpcobj=mpc(工厂,0.1,10,3);
-->“mpc”对象的“Weights.ManufacturedVariables”属性为空。“mpc”对象的“Weights.ManufacturedVariablesRate”属性为空。“mpc”对象的“Weights.OutputVariables”属性为空。假设默认值为1.00000。

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

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

mpcobj.MV=struct(“敏”,-1,“马克斯”,1);

使用Simulink进行模拟万博1manbetx

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

%检查Simulink是否万博1manbetx已安装,否则显示一条消息并返回如果~mpcchecktoolbox已安装(“万博1manbetxsimulink”)disp('万博1manbetx运行此示例需要Simulink。')返回终止

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

mdl=“mpc_doubleint”;开放式系统(mdl)

在Simulink中对线性被控对象模型进行闭环控制仿真。万博1manbetx请注意,在模拟开始之前,在mpcobj转换为离散状态空间模型。默认情况下,控制器使用卡尔曼滤波器设计器作为观测器,假设每个设备输出上存在白噪声干扰。

sim卡(mdl)%您也可以按“运行”按钮进行模拟。
-->将“mpc”对象的“Model.Plant”属性转换为状态空间。-->将模型转换为离散时间。假设未向测量的输出通道#1。-->“mpc”对象的“Model.Noise”属性为空。假设每个测量的输出通道上都存在白噪声。

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

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

bdclose(mdl)

另见

物体

应用程序

阻碍

相关的话题