PID控制设计变得简单

由Murad Abu-Khalaf,Mathworks,Rong Chen,Mathworks和Arkadiy Turevskiy,Mathworks

调整A.PID控制器似乎很容易,要求您找到三个值:比例,积分和衍生增长。事实上,安全有系统地找到了确保您控制系统最佳性能的增益是一个复杂的任务。传统上,PID控制器手动调整或使用基于规则的方法进行调整。手动方法是迭代和耗时的,如果在硬件上使用,可能会导致损坏。基于规则的方法也具有严重的限制:它们不支持某些类型的植物模型,例如不稳定的植物,高阶植物,或植物很少或没有时间延迟。万博1manbetx除了调整外,PID控制还涉及设计和实施挑战,例如离散时间实现和定点缩放。

本文以四杆机构为例,介绍了一种简化和改进PID控制器设计与实现的方法。该方法基于R2009b产品的两个特点:Simulink中的PID控制器模块万博1manbetx®和Simulink Control Design™中的PID调谐万博1manbetx算法。

四条联动系统:控制设计目标

四杆连杆(图1)用于各种应用,包括汽车悬架,机器人执行器和飞机着陆齿轮。

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

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

PID控制器(图2)采用其中一个链路的期望和实际旋转角度之间的误差信号,并产生扭矩请求。该请求将该请求添加到来自前馈控制器的扭矩请求,并且SUM信号用于驱动直流电动机,该直流电动机致动连接链接的接头的旋转。控制器必须稳定植物的运行。它还必须提供快速的响应时间和很少的过冲。因为控制器将在具有16位的固定点处理器上实现,所以需要采用离散时间形式,并且必须相应地缩放增益和计算信号。

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

配置闭环系统并调谐控制器

该工厂模型包括在SimMechanics™中建模的四杆连杆机制和模型电池中的DC电机组成®(图3)要创建如图2所示的控制器架构,我们只需从Simulink Discrete库中添加一个离散时间PID控制器块。万博1manbetx有了闭环系统的配置,我们就可以调整控制器了。

图3.具有DC电动机凝固电动机模型的四杆连杆机构的兴业模型。

为此,我们打开PID Controller块对话框,指定控制器采样时间,然后按“Tune”(图4)打开PID Tuner GUI。在显示GUI之前,Simulink Control D万博1manbetxesign将当前运行点的对象线性化,并推导出反馈控制回路中的PID控制器块所看到的线性时不变(LTI)对象模型。与采样相关的计算延迟被自动地考虑在内。利用自动整定方法,Simulink Control Design生成万博1manbetxPID控制器的初始增益。这种调优方法对植物顺序和时间延迟没有限制,并且在连续和离散时域都能工作。

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

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

此示例显示了具有此初始PID设计的闭环系统的设定值跟踪响应。(没有音频)
图6。仿真结果为四杆机构模型。

准备实施

准备控制器以实现16位微处理器,我们为芯片支持的固定点算法扩展。万博1manbetx

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

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

生成生产代码

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

图8. 16位固定点PID控制器的C代码实现。代码从PID控制器块生成。

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

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

我们现在可以将此代码部署到处理器并开始实时控制我们的四个条链接。

发布2009年 - 91842V00


查看相关行业的文章