赞
踩
PID 控制器以各种形式使用超过了 1 世纪,广泛应用在机械设备、气动设备 和电子设备.在工业应用中PID及其衍生算法是应用最广泛的算法之一,是当之无愧的万能算法
开环:输入量对输出量没有反馈作用;
闭环:输入量对输出量有反馈作用。
下面是一个闭环系统
目标值:回到家→即为距离家距离为0m
测量值:当前离家的距离,为10m
偏差:=目标值-测量值(0-10)m
比例:就是直接给偏差乘以一个比例系数
积分:就是在一段时间内偏差的累积
微分:偏差的变化率,反馈当前的变化速率的控制
教科书上面的公式
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[e_t + \frac{1}{T_i}\int_0^te_tdt + \frac{T_dde_t}{dt}]\tag{1}
ut=Kp[et+Ti1∫0tetdt+dtTddet](1)
u
t
u_t
ut : 输入
K
P
K_P
KP : 比例系数
T
i
T_i
Ti : 积分时间常数
T
d
T_d
Td : 微分时间常数
e
t
e_t
et : 误差
d
t
dt
dt : 采样周期
d
e
t
de_t
det : 误差的变化斜率
∫
o
t
\int_o^t
∫ot : 误差的累计
因为 K p K_p Kp , T i T_i Ti , T d T_d Td是需调节的参数,整理一下得到以下方程!这样方便调节参数
u
t
=
K
p
e
t
+
K
i
∫
0
t
e
t
d
t
+
K
d
d
e
t
d
t
(2)
u_t= K_pe_t + K_i\int_0^te_tdt + Kd \frac{de_t}{dt}\tag{2}
ut=Kpet+Ki∫0tetdt+Kddtdet(2)
u
k
=
P
×
偏差
+
I
×
偏差
+
D
×
偏差
(3)
u_k = P \times 偏差 + I\times 偏差 + D\times 偏差\tag{3}
uk=P×偏差+I×偏差+D×偏差(3)
K
P
K_P
KP 比例系数
K
i
=
K
p
1
T
i
K_i = K_p \frac{1}{T_i}
Ki=KpTi1 积分系数
K
d
=
K
p
K
d
K_d = K_p K_d
Kd=KpKd 微分系数
传感器获取的数值为
x
1
,
x
2
,
x
3
⋯
x
t
x_1,x_2,x_3\dotsb x_t
x1,x2,x3⋯xt
设定值为
s
t
s_t
st
把采样值和用户设置值之间的差值设为
e
t
e_t
et,称之为误差。
e
t
=
s
t
−
x
t
e_t = s_t-x_t
et=st−xt
绿色线为上述例子中从初始位置到目标位置的距离变化; 红色线为上述例子中从初始位置到目标位置的偏差变化,两者为互补的关系;
可以得出一个结论:
e
t
e_t
et反应了控制对象当前值与设定值的偏差程度,添加一个比例系数
k
p
k_p
kp ,可以根据
e
t
e_t
et 的大小对输出信号
P
o
u
t
Pout
Pout 进行调整,偏差程度大OUT增大,偏差程度小OUT减小。即输出信号的强弱与当前偏差程度的大小成比例,所以根据
e
t
e_t
et 的大小来给出控制信号
P
o
u
t
Pout
Pout 的当前值的算法称为比例控制(Proportion)。用数学模型可以表示为:
P
o
u
t
=
K
p
e
t
(4)
Pout = K_pe_t\tag{4}
Pout=Kpet(4)
过去一段时间的误差和设为 S t S_t St
S
t
=
e
1
+
e
2
+
e
3
+
⋯
+
e
t
S_t = e_1+e_2+e_3+\dotsb +e_t
St=e1+e2+e3+⋯+et
红色曲线阴影部分面积即为积分作用的结果,其不断累积的误差.
分析 S t S_t St:
可以得出两个结论:
S t 的连续表达式为 ∫ 0 t e t d t S_t的连续表达式为 \int_0^te_tdt St的连续表达式为∫0tetdt, ( K i = K p 1 T i K_i = K_p\frac{1}{T_i} Ki=KpTi1) 转换一下公式得到:
I
o
u
t
=
K
p
1
T
i
∫
0
t
e
t
d
t
(5)
Iout = K_p\frac{1}{T_i}\int_0^te_tdt\tag{5}
Iout=KpTi1∫0tetdt(5)
这里解释下为什么会有
K
p
,
T
i
K_p,T_i
Kp,Ti为什么会在分母上面,
T
i
T_i
Ti 代表什么
所以为什么这就是比例项为什么必须要的原因
为什么 T i T_i Ti会在分母上?
T i T_i Ti 代表什么?
T i T_i Ti 代表控制积分时间常数,用于控制积分项的响应速度,影响着积分项对系统误差的累积速度。
通俗理解:就是你不可能把开机以来的误差都作为分析,这样没有意义,要选取一个时间段来分析。
误差的微分就是误差的变化速率,误差变化越快,其微分绝对值越大。误差增大时,其微分为正;误差减小时,其微分为负。控制器输出量的微分部分与误差的微分成正比,反映了被控量变化的趋势。
设两次连续的误差设为
D
t
D_t
Dt
D
t
=
e
t
−
e
t
−
1
D_t = e_t - e_{t-1}
Dt=et−et−1
从图中可知,当偏差变化过快,微分环节会输出较大的负数,作为抑制输出继续上升,从而抑制过冲。
分析 D t D_t Dt
可以得出两个结论:
D
t
D_t
Dt的连续表达式为
K
d
d
e
t
d
t
K_d\frac{de_t}{dt}
Kddtdet, (
K
d
=
K
p
T
d
K_d = K_pT_d
Kd=KpTd) 转换一下公式得到:
D
o
u
t
=
K
p
T
d
d
e
t
d
t
(6)
Dout = K_pT_d\frac{de_t}{dt}\tag{6}
Dout=KpTddtdet(6)
这里解释一下
T
d
,
K
p
T_d,K_p
Td,Kp
PID的输出需要把比例、积分、微分的输出加起来。
P I D o u t = P o u t + I o u t + D o u t PIDout = Pout+Iout+Dout PIDout=Pout+Iout+Dout
回来看
(
2
)
,
(
3
)
(2),(3)
(2),(3)公式就能理解了。这里都是连续的表达式,我们要转成离散的表达式,离散的方式方便代码的实现。
文章是自己总结而记录,有些知识点没说明白的,请各位看官多多提意见,多多交流,欢迎大家留言
如果技术交流可以加以下群,方便沟通
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。