应用笔记

使用 Moku:Go 的 PID 控制器的开环调整实验室

实验室实验,使用 Ziegler-Nichols 方法进行 PID 调整

Moku:Go 在一台高性能设备中结合了 14 多种实验室仪器。 本应用说明使用 Moku:Go 的 PID 控制器、示波器和可编程电源提供一种视觉上引人入胜的方式来学习 PID 控制器的各种调整方法。

 


Moku:Go

Moku:Go

Moku:Go 在一台高性能设备中结合了 14 多种实验室仪器,具有 2 个模拟输入、2 个模拟输出、16 个数字 I/O 引脚和可选的集成电源。

 

 

PID 控制器

比例-积分-微分 (PID) 控制器是最常见的反馈控制形式之一,广泛用于各种应用,例如汽车的巡航控制或飞行无人机的电机控制。 PID 控制器的目的是驱动过程达到指定的输出,通常称为设定值。 控制器的反馈用于调节和优化该过程的控制。

此应用程序的目的是介绍 Moku:Go 的 PID 控制器以及如何将其轻松集成到实验室环境中以教授控制理论。 通常,控制理论主要通过严格的数学建模和计算来教授,该课程的少数实验室以控制物体的温度或直流电机的速度为中心。 本说明介绍了一种现代控制理论教育方法,通过应用更直观的组件来帮助学生更容易地将课堂上学到的理论与物理控制系统联系起来。 这是通过使用直流电机风扇、红外距离传感器和 Moku:Go 控制乒乓球的高度来实现的。 Moku:Go 包含集成示波器、PID 控制器、波形发生器和可编程电源,可以驱动电机控制电路、接收传感器数据并输出指定信号以控制直流电机的速度。 这样,通过比较实现之间的乒乓球的上升时间、超调和稳态高度等特性,可以很容易地发现何时实施 PID 控制器和何时不实施 PID 控制器之间的差异。 它还允许通过 Moku:应用程序进行实时调整,以便学生可以看到不同的 PID 增益如何在数学和物理上影响系统。 本实验的完整组件列表可在下面的实验设置部分找到。

 

实验装置

平台组件

  • 墨库:去 [x1]
  • 5 伏风扇 [x1]
  • 聚碳酸酯管 [~100cm]
  • IC3 GP2Y0A21YK 红外距离传感器 [x1]
  • IC1 NE555(定时器), IC2 LM358(运算放大器)[x1]
  • Q1 IRFZ44N(场效应管), Q2 C1815(晶体管)[x1]
  • D1 1N4004(二极管)[x1]
  • C1 200nF [x1], C2 47nF [x1], C3 330μF [x1]
  • R1 27kΩ [x1], R2 39kΩ [x1], R3 120kΩ [x1], R4/R5/R6 10kΩ [x3] 电阻
  • 50kΩ电位器
  • 面包板 [x1]

数字 1: 基于 PWM 的直流电机速度控制原理图

上面的电路使用 NE555 定时器 (IC1) 生成一个锯齿波,该波形被馈送到比较器 (IC2) 的反相输入端。 Moku:Go 的 PID 控制器输出(输出 1)被馈送到比较器的非反相输入,从而生成 PWM 信号。 该信号被发送到 MOSFET (Q1),该 MOSFET 控制 5V 风扇消耗的功率。 球迷看到的力量直接转化为乒乓球将漂浮的高度。 控制高度的方法是使用连接到 Moku 的设定点电位器:通过输入 1。PID 控制器使用此设定点来确定输出 1 上的直流电压应该是多少,以获得所需的高度乒乓球。 对于球高度的闭环控制,将 IR 传感器 (IC3) 的输出连接到 Moku:Go 的输入 2 并重新配置 PID 的控制矩阵,可以缩短对电位器设定值变化的响应时间。 显示 Moku:Go 连接的示意图可以在下面的图 2 中看到。

图2: Moku:Go 连接示意图

图3: 带聚碳酸酯管、红外传感器和乒乓球的风扇

该实验室设置的另一部分是用于使乒乓球悬浮在空中的机械系统。 它由一个 5V 风扇、聚碳酸酯管、IR 传感器和一个乒乓球组成。 管道通过一些橡胶条安装到风扇的输出端,并且每 5 厘米放置一个标记以便于测量。 重要的是要注意管道在每 5 厘米处有三个 ¼ 英寸的孔,以便为系统提供“阻力”。 这对设置很重要,否则每次打开风扇时球都会浮到顶部,无论发送到风扇的功率有多大。 IR 传感器放置在管子的顶部,因此当球上升时,传感器输出的电压也会上升。

PID控制器型号

我们想要控制乒乓球的高度,我们想要使用 PID 控制器来实现,这意味着我们需要找到 P、I 和 D 增益,以针对我们希望它完成的过程优化我们的系统. 然而,我们必须首先从数学上理解我们的系统,并了解 PID 控制器如何影响我们的系统,然后才能为我们的 PID 增益插入值。 从控制理论中,我们知道 PID 控制器可以建模为如下所示的传递函数,其中 C(s) 是控制器传递函数,G(s) 是对象传递函数,R 是参考值,e 是误差( e = R – Y),Y 是系统的输出。

图4: PID 控制器框图

利用我们的控制理论知识,我们知道……

……哪里 KP 是比例增益,KI 是积分增益,KD 是导数增益。 为了优化系统的上升时间、稳定时间、过冲和稳态误差,我们需要找到这些增益。 下表显示了增加每个 PID 增益如何改变每个系统特性。 降低增益会产生与表中所示相反的效果。

表1: PID 整定参数

在找到增益后微调 PID 控制器时,或者如果您使用“试错法”设计控制器时,此表会派上用场。 然而,还有另一种方法可以通过分析系统的开环阶跃响应为我们提供相当好的 PID 增益值。 这被称为 Ziegler-Nichols 方法,通常在控制系统课程中教授,可用于快速找到起始 PID 增益值,然后使用表 1 微调控制器。以下显示了使用 Moku 的快速无缝方法:Go 的 PID 控制器和示波器来实施 Ziegler-Nichols 方法,然后使用 Moku:Go 桌面应用程序实时微调控制器。

齐格勒-尼科尔斯法

Ziegler-Nichols 调整方法使用开环系统的瞬态阶跃响应来确定 PID 控制器的初始 PID 参数。 这些值并非对每个系统都是完美的,之后仍应验证和调整控制器,但是,它为大多数控制系统提供了坚实的起点。 此方法仅适用于其开环阶跃响应类似于 S 形曲线的系统,如下图 5 所示,这意味着它没有复共轭极点。

图5: 齐格勒-尼科尔斯反应曲线

乒乓球系统类似于一阶平移质量型系统,通常具有以下传递函数:

...哪里 m 是球的质量和 b 是一个摩擦系数,由乒乓球所在的管子上的孔模拟。如果管子上没有孔,就不会有反作用力,每次风扇转动时球都会直射到顶部打开,无论施加的电源。

使用 Moku: 应用程序 (Windows/MacOS) 中的示波器仪器,我们可以在乒乓球因阶跃输入而上升时捕获红外传感器的输出。 步进输入被应用于连接到 Moku:Go 输出 1 的运算放大器的非反相输入。 该步进输入被转换为驱动风扇电机的 PWM 信号,因此有必要为球将被调整到的所需高度找到合适的步进输入电压。 在这种情况下,我将阶跃输入设置为 1.950V,这意味着占空比为 50%,球高为 40cm。 这可能因系统而异,具体取决于您选择的组件和乒乓球重量的差异。

图6: 开环阶跃输入响应

关于图 6 需要注意的几点 - IR 传感器预计会产生 960.7mV 偏移,并且会根据管的长度而变化。 对于此应用,管子长 60 厘米,因此偏移量将是红外传感器数据表中所说的当物体距离 60 厘米时输出的电压(假设红外传感器位于管的顶部)。 屏幕底部的弹出窗口是示波器内置的波形发生器,它允许您同时使用示波器和波形发生器仪器。 这允许轻松表征阶跃输入响应,因为我们可以快速更改阶跃输入(1.950V DC 信号)并从同一屏幕测量阶跃输入。 最后,屏幕右侧的弹出窗口是测量选项卡,其中包含 24 个独特的测量值,包括上升时间、过冲、下冲等。

我们可以通过使用内置测量选项卡并应用 Ziegler-Nichols 调谐方法来快速表征阶跃输入响应。 在应用程序中无法在图形上的拐点处添加切线,但是通过结合使用高电平和低电平测量以及一些电压和时间光标,我们可以估算时间延迟 L 和时间常数 T. 时间延迟 L 是从应用阶跃输入到系统对阶跃输入作出反应的时间,在本例中为 2.645s。 时间常数 T 是发生响应所需的时间,在本例中为 0.58 秒。 时间常数应该非常接近右侧测量选项卡中显示的上升时间。

找到这些常数的方法是使用一个长而直的物体,如尺子,只需将它举到屏幕上的拐点处,然后将两个时间光标拖动到尺子与高电平和低电平电压光标相交的位置。 应用光标的最简单方法是将它们从左下角的光标图标拖入。 单击并向上拖动时间光标,向右拖动电压光标。 最后一步是将参考时间光标应用于应用步进输入的时间,此处为 -2.831s。 参考光标为负的原因是因为触发器设置为单一采集模式,这样当 IR 传感器的输出电压超过触发阈值时,信号在示波器屏幕上以 0s 为中心。

使用游标计算时间延迟后 L 和时间常数 T,我们现在可以使用下面的表 2 计算 PID 控制器增益。

表2: Ziegler-Nichols 调整参数

将这些值放入 PID 控制器之前的最后一步是将它们转换为分贝,这可以使用等式完成……

…哪里 Kdb 是以分贝和 K 为单位的增益n 是从上面的表 2 计算的增益。

此时,我们可以将 PID 增益输入到 Moku:Go 的 PID 控制器工具中,方法是单击下图 7 所示的两个信号链之一中的控制器框。

图7: Moku:Go PID控制器

这将打开控制器的参数设置,您可以在其中输入刚刚计算的增益。 可以选择在频域或时域中输入增益。 默认是频域,但可以通过选中控制器弹出窗口右下角的“高级模式”框轻松切换到时域实现。 此模式还允许分段实现控制器,表示为 A 部分和 B 部分。我们将只使用 A 部分,但您仍然需要启用 B 部分并简单地禁用除 G(总增益)之外的所有参数可以设置为 0dB。 请记住通过单击右侧的 P、I 和 D 符号在 A 部分启用正确的参数。

图8: PID 控制器参数设置

Moku:Go 的 PID 控制器也可以实时使用,以进一步调整控制器增益并优化系统响应。 PID 控制器有一个嵌入式示波器,可以在控制器的波德图旁边查看信号。 通过在伯德图中使用拖放方法手动更改增益,学生可以更容易地了解更改某些增益参数对系统的物理影响。 拖放方法仅在频域实现中可用,因此需要能够在时域和频域之间转换 PID 增益。

在嵌入式示波器中查看这些信号的一种简单方法是单击其中一个“探测点”,该探测点由一个较大的黑色圆圈包围的蓝色小圆圈表示。 它们可以方便地放置在感兴趣的位置,例如输入 1 之后、PID 控制器输出之前以及其他一些有用的地方。 要查看 IR 传感器的输出,我们将在输入 2 之后放置一个探测点,用粗体 A 和红色标记,如图 9 所示。

图9: PID 控制器探测点

为了确认 PID 控制器确实改善了我们系统的响应,我们现在要关闭我们系统的循环,首先将输入 1 连接到设定点电位器的输出节点,然后将红外传感器的输出馈送到输入 2 并从输入中减去它1 在控制矩阵中。 这模拟了图 4 方框图中所示的求和块。为此实验室设置闭环反馈的一个重要步骤是消除由于球距引起的 IR 传感器输出偏移。 这改善了 PID 控制器的响应,并且可以通过将球静止时 IR 传感器的偏移量添加到 PID 信号路径中的输入偏移量(在本例中为 961.4mV)来实现。 然后,通过使用设定点电位器应用在本实验的开环部分中使用的相同阶跃输入,我们可以在嵌入式示波器中捕获系统的闭环阶跃输入响应,并使用自动测量来表征响应。 该系统的闭环阶跃响应可以在下面的图 10 中看到,它是在 PID 控制器仪器的嵌入式示波器中捕获的。 这使我们仍然可以运行 PID 控制器并仅捕获显示阶跃响应的帧。 使用“正常”触发模式很重要,这样可以正确捕获和显示信号以便于测量。

图10: 闭环阶跃响应

将这些参数与原始开环阶跃输入响应进行比较,我们可以确定 PID 控制器是否提高了我们系统的性能。 查看嵌入式示波器的自动测量结果,我们可以看到,通过实施 PID 控制器,我们的时间延迟、上升时间和下冲得到了改善。 然而,这些初始收益也显着增加了我们的超调误差。 这是我们正在使用的 Ziegler-Nichols 方法的预期结果,并且可以通过使用表 1 中的启发式方法微调阶跃响应轻松消除。

使用表 1 的调谐系统的闭环阶跃响应如下图 11 所示。

图11: 调谐闭环阶跃响应

我们可以看到,从开环响应(图 6)到闭环响应(图 10),上升时间、稳定时间、过冲和下冲都得到了显着改善。因此,我们展示了如何直观地实现 PID 控制器实验室使用通用组件和 Moku:Go。 Moku:Go 在本实验中使用了 4 种不同的仪器,包括:示波器、波形发生器、PID 控制器和三个可编程电源(16V 和两个 5V)。

图12: PID 控制器实验室设置


Moku:Go 的好处

对于教育工作者和实验室助理

  • 有效利用实验室空间和时间
  • 易于一致的仪器配置
  • 专注于电子设备而不是仪器设置
  • 最大化实验室助教时间
  • 个人实验室,个人学习
  • 通过屏幕截图简化评估和评分

对于学生

  • 以自己的节奏进行的各个实验室可以增强理解和记忆
  • 便携式,选择实验室工作的节奏、地点和时间,无论是在家、在校园实验室还是远程协作
  • 熟悉的 Windows 或 macOS 笔记本电脑环境,但配备专业级仪器

Moku:Go 演示模式

您可以在 Liquid Instruments 网站下载适用于 macOS 和 Windows 的 Moku:go 应用程序。 演示模式无需任何硬件即可运行,并提供了使用 Moku:Go 的精彩概述。


有疑问或想要可打印版本?

请与我们联系 support@liquidinstruments.com