通过PID VI实现PID算法
- 更新时间2023-02-21
- 阅读时长5分钟
下列内容介绍了基本PID VI(不包括PID高级、PID高级自整定,以及其他带高级选项的VI)实现PID算法的方式,以及实现PID控制器所需的假设和转换。为实现PID控制器,LabVIEW要求算法对输入信号进行采样并离散积分和微分操作。
![]() |
注: 下列等式对PID选板上的大部分VI均适用。PID高级和PID高级自整定VI使用包含更多高级可选特性的扩展公式。 |
下列模拟程序框图演示了基本PID VI提供的PID实现方式:

![]() |
注: 创建类似上面的模拟程序框图需要LabVIEW Control Design and Simulation模块。但借助PID VI可实现PID控制器。用户无需Control Design and Simulation模块便可生成PID控制器。 |
误差计算
下列等式表示用于计算比例、积分和微分操作的当前误差。

| 其中 | k是时间k*t处采样信号的索引 |
| e(k)表示当前误差 | |
| SP表示设定值 | |
| PV表示过程变量 |
比例操作
比例操作就是控制器增益乘以误差,如下列等式所示:

| 其中 | Kc表示控制器增益 |
| e(k)表示当前误差 |
PID VI通过控制器增益表示比例部分。控制器增益(Kc)和比例带(PB)的关系为Kc = 100 / PB。
积分操作(梯形积分)
离散积分操作有几种方式,如前向差分、后向差分和梯形逼近,(也称突斯汀或双线性变换)。PID VI使用梯形积分避免PV或SP的突然改变引起积分操作的剧烈变动,等式如下所示:

| 其中 | ΔT是控制器的采样时间 |
微分操作
SP的突然变化会引起误差e的微分操作,因而会造成控制器输出振荡。这些振荡被称为微分冲击。为避免微分冲击,可仅向PV应用微分操作,不要向误差e应用微分操作。下列等式表示由PID VI实现的避免微分冲击的微分操作:

控制器输出
控制器输出是比例、积分和微分操作的总和,如下列公式所示:
![]()
输出限制和抗饱和算法
实际控制器输出限制在控制器输出指定的范围内。
| 如 | ![]() |
则 | ![]() |
且
| 如 | ![]() |
则 | ![]() |
PID VI使用的积分和更正算法有助于抗饱和。饱和发生在控制器输出上限。误差e降低时,控制器输出也会随之降低,因而移除饱和区域。积分和更正算法可在手动/自动模式切换或修改任何其他参数时,阻止控制器输出的突然变动。积分和更正原理如下:
| 如 | ![]() |
则 | ![]() |
上述说明表示积分和更正不会计算值改变的微分操作。
默认PID值和增益改动
参数SP、PV和输出范围的默认范围对应百分比值。用户也可使用实际的工程单位。请相应调整对应范围。参数Ti和Td以分钟指定。
可从固定周期时间的While循环内部调用PID VI。所有PID VI均为可重入VI。顶层VI的多个调用使用独立的数据。同时,PID VI包含多通道模式,其中一个数组表示每个通道的一个输入。
PID增益可随时改变。检测到改变时,PID算法通过调整积分操作使输出保持不变,尝试执行无扰转换。这样就避免了尝试修改PID参数时引起输出的变化,在增益调用中十分有用。
增益调度
增益调度是指根据测得操作条件修改控制器参数的系统。例如,调度变量可以时设定值、过程变量、控制器输出或外部信号。由于历史原因,即使其他参数(如微分时间或积分时间)发生变化,增益调用这一术语仍然适用。增益调度可有效控制动态随操作条件改变的系统。
使用PID增益调度VI可定义无限个增益调度的PID参数集。每个调用都可使用自整定更新PID参数。
添加






