主要内容

使用Open-Loop PID AutoTuner块实时调谐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增益”端口输出它们。

当使用Open-Loop PID AutoTuner块实时使用Open-Loop PID AutoTuner块时需要注意一些事情:

  • 由于在整定过程中进行了开环实验,所以整定对象必须是渐近稳定的。如果您的工厂只有一个积分器,您仍然可以通过选择不估计工厂直流增益来使用该块。然而,在这两种情况下,你都必须在调优过程中密切监视电站的行为,并在电站过于接近不希望的运行条件时立即进行干预。

  • 为了帮助估计工厂频率响应更加准确,在调谐过程中应该发生最小负载干扰。该块预计植物输出仅是对注入的扰动信号的响应,并且负载干扰扭曲了该输出。

  • PID块中的“跟踪模式”(Tr Inport)打开,这使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控制器,您需要使用硬件接口块更换“引擎型号”部分,将RPM测量值提供为“Y”,并将节流角发送到执行器“U”金宝app“。

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

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

  • 有一个主机,运行Simulink并通过USB连接与Arduin金宝appo抵抗力通信。

  • 安装“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抵达。程序开始在电路板上运行后,您可以实时监控工厂输入并输出范围。当工厂达到2000 rpm的标称操作点时,请使用三个手动交换机调整,更新和验证控制器。

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

“缩小内存和避免”选项“选项中的”仅限“选项”选项可以帮助在具有有限的内存资源和/或非常快速采样时间的硬件上部署生成的代码。

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

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

BdClose(MDL)

另请参阅

相关的话题