工业PID算法在温控器的应用与参数说明
在工业应用中 PID 及其衍生算法是应用最广泛的算法之一,是当之无愧的万能算法,如果能够熟练掌握 PID 算法的设计与实现过程,对于一般的研发人员来讲,应该是足够应对一般研发问题了,而难能可贵的是,在很多控制算法当中,PID 控制算法又是最简单,最能体现反馈思想的控制算法,可谓经典中的经典。经典的未必是复杂的,经典的东西常常是简单的,而且是最简单的。
PID数学模型
PID 算法通过误差信号控制被控量,而控制器本身就是比例、积分、微分三个环节的加和。这里我们规定(在 t 时刻):
输入量为: I n p u t ( t ) Input(t) Input(t),输出量为: O u t p u t ( t ) Output(t) Output(t),那么偏差量为: e ( t ) = I n p u t ( t ) − O u t p u t ( t ) e(t) = Input(t) - Output(t) e(t)=Input(t)−Output(t).
PID算法的一般形式为:
u ( t ) = k p ( e ( t ) + 1 T i ∫ 0 T e ( t ) d t + T d d e ( t ) d t ) (连续型模型) u(t) = k_p (e(t) + \frac{1}{T_i} \int_0^Te(t)dt + T_d \frac{de(t)}{dt}) \tag{连续型模型} u(t)=kp(e(t)+Ti1∫0Te(t)dt+Tddtde(t))(连续型模型)
但是我们一般在工业中实际应用的都是离线型的:
u k = k p ( e k + Δ t T i ∑ j = 0 k e j + T d e k − e k − 1 Δ t ) = k p e k + k i ∑ j = 0 k e j + k d ( e k − e k − 1 ) (离散型模型) u_k = k_p (e_k + \frac{\Delta t}{T_i}\sum_{j=0}^k e_j + T_d \frac{e_k - e_{k-1}}{\Delta t}) \\ =k_pe_k + k_i\sum_{j = 0}^k e_j + k_d(e_k - e_{k-1}) \tag{离散型模型} uk=kp(ek+TiΔtj=0∑kej+TdΔtek−ek−1)=kpek+kij=0∑kej+kd(ek−ek−1)(离散型模型)
上式中, u k u_k uk为第k次的输出, ∑ j = 0 k e j \sum\limits_{j = 0}^ke_j j=0∑kej为前k次的累加, ( e k − e k − 1 ) (e_k - e_{k-1}) (ek−ek−1)为当前次和前一次的误差, Δ t \Delta t Δt为采样周期。
其中:
k p kp kp,为比例项参数
k i = k p Δ t T i k_i = k_p \frac{\Delta t}{T_i} ki=kpTiΔt,为积分项参数, k d = k p T d Δ t k_d = k_p \frac{T_d}{\Delta t} kd=kpΔtTd为微分项参数,有的设备使用的PID参数就是这里的 k p k_p kp、 k i k_i ki、 k d k_d kd。
但是更多的设备使用的是 δ p = 1 k p \delta_p = \frac{1}{k_p} δp=kp1——比例带, T i T_i Ti——积分时间, T d T_d Td——微分时间。 k p k_p kp称为比例增益。这里比例带和比例增益互为倒数关系,只有在输出和输入量纲一致的情况下成立。
后面我们按照大多数设备采用的PID参数:比例带、积分时间、微分时间、采样周期来进行处理。
这里我们假设输出和输入量纲是一致的,比如以温度控制器为例,输出和输入都是温度。
我们调整的参数为 δ p \delta_p δp、 T i T_i Ti、 T d T_d Td,那么第k次的输出:
u k = 1 δ p e k + Δ t δ p T i ∑ j = 0 k + T d δ p Δ t ( e k − e k − 1 ) u_k = \frac{1}{\delta_p} e_k + \frac{\Delta t}{\delta_p T_i}\sum_{j=0}^k + \frac{T_d}{\delta_p \Delta t}(e_k - e_{k-1}) uk=δp1ek+δpTiΔtj=0∑k+δpΔtTd(ek−ek−1)