技术文章和通讯

PID控制设计变得简单

作者:Murad Abu-Khalaf, MathWorks,陈荣,MathWorks, Arkadiy Turevskiy, MathWorks


调优PID控制器看起来很简单,只需要找到三个值:比例增益、积分增益和导数增益。事实上,安全、系统地找到确保控制系统最佳性能的增益集是一项复杂的任务。传统上,PID控制器要么手动调优,要么使用基于规则的方法调优。手动方法是迭代和耗时的,如果在硬件上使用,可能会导致损坏。基于规则的方法也有严重的局限性:它们不支持某些类型的植物模型,例如不稳定的植物、高阶植物或只有很少或没有时间延迟的植物。除了整定,PID控制还涉及到设计和实现方面的挑战,如离散时间实现和定点缩放。

本文以四连杆系统为例,介绍了一种简化和改进PID控制器设计与实现的方法。该方法基于R2009b产品的两个特性:Simulink中的PID控制器块®以及Simulink Control Design™中的PID整定算法。

四连杆系统:控制设计目标

四杆机构(图1)应用广泛,包括汽车悬架、机器人执行器和飞机起落架。

pid_fig1_w.jpg
图1。四杆机构与固定下连杆蓝色。

该控制系统由前馈控制和反馈PID控制两部分组成。前馈控制反转了机构的动力学,它通过考虑非线性行为来处理机构的主要运动。反馈PID控制在面对建模不确定性和外部干扰时保持定位误差小。本文主要研究反馈式PID控制的设计。

PID控制器(图2)获取其中一个连杆的期望和实际旋转角度之间的错误信号,并创建一个扭矩请求。这个请求被添加到前馈控制器的转矩请求中,和信号被用来驱动直流电机,驱动连接连杆的关节的旋转。控制器必须使装置运行稳定。它还必须提供快速的响应时间和很少的超调。因为控制器将实现在一个16位的定点处理器上,它需要是离散时间形式,增益和计算信号必须相应地缩放。

pid_fig2_w.jpg
图2。四连杆系统控制器架构。

闭环系统配置与控制器调优

该装置模型由SimMechanics™中建模的四连杆机构和SimElectronics中建模的直流电机组成®要创建如图2所示的控制器架构,我们只需从Simulink Discrete库中添加一个离散时间PID控制器块。闭环系统配置好后,我们就可以调优控制器了。

pid_fig3_w.jpg
图3。四连杆机构的SimMechanics模型结合了直流电机的SimElectronics模型。

为此,我们打开PID控制器块对话框,指定控制器采样时间,并按“调谐”(图4)打开PID调谐器GUI。在显示GUI之前,Simulink控制设计将当前工作点的植物线性化,并在这个反馈控制回路中由PID控制器块得到线性时不变(LTI)植物模型。与抽样相关的计算延迟被自动考虑在内。利用自动整定方法,Simulink控制设计生成PID控制器的初始增益。这种调优方法不受工厂顺序和时间延迟的限制,在连续和离散时域都能工作。

pid_fig4_w.jpg
图4。PID调谐器,从块对话框打开。

图5显示了采用这种初始PID设计的闭环系统的设定点跟踪响应。如果控制器性能令人满意,我们按“应用”来更新PID控制器块对话框中的P、I、D和N增益的值。然后,我们可以通过模拟非线性模型并查看结果来测试设计的性能(图6)。我们还可以使用一个简单的滑块以交互方式调整设计,使控制器更快或更慢(图5,底部)。

本例显示了采用此初始PID设计的闭环系统的设定点跟踪响应。(没有声音)
pid_fig6_w.jpg
图6。四杆机构模型的仿真结果。

准备实施

为了准备在16位微处理器上实现的控制器,我们根据芯片支持的定点算法对其进行缩放。

使用块对话框中的“数据类型”选项卡,我们应用定点设计所需的设置(图7)。我们可以使用Simulink中的定点工具自动获得这些设置。然后,我们使用不动点设置运行仿真,以验证不动点设计结果与我们在控制器增益和信号实现为双精度值时得到的结果密切匹配。

pid_fig7_w.jpg
图7。在16位定点架构的处理器上实现PID控制器的定点设置。

生成产品代码

在为实现准备好PID控制器后,最后一步是使用Real-Time Workshop Embedded Coder™生成C代码(图8)。为了测试这段代码,我们用生成的C代码替换PID控制器块,并在闭环模拟中运行代码。我们可以通过使用Real-Time Workshop Embedded Coder来自动创建一个调用生成的C代码的Simulink块。

pid_fig8_w.jpg
图8。c代码实现的16位,定点PID控制器。该代码是从PID控制器块生成的。

我们现在可以使用将在实际处理器上运行的C代码来运行模拟。仿真表明,生成的代码产生的结果与使用具有双精度值的PID控制器块获得的结果非常匹配(图9)。

pid_fig9_w.jpg
图9。将生成的C代码的性能与双精度PID控制器块的性能进行了仿真比较。

我们现在可以将这些代码部署到处理器上,并开始实时控制我们的四杆连杆。

发布于2009 - 91842v00

查看相关行业文章

Baidu
map