Moku:Go 的 PID 控制器实验

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


Moku:Go

莫库:围棋

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

 

PID控制器

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

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

 

实验装置

成分

  • Moku:Go 硬件 [x1]
  • 5V 风扇 [x1]
  • 聚碳酸酯管 [~100cm]
  • IC3 GP2Y0A21YK 红外距离传感器 [x1]
  • IC1 NE555(定时器),IC2 LM358(运算放大器)[x1]
  • Q1 IRFZ44N(MOSFET),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]

 基于 PWM 的直流电机速度控制原理图

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

图 2: Moku:Go 连接示意图

图 3:带有PC塑料管的风扇系统、红外传感器和乒乓球

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

PID控制器模型

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

图 4:带有 PID 控制器的框图

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

… 其中 K P是比例增益,K I是积分增益,K D是微分增益。为了优化系统的上升时间、稳定时间、过冲和稳态误差,我们需要找到这些增益。下表显示了增加每个 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:Go 应用程序 (Windows/MacOS) 中的示波器仪器,我们可以在乒乓球由于步进输入而上升时捕获 IR 传感器的输出。阶跃输入应用于运算放大器的非反相输入,该输入连接到 Moku:Go 的输出 1。该阶跃输入被转换为驱动风扇电机的 PWM 信号,因此有必要为球将被调谐到的所需高度找到合适的阶跃输入电压。在这种情况下,我将步进输入设置为 1.950V,这意味着 50% 的占空比和 40cm 的球高。这可能因系统而异,具体取决于您选择的组件和乒乓球重量的差异。

图 6:开环阶跃输入响应

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

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

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

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

表 2:齐格勒-尼科尔斯调谐参数

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

…其中 K db是以分贝为单位的增益,K n是根据上面的表 2 计算的增益。

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

图 7: Moku:Go PID 控制器

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

图 8: PID 控制器参数设置

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

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

图 9:  PID 控制器探针点

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