注:本文为 “PID 控制算法” 相关文章合辑。
未整理,如有内容异常请看原文。
PID 控制中 P、I、D 各自作用
ss 哈于 2019-04-22 21:31:18 发布
假设一个模型:通过 PID 控制的方式,控制一个人行走 100 步后停下。
1)P 比例控制:
设定行走 100 步,在该控制作用下,此人按照一定的步伐行走,可能走到九十几步(例如 98 步)或一百多几步(例如 102 步)就停下。这体现了 P 比例控制的作用。
说明:仅有比例控制时,系统输出存在稳态误差。在比例 P 控制中,输出与输入误差信号成比例关系。
2)PI 积分控制:
在该控制模式下,当此人按照一定步伐走到 98 步时继续行走,走到 102 步后往回走,如此在 100 步附近来回移动几次,最终停在 100 步的位置。
说明:在自动控制系统中,为消除稳态误差,引入 “积分项”。积分项对误差的计算取决于时间的积分,随着时间的增加,积分项会逐渐增大。即便误差较小,积分项也会随着时间不断增大,从而使稳态误差进一步减小,直至趋近于零。在积分 I 控制中,输出与输入误差信号的积分成正比关系。
3)PD 微分控制:
在此控制方式下,此人按照一定的步伐走到九十几步后,会逐渐缓慢地向 100 步的位置靠近。
说明:自动控制系统在克服误差的调节过程中,可能会出现振荡甚至失稳的情况。这是因为系统中存在较大惯性组件(环节)或滞后组件,这些组件虽具有抑制误差的作用,但它们的变化总是滞后于误差的变化。解决这一问题的方法是使抑制误差作用的变化 “超前”,即在误差接近零时,抑制误差的作用也应趋近于零。仅引入 P 项是不够的,P 项仅仅放大了误差的幅值,而加入微分项后,微分项能够预测误差变化的趋势,从而避免被控量出现严重超调。正是 D 控制的这种预测作用,改善了系统调节过程中的动态特性,加快了误差消除的调节过程。在微分 D 控制中,输出与输入误差信号的微分(即误差的变化率)成正比关系。
个人理解:
在 PID 联合控制时,P 控制首先使被控对象走到接近目标值的位置,例如走到 98 步或 102 步;然后 I 控制使被控对象在目标值 100 步附近来回调整几次;此时 D 控制的作用是减小振荡幅度和振荡次数等振荡因素,避免出现失稳情况,进而改善系统调节过程中的动态特性,加快调节过程,实现误差消除,完成控制任务。
PID 控制算法
若悲浪 已于 2022-05-12 09:37:50 修改
前言
PID 即:Proportional(比例)、Integral(积分)、Differential(微分)的缩写。
PID 控制算法是结合比例、积分和微分三种环节于一体的控制算法。
PID 是闭环控制算法中最简单的一种,常应用于温度、电机控制等等。
原理
公式推导
PID 公式:
u ( t ) = K p [ e ( t ) + 1 T i ∫ 0 t e ( t ) d t + T d d e ( t ) d t ] (1) u(t) = K_p\left[e(t)+\frac{1}{T_i}\int_{0}^{t}e(t)dt + T_d\frac{de(t)}{dt}\right]\tag{1} u(t)=Kp[e(t)+Ti1∫0te(t)dt+Tddtde(t)](1)
其中 K p K_p Kp 为比例系数, T i T_i Ti 为积分时间, T d T_d Td 为微分时间。
看公式就可以看出这是比例部分、积分部分和微分部分的加和,因此称为 PID (proportion, integration, differential)。
在实际应用中,我们需要将该连续公式转化为离散公式,因此需要进行一下替换:
连续时间 t t t ⟶ \longrightarrow ⟶ 采样时间 k T kT kT
积分 ⟶ \longrightarrow ⟶ 求和: ∫ 0 t e ( t ) d t \int_{0}^{t}e(t)dt ∫0te(t)dt ⟶ \longrightarrow ⟶ T ∑ j = 0 k e ( j T ) T\sum_{j = 0}^{k}e(jT) T∑j=0ke(jT)
微分 ⟶ \longrightarrow ⟶ 单位差值: d e ( t ) d t \frac{de(t)}{dt} dtde(t) ⟶ \longrightarrow ⟶ e k − e k − 1 T \frac{e_k - e_{k - 1}}{T} Tek−ek−1
因为我们得到离散化的公式:
u ( k ) = K p e ( k T ) + K i ∑ j = 0 k e ( j T ) + K d ( e ( k T ) − e ( ( k − 1 ) T ) ) (2) u(k) = K_pe(kT)+K_i\sum_{j = 0}^{k}e(jT)+K_d(e(kT)-e((k - 1)T))\tag{2} u(k)=Kpe(kT)+Kij=0∑ke(jT)+Kd(e(kT)−e((k−1)T))(2)
其中 K i = K p T T i K_i=\frac{K_pT}{T_i} Ki=TiKpT, K d = K p T d T K_d=\frac{K_pT_d}{T} Kd=TKpTd。
位置式 PID
上面得到的公式,计算的值就是位置式 PID,是当前负载应该输出的值。
比例项是对输出量起决定性作用的,当前值与目标值差值越大,则比例项越大。
需要注意的是,公式中包含积分成分,因此仅适用于不包含积分效果的负载,即实时响应的,比如发热块。
并且在使用时,需要设置积分最大值,因为当误差一直为正时,积分项一直在累加,会导致积分项很大,当误差为负时,此时积分项不能及时减去,导致超调。
微分项的作用是抑制变化,误差为正时,微分项为负,误差为负时,微分项为正。微分具有预测的功能,它体现的是检测值的变化趋势,适当的值有利于稳定目标值。
注:在调整 PID 参数时,应该先调 P P P,再调 I I I,最后调整 D D D。
增量式 PID
顾名思义增量式就是当前输出量相比上一刻的输出量应该增加的值。
由公式 ( 2 ) (2) (2) 可以得出上一刻的公式:
u ( k − 1 ) = K p e ( ( k − 1 ) T ) + K i ∑ j = 0 k − 1 e ( j T ) + K d ( e ( ( k − 1 ) T ) − e ( ( k − 2 ) T ) ) (3) u(k - 1)=K_pe((k - 1)T)+K_i\sum_{j = 0}^{k - 1}e(jT)+K_d(e((k - 1)T)-e((k - 2)T))\tag{3} u(k−1)=Kpe((k−1)T)+Kij=0∑k−1e(jT)+Kd(e((k−1)T)−e((k−2)T))(3)
公式 ( 2 ) (2) (2) 和公式 ( 3 ) (3) (3) 相减得到:
Δ u ( k ) = K p ( e ( k T ) − e ( ( k − 1 ) T ) ) + k i e k + K d ( e ( k ) − 2 e ( ( k − 1 ) T ) + e ( ( k − 2 ) T ) ) (4) \Delta u(k)=K_p(e(kT)-e((k - 1)T)) + k_ie_k+K_d(e(k)-2e((k - 1)T)+e((k - 2)T))\tag{4} Δu(k)=Kp(e(kT)−e((k−1)T))+kiek+Kd(e(k)−2e((k−1)T)+e((k−2)T))(4)
可以看出输出结果只与 k k k, k − 1 k - 1 k−1, k − 2 k - 2 k−2 时刻的反馈值有关,无积分作用。并且是作用于上一刻的控制量上的增加量。
增量式 PID 可以应用于带有积分结构的负载。
PID 性能指标
在使用 PID 控制时,我们需要估算此时使用的 PID 参数实际应用的性能如何,能否达到要求,一般从以下 3 点观察。
超调量
顾名思义,超调量就是实际的反馈值超过设定值的量,它所占整个调整量的百分比。
从图中可以看出,最大动态偏差(第一个波峰超过设定值的幅度)差不多是 0.16 0.16 0.16,那么超调量为 0.16 / 1 = 16 % 0.16 / 1 = 16\% 0.16/1=16%。
调节时间
调节时间是指从调整开始到稳态误差在要求范围内,所需要的时间,调节时间越短越好。
上图的调节时间大约在 50 50 50 左右。
震荡频率
震荡频率表现的是系统调整的速度,一般来说震荡频率越快越好,最后趋于平稳。
上升时间
上升时间是指实际值第一次达到设定值的时间,即快速上升阶段的时间,时间越短越好。
PID 算法改进
实际使用过程中,PID 会有较大的局限性,导致调参过程中,根本无法达到要求,因此我们需要根据实际情况,进行改进。下面介绍几种常用的改进方法。
上下限设定法
有些场景下,并不希望全开或者全关,因此我们需要设置最大输出值和最小输出值, u m i n ≤ u ( t ) ≤ u m a x u_{min}\leq u(t)\leq u_{max} umin≤u(t)≤umax。
死区设定法
有时候,因为 PID 不断地调节,使得输出曲线不断震荡,当我们需要一个平稳的曲线时,我们可以在一段区间内,使负载不受 PID 控制,由固定功率运行,在区间外则重新受 PID 控制。
积分部分改进
我们知道积分部分是历史误差的和,既可以提高系统的响应速度,又可以帮助系统消除稳态误差。
当前值小于设定值时,积分项一直在累加,此时帮助输出值能够更快得达到设定值;但当前值等于设定值时,比例项为0,积分项达到最大值,仍然会有输出,它会增大系统的超调量。在当前值大于设定值时,积分项开始减小,帮助系统回到设定值。在只有比例项时,系统的振动幅度往往很大,加入积分项后,可以使系统更加稳定。
为了减小积分部分对超调量的影响,我们可以做出以下改进:
- 设置积分项上限:在第一个上升阶段,有较长的时间处于低于设定值的状态,积分项增加得很快,当当前值大于设定值时,又不能及时地减去积分项,因此我们可以设定一个积分项的最大值,使得积分项不至于累加过大。
- 设置积分有效区间:对于上述情况,我们也可以设置积分的有效区间。当当前值与设定值差值过大时,积分不进行累加,只有差值在一定的范围内时,积分开始累加,这样积分项不会累加得过大。也可以将在差值过大时的积分系数减小,达到相同的效果。
微分部分改进
微分部分是抑制系统输出值变化的,使系统更加稳定。它的趋势预测能力也可以帮助控制一些反馈滞后的系统,比如温度控制系统。但是微分部分往往是直接加上的,并且只持续一个时间周期,使得系统并不能稳定,且抗干扰能力减弱。
因此我们需要对微分部分进行一些改进措施:
- 不完全微分法:我们可以加入低通滤波器的方法,将微分项变得平缓一点。
传递函数为:
H ( j ω ) = V o u t V i n = 1 j ω C R + 1 j ω C = 1 1 + j ω R C (5) H(j\omega)=\frac{V_{out}}{V_{in}}=\frac{\frac{1}{j\omega C}}{R+\frac{1}{j\omega C}}=\frac{1}{1 + j\omega RC}\tag{5} H(jω)=VinVout=R+jωC1jωC1=1+jωRC1(5)
令 s = j ω s = j\omega s=jω,则
H ( s ) = 1 1 + s R C (6) H(s)=\frac{1}{1 + sRC}\tag{6} H(s)=1+sRC1(6)
对 s s s进行Z变换,这里采用一阶向后差分的方法:
s = 1 − z − 1 T (7) s=\frac{1 - z^{-1}}{T}\tag{7} s=T1−z−1(7)
推导过程如下:
令 U ( s ) E ( s ) = 1 s \frac{U(s)}{E(s)}=\frac{1}{s} E(s)U(s)=s1,对其进行微分可以得到
d u ( t ) d t = u ( k T ) − u [ ( k − 1 ) T ] T = e ( t ) (8) \frac{du(t)}{dt}=\frac{u(kT)-u[(k - 1)T]}{T}=e(t)\tag{8} dtdu(t)=Tu(kT)−u[(k−1)T]=e(t)(8)
那么
u ( k T ) = u [ ( k − 1 ) T ] + T e ( k T ) (9) u(kT)=u[(k - 1)T]+Te(kT)\tag{9} u(kT)=u[(k−1)T]+Te(kT)(9)
Z 变换:
U ( z ) = z − 1 U ( z ) + T E ( z ) (10) U(z)=z^{-1}U(z)+TE(z)\tag{10} U(z)=z−1U(z)+TE(z)(10)
则
s = E ( s ) U ( s ) = E ( z ) U ( z ) = 1 − z − 1 T (11) s=\frac{E(s)}{U(s)}=\frac{E(z)}{U(z)}=\frac{1 - z^{-1}}{T}\tag{11} s=U(s)E(s)=U(z)E(z)=T1−z−1(11)
带入公式(6)可以得到
H ( s ) = 1 1 + 1 − z − 1 T R C = T T + ( 1 − z − 1 ) R C (12) H(s)=\frac{1}{1+\frac{1 - z^{-1}}{T}RC}=\frac{T}{T+(1 - z^{-1})RC}\tag{12} H(s)=1+T1−z−1RC1=T+(1−z−1)RCT(12)
Z 逆变换后
( T + R C ) V o u t ( n ) − R C V o u t ( n − 1 ) = T V i n ( n ) (13) (T + RC)V_{out}(n)-RCV_{out}(n - 1)=TV_{in}(n)\tag{13} (T+RC)Vout(n)−RCVout(n−1)=TVin(n)(13)
⇒ V o u t ( n ) = T V i n ( n ) + R C V o u t ( n − 1 ) T + R C = V o u t ( n − 1 ) + T T + R C ( V i n ( n ) − V o u t ( n − 1 ) ) \begin{align*} \Rightarrow V_{out}(n)&=\frac{TV_{in}(n)+RCV_{out}(n - 1)}{T + RC}\\ &=V_{out}(n - 1)+\frac{T}{T + RC}(V_{in}(n)-V_{out}(n - 1))\tag{14} \end{align*} ⇒Vout(n)=T+RCTVin(n)+RCVout(n−1)=Vout(n−1)+T+RCT(Vin(n)−Vout(n−1))(14)
令 α = T T + R C \alpha=\frac{T}{T + RC} α=T+RCT,则
V o u t ( n ) = α V i n ( n ) + ( 1 − α ) V o u t ( n − 1 ) (15) V_{out}(n)=\alpha V_{in}(n)+(1 - \alpha)V_{out}(n - 1)\tag{15} Vout(n)=αVin(n)+(1−α)Vout(n−1)(15)
将这个公式转换到PID微分项可以得到
U d ( k ) = α K d [ e ( k ) − e ( k − 1 ) ] + ( 1 − α ) U d ( k − 1 ) (16) U_d(k)=\alpha K_d[e(k)-e(k - 1)]+(1 - \alpha)U_d(k - 1)\tag{16} Ud(k)=αKd[e(k)−e(k−1)]+(1−α)Ud(k−1)(16)
α \alpha α的取值为0~1,越小,滤波效果越大,当 α = 0 \alpha = 0 α=0时,没有微分效果,当 α = 1 \alpha = 1 α=1时,是没有滤波的微分,即完全微分。根据实际情况,选择合适的 α \alpha α值。公式(16)是位置式PID的微分算法,下面计算一下差值,即可得到增量式PID微分算法
Δ U d ( k ) = α K d [ e ( k ) − e ( k − 1 ) ] − α U d ( k − 1 ) (17) \Delta U_d(k)=\alpha K_d[e(k)-e(k - 1)]-\alpha U_d(k - 1)\tag{17} ΔUd(k)=αKd[e(k)−e(k−1)]−αUd(k−1)(17)
- 微分先行法:前面的改善方法都是在设定值不变的情况,但是如果需要不断改变设定值的情况,使得被控量以一定规律波动。以前面的方法,是对被控量与设定值的差值进行微分,设定值频繁改变时,微分项会产生较大的突变,影响系统稳定。
因此我们这里只对被控量进行微分,对设定值不进行微分。
我们令微分部分的传递函数为
U d ( s ) Y ( s ) = T d s + 1 γ T d s + 1 0 < γ < 1 (18) \frac{U_d(s)}{Y(s)}=\frac{T_ds + 1}{\gamma T_ds + 1}\qquad 0\lt\gamma\lt1\tag{18} Y(s)Ud(s)=γTds+1Tds+10<γ<1(18)
则
γ T d d u ( t ) d t + u ( t ) = T d d y ( t ) d t + y ( t ) (19) \gamma T_d\frac{du(t)}{dt}+u(t)=T_d\frac{dy(t)}{dt}+y(t)\tag{19} γTddtdu(t)+u(t)=Tddtdy(t)+y(t)(19)
将微分部分一阶滞后差分:
d u ( t ) d t = u ( k ) − u ( k − 1 ) T (20) \frac{du(t)}{dt}=\frac{u(k)-u(k - 1)}{T}\tag{20} dtdu(t)=Tu(k)−u(k−1)(20)
d y ( t ) d t = y ( k ) − y ( k − 1 ) T (21) \frac{dy(t)}{dt}=\frac{y(k)-y(k - 1)}{T}\tag{21} dtdy(t)=Ty(k)−y(k−1)(21)
带入到公式(19)中得到:
u d ( k ) = γ T d γ T d + T u d ( k − 1 ) + T d + T γ T d + T y ( k ) − T d γ T d + T y ( k − 1 ) (22) u_d(k)=\frac{\gamma T_d}{\gamma T_d + T}u_d(k - 1)+\frac{T_d + T}{\gamma T_d + T}y(k)-\frac{T_d}{\gamma T_d + T}y(k - 1)\tag{22} ud(k)=γTd+TγTdud(k−1)+γTd+TTd+Ty(k)−γTd+TTdy(k−1)(22)
将 K d = K p T d T K_d=\frac{K_pT_d}{T} Kd=TKpTd带入到上式中得到:
u d ( k ) = γ K d γ K d + K p u d ( k − 1 ) + K d + K p γ K d + K p y ( k ) − K d γ K d + K p y ( k − 1 ) (23) u_d(k)=\frac{\gamma K_d}{\gamma K_d + K_p}u_d(k - 1)+\frac{K_d + K_p}{\gamma K_d + K_p}y(k)-\frac{K_d}{\gamma K_d + K_p}y(k - 1)\tag{23} ud(k)=γKd+KpγKdud(k−1)+γKd+KpKd+Kpy(k)−γKd+KpKdy(k−1)(23)
上式为位置式PID的微分项,增量式PID的微分项如下:
Δ u d ( k ) = − K p γ K d + K p u d ( k − 1 ) + K d + K p γ K d + K p y ( k ) − K d γ K d + K p y ( k − 1 ) (24) \Delta u_d(k)=-\frac{K_p}{\gamma K_d + K_p}u_d(k - 1)+\frac{K_d + K_p}{\gamma K_d + K_p}y(k)-\frac{K_d}{\gamma K_d + K_p}y(k - 1)\tag{24} Δud(k)=−γKd+KpKpud(k−1)+γKd+KpKd+Kpy(k)−γKd+KpKdy(k−1)(24)
PID 控制中的积分项 I 的讨论:消除稳态误差,但可能引起超调
CoderIsArt 于 2024-11-16 12:15:59 发布
在 PID 控制中,积分控制项(I)是解决稳态误差问题的重要组成部分,但也可能导致系统超调。以下是积分控制的工作原理、消除稳态误差的机制,以及引起系统超调的原因和应对措施。
1. 积分控制项如何消除稳态误差
(1) 稳态误差的定义
- 稳态误差是系统在达到稳定状态后,输出值与设定值之间的持续偏差。
- 在仅有比例控制(P)时,由于控制力的大小与偏差成正比,当偏差趋近于零时,控制力可能不足以克服系统的干扰或非线性特性,从而导致稳态误差。
(2) 积分控制的作用
- 积分控制的公式为:
u I ( t ) = K I ∫ 0 t e ( τ ) d τ u_{I}(t)=K_{I} \int_{0}^{t} e(\tau) d \tau uI(t)=KI∫0te(τ)dτ
其中 K I K_{I} KI 是积分增益, e ( t ) e(t) e(t) 是系统的误差。 - 积分项对误差进行累加,当系统存在稳态误差时,误差在积分项中不断累积,直到输出值与设定值一致,稳态误差为零。
(3) 消除稳态误差的机制
- 如果系统存在持续的偏差(稳态误差),积分项会不断增大,增加控制输出,直到偏差消失。
- 这种 “记忆” 机制使得积分控制能够补偿稳态误差,即使比例控制不足以单独消除误差。
2. 积分控制如何引起系统超调
(1) 超调的定义
- 超调是指系统响应超过设定值的幅度,通常伴随振荡。
(2) 积分控制引起超调的原因
- 累积效应(积分饱和):
- 积分项会对误差进行累积,即使误差开始减小,积分项仍然可能保持较大的值(称为 “积分滞后”)。
- 当系统的实际输出接近设定值时,过大的积分项会导致控制输出过大,从而引发超调。
- 响应速度较快的系统:
- 如果系统响应速度较快(如具有较大的比例增益 K P K_P KP),积分项可能在偏差消失前已经累积了过多控制量,导致输出快速越过设定值,引发超调。
- 系统惯性较大:
- 在高惯性系统中,积分项可能在设定值附近产生持续作用,导致系统超过目标位置。
3. 避免积分控制引起超调的措施
(1) 积分增益调节
- 适当降低积分增益 K I K_I KI 可以减少积分项的累积速度,从而降低超调的可能性。
(2) 抗积分饱和技术
- 积分分离法:
- 当误差超过一定阈值时,暂时关闭积分作用,只使用比例和微分控制。
- 积分限幅:
- 对积分项设定一个最大值,限制其累积幅度。
(3) 引入抗积分效应的控制策略
- 抗积分风暴(Anti-windup):
- 在系统接近目标值时,通过修正积分项或者限制控制输出,避免积分项对总输出产生过大影响。
(4) 合适的微分控制
- 微分控制项(D)可以抵消由于积分累积导致的快速变化趋势,从而抑制超调。
(5) 前馈控制
- 在某些情况下,可以通过加入前馈控制减少误差累积的发生。
4. 总结
- 积分控制的优点:通过累积误差,消除稳态误差,增强系统的精度。
- 潜在风险:如果未正确调整,积分控制可能导致系统超调,甚至引起振荡或不稳定。
- 解决方案:通过合理的增益调节、抗积分风暴机制和综合控制策略,可以有效平衡系统响应速度、超调和稳态误差之间的矛盾。
PID 闭环控制算法解析
肥肥胖胖是太阳于 2020-10-11 19:24:48 发布
PID 简介
P | Proportion(比例) | 就是输入偏差乘以一个常数 |
---|---|---|
I | Integral(积分) | 就是对输入偏差进行积分运算 |
D | Derivative(微分) | 对输入偏差进行微分运算 |
P (比例), I (积分), D (微分) 环节
P 环节
作用:对当前时刻的偏差进行比例放大
采样序列:系统中每个时刻采集回来的当前值,最终得到:“ X 1 、 X 2 、 X 3 ⋯ X n − 1 , X n X_1、X_2、X_3 \cdots X_{n - 1},X_n X1、X2、X3⋯Xn−1,Xn”;
第 k k k 时刻的偏差: e ( k ) = Expect − X k e(k) = \text{Expect} - X_k e(k)=Expect−Xk;
- e ( k ) > 0 e(k) > 0 e(k)>0 : 控制系统还未达到期望值;
- e ( k ) = 0 e(k) = 0 e(k)=0 : 控制系统已经达到期望值;
- e ( k ) < 0 e(k) < 0 e(k)<0 : 控制系统已经超过期望值;
P 环节的第 k k k 时刻的输出: u ( k ) = K p × e ( k ) u(k) = K_p \times e(k) u(k)=Kp×e(k) 。
K p K_p Kp:P 比例系数,可以理解为放大倍数。
单 P 算法中的缺陷:当系统不存在偏差( e ( k ) = 0 e(k) = 0 e(k)=0)时,执行部件便无输出,被控对象处于失控状态。
(每次系统输出,都会使得控制系统更加接近期望值,偏差 e k e_k ek 不断变小,所以斜率不断变小)我们看到如果没有 I,D 环节,误差永远不会被消除,会在目标值附近进行波动。
I 环节
I(积分)环节:对过去所有时间的偏差进行积分。
偏差序列: e ( k ) = Expect– X k e(k) = \text{Expect} – X_k e(k)=Expect–Xk,将得到的数据 “ e 1 、 e 2 、 e 3 ⋯ e n − 1 、 e n e_1、e_2、e_3 \cdots e_{n - 1}、e_n e1、e2、e3⋯en−1、en”,的后 T i T_i Ti 个时间单位进行求和,最终得到以下数据:
- ∑ e i \sum e_i ∑ei:对过去所有时间的偏差进行求和;
- ∑ e i < 0 \sum e_i < 0 ∑ei<0 : 控制系统在 过去大部分时间段还未达到期望值;
- ∑ e i = 0 \sum e_i = 0 ∑ei=0 : 控制系统在 过去大部分时间段已经达到期望值;
- ∑ e i > 0 \sum e_i > 0 ∑ei>0 : 控制系统在 过去大部分时间段已经超过期望值;
I 环节的第 k k k 时刻的输出: u ( k ) = K i × ∑ e i u(k) = K_i \times \sum e_i u(k)=Ki×∑ei 。( K i K_i Ki:I 比例系数)
在控制系统刚启动时,由于 I 环节的 偏差累积效应,可以 更快的达到期望值。但同时也由于偏差的累积效应,使得系统第一次达到期望值时,过去所有时刻都未达标,即 ∑ e i \sum e_i ∑ei 很大,所以曲线其实会超过期望的那条虚线并持续增长,所以,我们通常会在 I 环节中除以积分时间 T i T_i Ti,即 u ( k ) = K i × ∑ e i T i u(k) = \frac{K_i \times \sum e_i}{T_i} u(k)=TiKi×∑ei。
I 环节中引入了 “误差的积分值”,积分代表了以前误差的累积,可以加快达到目标值,但是由于 I 环节受此状态之前误差的累积 的影响,因此当达到目标值之后,不会稳定下来,会继续越过目标值进行变化,因此就需要我们不仅要考虑以前,也要考虑未来于是就出现了 “D (微分) 环节”。
D 环节
D(微分)环节:通过偏差的偏差,对控制系统的输出走向进行预判,起超前调节的作用。
偏差的偏差序列: Δ e k = e k − e k − 1 \Delta e_k = e_k - e_{k - 1} Δek=ek−ek−1,最终得到 “ Δ e 1 、 Δ e 2 、 Δ e 3 ⋯ Δ e n − 1 、 Δ e n \Delta e_1、\Delta e_2、\Delta e_3 \cdots \Delta e_{n - 1}、\Delta e_n Δe1、Δe2、Δe3⋯Δen−1、Δen”;
Δ e ( k ) \Delta e(k) Δe(k) 很大时,表示控制系统上一刻的输出很 “陡峭”,表明控制系统离目标相差很远,所以 D 环节的输出也很大。
D 环节的第 k k k 时刻的输出: u ( k ) = K d × Δ e ( k ) u(k) = K_d \times \Delta e(k) u(k)=Kd×Δe(k) 。
K d K_d Kd:D 微分系数,除了超前预判,还可理解为阻尼力。
微分环节很奈斯,D 环节反映了最近一些时间误差的变化,对于我们预测未来误差的走向具有重要意义,并且由于 D 环节很容易受噪声波动也就是误差波动的影响,因此加入 I 环节可以使大幅度的波动迟缓,即 I 环节限制大幅度波动 (由于 I 环节对在此之前的 T i T_i Ti 个单位时间内的误差求平均,因此对于当前的前一个误差变化的敏感度下降,于是 I 环节拥有 “延迟效果”),D 环节预测修正值得走向,一个联系从前,一个联系未来。
PID 算法的由来
尽管不同类型的控制器,其结构、原理各不相同,但是基本控制规律只有三个:比例(P)控制、积分(I)控制和微分(D)控制。这几种控制规律可以单独使用,但是更多场合是组合使用。如比例(P)控制、比例 - 积分(PI)控制、比例 - 积分 - 微分(PID)控制等。
比例(P)控制
单独的比例控制也称 “有差控制”,输出的变化与输入控制器的偏差成比例关系,偏差越大输出越大。实际应用中,比例度的大小应视具体情况而定,比例度太小,控制作用太弱,不利于系统克服扰动,余差太大,控制质量差,也没有什么控制作用;比例度太大,控制作用太强,容易导致系统的稳定性变差,引发振荡。
对于反应灵敏、放大能力强的被控对象,为提高系统的稳定性,应当使比例度稍小些;而对于反应迟钝,放大能力又较弱的被控对象,比例度可选大一些,以提高整个系统的灵敏度,也可以相应减小余差。
单纯的比例控制适用于扰动不大,滞后较小,负荷变化小,要求不高,允许有一定余差存在的场合。工业生产中比例控制规律使用较为普遍。
比例积分(PI)控制
比例控制规律是基本控制规律中最基本的、应用最普遍的一种,其最大优点就是控制及时、迅速。只要有偏差产生,控制器立即产生控制作用。但是,不能最终消除余差的缺点限制了它的单独使用。克服余差的办法是在比例控制的基础上加上积分控制作用。
积分控制器的输出与输入偏差对时间的积分成正比。这里的 “积分” 指的是 “积累” 的意思。积分控制器的输出不仅与输入偏差的大小有关,而且还与偏差存在的时间有关。只要偏差存在,输出就会不断累积(输出值越来越大或越来越小),一直到偏差为零,累积才会停止。所以,积分控制可以消除余差。积分控制规律又称无差控制规律。
积分时间的大小表征了积分控制作用的强弱。积分时间越小,控制作用越强;反之,控制作用越弱。
积分控制虽然能消除余差,但它存在着控制不及时的缺点。因为积分输出的累积是渐进的,其产生的控制作用总是落后于偏差的变化,不能及时有效地克服干扰的影响,难以使控制系统稳定下来。所以,实用中一般不单独使用积分控制,而是和比例控制作用结合起来,构成比例积分控制。这样取二者之长,互相弥补,既有比例控制作用的迅速及时,又有积分控制作用消除余差的能力。因此,比例积分控制可以实现较为理想的过程控制。
比例积分控制器是目前应用最为广泛的一种控制器,多用于工业生产中液位、压力、流量等控制系统。由于引入积分作用能消除余差,弥补了纯比例控制的缺陷,获得较好的控制质量。但是积分作用的引入,会使系统稳定性变差。对于有较大惯性滞后的控制系统,要尽量避免使用。
比例微分(PD)控制
比例积分控制对于时间滞后的被控对象使用不够理想。所谓 “时间滞后” 指的是:当被控对象受到扰动作用后,被控变量没有立即发生变化,而是有一个时间上的延迟,比如容量滞后,此时比例积分控制显得迟钝、不及时。为此,人们设想:能否根据偏差的变化趋势来做出相应的控制动作呢?犹如有经验的操作人员,即可根据偏差的大小来改变阀门的开度(比例作用),又可根据偏差变化的速度大小来预计将要出现的情况,提前进行过量控制,“防患于未然”。这就是具有 “超前” 控制作用的微分控制规律。微分控制器输出的大小取决于输入偏差变化的速度。
微分输出只与偏差的变化速度有关,而与偏差的大小以及偏差是否存在与否无关。如果偏差为一固定值,不管多大,只要不变化,则输出的变化一定为零,控制器没有任何控制作用。微分时间越大,微分输出维持的时间就越长,因此微分作用越强;反之则越弱。当微分时间为 0 时,就没有微分控制作用了。同理,微分时间的选取,也是需要根据实际情况来确定的。
微分控制作用的特点是:动作迅速,具有超前调节功能,可有效改善被控对象有较大时间滞后的控制品质;但是它不能消除余差,尤其是对于恒定偏差输入时,根本就没有控制作用。因此,不能单独使用微分控制规律。
比例和微分作用结合,比单纯的比例作用更快。尤其是对容量滞后大的对象,可以减小动偏差的幅度,节省控制时间,显著改善控制质量。
比例积分微分(PID)控制
最为理想的控制当属比例 - 积分 - 微分控制规律。它集三者之长:既有比例作用的及时迅速,又有积分作用的消除余差能力,还有微分作用的超前控制功能。
当偏差阶跃出现时,微分立即大幅度动作,抑制偏差的这种跃变;比例也同时起消除偏差的作用,使偏差幅度减小,由于比例作用是持久和起主要作用的控制规律,因此可使系统比较稳定;而积分作用慢慢把余差克服掉。只要三个作用的控制参数选择得当,便可充分发挥三种控制规律的优点,得到较为理想的控制效果。
PID 控制器调试方法
比例系数的调节
比例系数 P P P 的调节范围一般是: 0.1 − 100 0.1 - 100 0.1−100。
如果增益值取 0.1 0.1 0.1,PID 调节器输出变化为十分之一的偏差值。如果增益值取 100 100 100,PID 调节器输出变化为一百倍的偏差值。
可见该值越大,比例产生的增益作用越大。初调时,选小一些,然后慢慢调大,直到系统波动足够小时,再调节积分或微分系数。过大的 P P P 值会导致系统不稳定,持续振荡;过小的 P P P值又会使系统反应迟钝。合适的值应该使系统有足够的灵敏度但又不会反应过于灵敏,一定时间的迟缓要靠积分时间来调节。
积分系数的调节
积分时间常数的定义是,偏差引起输出增长的时间。积分时间设为 1 1 1秒,则输出变化 100 % 100\% 100%所需时间为 1 1 1秒。初调时要把积分时间设置长些,然后慢慢调小直到系统稳定为止。
微分系数的调节
微分值是偏差值的变化率。例如,如果输入偏差值线性变化,则在调节器输出侧叠加一个恒定的调节量。大部分控制系统不需要调节微分时间。因为只有时间滞后的系统才需要附加这个参数。如果画蛇添足加上这个参数反而会使系统的控制受到影响。如果通过比例、积分参数的调节还是达不到理想的控制要求,就可以调节微分时间。初调时把这个系数设小,然后慢慢调大,直到系统稳定。
PID 参数的计算方法
常用计算方法与方法的实现
PID 控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定 PID 控制器的比例系数、积分时间和微分时间的大小。
PID 控制器参数整定的方法很多,概括起来有两大类:
一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。
二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。PID 控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。
两种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。
现在一般采用的是临界比例法。利用该方法进行 PID 控制器参数的整定步骤如下:
(1) 首先预选择一个足够短的采样周期让系统工作;
(2) 仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡, 记下这时的比例放大系数和临界振荡周期;
(3) 在一定的控制度下通过公式计算得到 PID 控制器的参数。
PID 算法的 Matlab 仿真
https://blog.csdn.net/weixin_44044411/article/details/85891109
各个环节系数的作用
比例调节 K p K_p Kp 的作用
能提高系统的动态响应速度,迅速反映误差,从而减少误差,但是不能消除误差。简单来说就是 K p K_p Kp 越大,响应速度越快; K p K_p Kp 越小,响应速度越慢,但可能会出现超调或者调节过慢的情况,并且 K p K_p Kp 太大了会使系统不稳定。
微分环节 K d K_d Kd 的作用
在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在补偿误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在较大惯性环节(如水波影响)或滞后单元(如通讯设备的延迟),它们具有抑制误差的作用,即其变化总是落后于误差的变化,而解决的办法是提前抑制误差的变化。
当系统产生频繁震荡的杂波时,简单的微分控制可能被这些噪声所干扰,因此微分控制的缺点是对干扰噪声敏感,使系统抑制干扰的能力降低。为此可在微分部分增加惯性滤波环节。
微分与变化率有关,可以把它理解为导数,它可以减小超调量来克服震荡,使系统稳定性提高,同时加快响应速度,使系统更快有更好的动态性能。它就像个 “预言家”,可以根据变化率来判断系统快要上升还是下降,从而提前改变系统的控制量,这就与积分作用形成互补,使系统性能更优。
积分环节 K i K_i Ki 的作用
一般就是消除稳态误差,只要系统存在误差,积分作用就会不断积累,输出控制量来消除误差,如果偏差为零,这时积分才停止。但是积分作用太强会使得超调量加大,甚至使系统出现震荡。积分作用太强或太弱可以这样理解:积分作用相当于容错率,容错太多了才开始调节,就会导致超调量过大;反之,容错率低,刚刚出现一点误差就马上进行调节,这样就容易引起震荡。所以积分调节存在一定的滞后性,因为不管容错多少,误差都已经发生了。为了对这种误差进行预测,就需要微分环节。
K p K_p Kp, K d K_d Kd, K i K_i Ki 三个参数动态变化对系统的影响
K p K_p Kp, K d K_d Kd, K i K_i Ki 三个参数动态变化的 PID 调节图解
参数 | 上升时间 | 超调量 | 响应时间 | 稳态误差 | 稳定性 |
---|---|---|---|---|---|
K p K_p Kp | 减少 | 增加 | 小变化 | 减少 | 降级 |
K i K_i Ki | 减少 | 增加 | 增加 | 消除 | 降级 |
K d K_d Kd | 微小的变化 | 减少 | 减少 | 理论上没有影响 | K d K_d Kd 小,稳定性会提升 |
什么是 “超调”?
超调是衡量调节品质的一个量。当系统输出超过稳态值时,输出的最大值 Y ( t p ) Y(t_p) Y(tp) 减去稳态值 Y ( ∞ ) Y(\infty) Y(∞) 的差除以稳态值乘以百分之百得到的一个输出最大偏差比:
超调量 = [ Y ( t p ) − Y ( ∞ ) ] Y ( ∞ ) × 100 % 超调量=\frac{[Y(t_p)-Y(\infty)]}{Y(\infty)}\times100\% 超调量=Y(∞)[Y(tp)−Y(∞)]×100%
因此,超调反映的是控制系统在达到稳态前控制作用最糟糕的结果。
如下图所示:
当我们仅用 “真实值与目标值的差” 作为修正数据的主要来源,那么会一直产生 e r r o r error error,只要有 e r r o r error error 图像就会波动,这就是 P 闭环调节。当我们调节的力度过大,以至于调节的结果偏离目标值,跑到了目标值的另一侧,这就叫超调。
三种调节对应的时间特性
调节类型 | 意义 | 时间关系 |
---|---|---|
比例调节 P P P | 反映了当前值与当前误差的差值 | 当前与当前 |
积分调节 I I I | 当前误差是在此之前的误差的累积 | 当前与之前 |
微分调节 D D D | 用近期的误差来预测未来误差的走势 | 当前与未来 |
三种调节对应的优缺点
比例控制 | 能迅速反映误差,从而减小误差,但比例控制不能消除稳态误差, K p K_p Kp 的加大会引起系统的不稳定 |
---|---|
积分控制 | 只要系统存在误差,积分控制作用就不断地积累,输出控制量以消除误差。因此只要有足够的时间,积分控制将能完全消除误差,但是积分作用太强会使系统超调加大,甚至使系统出现振荡 |
微分控制 | 可以减小超调量,克服振荡,使系统的稳定性提高,同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能 |
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}\left[e(t)+\frac{1}{T_{I}}\int_{0}^{t}e(t)dt + T_{D}\frac{de(t)}{dt}\right] u(t)=KP[e(t)+TI1∫0te(t)dt+TDdtde(t)]
通常,对系数做如下简化:
-
积分系数: K i = K p T i K_i = \frac{K_p}{T_i} Ki=TiKp
-
微分系数: K d = K p × T d K_d = K_p\times T_d Kd=Kp×Td
参数说明
K p K_p Kp | 比例系数,反映了调节速度 |
---|---|
E ( t ) E(t) E(t) | 当前值 - 目标值,即当前的误差 |
T 1 T_1 T1 | 积分的时间,反映了当前值与前 T 1 T_1 T1 个周期的关系 |
T D T_D TD | 微分时间常数,反映了系统的修正力度 |
误差的积分 | T 1 T_1 T1 个时间间隔的误差的累加 |
误差的微分 | 当前误差与前一个误差的差值 |
微分时间常数 T d T_d Td 对控制性能的影响
随着微分时间常数 T d T_d Td 的增加,闭环系统响应的响应速度加快,调节时间减小。微分环节的主要作用是提高系统的响应速度。由于该环节对误差的导数 (即误差变化率发生作用),它能在误差较大的变化趋势时施加合适的控制。
但是过大的 K d K_d Kd 值会因为系统造成或者受控对象的大时间延迟而出现问题。微分环节对于信号无变化或变化缓慢的系统不起作用。
积分时间常数 T i T_i Ti 对控制性能的影响
积分作用的强弱取决于积分常数 T i T_i Ti。 T i T_i Ti 越小,积分作用就越强,反之 T i T_i Ti 大则积分作用弱。积分控制的主要作用是改善系统的稳态性能,消除系统的稳态误差。当系统存在控制误差时,积分控制就进行,直至无差,积分调节停止,积分控制输出一常值。
加入积分控制可使得系统的相对稳定性变差。 T i T_i Ti 值的减小可能导致系统的超调量增大, T i T_i Ti 值的增大可能使得系统响应趋于稳态值的速度减慢。
这里的积分作用说的是 “ T i T_i Ti 越小说明当前的修正值与之前的误差关系不紧密,因此积分的效果不明显”。
位置式与增量式 PID 算法的区别
位置式 PID 的输出与过去的所有状态有关,计算时要对 e e e(每一次的控制误差)进行累加,这个计算量非常大,而明显没有必要。而且小车的 PID 控制器的输出并不是绝对数值,而是一个 Δ \Delta Δ,代表增多少,减多少。换句话说,通过增量 PID 算法,每次输出是 PWM 要增加多少或者减小多少,而不是 PWM 的实际值。所以明白增量式 PID 就行了。
增量型 PID,是对位置型 PID 取增量,这时控制器输出的是相邻两次采样时刻所计算的位置值之差,得到的结果是增量,即在上一次的控制量的基础上需要增加(负值意味减少)控制量。
篇外:一些讨论
PID 控制积分时间和微分时间的物理意义
才多星
61 赞
在解释 PID 控制相关概念时,应尽量采用无公式、纯物理解释的方式。因为关注此问题的大多是初学者,过早引入复杂公式不利于其理解。从知识体系角度看,熟练掌握 PID 控制,在自动化控制学习中约完成了 50% ;若进一步学习拉氏变换及其他变换与现代控制理论,则自动化控制知识掌握程度可达 80% - 90%。
PID 控制的基本结论
先给出结论 : P P P 是正常情况下的输入增量, I I I 用于应对系统中的 “阻力”, D D D 用于应对系统的 “惯性”。任何一个系统与期望达到的值相比,必然存在误差,且系统内部存在阻力和惯性。本质上,对系统的控制就是对误差、阻力和惯性这三个因素的调控。理论上,若能明确这三个参数与时间、地点等相关的函数,就能实现对系统的精准控制,但实际中难以做到,故而产生了多种控制方式以及用于确定这些函数的方法。
很多人习惯用 “水池放水” 和 “车子撞墙” 这两个例子解释 PID 控制。作者最初学习时也曾借助它们思考,但经反思,这两个例子并非最适宜。因为在尚未理解 PID 控制时,构建相关复杂模型会分散对其物理本质的关注。
更合适的参考示例
人类对旋转较为敏感。从出生起,我们便处于旋转的世界,地球、太阳系、宇宙皆在持续旋转。对于大脑而言,一个旋转的飞轮更易构建直观模型,且可从动态和静态两个角度进行观察。
设想有一个飞轮,它可以是拖拉机上的大转盘,也可以是一张 CD。该飞轮初始静止,因有重量而具有惯性,其轴存在摩擦力,若无动力输入,飞轮速度会逐渐减慢直至停止。具体而言,飞轮的重量对应惯性,即转动飞轮需要施加力 ;轴的摩擦力会产生阻力,导致飞轮减速,若不加干预,飞轮最终会停止转动。
基于飞轮示例的 PID 控制分析
假设有一个静止的飞轮,其上有一个竖直朝下的箭头。要求飞轮将箭头顺时针转动至竖直向上 12 点的位置,且不能有偏差。飞轮配备编码器系统,可精确获取箭头位置,同时存在一个力 F F F 能推动飞轮转动,且飞轮自身可控制该力大小。
设定多个时刻,如 t 1 t_1 t1、 t 2 t_2 t2、 t 3 t_3 t3、 t 4 t_4 t4、 t 5 t_5 t5、 t 6 t_6 t6、 t 7 t_7 t7。每个时刻箭头对应一个位置, t 7 t_7 t7 时刻箭头到达 12 点位置。每个时刻位置与 t 7 t_7 t7 时刻位置存在差值 error \text{error} error。差值 error \text{error} error 越大,可施加的力越大 ;当差值为 0 时,无需施加力,因已达目标位置。
指针指向初始点 ;
红色是目标点 ;
灰色细线是转动中的某个时刻的瞬间
然而,由于轴存在阻力,仅依据差值施加力,飞轮可能无法到达 12 点位置。例如,箭头指向 11 点时,即便施加力 F 1 F_1 F1,但因轴阻力 F 2 F_2 F2 的存在,二者相互抵消,导致箭头停留在 11 点,形成 “静态差”。为解决此问题,需施加更大的力 F 3 F_3 F3 克服阻力。具体做法是,将所有时刻箭头位置与 12 点的差值累加,形成积分。当箭头因阻力无法到达 12 点时,该差值持续累加,直至某一时刻,力 F 3 F_3 F3 克服轴阻力,使飞轮继续转动并最终指向 12 点。此时差值为 0,即便继续累加,力 F 3 F_3 F3 也不再变化。
另外,由于飞轮具有惯性,在接近 12 点时,例如箭头指向 11 点 58 分位置时,需提前降低甚至撤销力 F 1 F_1 F1,让飞轮利用自身惯性转动到 12 点位置。对于飞轮,其惯性等效于转速,转速可通过计算第一个时刻与 12 点的差值减去第二个时刻与 12 点的差值得到(位置采样时间需保持一致)。
最终得到一个力 F 0 = A + B + C F_0 = A + B + C F0=A+B+C。其中, A A A 与差值相关,代表当前需立即改变的部分 ; B B B 与所有差值的和相关,用于弥补过去未改变的部分 ; C C C 与惯性相关,是对未来需改变部分的提前估计。 A A A、 B B B、 C C C 分别对应 PID 控制中的比例( P P P)、积分( I I I)、微分( D D D)。
在现实世界中,无刷直流电机的转子类似于上述飞轮,这也是电机位置控制的基本思路。虽然 PID 各部分之间存在一定耦合关系,但在实际应用中,只要能以低成本解决问题即可,“低成本 + 能用” 是关键原则。
寒士
16 赞
PID 控制是根据输入偏差 e e e 计算输出。积分时间 I I I 的物理意义为 :当输入为阶跃的偏差 e e e 时,经过积分时间 I I I(秒),输出达到 e e e。所以,积分时间 I I I 越大,对输出的影响越小。微分时间 D D D 的物理意义是 :当输入为斜坡的偏差 e e e,且 1 秒内 e e e 变化了 1 时,输出就是 D D D。因此,微分时间越大,对输出的影响越大。
帅得自然
14 赞
PID 的准确名称应为 PID 补偿控制。 P P P 指以 P P P 的比例对当前误差 e e e 进行补偿,误差 e e e 越大, P e Pe Pe 乘积越大,补偿速度越快。 I I I 用于补偿过去一段时间的累积误差。由于 P P P 补偿在离散时间下不连续,假设 e e e 是时间的函数,那么 P P P 补偿为 P e ( t ) − P e ( t + 1 ) Pe(t)-Pe(t + 1) Pe(t)−Pe(t+1),这里 t + 1 t + 1 t+1 并非时间增加 1 秒,而是补偿次数增加一次。显然,这一次和上一次之间的误差不可能为 0,所以需要对过去一段时间求连续积分以消除该误差。 D D D 指补偿未来一段时间的预测误差。在补偿了 P P P 和 I I I 后,仅弥补了过去和当下的误差,但随着系统运行,未来必然会出现误差,因此需要预测并补偿未来的误差。
积分作用为什么能消除系统稳态误差?
创建时间:2018 - 10 - 23 20:36:30
匿名用户
5 赞
在 PID 控制中,其对误差进行比例 - 积分 - 微分运算,进而确定被控对象的输入。当误差偏大时,控制结果始终朝着使误差减小的方向进行。PID 控制的表达式为 :
u = k p e + k I ∫ e d t + k d d e d t = k p e n + k I ∑ i = 0 i = n e i Δ t + k d e n − e n − 1 Δ t u = k_p e + k_I \int e dt + k_d \frac{de}{dt} = k_p e_n + k_I \sum_{i = 0}^{i = n} e_i \Delta t + k_d \frac{e_n - e_{n - 1}}{\Delta t} u=kpe+kI∫edt+kddtde=kpen+kI∑i=0i=neiΔt+kdΔten−en−1
误差是时间的函数,对误差的积分反映了系统从开始运行至当前时刻累计的误差结果。这种在时间维度上的累计,促使系统在整个运行过程中朝着误差减小的方向变化。而比例环节仅反映当前时刻的误差,微分环节则反映当前时刻与前一时刻的误差。
简而言之,积分从整体上对系统的误差进行控制,比例和微分是在单一时刻调整系统的误差。积分从整体控制误差的结果使得最终的稳定误差趋向于 0。
当然,如果积分作用过强,会导致系统不稳定。当 k I k_I kI 很大时,若误差较大,控制输入 u u u 也会很大,这会进一步增大误差,最终导致系统不稳定。
发布于 2023 - 05 - 28 01:01,编辑于 2023 - 05 - 28 01:07
风行
43 赞
在负反馈控制系统中,控制信号的输出依据设定信号与输出信号的差值来进行控制。
以一个跟随控制的伺服控制系统为例,伺服器需跟随一个变化的目标运动,设定值即为实际目标的位置。若目标处于动态移动状态,此时伺服系统实际的位置会产生偏差以及时间上的滞后。这时传感器会检测出与目标系统的实际偏差值,例如该偏差值为 5 毫米,那么控制系统的偏差信号就是一个负偏差。控制器对该偏差信号进行处理,其中最基本的一个参数是 P 值(比例值),比例信号实时对偏差进行运算,之后将该信号转化为伺服电机的运转,驱动系统接近目标。然而,当系统已十分接近目标但尚未到达目标位置时,由于偏差过小,控制器的输出值也会过小,此时可能出现无法有效驱动伺服电机和机械系统工作的情况,进而可能产生一个静态或稳态的误差值无法被消除。
此时,若给系统参数中添加一个积分参数项,便可解决此问题。原因在于,积分参数项能够对微小的误差进行数值积分,积分作用实际上是一个误差随时间进行数值积累的过程。通过这个微小误差数值积累的积分过程,一些很小的偏差会被放大,从而形成足够的驱动输出,以消除微小的稳态或静态偏差。这便是 PID 控制中积分控制作用的直观解释。
若要了解实际的控制理论和数学过程,可查阅反馈控制理论书籍,书中有完整的数学描述。
设计 PID 控制,为什么不在增强积分作用的同时增大比例度?
忘川孤帆
8 赞
在理想状态下,高增益能够解决诸多问题,但在工程实际中,控制本身是离散的,反馈信号存在噪声和时延,系统所能容许的总增益存在一定限制。
由于我们没有较好的方法将噪声与所需信号区分开来,只能依据它们频率的差异来赋予不同的增益幅度,以此提高系统性能。添加积分作用是为了在提高低频增益的同时,保持高频增益不变。此时,若同时增大比例度,往往会引发系统振荡。
明亮明
7 赞
从理论层面来讲,PID 存在无数种可行的参数配置,通过仿真也都能够实现稳定控制。然而,当将这些参数应用于实际时,会发现绝大多数参数并不适用。
这是为什么呢 ?
因为系统的实际跟随速度 、响应速度 、反馈强度 、采样频率等均存在上限,这就导致系统的实际表现与理论预测存在差异。例如,某套 PID 参数使系统最终以 10Hz 的衰减震荡,在 1s 内稳定下来,另一套参数使其以 1GHz 的衰减震荡,在 100ms 内稳定。但如果系统的最高响应频率仅为 1KHz,那么第二套参数显然会失效,系统将失去稳定。
所以,在工程实践中,一般会在满足响应速度的前提下,尽量使 PID 参数小一些,这也就出现了所谓的 “调参口诀”。而不是像面多了加水,水多了加面那样,不断来回增大参数。
via:
-
pid 控制中 p、i、d 各自作用_pid p 是做什么 - CSDN 博客
https://blog.csdn.net/baidu_39525096/article/details/89460966 -
PID 控制算法 PID 控制算法详解与改进 - CSDN 博客
https://blog.csdn.net/qq_41563510/article/details/122319089 -
PID 控制中的积分项 I 的讨论:消除稳态误差,但可能引起超调_pid 稳态误差 - CSDN 博客
https://blog.csdn.net/zkmrobot/article/details/143815326 -
PID 闭环控制算法解析 (最透彻)-CSDN 博客
https://blog.csdn.net/weixin_45590473/article/details/109015484 -
PID 控制积分时间和微分时间的物理意义是什么? - 知乎
https://www.zhihu.com/question/26884252 -
积分作用为什么能消除系统稳态误差? - 知乎
https://www.zhihu.com/question/299716424 -
设计 PID 控制,为什么不在增强积分作用的同时增大比例度? - 知乎
https://www.zhihu.com/question/319578646
— -
PID 如何整定?
https://www.ad.siemens.com.cn/productportal/prods/published/Prog/Prog_4.10/Prog_4.10.html