PID算法原理及其使用
1.PID算法原理
有博客写的很好,我就不多说了。https://blog.csdn.net/qq_25352981/article/details/81007075
2. 2种PID算法
1.位置式PID:
u
(
k
)
=
K
p
∗
e
(
k
)
+
K
i
∑
n
=
0
k
e
(
n
)
+
K
d
∗
[
e
(
k
)
−
e
(
k
−
1
)
]
.
u(k) =Kp*e(k)+ Ki\sum_{n=0}^ke(n)+Kd*[e(k)-e(k-1)]\,.
u(k)=Kp∗e(k)+Kin=0∑ke(n)+Kd∗[e(k)−e(k−1)].
其传递函数:
u
(
z
)
=
K
p
+
K
i
∗
1
1
−
z
−
1
+
K
d
∗
(
1
−
z
−
1
)
u(z) = Kp + Ki*\frac{1}{1-z^{-1}}+Kd*(1-z^{-1})
u(z)=Kp+Ki∗1−z−11+Kd∗(1−z−1)
注:在1节推荐博客中有推导过程
2.增量式PID(其公式可以通过位置式PID相减得到,主要消除积分的累加):
u
(
k
)
−
u
(
k
−
1
)
=
K
p
∗
[
e
(
k
)
−
e
(
k
−
1
)
]
+
K
i
∗
e
(
k
)
+
K
d
∗
[
e
(
k
)
−
2
e
(
k
−
1
)
+
e
(
k
−
2
)
]
u(k)-u(k-1) = Kp*[e(k)-e(k-1)]+Ki*e(k)+Kd*[e(k)-2e(k-1)+e(k-2)]
u(k)−u(k−1)=Kp∗[e(k)−e(k−1)]+Ki∗e(k)+Kd∗[e(k)−2e(k−1)+e(k−2)]
其传递函数:
u
(
z
)
=
K
p
(
1
−
z
−
1
)
+
K
i
+
K
d
∗
(
1
−
2
z
−
1
+
z
−
2
)
u(z) = Kp(1-z^{-1})+Ki+Kd*(1-2z^{-1}+z^{-2})
u(z)=Kp(1−z−1)+Ki+Kd∗(1−2z−1+z−2)
注:单片机使用增量式PID较好,计算量小。