主要内容

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

这个例子展示了如何使用开环PID自动调谐块来调整一个发动机转速控制系统的PI控制器在仿真和实时。

开环PID自整定器模块介绍

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

开环PID自动调谐块在实时应用中支持两种典型的PID调谐场景:金宝app

(1)在硬件上部署块,并在独立的实时应用程序中使用它,而不需要Simulink。金宝app

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

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

调整发动机转速控制器

Simu金宝applink模型包含一个PID块,一个开环PID自动调谐块和一个引擎模型。

mdl =“scdspeedctrlOnlinePIDTuning”;open_system (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中构建了一个工厂模型,建议在使用外部模式中的模金宝app块进行实时调谐之前,对正常模式下的工厂模型模拟开环PID自动调谐块。模拟将帮助您识别信号连接和块设置中的问题,以便您可以在生成代码之前对它们进行调整。

sim (mdl);

在这个例子中,引擎转速参考信号从2000转到3000转,然后在前20秒返回到2000转。P = 0.01和I = 0.01的原始增益在瞬态中引起强烈的振荡,需要重新调谐。

在20秒时,工厂在2000转/分钟的额定运行点运行,在线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”。金宝app

下面是一个配置为在外部模式下进行调优的金宝appSimulink图示例,假设您的PI控制器运行在Arduino DUE板上,并通过串口与物理引擎通信。

以下是对原始Simulink模型所做的更改(按顺序)的总结,以使其在外部模式下工作:金宝app

  • 拥有一台运行Simulink的主机,并通过USB连接与Ardu金宝appino DUE板通信。

  • 安装“Arduin金宝appo硬件S金宝appimulink支持包”。如果硬件不同,则需要安装不同的硬件支持包。金宝app

  • 在“Configuration Parameters”对话框中,在“solver”窗格中选择“Fixed-Step”求解器类型,在“hardware Implementation”窗格中选择“Arduino DUE”硬件板。

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

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

  • 在Simulink模型中选择“External Mode”,金宝app设置仿真时间为“infinite”。

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

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

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

如果硬件内存不足,则在外部模式下进行调优时使用此选项。有了这个选项,Simulink只生成金宝app用于在线频率响应估计功能的代码。由于没有部署用于PID设计功能的代码,因此减少了硬件上的内存使用。在这种情况下,估计完成后,在上位机的Simulink中计算PID增益,然后发送回自动调谐器块。金宝app

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

bdclose (mdl)

另请参阅

相关的话题