PID学习笔记(江协科技同款)

📅 发布时间:2026/7/8 8:37:19 👁️ 浏览次数:
PID学习笔记(江协科技同款)
文章简述PID控制是一种闭环控制方法包含比例(P)、积分(I)、微分(D)三个环节。P项快速响应但存在稳态误差I项能消除稳态误差但响应滞后D项预测变化趋势抑制震荡。本文详细介绍了三个环节的样子原理与缺点。先呈现现象而后再解释原理使得讲述过程不枯燥。闭环控制概念PID是用来控制的所以我们首先要知道“控制”的概念闭环控制和开环控制简单来说闭环控制就是有反馈的调控开环控制是没有反馈的调控PID公式如下图所示Proportion Integration DifferentiationPID表示比例积分微分图中红色的字母就是今后我们要去调整的参数其中最关键的就是误差公式误差 目标值 - 实际值。误差贯穿PID全文公式每个部分的分工先从宏观上整体了解一下比例项积分项微分项的作用PID调控极性大了调小小了调大前面说了误差很重要这边约定一下PID的调控极性啥是正向调控与反向调控也加强一下对目标值实际值输出值的理解。目标值target实际值actual输出值out老师举的例子是水多了加面面多了加水。我这边再用AI举一个有数值的例子。前面我们看到PID公式的有3个组成部分我们一个个来解析假设仅有p仅有比例项会发生什么答会有无法消除的稳态误差稳态误差静差什么是稳态误差我的理解稳态误差是系统稳定后实际值和目标值之间“去不掉的差”。纯P项调控大概率导致稳态误差纯P项调控纯比例项调控稳态误差的具体呈现我们先直接看现象。下图是在纯p项调控模式下直接将PID输出out值作为电机PWM占空比的 电机速度波形图可以理解为PID输出值 电机旋转力度 或 电机驱动力红线为目标值速度紫线为实际值速度如图可以看见无论K_p多大误差依旧存在error target - actual这就是稳态误差的具体呈现稳态误差为何出现为何始终存在无法消除纯p项电机控速情况下我们来分析上图中Kp 1的波形可见只要摩擦力等阻力存在稳态误差不可避免因为阻力存在在纯P项的PID调控下PID输出电机驱动力会出现一个死循环像一个悖论有点绕如下图稳态误差原因总结我想要误差为0于是我电机出力但是电机出力达成目标后误差为0会导致电机没力于是速度被阻力拖下来于是误差又出现了所以我永远无法达成目标。因为摩擦力热量消耗等阻力产生了稳态误差而摩擦力电机热量消耗锅炉等等是无法消失的所以在仅有P项调节的PID的情况下是无法消除稳态误差的。而且尽管调高K_p可以减少稳态误差但是过大的K_p会导致超调一点点的error变化都会导致剧烈的output变化平衡车抽搐判断稳态误差是否存在举个例子当电机转速为100时我给电机的PWM设置为0即电机不给力了此时电机就会因为阻力停止所以电机这个系统是有稳态误差的而且方向为“速度减小的方向”积分消除稳态误差积分的引入我们来看纯 I 项调控的情况即直接让积分项给到电机输出out积分项的含义K_i * 0~t 时刻的所有误差的积分累加积分项的特点只要误差存在那么积分项就会累加于是输出out会持续变大输出持续变大使得实际值持续变大误差持续减小最终误差消失。误差消失积分项不再累加目标值 实际值调控完毕。完美克制稳态误差我们先看现象把积分项的累加效果想象为一个不断累积的水桶写成数学公式就是下图纯积分既然纯积分控制就能达成目的了目标值实际值那只要右边的积分项就行了啊左边的那个K_p * error(t) 不要了行吗能不能不要P项答不行积分项有弊端。积分的弊端先看现象左边是纯积分爬升太慢有右边是积分项 比例项爬升快我们直接拿数值推导来证明积分项 与 比例项的优缺点P项的优势假设当前实际值为100我突然要 -100目标值那么error -100 - 100 -200假设k_p 为0.5。那么比例项输出 0.5 * -200 -100。此时是不是立刻就达到了-100所以说P项的优点是调整迅速而I项假设k_i 也为0.5。那么I项输出 0.5 * 之前的误差积分值 -200看看因为有了这个【之前的积分值】拖后腿导致I项有 滞后性 惯性积分项从100楼跳到-100楼比例项直接瞬移到-100楼想象一下积分一个水桶水位为100现在要变为-100是不是要一点点往外舀水所以 纯 I 项 在目标值瞬间大幅变化的时候表现很差而纯 P 项那么就会产生稳态误差之前讲过了总结P项反应快但是有稳态误差I项能消除稳态误差但是有滞后性反应慢。所以我们要利用I项来消除稳态误差同时结合P项来达到快速响应的目的比例项积分项PI控制比例项与积分项系数取值所以说K_p和K_i的值都有优缺点当他的值变大那么它的优点与缺点都会同时变大要取一个合适的兼顾的方案。比例项与积分项波形图分析我们用实际实验的波形图来深入理解PI控制的特点也是调参过程。当前公式下面是6个 PID控制电机转速 的波形图按照箭头指向来查看P项与I项的值的优缺点图中【爆冲】指的是P项的瞬间爬升的能力【惯性】指的是I项的滞后性解释图4产生震荡的原因猛冲阶段P项主导一开始误差很大100 - 0 100P项输出巨大系统猛冲。注意此时 I 项积分池也在工作。但是积分池不大。回落阶段关键点当实际值快速接近 100 时比如到了 95误差瞬间变小只剩 5。P项输出瞬间减弱从大推力变成了小推力。重点来了此时系统可能面临一个较大的阻力比如摩擦力、重力、或者空气阻力。动力不足P项减弱得太快而 I 项积分此时积累的值还不够大因为它需要时间慢慢攒。结果P项没劲了I项还没顶上来总驱动力小于阻力系统就被阻力“打”回来了一点速度下降甚至位置回退。这就是你看到的“实际值被拉下来”。爬升阶段I项主导实际值掉下来后误差又变大了比如从 5 变成 15。此时 P 项恢复了一点力气。更重要的是时间在流逝I 项积分池一直在不断地累加这个正误差。桶里的水越来越多。最终I 项攒够了足以克服阻力的力量把曲线慢慢地、坚定地推回到了 100并消除了稳态误差。P项不变I项过大如下图我们知道P项负责瞬间爬升但是为啥下图中图5 的P项系数对比与图2的没变但是瞬间爬升的力度却变大了呢那咱说I项不是有之后性吗I项变大的话实际值变化曲线不应该更加滞后吗不应该更加慢吗为啥爆冲力度更大了。注意积分的“滞后性”是指它有惯性而不是说积分项会导致实际值变化速度变慢或者说实际值曲线变平缓。D项 微分项粗略地理解微分就是误差曲线某一点 做切线的斜率斜率表示的是函数的变化趋势所以微分项可以预测未来提前调控。微分项作用原理最关键的是搞懂D项的正负在不同情况下D项是怎么去抑制误差剧烈变化的简单来说D项会将陡峭的 实际值曲线 向实际值变化的相反方向 拉平缓D项波形下图是倒立摆的波形图P、I、D参数都有这边只放最重要的D项在 1 号区域波形平和在 2 号区域将D项取消后仅剩PI调控波形产生了震荡而且这个震荡越来越大在 3 号区域D项参数置为2则波形震荡减小在 4 号区域D项参数置为4则波形震荡接近消除老师在讲这个波形的时候举了一个赛车方向控制失控的例子非常形象在视频的4500位置【PID入门教程-电机控制 倒立摆 全程手把手打代码调试】 https://www.bilibili.com/video/BV1G9zdYQEr3?p2vd_sourceac0f433ef3a2ea9091f1ca48e9300c3d调参经验总结一般来说对电机的速度控制用PI就足够了不需要加入D项因为电机速度控制这个系统一般不会来回震荡。而对于电机或者倒立摆的定位控制可以用PD控制器。因为定位控制一般稳态误差很小而且是比较容易超调来回震荡的。如果 PD 控制还有稳态误差可以加入一点点I项这点I项不能加大了否则定位的控制很不稳定。下面是AI的详细分析