主要内容

使用Open-Loop PID AutoTuner块实时调谐PID控制器

此示例显示如何使用开环PID自动箱块在模拟和实时调整发动机速度控制系统的PI控制器。

开环PID自动箱块的简介

Open-Loop PID AutoTuner块允许您实时调整单环PID控制器。它执行开环实验,该实验将扰动信号注入工厂并基于估计在所需带宽附近的工厂频率响应来计算PID增益。

开环PID AutoTuner块在实时应用中支持两个典型的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”Inports在外部提供给PID块。具有外部P且我提升允许您在稍后通过开环PID AutoTuner块计算新增的收益后更改它们。

打开循环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到3000rpm开始,然后在前20秒内返回2000rpm。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 rpm转到3000 rpm,然后再次返回到2000 rpm,在80到100秒之间。新的PI增益提供了更好的闭环响应。

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

要在外部模式下对物理发动机调谐PI控制器,您需要使用硬件接口块更换“引擎型号”部分,将RPM测量值提供为“Y”,并将节流角发送到执行器“U”金宝app“。

以下是配置为在外部模式下调谐的示例Si金宝appmulink图,假设PI控制器在Arduino到期板上运行并通过串行端口与物理引擎通信。

以下是对原始Simulink模型所做的更改(按此顺序)的摘要,以便在外部模式下工作:金宝app

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

  • 安装“用于Ardu金宝appino硬金宝app件的Simulink支持包”。如果您的硬件不同,您需要安装不同的硬件支持包。金宝app

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

  • 用两个串行接口块替换原始模型中的发动机模型部分。实时,在Arduino板上运行的开环PID自动箱块收集从“串行接收”块(来自传感器)的工厂输出,并通过“串行传输”块(对执行器)向发动机发送实验信号。

  • 有关实时操作的更大灵活性,请通过翻转手动“调谐开关”而不是基于仿真时钟开始调谐过程。类似地,通过翻转“增益开关”并通过翻转“REF开关”来更新PI增益。

  • 在Simulink模型中选择“外部模式”并将仿真时间设置为“金宝app无限”。

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

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

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

如果您的硬件在电路板上有很低的内存,请在外部模式下调整时使用此选项。使用此选项,Simulink仅生成用金宝app于在线频率响应估计功能的代码。由于没有为PID设计功能部署代码,因此结果减少了硬件上的内存使用情况。在这种情况下,在完成估计之后,在主计算机上以Simulink计算PID增益,然后将其发送回AutoTuner块。金宝app

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

BdClose(MDL)

也可以看看

相关话题