技术文章和通讯

简单的PID控制设计

作者:Murad Abu-Khalaf, MathWorks, Rong Chen,和Arkadiy Turevskiy, MathWorks


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

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

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

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

图1所示。四连杆机构,固定的下连杆,蓝色。

控制系统由前馈控制和反馈PID控制两部分组成。前馈控制反转了植物动力学——它通过考虑非线性行为来处理机构的主要运动。反馈PID控制在建模不确定性和外部干扰的情况下使定位误差较小。本文主要研究反馈PID控制的设计。

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

图2。四连杆系统控制器结构。

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

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

图3。四连杆机构的SimMechanics模型,包括直流电机的SimElectronics模型。

为此,我们打开PID Controller块对话框,指定控制器采样时间,然后按“Tune”(图4)打开PID Tuner GUI。在显示GUI之前,Simulink Control D金宝appesign在当前的操作点线性化工厂,并推导出这个反馈控制回路中的PID控制器块所看到的线性时不变(LTI)工厂模型。与采样相关的计算延迟被自动考虑在内。利用一种自动整定方法,Simulink控制设计然后产生PID控制器的金宝app初始增益。这种调优方法不限制工厂的顺序和时间延迟,它在连续和离散时间域都能工作。

图4。PID调谐器,从块对话框中打开。

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

这个例子展示了采用这种初始PID设计的闭环系统的设定值跟踪响应。(没有声音)
图6。仿真结果为四连杆机构模型。

准备实施

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

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

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

生成产品代码

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

图8。c代码实现的16位,定点PID控制器。代码是由PID Controller块生成的。

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

图9。仿真结果比较了生成的C代码的性能与双精度PID控制器块的性能。

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

出版于2009 - 91842v00

查看相关行业文章