labview实现PID控制 下载本文

对于图(4-6)所示的不完全微分PID结构,设它的传递函数为:

?KKTs?U(s)??KC?C?CD?E(s)?UP(s)?UI(s)?UD(s)?TIs1?Tfs??? (1-11)

将上式离散化并整理后得:

u(k)?uP(k)?uI(k)?uD(k)

其中uP(k)与uI(k)与普通PID算式完全一致,只是uD(k)不同

uD(k)?

TfTf??uD(k?1)?KCTD?e(k)?e(k?1)?Tf?? (1-12)

??在式(1-12)中,令

Tf?Tf??,则??Tf?1??;显然有α<1,所以1-α<1成立,

则式(1-12)可简化为:

uD(k)?KD(1??)?e(k)?e(k?1)???uD(k?1) (1-13) 当e(k)为阶跃(即e(k)=1,k=0,1,2,···)时,可求出:

uD(0)=KD(1-α)[e(0)-e(-1)]+αuD(-1)=KD(1-α)

uD(1)=KD(1-α)[e(1)-e(0)]+αuD(0)=αuD(0)

uD(2)=αuD(1)=α2uD(0)

· · · uD(K)=αuD(k-1)=αkuD(0)

由此可见,引入不完全微分后,微分输出在第一个采样周期内的脉冲高度下降,次后又按ekuD(0)的规律(α< 1)逐渐衰减。所以不完全微分能有效地克服上述不足,具有较理想的控制特性(见图(4-7))。尽管不完全微分PID控制算法比普通PID控制算法要复杂些,但由于其良好的控制特性,近年来越来越得到广泛的应用。

4. 微分先行PID控制算法

微分先行PID控制算法特点是只对输出量y(t)进行微分,而对设定值R不作微分。这样在改变设定值时,输出不会改变,而被控量的变化通常总是比较缓和的。这种输出量先行微分控制适用于设定值R频繁升降的场合,可以避免设定值升降时所引起的系统振荡,明显地改善了系统的动态特性。微分先行PID控制的结构如图(4-8)所示。

在上述介绍的四种数字PID控制算式改进方法中微分先行法一般用于有较大纯滞后的系统;再将其余的几种算法结合所选对象的特点,本课题最终选择的PID控制算式是位置控制算法和积分分离PID控制算法的结合。

二、程序设计[15][21][17]

2.1 程序框图

应用LabVIEW 提供的功能软件实现PID控制功能的程序如图(4-9)所示。

图4-9 PID控制功能程序流程图

2.2 程序说明

1. 1. 数据采集子程序:

数据采集子程序的功能与前述相同(2.3.4程序流程图说明)。

2. 滤波子程序:

同前(已在2.3.4程序流程图说明中有说明)。

3. PID控制子程序:

子程序包括偏差计算、位置PID算式计算、抗积分饱和措施等。

4. 显示子程序:

将PID控制子程序中确定的PID控制曲线、设定值曲线、被控对象响应曲线及虚拟的PID控制器的控制按钮等加以显示。

5. PID控制器控制作用输出子程序:

将PID控制器的控制作用转换成执行机构所能接受的电压信号输出。

Lab VIEW中PID工具中包括用于Lab VIEW环境中开发控制系统的各种函数。为了适应工程实际使用中的需要,还对式(4—1)做了必要的修正,并为用户提供接口,以便根据现场情况配置参数。

应用LabVIEW 提供的功能软件实现PID控制功能的程序的前面板如图(4-10)所示,流程图如(4-11)所示。