快速设计,原型PID控制器

计算机模型可以模拟过程,允许您在实现和部署之前设计和改进PID控制器动作。

文/ Arkadiy Turevskiy, Brian McKay, Doug Eastman, Paul Lambrechts;MathWorks 2011年3月7日

PID(比例积分导数)控制器是普遍存在的。设计和调优它们在理论上可能看起来很简单,但在实践中可能很困难且耗时。一种常用的调节PID控制器的方法是在控制器运行装置时手动调节控制器增益。这种耗时的方法需要访问植物硬件,如果选择的增益值导致植物行为不稳定,则可能导致植物损坏。在本文中,我们展示了如何通过使用基于模型的设计在可编程逻辑控制器(plc)、可编程自动化控制器(pac)和微处理器上系统地设计、测试和实现PID控制器来改进开发过程。

在基于模型的设计中,我们使用框图环境来创建设备和控制器的系统模型。这些模型可以模拟,使我们能够在实现和部署之前快速迭代和完善控制器设计。访问工厂硬件的需求减少了,因为我们可以通过模拟来做很多测试,而不是涉及到工厂。通过模拟进行的早期验证确保控制器在部署到实际工厂时按预期执行。这种类型的模拟和分析可以使用来自不同供应商的许多不同的软件平台。在这个特殊的案例中,我们的团队使用了来自MathWorks的Simulink。

基于模型的PID控制器设计包括以下四个步骤:

  • 创建工厂模型;
  • PID控制器的设计;
  • 实时测试控制器;和
  • 实现设计。

以数字运动控制系统为例,介绍了如何将基于模型的设计应用于PID控制器的快速设计和原型制作。

数字运动控制系统

图1显示了我们试图控制的工厂或物理系统。该装置由一个驱动直流电机的功率放大器和两个用于测量电机轴和负载位置的旋转光学编码器组成。电机通过一个小的柔性轴连接到负载上,以近似于许多运动控制系统中执行器和负载之间的依从性。控制系统通过测量指令载荷角度与实测载荷角度之间的误差来保证载荷沿着指定的轨迹运动。然后使用PID控制器计算并向电机发送电压请求。我们的设计是为了提高机器的性能,从目前的最大速度150 rad/秒和加速度2000 rad/秒2到新的速度和加速度目标250 rad/秒和5000 rad/秒2,分别。我们希望在不损失任何位置精度的情况下实现这些性能增益。具体来说,我们希望指令和测量负载角之间的误差小于1度。现有的控制器设计不满足新的性能要求,如图2所示。

我们可以使用基于模型的设计来开发、测试和实现控制器,而不是在实际工厂硬件上手动调整PID增益。

创建工厂模型

创建工厂模型有两种主要方法:数据驱动建模和第一性原理建模。

通过数据驱动的建模,我们创建了一个适合测量输入输出测试数据的工厂模型。我们希望在数据收集期间操作控制器,以确保对工厂操作的干扰最小。为了收集输入输出数据,我们将随机白噪声信号添加到直流电机的电压上作为输入信号。我们的输出信号是控制器命令给直流电机的总电压。在收集这些输入输出数据后,我们可以计算闭环系统的频率响应。由于我们知道当前控制器设计(我们正在尝试改进的控制器)的确切增益,我们可以获得工厂的频率响应。最后,为了能够在时域中模拟我们的控制器,我们使用系统识别技术使用对象的频率响应来估计对象传递函数。

通过第一性原理建模,我们通过将增益、求和和积分器块连接在一起,使用标准方框图建模来创建工厂的底层动态方程。

在对机械和电气系统进行建模时,通常更方便的方法是采用“物理”组件,如惯性、刚度、阻尼、电阻和电感,并将它们连接起来,就像我们绘制系统的机械图或电路一样。这种第一原理建模技术的变化,称为物理建模,使我们能够创建植物模型,而无需推导植物动力学的基本方程。

通常,将这两种不同的建模方法(数据驱动和第一性原理)混合在一起是有益的。为此,我们使用实际系统的测量输入输出数据来调整物理模型的参数(图5)。参数(电机和负载惯量、刚度和阻尼)通过使用数值优化技术进行调整。我们通过模型播放测量的输入,并将模型输出与实际系统的测量输出进行比较。我们迭代地调整模型参数,直到在校准模型的输出和测量输出之间获得最佳拟合。使用优化技术,这种迭代调整是完全自动化的。

PID控制器的设计

一旦工厂模型可用,PID设计和整定很容易。我们在工厂的框图模型中加入一个PID控制器模块来创建闭环系统模型。它是用比例增益、积分增益和导数增益参数化的,这些增益需要更新以达到期望的系统性能。我们没有手动调优这些增益,而是使用自动PID调优方法,如图6所示,该方法自动计算工厂模型的PID增益。为了加快控制器的速度,我们使用了一个交互式滑块来加快响应时间。

当我们试图提高控制器速度时,我们注意到系统变得不稳定。在频域进一步分析系统揭示了引起不稳定行为的谐振峰。

这种不稳定性在运动控制系统中是一个众所周知的问题,并且很容易通过使用陷波滤波器来消除谐振来固定。我们可以通过使用交互式控制设计工具来添加陷波滤波器,该工具可以让我们交互式地将陷波滤波器放置在谐振峰值的顶部。这样做使我们能够稳定系统并提高控制器速度,如图8所示。

现在我们通过在桌面上运行闭环系统的非线性模拟来测试我们的设计(返回PID控制器和陷波滤波器)。该非线性模型包括电机的饱和效应。以与新期望的系统性能相对应的参考速度运行仿真,确认新设计符合规范,如图9所示。

使用仿真使我们能够看到控制系统的问题-在这种情况下增加PID增益不足以满足性能规范。我们需要一个陷波滤波器来抵消谐振峰。自动PID调谐使我们能够找到稳定的控制器增益并快速微调设计以满足所需的性能目标。如果我们试图在实际机器上调整我们的PID控制器,我们会遇到一个不稳定的操作状态,这可能会损坏我们的机器。

实时测试控制器

控制器设计通过桌面仿真验证后,下一步是对控制器进行实时测试。首先,我们需要建立一个实时测试平台,其中包括一个带有I/O板的实时目标计算机,如图10所示。这些IO板通常连接到机器(或机器原型)上的实际传感器和执行器。我们现在重用我们的控制器模型并自动生成PID控制器和陷波滤波器的C代码,然后将该C代码下载到实时目标计算机上。现在我们的控制器代码在目标计算机上实时运行,并通过植物传感器和执行器的输入和输出直接控制植物的运行。实时测试让我们确认整个系统在实际的输入和输出条件下正常工作,然后我们通过在生产硬件(如plc或pac)上实现控制器的努力。这有时被称为快速控制原型。我们还能够验证实时控制器的性能仍然与我们在桌面模拟中观察到的一致。如果我们发现任何差异,我们就处于开发过程的早期阶段,可以在仿真模型中快速轻松地诊断和修复问题,然后实时验证控制器是否正常工作。

实现设计

最后一步是将控制器部署到目标PLC、PAC或微处理器上。我们通过从控制器模型自动生成IEC 61131结构化文本来实现这一点。这种结构化文本是用PLCopen XML和其他被广泛使用的集成开发环境(ide)支持的文件格式生成的。因此,我们可以编译和部署我们的控制器到众多的PLC和PAC设备。如果最终目标是微控制器,我们可以自动生成C代码。

利用这些植物建模、闭环仿真和自动PID调谐技术,我们可以在桌面仿真中调谐和测试我们的PID控制器。我们的仿真模型使我们能够识别系统中的共振,并开发和测试陷波滤波器来解决这个问题。实时测试证实我们的控制设计与桌面仿真结果相匹配,符合设计规范。通过自动代码生成实现意味着我们能够在PLC或微处理器上快速实现我们的设计。最后,使用基于模型的设计使我们能够快速开发,测试和原型化我们的设计,而不会损坏工厂硬件或中断其操作。

Arkadiy Turevskiy和Brian McKay是MathWorks的技术营销经理,Doug Eastern和Paul Lambrechts是MathWorks的高级应用工程师。