主要内容

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

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

开环PID自动调谐块

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

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

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

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

此示例侧重于第二种情况,其中开环PID自动箱块用于使用外部模式实时调整发动机速度控制系统。

发动机转速模型

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

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

PI控制器具有P = 0.01和I = 0.01的初始收益,通过“P”和“i”Inports在外部提供给PID块。具有外部P且我收益允许您在开环PID AutoTuner块计算新增次级后更改它们。

打开循环PID自动箱块插入PID块和发动机模型之间。开始/停止信号用于启动和停止开路实验。当没有实验运行时,开环PID自动箱块的行为类似于单位增益块,其中“u”信号直接传递给“u +Δu”。实验结束时,块调谐PID增益并以“PID增益”端口输出。

在使用实际工厂使用开环PID自动箱块时存在一些重要的考虑因素。

  • 该工厂必须渐近稳定,因为在调谐过程中进行了开环实验。如果您的工厂有一个集成商,您仍然可以通过选择不估计工厂直流增益来使用块。但是,在这两种情况下,如果工厂无法靠近不希望的操作条件,您必须在调整过程中密切监测植物行为,并迅速干预。

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

  • 打开PID块中的“跟踪模式”(TRINPORT),这使得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 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”。金宝app

作为示例,以下Simulink图被配置为在外部模式下调谐,金宝app假设您的PI控制器在Arduino®Updoca上运行并通过串行端口与物理引擎通信。

为了使原始模型在外部模式下工作,对原始Simulink模型进行了以下更改(按顺序)。金宝app

  1. 有一个主机,运行Simulink并通过USB连接与Arduin金宝appo Due的通信。

  2. 安装Arduin金宝appo硬件软金宝app件的Simulink支持包。如果您的硬件不同,则必须安装不同的硬件支持包。金宝app

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

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

  5. 为了在实时操作中的更大灵活性,通过将手动“调谐开关”而不是基于仿真时钟,启动和停止调谐过程。类似地,通过翻转“增益开关”并通过翻转“REF切换”来更新PI增益。

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

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

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

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

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

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

bdclose(mdl)

另请参阅

相关话题