PID是什么及在TIA平台上的应用(附:PID模拟器)
当今时代的科技越来越发达,控制系统也随之不断提高。其中,控制器 PID 技术在现代工业中被广泛应用。它不仅可以控制各种物理过程,也可以应用于汽车、电子、建筑、航空航天、自动化等众多领域。在我们日常生活中,PID 技术也无处不在,如温度控制、水位控制和电动机控制等。那么,PID 技术是什么?它能如何帮助我们更好地控制各种系统?本篇文章将为您详细介绍 PID 技术的原理和应用。
1 什么是 PID
首先我们先看一下 PID 的公式,如下图:
其中:
COn :控制器在第 n 个采样点的输出信号,mA
En :n 个样本的误差,mA
∆t :采样时间,s
Kp :比例作用常数
TI :积分作用时间,s
TD :微分作用时间,s
CO0 :控制器初始稳态(t=0)时的输出信号,mA
控制器在输入和输出中通常使用 4-20 mA 的变量。
P/I/D 通常以不同的组合方式使用,以下 4 种是常用的组合:
P – 有时使用
PI - 最常用的
PID – 有时使用
PD – 很少使用,但可用于控制伺服电机
1.1 P 比例控制 - 表示当前
P,代表比例(Proportional)作用。
所谓比例控制,就是控制输出与输入的比例关系。简单来说,就是输出与输入之间的一种线性比例关系。在控制系统中,比例作用指的是如果被控制量与标准值之间的误差增大,则控制器输出的控制量也相应地增大。这种比例关系使得控制器的反应更加灵敏,以达到更快速、更准确地调节被控制量的目的。
1.2 I 积分行为 - 总结过去
I,代表积分(Integral)作用。
积分控制是基于被控制量与标准值之间的误差累加来实现的。简单来说,积分作用的主要目的是消除系统偏差,使控制器能够在长时间稳定运行时产生恰当的控制量。例如,如果在温度控制中,温度一直保持在偏高的水平上,那么积分作用就会累积误差,并逐步减少偏差幅度,最终达到目标温度。因此,积分控制在消除系统稳态误差、调节系统稳态精度方面起着重要的作用。
1.3 D 微分行为 - 预测未来
D,代表微分(Derivative)作用。
微分控制主要是通过对被控制量的变化率进行测量来影响控制器的输出。它的主要作用是对系统进行快速响应,减少系统的过调和振荡。例如,在机器人的运动控制中,微分控制可以检测机器人的速度变化率,从而及时调整控制量来避免机器人运动时的过度波动。因此,微分控制在消除系统的瞬态误差、提高系统的动态精度方面起着重要的作用。需要注意的是:微分控制有一个重要的问题,就是如果你的信号中有噪声(看起来像一堆陡峭的尖峰),这将使算法陷入混乱。它看着噪声尖峰的斜率,可能会导致控制器不受控制,解决办法是通过滤波消除噪声。除非 PI 控制真的很慢,否则不要打开 D。
2 PID 在西门子 TIA 平台上的应用
TIA 平台上的 PID 功能是一种用于自动控制和调节的模块,它采用标准的 Proportional-Integral-Derivative(PID)控制算法。该功能模块能够对被控制的过程进行精确的控制,以保持当前的状态或使其达到期望的目标状态。
具体地说,TIA 平台上的 PID 功能模块可以通过对输入信号和输出信号之间的误差进行计算,根据预先设置好的比例、积分、微分系数,输出一个精确的控制信号。该控制信号用于调节被控制量,以达到期望的目标值。
此外,PID 功能模块还可以进行自适应调节和组态工作,可以采用不同的控制方式进行调节,如位置、速度、电流等控制模式。通过 TIA 平台进行 PID 控制,用户可以在 PLC 系统中快速构建和调试高性能的控制系统,实现自动化生产和工程控制。
2.1 案例问题描述
变频器调速是自动化生产和工程控制中常见的应用场景之一。
在实际应用中,使用 PID 算法对变频器调速可以大大提高效率和精度,尤其对于要求高精度、高速度调节的应用场景尤为重要。例如,在自动工厂中,使用 PID 算法对变频器调速可以实现快速响应和精细控制,提高生产效率和质量。此外,PID 算法还可以通过对输出偏差的调整来保证系统稳定性,从而进一步提高可靠性和安全性。
2.2 功能块介绍
TIA 平台上的 PID 功能模块提供了完整的 PID 算法实现,可以实现对变频器调速的精确控制。下面我们价绍 PID 控制当中的 PID_Compact 模块。如下图
工艺对象 PID_Compact 提供一个集成了调节功能的通用 PID 控制器。它相当于 PID_Compact 指令的背景数据块。调用 PID_Compact 指令时必须传送该数据块。PID_Compact 中包含针对一个特定控制回路的所有设置。打开该工艺对象时,可以在特定的编辑器中组态该控制器。
2.3 程序编写
在网络中,我们为 PID 功能配置了标准参数。
#Driver_PID.Retain.CtrlParams.Gain - 为比例增益。
#Driver_PID.Retain.CtrlParams.Ti - 为积分时间。
#Driver_PID.Retain.CtrlParams.Td - 为微分时间。
在这里,我们采用了驱动器 PID 最大输出限制和最小输出限制。我们在这里考虑了 PID 输出的最大限制 50,最小限制为 0。
PID_Compact 指令#Driver_PID.Retain.CtrlParams.Cycle 的采样时间是自动确定的,通常就是调用 OB 的周期时间。
PID 控制块,根据设定值,它将产生输出(0-50),并根据反馈速度时时调整输出。
CPU 重新启动后激活模式,如果 #Driver_PID.RunModeByStartup = FALSE,则控制器在 CPU 启动后将保持非活动状态。CPU 启动后,如果 #Driver_PID.RunModeByStartup = TRUE,控制器将启用上次的运行模式(默认为 TRUE)。
输出到变频器(0-50),如果是通过 4-20ma 控制变频器,需要将输出缩放到(0-27648)。
以上是一个简单的应用,意在让大家了解西门子 TIA 平台的编程方式,PID 的参数调节还需要大家根据实际情况进行调整。也可以使用西门呢的自动调节功能。
PID模拟器 下载地址:
https://share.weiyun.com/XriaiHQy
加入剑指工控技术群,联系各群群管理员获得提取码。
未入群的工控友人
联系美女管理员入群
这篇文章是我在项目中遇到的一些问题后整理的笔记,旨在记录并分享给大家。后续将会推出一系列文章,介绍西门子故障安全模块的使用方法以及应用场景等内容。
2023年5月