主要内容

开关控制器在线和离线无颠簸传输

本例展示了如何在将模型预测控制器从手动操作切换到自动操作时获得无扰动传输,反之亦然。

在制造过程的启动过程中,在切换到自动控制之前,操作人员经常手动调整关键执行器,直到工厂接近所需的工作点。如果做得不正确,转移会引起颠簸;也就是说,一个大的驱动器运动,这可能是不安全或不可取的。

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

模型预测控制器监测所有已知的植物信号,即使它不在执行器的控制下。这种连续监测提高了状态估计的质量,并允许无颠簸地转换为自动操作。

特别是,由于控制信号的最后使用值是内部控制器状态的一部分,所以必须使用MPC块ext.mv当操作员(或另一个控制器)控制装置时,输入信号保持内部MPC状态为最新状态。

定义植物模型

定义一个线性开环动态植物模型。

Num = [1 1];Den = [1 3 2 0.5];Sys = tf(num,den);

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

步骤(系统)

MPC控制器设计

创建一个MPC控制器,指定:

  • 工厂模式

  • 取样时间(0.5时间单位)。

  • 预测地平线15步骤。

  • 控制层2步骤。

Mpcobj = mpc(sys,0.5,15,2);
- - - >“权重。属性为空。假设默认值为0.00000。- - - >“权重。属性为空。假设默认为0.10000。- - - >“权重。OutputVariables属性为空。假设默认值为1.00000。

在被操作的变量上定义约束。

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

指定输出调优权重。

mpcobj.Weights.Output = 0.01;

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

打开Simulin万博1manbetxk模型。

mdl =“mpc_bumpless”;open_system (mdl)

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

  • 外部操纵变量参数为“MPC Controller”。此参数添加ext.mv导入到块,从而允许块监视外部控制信号。

  • 使用外部信号来启用或禁用优化参数为“MPC Controller”。此参数添加开关导入以在不需要时关闭控制器优化计算。

要实现无颠簸传输,设备和控制器的初始状态必须相同,本例中的设备和控制器就是这种情况。但是,如果系统的初始条件不匹配,则可以将控制器的初始状态设置为工厂的初始状态。为此,获取一个mpcstate句柄对象指向控制器的内部状态,并将初始控制器状态设置为植物状态之一。

statobj = mpcstate(MPC1);stateobj。植物= x0;

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

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

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

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

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

在Simulink中模拟线性植物模型的闭环控制。万博1manbetx

sim (mdl)%打开作用域将阻塞Windowsopen_system ([mdl' / Yplots '(mdl) open_system (' / MVplots '])
——>转换“模型”。属性到状态空间。——>转换模型到离散时间。假设添加到测量输出通道#1的输出扰动是集成白噪声。——>”模式。“噪音”属性为空。假设每个测量输出都有白噪声。

对于前90个时间单位,切换信号为0,这使得系统在自动模式下运行。在此期间,控制器平稳地将被控制的植物输出从其初始值0驱动到所需的参考值-0.5。

控制器状态估计器默认为零初始条件,这在模拟开始时是合适的。因此,在启动时没有颠簸。一般来说,当系统以手动模式启动时,最好让它运行足够长的时间,以便控制器在切换到自动模式之前收敛到准确的状态估计。

在第90时刻,切换信号变为1。这种改变将系统切换到手动操作,并将操作员命令发送到工厂。同时,进入控制器开关输入的非零信号关闭优化计算。

当优化被关闭时,MPC控制器内置的估计器继续使用工厂输出测量值,以及被操纵变量的最后一个值(即ext.mv信号),以估计植物状态。MPC控制器块也通过了ext.mv连接到控制器输出端口。

进入手动模式后,Operator Commands块将操作变量设置为10个时间单位的-0.5,然后设置为0。植物输出图显示了当控制器被停用时,90和180之间的开环响应。

在时间180时,系统切换回自动模式。因此,工厂输出平稳地返回到参考值,控制器输出也发生类似的平稳调整。

关闭操纵变量反馈

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

  • 删除进入的信号ext.mv和开关港口MPC Controller块的。

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

  • 对于“MPC Controller”块,清除外部操纵变量而且使用外部信号来启用或禁用优化参数。

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

delete_line (mdl“开关/ 1”“单位延迟/ 1”);delete_line (mdl“单位延迟/ 1”“MPC控制器/ 3”);delete_block ([mdl/单位的延迟]);delete_line (mdl的开关信号/ 1“MPC控制器/ 4”);set_param ([mdl“/ MPC控制器”),“mv_inport”“关闭”);set_param ([mdl“/ MPC控制器”),“switch_inport”“关闭”);

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

set_param ([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切换到手动模式时,工厂行为与之前相同。然而,控制器继续计算必要的控制输入,以保持装置在设定值。因此,被操纵的变量不断增加并最终饱和,如Controller Output作用域所示。此外,由于控制器假设它的输出是到工厂,它的状态估计变得不准确。因此,当系统在时间180切换回自动模式时,工厂内的执行器运动有一个大的颠簸,如plant Output范围所示。

通过使用控制器ext.mv输入信号,以保持内部MPC状态更新时,控制器不操作的工厂,您可以实现从手动到自动操作的平稳转换,因此消除不必要的执行器运动。

bdclose (mdl)

另请参阅