主要内容

用开环PID自整定块实现实时整定PID控制器

该示例演示了如何使用开环PID自动调谐块在仿真和实时两种情况下调整发动机转速控制系统的PI控制器。

开环PID自动调谐模块介绍

开环PID自动调谐块允许您实时调整单回路PID控制器。它执行一个开环实验,向设备注入扰动信号,并根据在期望带宽附近估计的设备频率响应计算PID增益。

开环PID自动调谐块在实时应用中支持两种典型的PID调谐方案:万博1manbetx

(1) 在硬件上部署块,并在独立实时应用程序中使用它,而无需Simulink。万博1manbetx

(2)在硬件上部署块,但使用外部模式在Simulink中监控和管理实时调优过程。万博1manbetx外部模式允许在主机上运行的Simulink框图与在硬件上运行的生成代码之间进行通信。万博1manbetx

本示例重点介绍第二种情况,其中使用开环PID自动调谐块使用外部模式实时调整发动机转速控制系统。

调整发动机转速控制器

Simu万博1manbetxlink模型包含一个PID模块、一个开环PID自动调谐模块和一个发动机模型。

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

PI控制器的初始增益为P=0.01和I=0.01,通过“P”和“I”输入从外部提供给PID块。具有外部P和I增益允许您在开环PID自动调谐块稍后计算新增益后更改它们。

开环PID自动调谐块被插入PID块和发动机模型之间。启动/停止信号用于启动和停止开环实验。当没有实验运行时,开环PID自动调谐块行为像一个统一增益块,其中“u”信号直接传递到“u+Δu”。当实验结束时,块调整PID增益并在“PID增益”端口输出。

在对物理植物实时使用开环PID自动调谐器块时,有几件事你需要知道:

  • 该装置必须是渐近稳定的,因为在调谐过程中进行了开环试验。如果您的工厂只有一个积分器,您仍然可以通过选择不估计工厂直流增益来使用该模块。但是,在这两种情况下,您必须在调整过程中密切监控设备的行为,如果设备过于接近不良操作条件,则必须立即进行干预。

  • 为了更准确地实时估计植物频率响应,在调谐过程中应使负载扰动最小。块期望设备输出仅是对注入扰动信号的响应,而负载扰动使输出失真。

  • PID块中的“跟踪模式”(TR入口)被打开,使PID块在整定过程中跟踪真实的植物输入“u+Δu”。这个特性应该一直使用,以便在闭环和PID块在整定过程完成后恢复控制时提供一个无颠簸的传输。

配置开环PID自动调谐块

将开环PID自动调谐块与电厂模型和PID块正确连接后,打开“块”对话框并指定调谐和实验设置。

在“调优”选项卡中有两个主要的调优设置:

  • 目标带宽:确定您希望控制器以多快的速度响应。在本例中,选择2 rad/sec,因为所需的上升时间是1秒。

  • 目标相位裕度:确定控制器的鲁棒性。在本例中,选择默认值60度,通常会导致约5%的超调。

在“实验”选项卡中有两个主要的实验设置:

  • 正弦振幅:指定注入的正弦波的振幅。在这个例子中,所有四个正弦波都选择0.1,是标称植物输入9的一小部分。在调谐过程中,工厂输出在1900和2100 rpm之间变化,这是大约+/- 5%的名义工厂输出2000。目标是保持电站运行接近标称工作点,以避免激发非线性电站行为。

  • 步进幅度:注入步进信号的幅度。在本例中,也选择0.1。注意,如果设备只有一个积分器,您需要选择不估计直流增益,因此,没有阶跃信号注入到设备。

在正常模式下模拟开环PID自动调谐模块

如果您在Simulink中构建了一个工厂模型,建议在使用外部模式中的模万博1manbetx块进行实时调谐之前,对正常模式下的工厂模型模拟开环PID自动调谐块。模拟将帮助您识别信号连接和块设置中的问题,以便您可以在生成代码之前对它们进行调整。

sim(mdl);

在本例中,发动机转速参考信号在前20秒内从2000转为3000转/分,然后回到2000转/分。初始增益P=0.01和I=0.01会在瞬态中引起强烈振荡,需要重新调整。

在20秒时,设备以2000 rpm的标称工作点运行,并开始在线PID调节。实验持续时间为50秒,因为保守的指导方针建议在线频率响应估计需要大约“100/带宽”秒才能收敛。

当PID调优在70秒停止时,新的增益P = 0.0026和I = 0.0065在“PID增益”输出端口立即可用,并发送到PID块的外部P和I端口,覆盖原来的增益。注意,当回路关闭和PID块恢复控制时,几乎没有暂态肿块。

发动机转速参考信号从2000转至3000转/分,然后在80至100秒之间再次回到2000转/分。新的PI增益提供了更好的闭环响应。

在外部模式下使用开环PID自动调谐块

为了在外部模式中针对物理引擎调整PI控制器,您需要用硬件接口块替换Simulink模型中的“引擎模型”部分,该硬件接口块提供的转速测量值为“y”,向执行器发送节气门角度为“u”。万博1manbetx

这里是一个示例Simulink图,配置万博1manbetx为在外部模式下调谐,假设PI控制器在Arduino DUE板上运行,并通过串行端口与物理引擎通信。

以下是为使原始Simulink模型在外部模式下工作而对其所做更改(按该顺序)的摘要:万博1manbetx

  • 拥有一台运行Simulink的主机,并通过USB连接与Ardu万博1manbetxino DUE板通信。

  • 安装“针对Ardu万博1manbet万博1manbetxxino硬件的Simulink支持包”。如果硬件不同,则需要安装不同的硬件支持包。

  • 在“配置参数”对话框中,在“解算器”窗格中选择“固定步长”解算器类型,在“硬件实现”窗格中选择“Arduino DUE”硬件板。

  • 用两个串行接口块替换原始型号中的发动机型号部分。Arduino板上运行的开环PID自动调谐块实时收集来自“串行接收”块(来自传感器)的设备输出,并通过“串行传输”块(至致动器)将实验信号发送至发动机。

  • 为了在实时操作中获得更大的灵活性,可以通过翻转手动“调谐开关”来启动和停止调谐过程,而不是基于模拟时钟。同样,通过翻转“增益开关”更新PI增益,并通过翻转“Ref开关”更改参考信号。

  • 在Simulink模型中选择“外部模式”,并将模拟时间设置为万博1manbetx“无限”。

模拟运行。首先,Simu万博1manbetxlink生成整个模型的代码并下载到Arduino DUE板。当程序开始在板上运行后,可以从范围中实时监控工厂的输入和输出。当工厂达到2000 rpm的标称操作点时,使用三个手动开关来调整,更新和验证控制器。

在外部模式下减少内存并避免任务溢出

“Block”选项卡中的“Reduce memory and avoid task overrun (only external mode)”选项可以帮助将生成的代码部署到内存资源有限的硬件上和/或非常快的采样时间。

如果硬件板上内存不足,请在外部模式下调谐时使用此选项。使用此选项,Simulink仅为在线频率响应估计功能生成代码。由于没有为PID设计功能部署任何代码,因此减少了硬件上的内存使用。在这种情况下,完成估计后,PI万博1manbetxD增益在主机上的Simulink中计算,然后发送回自动调谐块。

在整定过程结束时的PID增益计算比在线频率响应估计需要更多的计算量。如果控制器采样时间非常快,某些硬件可能无法在执行周期内完成计算。因此,使用主机执行PID增益计算还可以使您在计算能力有限的硬件上调整具有快速采样时间的PID控制器。

bdclose (mdl)

另见

相关话题