在本博客中,我们将演示如何设置和测量传递函数 Moku PID 控制器 使用 Moku Python API。首先,我们将介绍独立的 PID 控制器仪器,并介绍配置它所需的 Python 命令,然后我们将使用 Moku 频率响应分析仪.
理解 PID 控制器框图
在电子应用中,PID 和 控制回路 通常是自动化测试设置的重要组成部分。为了清楚起见,使用 Moku UI 检查 PID 控制器框图很有用,如图 1 所示。仪器的框图显示两个输入被馈送到控制矩阵,这允许信号相加、相减和相乘。然后,信号传递到两个独立的 PID 控制器之一,每个控制器都有自己的输出,以及直流偏移、限制器和开关。此外,探测点可用于查看测量链中各个阶段的信号。

图 1. Moku PID 控制器框图。
通过在 Moku UI 中选择 PID 块,用户可以在频率空间中查看当前的传递函数。比例增益和饱和度水平以 dB 为单位定义,而交叉点以 Hz 为单位指定。用户可以通过单击和拖动来与这些参数交互,动态调整值并查看传递函数更新。
在 Python 中定义传递函数
为了自动配置和测量传递函数,我们使用 Jupyter笔记本,可从我们的 Github对于那些刚接触基于 Python 的 Moku 控制的人来说,可以找到有关设置 Python API 的详细书面和视频教程 在这个博客. 连接 Moku 并设置流程 多仪器并行模式 这些教程中涵盖了所有这些内容,而这里我们仅介绍定义 PID 功能的基本命令。
设置传递函数时有三个关键命令可用,主要区别在于用户喜欢通过增益还是通过交叉频率来定义 PID 参数。我们创建了两个命令来适应这两种配置。
第一个是命令 按频率设置。 此命令以 dB 为单位定义总增益、积分器饱和度和微分饱和度参数,而积分器、微分器和双积分器参数则以交叉频率定义。如下面的代码片段所示,该命令最多接受七个关键字输入,其中第一个指定目标通道。用户可以添加其他六个关键字参数来相应地配置参数。没有默认值;未定义关键字会禁用该参数。
另一个命令允许用户使用增益值设置 PID 参数,该命令是 按增益设置。 使用此方法时,比例 (P)、积分 (I) 和微分 (D) 值以 dB 为单位指定,而饱和值以 Hz 为单位表示。这些设置也可以通过 Moku UI 访问;它们位于 PID 控制器的“高级模式”菜单下。
第三个命令是 摘要,它检索仪器设置的综合列表,包括所有当前 PID 值。虽然这适用于所有 Moku 仪器,但它对于 PID 控制器特别有用,因为 UI 的视觉反馈不可用。
图 2 中可以看到这三个命令(带有关键字参数)的示例。

图 2. PID 控制器的 Python 代码示例,展示了配置传递函数的多种方式。
测量传递函数
我们使用 Moku 频率响应分析仪 测量传递函数,将其与 PID 控制器一起部署在 多仪器并行模式。在此设置中,频率响应分析仪的输出被馈送到 PID 控制器。然后信号循环回到输入端,使 FRA 能够测量输入和输出信号之间的差异。图 3 显示了 Moku 配置的示意图。

图3. Moku PID 控制器和频率响应分析仪以多仪器模式部署。
继续前面介绍的脚本,我们重点介绍两个基本 Python 命令。第一个, 设置输出, 定义频率响应分析仪的输出参数。由于有两个输出,因此该命令被调用两次——每个通道一次。第一个参数指定要启用的通道,第二个参数设置以伏特为单位的幅度。
这个命令 设置_扫描 配置频率响应分析仪扫描的关键参数,并包含许多关键字参数。这些关键字包括扫描的频率范围、要测量的频率点数、仪器在开始数据收集之前等待的时间以及对每个点进行数据平均的持续时间。这些最小稳定时间和平均时间可以用周期数或时间长度来定义。例如,稳定时间为 1 us,稳定周期为 1 意味着仪器在每个扫描点等待 1 微秒或 1 个周期,以较长者为准。
此 开始扫描 命令启动频率扫描并提供测量持续时间的估计值。下一个命令 获取数据, 检索测量数据。设置 等待完成 关键字到 真 确保数据传输仅在扫描完成后发生。如有必要,可以调整超时值以防止请求超时。
图 4 显示了带有关键字参数的完整命令集示例。

图 4.频率响应分析仪的 Python 代码示例。
查看和绘制数据
数据以字典格式返回,键为“Ch1”和“Ch2”。它可以分为两组,也是字典,并绘制成显示幅度和相位与频率的关系,如图 3 所示。通过将此图与 PID 控制器 UI 中显示的传递函数进行比较,用户可以验证传递函数是否为输入信号提供了预期的响应。调整 PID 控制器设置将改变传递函数,并在绘制的数据中产生相应的变化。


图 5.从频率响应分析仪恢复的幅度和相位响应数据。
本教程演示了如何通过 Moku Python API 使用 Moku PID 控制器和频率响应分析仪定义和测量传递函数。通过遵循这些步骤并利用提供的命令,用户可以准确配置他们的仪器并验证传递函数。