主要内容

切换控制器在线和离线与无颠簸转移

此示例显示了如何在将模型预测控制器从手动操作切换到自动操作或从手动操作切换到自动操作时实现无扰动传输。

在制造过程启动期间,在切换到自动控制之前,操作员手动调整关键执行器,直到工厂接近所需的工作点。如果操作不正确,转移可能导致碰撞;也就是说,一个大的执行器运动。

在本例中,您将模拟包含单输入单输出LTI设备和MPC控制器块的S万博1manbetximulink®模型。

模型预测控制器监控所有已知的电厂信号,即使它不在执行器的控制范围内。这种监控改进了其状态估计,并允许无扰动转换为自动操作。

特别是,它显示了ext.mv当操作员或其他控制器处于控制状态时,MPC模块的输入信号可用于保持内部MPC状态最新。

定义植物模型

定义线性开环动态设备模型。

Num = [1 1];Den = [1 3 2 0.5];sys =特遣部队(num穴);

从阶跃响应可以看出,该装置是一个稳定的单输入单输出系统。

步骤(系统)

MPC控制器设计

创建MPC控制器,指定:

  • 工厂模式

  • 采样时间Ts

  • 预测视界P

  • 控制层M

t = 0.5;p = 15;m = 2;mpcobj = mpc (sys, Ts, p、m);
- - - >“权重。mpc对象的操纵变量属性为空。假设默认的0.00000。- - - >“权重。mpc对象的操控变量率属性为空。假设默认的0.10000。- - - >“权重。mpc对象的属性为空。假设默认的1.00000。

定义操纵变量的约束。

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

指定输出调优权重。

mpcobj.权重.输出=0.01;

打开并配置Simulink模型万博1manbetx

打开Simulin万博1manbetxk模型。

mdl=“mpc_无颠簸”;open_system (mdl)

在这个模型中,MPC控制器块已经使用以下控制器参数设置配置为无颠簸传输。

  • 这个外部操纵变量参数被选中。该参数通过添加外部操纵变量来启用外部操纵变量ext.mv输入到块中。

  • 这个使用外部信号来启用或禁用优化已选中。此参数将添加开关用于关闭控制器优化计算的输入端口。

为了实现无颠簸传输,设备和控制器的初始状态必须相同,在本例中,设备和控制器也是如此。但是,如果您的系统的初始条件不匹配,您可以将控制器的初始状态设置为工厂的初始状态。要做到这一点,提取mpcstate对象,并设置设备的初始状态。

stateobj=mpcstate(MPC1);stateobj.Plant=x0;

哪里x0是初始植物状态的矢量。然后,设置初始控制器状态参数的MPC控制器块stateobj.

为了模拟手动和自动操作之间的切换,切换块发送1或0来控制开关。当发送0时,系统处于自动模式,来自MPC控制器块的输出进入设备。否则,系统处于手动模式,来自操作员命令块的信号发送至设备。

在这两种情况下,实际的电厂输入反馈给控制器ext.mv输入,除非植物输入在-1或1处饱和。即使在手动操作时,控制器也会不断监控设备的输出并更新其对设备状态的估计。

该模型还显示了优化切换选项。当系统切换到手动操作时,一个非零信号进入系统开关控制器块的导入。信号关闭了控制器的优化计算,减少了计算工作量。

在Simulink中模拟控制器万博1manbetx

在Simulink中对线性被控对象模型进行闭环控制仿真。万博1manbetx

sim卡(mdl)
- - - >转换”模型。将“mpc”对象的“属性”放入状态空间。——>模型转换为离散时间。——>假设添加到测量输出通道#1的输出扰动为集成白噪声。——>”模式。mpc对象的Noise属性为空。假设每个测量输出通道上都有白噪声。

对于前90个时间单位,开关信号为0,这使系统在自动模式下运行。在此期间,控制器平稳地将受控设备输出从其初始值0驱动至所需参考值-0.5。

控制器状态估计器的默认初始条件为零,这在模拟开始时是合适的。因此,在启动时没有碰撞。通常,在切换到自动模式之前,启动系统在手动模式下运行足够长的时间,以便控制器获得准确的状态估计。

在时间90时,切换信号变为1。这一改变将系统切换为手动操作,并将操作人员的指令发送给工厂。同时,非零信号进入控制器的开关入口,关闭优化计算。当优化关闭时,MPC控制器块通过电流ext.mv控制器输出的信号。

一旦进入手动模式,操作员命令将操纵变量设置为-0.5,持续10个时间单位,然后设置为0。当控制器停用时,设备输出图显示时间90和180之间的开环响应。

在时间180时,系统切换回自动模式。因此,设备输出平滑地返回到参考值,并且类似的平滑调整发生在控制器输出中。

关闭操纵变量反馈

为了检验没有操纵变量反馈的控制器行为,对模型进行如下修改:

  • 删除进入的信号ext.mv和开关入口MPC控制器模块的。

  • 删除单位延迟块和进入其入口的信号线。

  • 对于MPC控制器块,清除外部操纵变量使用外部信号来启用或禁用优化参数。

要以编程方式执行这些步骤,请使用以下命令。

delete_line (mdl“开关/ 1”,“单位延迟/1”);delete_line (mdl“单位延迟/1”,“MPC控制器/3”); 删除_块([mdl“/单位延迟”]);delete_line (mdl“切换/1”,“MPC控制器/4”);设置参数([mdl“/ MPC控制器”],“mv_输入端口”,“关闭”);设置参数([mdl“/ MPC控制器”],“switch_inport”,“关闭”);

调整响应图的极限,并模拟模型。

设置参数([mdl“/Yplots”],“Ymin”,-1.1 ~ -0.1的(mdl) set_param (“/Yplots”],“Ymax”,“2 ~ 1.1”(mdl) set_param (' / MVplots '],“Ymin”,-0.6 ~ -0.5的(mdl) set_param (' / MVplots '],“Ymax”,1.1 ~ 1.1的) sim (mdl)

系统的行为与前90个时间单位的原始情况相同。

当系统在时间90切换到手动模式时,设备行为与之前相同。但是,控制器尝试将设备保持在设定点。因此,其输出增加并最终饱和,如控制器输出所示。由于控制器假设此输出将发送到设备,其状态估计变得不准确。T因此,当系统在时间180切换回自动模式时,设备输出中会出现较大的波动。

这样的颠簸会在工厂内产生较大的驱动器运动。通过平稳地从手动转换到自动操作,模型预测控制器消除了这些不必要的运动。

bdclose (mdl)

另见