主要内容

使用开环PID自动调谐模块实时调整PID控制器

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

开环PID自动调谐块

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

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

  1. 在没有Simulink®的情况下,将block部署到硬件上,并在一个独立的实时应用程序中使用它。万博1manbetx

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

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

发动机转速模型

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

mdl =“scdspeedctrlOnlinePIDTuning”; 开放式系统(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);

在本例中,发动机转速参考信号从2000转至3000转/分,然后在前20秒内回到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

例如,假设PI控制器在Arduino®到期板上运行,并通过万博1manbetx串行端口与物理引擎通信,则以下Simulink图配置为在外部模式下进行调谐。

为了使原始模型在外部模式下工作,我们(按顺序)对原始Simulink模型进行了以下更改。万博1manbetx

  1. 拥有一台运行Simulink并通过USB连接与Arduino 万博1manbetxDUE板通信的主机。

  2. 安装Arduin万博1manbet万博1manbetxxo硬件软件的Simulink支持包。如果您的硬件不同,则必须安装不同的硬件支持包。万博1manbetx

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

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

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

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

运行模拟。首先,Simulink为整个模型生成代码,并万博1manbetx将其下载到Arduino到期板。程序开始在电路板上运行后,您可以实时监控示波器的设备输入和输出。当设备达到2000 rpm的标称工作点时,使用三个手动开关调整、更新和验证控制器。

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

选项卡,该减少内存并避免任务溢出(仅外部模式)选项可以帮助在内存资源有限或采样时间非常快的硬件上部署生成的代码。

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

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

bdclose(mdl)

另请参阅

相关话题