Moku:Go PID控制器实验
采用齐格勒-尼克尔斯方法进行PID调整并开展实验
视频演示
Moku:Go 将 8 种实验仪器整合为一台高性能设备。这份应用说明将利用 Moku:Go 的 PID 控制器、示波器、波形发生器和可编程电源功能,为学习 PID 控制器的各种调节和优化方法提供一种很直观的方式。
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 硬件 [x1]
5V 电扇 [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]
实验电路板 [x1]
图 1: 基于脉冲宽度调制(PWM)的直流电机速度控制原理图
上图电路使用 NE555 定时器(IC1)产生一个锯齿波形,随后被馈送到比较器(IC2)的反相输入端。Moku:Go PID 控制器的输出(输出 1)被馈送到比较器的同相输出端,从而产生一个 PWM 信号。这个信号被 送到场效应管(Q1)中,用来直接控制 5V 风扇消耗的功率。风扇的功率大小会直接以乒乓球的悬浮高度体现 出来。控制高度的方法是采用通过输入 1 端口连接到 Moku:Go 的设定点电位计。PID 控制器通过这个设定点 来控制输出 1 端口的直流电压,从而达到所需的乒乓球高度。要对乒乓球高度进行闭环控制,首先将红外传感 器(IC3)的输出与 Moku:Go 的输入 2 端口相连,然后重新配置 PID 的控制矩阵,使电位计设定点变化的反应时间得到改进。下方图 2 给出了 Moku:Go 连接的原理示意图。
图 2: Moku:Go连接原理图
图 3: 风扇、聚碳酸酯管、红外传感器和乒乓球组成的装置
本实验设置的另一部分就是使乒乓球悬浮在空中的机械系统,由一个 5V 风扇、聚碳酸酯管、红外传感器和一个 乒乓球构成。用橡胶条将管子固定在风扇输送风力的位置,并每隔 5 厘米放置一个标记以方便测量。需要注意 的是,我们在管子每隔 5 厘米高度的位置上开了 3 个 6 直径 6 毫米左右的小孔,给系统提供“阻力”。这一步 对实验设置来说非常重要,否则乒乓球在每次风扇打开时都会漂浮到管子的顶端,无论风扇的功率如何。红外 传感器安装在管子的顶端,当乒乓球上升时,传感器的电压输出就会升高。
PID 控制器模型
我们想要控制乒乓球的高度,并希望使用 PID 控制器来实现,这就意味着我们要找到比例(P)、积分(I)和 微分(D)增益,以优化我们希望系统完成的过程。然而,我们必须首先理解系统的数学原理,认识 PID 控制 器如何对系统产生影响,才能为 PID 增益代入数值。根据控制理论,我们知道 PID 控制器可以建模为如下图 4 中所示的传递函数,其中 C(s)是控制器传递函数,G(s)是被控对象传递函数,R 是参考值,e 是误差(e=R-Y), 而 Y 是系统的输出。
图 4: PID 控制器的方块图
根据控制理论的知识,我们知道
????(????) = ???????? + ???????? + ???????????? ????
其中 KP 是比例增益,KI 是积分增益,而 KD 是微分增益。为优化系统的上升时间、稳定时间、过冲距离和稳态 误差,我们必须找到这些增益。下方的表格显示出增加每个 PID 增益会为系统特性带来哪些变化。降低增益会 产生与表格中所示相反的效果。
表格 1 PID调整参数
反应 | 上升时间 | 稳定时间 | 过冲距离 | 稳态误差 |
KP | 降低 | - | 增加 | 降低 |
KI | 降低 | 增加 | 增加 | 消除 |
KD | - | 降低 | 降低 | - |
在找到增益准备微调 PID 控制器时,或者使用“试错”方法设计控制器时,该表格都非常有用。然而,还有另 一种方法可以仅通过分析系统的开环阶跃响应,就得到比较好的 PID 增益值。这就是控制系统课程中普遍教授 的齐格勒-尼克尔斯方法,可用于快速找到起始的 PID 增益值,再根据表 1 对控制器进行微调。以下介绍了一种快速且无缝的方法,使用 Moku:Go 的 PID 控制器和示波器来实现齐格勒-尼克尔斯方法,并随后用 Moku:Go 桌面应用程序对控制器进行实时微调。
齐格勒-尼克尔斯方法
齐格勒-尼克尔斯调整方法使用开环系统的瞬态阶跃响应来确定 PID 控制器初始的 PID 参数。这些数值并不能 很好地适配每个系统,控制器也需要后续进行验证和调整。但是,它为大多数控制系统提供了一个可靠的起点。这个方法只能用于开环阶跃响应类似于 S 形曲线的系统,如下方图 5 所示,这意味着它没有共轭复数极点。
图 5: 齐格勒-尼克尔斯反应曲线
乒乓球系统类似于一个一阶平移质量型系统,其传递函数通常为????(????) = 1 ,其中 m 是乒乓球的质量,而 b ????????+????
是由管子上的小孔模拟的摩擦系数。如果没有这些小孔,就没有相反的力,从而导致乒乓球在每次打开风扇时 都会直接被射到顶部,无论风扇的功率是多少。
使用 Moku:Go 应用程序(Windows/MacOS)中的示波器功能,我们可以捕捉到红外传感器在乒乓球因阶跃 输入而上升时的输出信号。阶跃输入被用于放大器的同相输入,并与 Moku:Go 的输出 1 端口相连。这个阶跃 输入要被转化为驱动风扇电机的 PWM 信号,所以我们必须为乒乓球将被微调到的理想高度找到合适的阶跃输 入电压。在本次实验中,我将阶跃输入设置为 1.950V,相当于 50%空闲度,球高 40cm。由于选取的组件和乒 乓球重量存在差异,这个数值在不同系统中也可能有所不同。
图6: 开环阶跃输入响应
关于图 6 有一些注意事项:我们预计会出现 960.7 mV 来自红外传感器的偏移,其数值根据管子的长度而异。在本次应用中,管子长 60cm,所以偏移量是红外传感器数据表中物体在 60cm 之外时的输出电压(假定红外 传感器位于管子的顶端)。屏幕底端弹出的信息是示波器内置的波形发生器,使用户可以同时使用示波器和波 形发生器功能。由于我们可以迅速改变阶跃输入(1.950 V 的直流信号),并在同一屏幕上测量阶跃输入,所 以能轻松地反馈阶跃输入响应的特征。最后,屏幕右侧的弹窗会显示 24 个独特的测量参数,包括上升时间、过 冲距离、下冲距离等。
我们可以通过内置的测量选项并使用齐格勒-尼克尔斯方法来快速确定阶跃输入响应的特征。应用程序使用过程 中无法在图像的拐点处添加切线,但通过高水平和低水平测量,再配合一些电压和时间光标,我们就能近似得 出时间延迟 L 和时间常数 T。时间延迟 L 是从应用阶跃输入到系统对其作出反应的时间,在本次实验中为 2.645 秒。时间常数 T 是发生相应所需的时间,在本次实验中为 0.58 秒。时间常数应该与右侧显示的上升时间非常接近。
找到这些常数的方法是用一个长直的物体(如尺子),将它直接拿到屏幕的拐点处,然后将两个时间光标分别 拖到它与高电压和低电压光标相交的地方。添加光标最简单的方式就是直接从左下角的光标图表处拖入。点击 并向上拖动添加时间光标,向右拖动添加电压光标。最后一步是在施加阶跃输入时添加一个参考时间光标,在 本实验中为-2.831 秒。参考光标为负值是因为我们将触发设置为单一采集模式,所以当红外传感器的输出电压 超过触发阈值时,信号会在示波器屏幕上被放到中心的 0s。
使用光标来计算时间延迟L和时间常数T后,我们就能通过下方表2来计算PID控制器的增益。
在将这些数值输入 PID 控制器之前,最后一步是要将它们转换为分贝,可使用以下公式:
???????????? =20log10(????????)
其中 KdB 是以分贝为单位的增益,而 Kn 则是根据上方表 2 计算的增益。
这时,我们便可以点击两个信号链之一的控制器按钮,将 PID 增益输入 Moku:Go 的 PID 控制器中,如下图 7 所示。
图 7: Moku:Go PID控制器
这会打开控制器的参数设置,让您输入刚刚计算得到的增益。用户可以选择在频域或时域中输入增益。默认设定是频域,但您可以点击控制器弹窗右下角的“高级模式”,轻松切换到时域设定。这个模式还可以实现控制器的分段运行,分别标识为A部分和B部分。我们这里只会用到A部分,但您仍需启动B部分,并禁用除G(整体增益)以外的所有参数即可,G可设置为0 dB。请记住点击右侧的P、I和D按钮来启动A部分的正确参数。
图 8: PID控制器参数设置
Moku:Go的PID控制器还可以用于实时调整控制器增益并优化系统相应。PID控制器具有嵌入式示波器,可在控制器波特图旁边显示信号。通过在波特图中用拖放方式手动改变增益值,学生可以更好地理解改变特定增益参数如何对系统产生实际影响。拖放方式只能在频域设置中使用,因此能够在时域和频域之间转换PID增益是非常必要的。
要在嵌入式示波器中查看这些信号,一种简单的方法是点击其中一个“探测点”,以黑色圆圈包围的蓝色小圆圈表示。它们刚好位于最方便的位置,比如在输入1之后、PID控制器的输出之后,以及其它有用的地方。要查看红外传感器的输出,我们要在输出2后面防止一个探测点,以图9中那样的红色粗体A标记。
图表 9: PID控制器探测点
为确认PID控制器确实提高了我们系统的响应,现在要关闭系统的回路。首先将输入1与设定点电位器的输出节点相连,然后将红外感应器的输出馈送到输入2,并在控制矩阵中将其从输出1中减去。这个过程模拟了图4方块图中的求和块。为本实验设置闭环反馈的一个重要步骤就是要消除红外感应器由于乒乓球距离而产生的输出偏差。这会改进PID控制器的响应,可通过将乒乓球静止时的红外传感器偏移量添加到PID信号通路的输入偏移量(在本实验中为961.4 mV)来实现。接下来,通过使用与开环部分相同的阶跃输入,我们就可以在内嵌式示波器上捕捉到系统的闭环阶跃输入响应,并用自动测量对其进行表征。在下方图10中,我们可以看到由PID控制器的内嵌式示波器捕捉到的系统闭环阶跃响应。这使我们能够运行PID控制器并只捕捉显示阶跃响应的帧。重要的是,这里要使用“正常”触发模式,以便正确捕捉和显示信号。
图 10: 闭环阶跃响应
将这些参数与初始的开环阶跃输入响应相比,我们就能判断 PID 控制器是否改进了系统的性能。从内嵌式示波 器的自动测量结果来看,启动 PID 控制器后,我们的时间延迟、上升时间和过冲距离都得到了改进。然而,这 些初始增益还使我们的过冲误差显著增大。这是使用齐格勒-尼克尔斯方法时的正常现象,可以通过表 1 的试探法对阶跃响应进行微调,从而轻松消除。
下方图 11 中显示出用表 1 进行调整后的系统闭环阶跃响应。
图 11: 微调后闭环阶跃响应
我们可以看到,从开环响应(图 6)到闭环响应(图 10)后,上升时间、稳定时间、过冲距离和下冲距离都得 到明显改进。至此,我们成功展示了使用普通组件和 Moku:Go 进行直观 PID 控制器实验的方法。这个实验共使用了 Moku:Go 的 4 种仪器功能,包括示波器、波形发生器、PID 控制器和 3 个可编程电源(16 V 和两个 5 V)。
图 12: PID 控制器实验设置
有效利用实验室空间和时间
轻松实现统一的仪器配置
专注于电子设备而非仪器设置
实现实验室助教时间最大化
个人实验室与个人学习
通过屏幕截图简化评估评分
配合学生个人进度的个性化实验室,以加强理解和记忆
便携设备,在家中或校园随时随地打造实验环境,甚至远程协作
熟悉的Windows或macOS笔记本电脑环境,匹配专业级实验仪器
如需下载适用于macOS和Windows系统的Moku:Go应用程序,请联系昊量光电。演示模式无需任何硬件即可运行,向您全方位展示Moku:Go的基本功能。
全部0条评论
快来发表一下你的评论吧 !