当前位置: 首页 > news >正文

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

文章简述:

PID控制是一种闭环控制方法,包含比例(P)、积分(I)、微分(D)三个环节。P项快速响应但存在稳态误差,I项能消除稳态误差但响应滞后,D项预测变化趋势抑制震荡。本文详细介绍了三个环节的样子,原理与缺点。先呈现现象,而后再解释原理,使得讲述过程不枯燥。

闭环控制概念

PID是用来控制的,所以我们首先要知道“控制”的概念,闭环控制和开环控制
简单来说,闭环控制就是有反馈的调控,开环控制是没有反馈的调控

PID公式

如下图所示(Proportion Integration Differentiation)PID,表示比例,积分,微分
图中红色的字母就是今后我们要去调整的参数
其中最关键的就是误差公式:误差 = 目标值 - 实际值。误差,贯穿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 = 100),P项输出巨大,系统猛冲。
    • 注意:此时 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,则波形震荡接近消除
老师在讲这个波形的时候举了一个赛车方向控制失控的例子,非常形象,在视频的45:00位置
【PID入门教程-电机控制 倒立摆 全程手把手打代码调试】 https://www.bilibili.com/video/BV1G9zdYQEr3?p=2&vd_source=ac0f433ef3a2ea9091f1ca48e9300c3d

调参经验总结

一般来说,对电机的速度控制用PI就足够了,不需要加入D项,因为电机速度控制这个系统一般不会来回震荡。
而对于电机或者倒立摆定位控制,可以用PD控制器。因为定位控制一般稳态误差很小,而且是比较容易超调来回震荡的。
如果 PD 控制还有稳态误差,可以加入一点点I项,这点I项不能加大了,否则定位的控制很不稳定。
下面是AI的详细分析:
http://www.jsqmd.com/news/457958/

相关文章:

  • 计算机A类国际会议有哪些?
  • SSH暴力破解与弱口令攻击分析:一次由弱口令引发的测试服沦陷
  • 基于Docker和Gitea自建Git仓库镜像服务实践
  • 湖南本地GEO推广服务多少钱,湖南讯灵智能科技值得推荐吗 - mypinpai
  • AI智能名片系统有哪些功能?全面使用介绍
  • 【现代机器人学】一、位形空间(Configuration Space)
  • 短剧系统平台开发:前端后端技术选型与部署
  • 打破芯片壁垒:基于Docker与K8s的GB28181/RTSP异构AI视频平台架构实战
  • 关于 提取git所有提交日志导出到txt文本的 解决方法
  • 地球系统模式(CESM)应用
  • 光伏充电系统建模手记:当PO法遇上三阶段充电
  • DO-254通读--前言执行摘要目录
  • IACheck AI报告文档审核:驱动高端制造合规管理报告审核升级的新引擎
  • npm安装OpenClaw中Git报错解决方法
  • 深入理解 Java 反射:原理、使用场景与性能优化(超详细)
  • 别再瞎找了!AI论文平台,千笔·专业学术智能体 VS 万方智搜AI,继续教育写作首选!
  • 企微私域自动回复机器人:构建 7×24 小时智能响应系统
  • Java 高效实现 Excel 转 HTML:完整指南与代码示例
  • SpringBoot+vue汽车零件商城系统(java+springboot+elementui+vue+mysql)
  • 【Vue.js前端开发实战】第一章
  • 《AI+医疗:专知智库白皮书打通临床验证与市场准入》
  • GitHub镜像站搭建全攻略大纲
  • 今天咱们来聊聊直流开关电源的Simulink仿真。老规矩,直接上干货,手把手带你在R2018b环境里搭个Buck电路试试水
  • EL隐裂检测仪:自动识别隐裂、断栅、碎片等缺陷类型
  • 基于多目标粒子群算法的含风光柴储微网优化调度MATLAB实现
  • 2026年靠谱的GEO公司都有哪些?行业TOP榜单为你揭秘!
  • Flutter 组件 aws_lambda_dart_runtime_ns 的鸿蒙化适配实战 - 实现 OpenHarmony 分布式端高性能云端协同、冷启动指纹预检与工业级边缘计算核方案
  • Qt控件圆角
  • OpenClaw0307版本来了!!修复超过200bug 版本更新指南附上
  • 2026年东莞知名律所靠谱排名有哪些?