虽然一直在自动化学科,但是一直没怎么搞过控制这个东西。最近正好遇到一个通过优惠卷补贴来调整gmv的问题,和室友交流了一下pid控制以及控制这件事的本质,因此记录一下。
控制的核心是通过调控变量 u u u 使得 f ( u ) → f i f(u) \rightarrow f_i f(u)→fi,这里的映射可以看作是一个黑盒的(扰动随机不确定也看作黑盒的一部分),所以我们无法通过精确的求解知道具体把 u u u设置成多少来让 f ( u ) f(u) f(u)达到 f i f_i fi。因此,需要例如类似梯度下降的逐步逼近方法来“控制”。
PID控制是一种经典的控制方法,并且应用十分广泛。PID控制器的输出 ( u(t) ) 是输入误差 ( e(t) ) 的比例、积分和微分的加权和。其数学表达式为:
u ( t ) = K p e ( t ) + K i ∫ 0 t e ( τ ) d τ + K d d e ( t ) d t u(t) = K_p e(t) + K_i \int_{0}^{t} e(\tau) \, d\tau + K_d \frac{d e(t)}{dt} u(t)=Kpe(t)+Ki∫0te(τ)dτ+Kddtde(t)
其中:
u
(
t
)
u(t)
u(t) 是控制器的输出。
e
(
t
)
e(t)
e(t)是误差,即设定值与实际值之间的差异:( e(t) = r(t) - y(t) )。
r
(
t
)
r(t)
r(t) 是设定值(目标值)。
y
(
t
)
y(t)
y(t)是过程变量(实际值)。
K
p
K_p
Kp 是比例增益。
K
i
K_i
Ki是积分增益。
K
d
K_d
Kd是微分增益。
比例控制部分是当前误差的一个线性函数。比例增益 ( K_p ) 决定了误差对控制器输出的直接影响。较高的比例增益会导致较快的响应,但如果过高,可能会导致系统不稳定。
积分控制部分是误差随时间的累积。积分增益 ( K_i ) 决定了累积误差对控制器输出的影响。积分控制可以消除稳态误差,但如果增益过高,可能会导致系统振荡。
微分控制部分是误差随时间的变化率。微分增益 ( K_d ) 决定了误差变化率对控制器输出的影响。微分控制可以预测误差的趋势,从而提高系统的响应速度和稳定性,但对噪声敏感。