【PID】连续PID和数字PID chapter1(补充) 学习笔记

在上一篇篇章中,我们讲到了PID控制系统的基本结构和S-Function。本章我们就PID控制模型本身展开。

1 连续PID控制规律

根据上一节所述:
err(t)=yd(t)−y(t) err(t)=y_d(t)-y(t) err(t)=yd(t)−y(t)

其中yd(t)y_d(t)yd(t)为期望值(目标),y(t)y(t)y(t)为实际输出值,err(t)err(t)err(t)为偏差。

u(t)=kperr(t)+ki∫t0tferr(t)dt+kdderr(t)dt u(t)=k_perr(t)+k_i\int^{t_f}_{t_0}err(t)dt+k_d\frac{derr(t)}{dt} u(t)=kperr(t)+ki∫t0tferr(t)dt+kddtderr(t)

连续系统的控制量一般为上述形式,对应的控制规律我们称为连续PID控制。各个变量一般都是时间的连续函数。

2 离散PID控制规律

由于各种控制系统采用的底层控制控制器实际上都是离散的(就是微控制器计算),包括传感器值的采样也是离散的。因此,实际控制中,离散PID控制应用更加广泛。

而且,由于离散化,在对连续PID控制规律采样的基础上,还演化出了很多改进控制规律(虽然其控制量不完全与连续PID相通,但能达到同样甚至更好的控制效果。)

2.1 位置式PID

位置式PID与连续PID的关联最为紧密,两者通过如下方式转换:

  • 采样时刻kT(k=0,1,2,...)kT(k=0,1,2,...)kT(k=0,1,2,...)替代连续时间ttt
  • 矩阵法数值积分(面积法,还可以用梯形法等)近似替代积分
  • 一阶向后差分(还可以通过更高精度的插值实现)近似替代微分
    u(k)=kperr(k)+ki∑j=0kerr(j)T+kderr(k)−err(k−1)T u(k)= k_perr(k)+k_i\sum^k_{j=0}err(j)T+k_d\frac{err(k)-err(k-1)}{T} u(k)=kperr(k)+kij=0∑kerr(j)T+kdTerr(k)−err(k−1)
    注意:上述离散函数的自变量没有显示写出TTT,以u(k)u(k)u(k)为例,其取值对应连续系统的u(kT)u(kT)u(kT)。
    离散连续PID控制规律的方法还有很多,这里只举了最简单的一种。

2.2 增量式PID

对于某些控制,我们需要实现的是控制量的增量,即其控制率是Δu(k)\Delta u(k)Δu(k)。

直接对位置式控制规律作递推并作差,得到增量式PID控制:
u(k)−u(k−1)=Δu(k)=kp(err(k)−err(k−1))+kierr(k)T+kd(err(k)−2err(k−1)+err(k−2)) u(k)-u(k-1)=\Delta u(k)=k_p(err(k)-err(k-1))+k_ierr(k)T+k_d(err(k)-2err(k-1)+err(k-2)) u(k)−u(k−1)=Δu(k)=kp(err(k)−err(k−1))+kierr(k)T+kd(err(k)−2err(k−1)+err(k−2))

这样做,还有一个好处,积分项不需要累加。控制增量Δu(k)\Delta u(k)Δu(k)只与最近的k次采样有关。

这里引用原书的一段话:

在计算机控制系统中,PID控制是通过计算机程序实现的,...,一些在原来模拟PID控制器中无法实现的问题,在引入计算机以后就可以得到解决,于是产生了一系列的改进算法,形成非标准的控制算法,以改善系统品质,满足不同控制系统的需要。

最后

其实还有很对离散PID基本形式,这里不再叙述。

关于PID整定(参数调整),很考验经验。笔者投降。希望某天能够开悟。

相关推荐
Emberone17 小时前
排序:万物皆有序
算法·排序算法
其实秋天的枫17 小时前
2025年12月英语六级真题及答案解析完整版(第一、二、三套全PDF)
经验分享·算法
观书喜夜长17 小时前
大模型应用开发学习-基于 LangChain 框架实现的交互式问答脚本
python·学习
2401_8747325317 小时前
C++并发编程中的死锁避免
开发语言·c++·算法
中屹指纹浏览器17 小时前
2026指纹浏览器性能瓶颈分析与优化技巧
经验分享·笔记
2301_7923082517 小时前
C++编译期数学计算
开发语言·c++·算法
hetao173383717 小时前
2025-03-13~22 hetao1733837 的刷题记录
c++·算法
FPGA小迷弟18 小时前
FPGA 时序约束基础:从时钟定义到输入输出延迟的完整设置
前端·学习·fpga开发·verilog·fpga
sqyno1sky18 小时前
C++中的契约编程
开发语言·c++·算法
优化控制仿真模型18 小时前
2026年最新驾考科目一考试题库2309道全。电子版pdf
经验分享·算法·pdf