PID详解

article/2025/9/17 12:16:12

PID在控制领域应该是应用最为广泛的算法了,在工业控制,汽车电子等诸多领域中运用
下面我用一个例子和算法过程来讲解PID的概念
PID:
P比例控制:基本作用就是控制对象以线性的方式增加,在一个常量比例下,动态输出
缺点:会产生稳态误差
I积分控制:基本作用就是用来消除稳态误差
缺点:会增加超调
D微分控制:基本作用就是减弱超调,加大惯性响应速度
1、什么是PID及其作用
在这里插入图片描述

上图描述: 设定一个输出目标,反馈系统传回输出值,如与目标不一致,则存在一个误差,PID 根据此误差调整输入值,直至输出达到设定值.
为什么需要PID呢,比如控制温度,我们需要设置一个要达到的目标温度值,当将温度稳定在目标温度值
例如,我们希望水的目标温度值为70°,其希望无非就是可以快速而且无抖动的达到70°,并稳定在70°
如果我们使用普通的方式加热,当温度到达70°后就以及停止加热,岂不是简单快速,当然用在要求不高的场合也可以,但是如果要求更高的场合呢,会出现温度到达70°后,由于加热器的余温会使温度继续上升,并且再加上环境的温度会散热,所以我们无法将水温很平稳的稳定在70°
在这里插入图片描述

总结一下:我们需要PID的作用无非就是无法通过普通控制手段快速稳定的输出到目前设定值
2、公式
PID算法公式
经过化解后的公式

Kp-------比例常数

Ki= (Kp*T)/Ti------积分常数

Kd=(Kp*Td)/T------微分常数

3、实战例子
小明接到一个任务: 有个水桶,需要时刻保持1m 的高度,目前水桶里有0.2m 的水

那么小明采用P(比例) 的方法加水:即每次测量与1m 的误差,并加入与误差成比例的水量

设Kp=0.4
第一次,误差是 e(1)=1-0.2=0.8m,那么加入水量是 Kp0.8= 0.40.8 = 0.32m.当前水桶水位:0.2+0.32=0.52

第二次, 误差是e(2) = 1-(0.2+0.32) =0.48m 那么加入水量是 Kp*0.48=0.192m,当前水桶水位:0.52+0.192=0.712

在这里插入图片描述
在这里插入图片描述
通过P比例控制完美解决了快速稳定在目前值,但是在实际环境中得考虑各种影响问题,所以
小明的新任务: 有个水桶,但桶底漏了个洞,仍需保持1m 的高度,目前水桶里有0.2m 的水,但每次加水都会流出0.1m. 这个例子就接近我们实际工程的例子了,比如电机摩擦的阻力,损耗.
P (比例控制) u= Kp e (e为与上次差值)*
当前水量0.2m,目前值水量1m
设Kp=0.4. 则u= 0.4*e ,e=上次水量 - 当前水量

第一次,误差是 e(1)=1-0.2=0.8m,那么加入水量是 Kp0.8= 0.40.8 = 0.32m.当前水桶水位:0.2+0.32 -0.1=0.42

第二次, 误差是e(2) = 1-0.42 =0.58m 那么加入水量是 Kp*0.58=0.232m,当前水桶水位:0.42+0.232 - 0.1=0.552
在这里插入图片描述
在这里插入图片描述
问题来了,水位最终在0.75m 处稳定了,但是,当误差是0.25m 时,加水量时0.1,每次加入的刚好等于漏掉的0.1.

这里就引入了稳态误差的概念:即当系统到达稳态时与目标的误差.
当我们加大KP时,增加值1
在这里插入图片描述
已经更接近目前值了,当我们继续增加呢
在这里插入图片描述
当增加值1.8时,已经非常接近1m的水量了,但是也出现了非常大的抖动
结论: 比例控制引入了稳态误差,且无法消除.比例常数增大可以减小稳态误差,但如果太大则引起系统震荡,不稳定.
为了消除稳态误差,第二次加入积分,使用PI(比例积分控制)在这里插入图片描述
积分控制就是将历史误差全部加起来乘以积分常数.
一样的情况,现在设Kp=0.4,Ki= 0.3
第一次,误差是 e(1)=1-0.2=0.8m,那么加入水量是 Kp0.8 = 0.40.8 = 0.32m , KI * e(1) = 0.3 * 0.8 = 0.24 加入水量 = 0.32 + 0. 24= 0.56 当前水桶水位:0.2+ 0.56 - 0.1=0.66
第二次,误差是 e(2)=1-0.66=0.34m,那么加入水量是 Kp0.34 = 0.40.34 = 0.136m , KI * (e(2)+e(1)) = 0.3 * 1.14 = 0.342 加入水量 = 0.136m + 0.342 = 0.478 当前水桶水位:0.66+ 0.478 - 0.1=1.038
在这里插入图片描述
我们发现加入KI后,有效的消除了稳态误差,但是发现了超调现象
在这里插入图片描述
如果我们增加KI呢
在这里插入图片描述
超调也会增加,同样减小KI值,超调也会变小
在这里插入图片描述
结论:

只要存在偏差,积分就不停的累计,直到误差为0, 积分项不再累加,变成一个常数,可以抵消稳态误差.
在表中最后几项的输出已经非常接近0.1,说明消除了稳态无处,但是却出现的超调的部分
所以为了消弱超调,KD出现了
所以公式是:
在这里插入图片描述
设Kp=0.4,Ki= 0.3,Kd=0.3,水位0.2,目标水位1
第一次,误差是 e(1)=1-0.2=0.8m,那么加入水量是 Kp0.8 = 0.40.8 = 0.32m , KI * e(1) = 0.3 * 0.8 = 0.24 , KD = 0 (因为当前水位差就是0.8) 加入水量 = 0.32m + 0.24 = 0.56 当前水桶水位:0.2+ 0.56 - 0.1=0.66
第二次,误差是 e(2)=1-0.66=0.34m,那么加入水量是 Kp0.34 = 0.40.34 = 0.136m , KI * (e(2)+e(1)) = 0.3 * 1.46 = 0.342 , KD (e(2) - (e1))= 0.3(0.342 - 0.8) = -0.138 加入水量 = 0.136m + 0.342 -0.138 = 0.34 当前水桶水位:0.66+ 0.34 - 0.1=0.9
在这里插入图片描述
有明显的削弱超调

结论: 微分能够减弱超调趋势.

为了更明显对比三个系数的关系,我们进行计算对比,看下图
设初始水位0.2,目前水位1,流出水位0.1,KP=0.4,KI=0.3,KD=0.3
首先是数据对比
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
仔细查看三个图的最终水量的变化,
只有KP情况下,第一张图水位无法达到目标水位
有KP和KI情况下,第二张图水位达到目标水位,但是出现超调
有PID的情况下,第三张图在出现超调后,KD马上进行的减小,有效抑制了超调
说明:PID三个参数是随意设定,所以在调整时,需要不断测试及根据经验调试
下面用曲线图对比
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此参数只是参考,具体PID参数的设置需要不断尝试,直到达到标准
如果运用在电机控制领域,同样在控制输出给电机的电流大小,一般通过PWM去控制输出的电流量,通过反馈的采样电阻得知当前的电机转速,也就是说,我们设定目前转速,采样当前电机转速,去调整PID三个参数,经过不断尝试达到预定状态,但是在控制电机时,会涉及到电机的开环和闭环,开环简单来说就是电机加速的过程,相当于电机从0到预定转速并平稳后的过程,而闭环就是后续稳定的运行过程,如果图中所示
在这里插入图片描述
所以对于电机的调试一般开环转闭环的过程会比较麻烦一些,当在调试过程中你会发现你设定转速达不到预定转速,这时你就要想到出现了稳态误差,需要KI的帮助,当你加入了KI后,可能转速达到了预定转速,但是可能出现启动抖动的想象或者出现启动电流很大这样的想象,所以可以加入KD去削弱超调减小抖动或启动电流,只有三个参数配合得当时,才会启动稳定,运行正常,当然要考虑电机的属性,以及电路的设计,开关管的参数等等。
谢谢
excel计算链接PID算法
https://kdocs.cn/l/chUfS9QXdozS


http://chatgpt.dhexx.cn/article/Z0cF11wy.shtml

相关文章

模糊PID算法

在讲解模糊PID前,我们先要了解PID控制器的原理(本文主要介绍模糊PID的运用,对PID控制器的原理不做详细介绍)。PID控制器(比例-积分-微分控制器)是一个在工业控制应用中常见的反馈回路部件,由比例单元P、积分…

PID控制器整理分享

概述 日常开发中,常常需要对速度、温度等物理量进行稳态控制,而在目前的自动化控制原理中,使用最为广泛的方法就是PID控制算法。本文简要整理分享PID控制器的使用。 正文 PID控制器,即比例-积分-微分控制器。它是一个不依赖系统…

PID算法详解

文章目录 什么是pid比例(p)控制积分(I)控制微分(D)控制PID使用增量式PIDC语言实现pid算法 什么是pid PID算法是一种具有预见性的控制算法,其核心思想是: 1>. PID算法不但考虑控制…

《PID》一篇文章带你搞懂使用PID

节选自本人博客:https://www.blog.zeeland.cn/archives/pid-learning 本文为笔者参考了网上众多大神的解析之后加上自己的理解整合起来的,因此在内容上部分参考了其他作者,目的仅用作参考以便更好地学习,如有侵犯,可联…

PID几种公式总结

模拟式PID 其中,t为采样时间 位置式PID 其中,为采样间隔 增量式PID 增量式PID和位置式PID都是数字式PID(模拟式PID的离散化)的不同表达形式,因为计算机只能处理离散数据,将连续信号变为离散信号&#xff…

PID控制及公式讲解

1、PID引入 2、PID代码 /*******************************************************************位置式pid********************************************************************/ double PID(double Actual,double SET){ static double E_sum,Error_last; //上一…

一文读懂PID控制算法(抛弃公式,从原理上真正理解PID控制)

一文读懂PID控制算法(抛弃公式,从原理上真正理解PID控制) PID控制应该算是应用非常广泛的控制算法了。小到控制一个元件的温度,大到控制无人机的飞行姿态和飞行速度等等,都可以使用PID控制。这里我们从原理上来理解PI…

PID公式的推导过程及实现代码

一、PID框图: n0(t)是要稳定的值 n(t)是当前输出值 e(t) n0(t) - n(t) 一、模拟PID控制原理 这个公式网络上很好找: 二、数字PID控制 由于模拟的微积分运算对应计算机来说是不太好写代码的,所以要利用采样将数据离散化 于是公式就可以转换…

经典的pid公式,好脑子不如烂笔头。

这个算法涉及昨天,今天,明天。 思路就是以史为鉴,预测明天,改革当前。

PID公式通俗理解

PID调节是有方法、有规律可循的,不过在此之前先深入理解其公式。 别怕,先看认真看PID本体: 其中: u(t) -------------输出曲线,pid输出值随时间的变化曲线 Kp --------------比例系数 e(t)------------- 偏差曲线&…

PID公式

位置型PID: 增量式PID: 增量式PID和位置式PID的优缺点: 位置式PID: u(k)的值和执行机构的位置(如阀门开度)是一一对应的,因此通常称该公式为位置式PID控制算法 缺点&…

PID控制算法01

PID控制算法 PID控制算法公式原理参数作用 PID算法及改进两个基本类型位置型PID控制增量型PID控制 积分环节改进的PID控制积分分离的PID控制变速积分的PID控制抗积分饱和的PID控制 微分环节改进的PID控制不完全微分PID控制微分先行PID控制 PID控制算法公式 原理 PID控制是一种…

PID控制(个人学习)

title:控制策略 date:2020-3-22 author:Page categories: -控制策略 tages: -控制 比例积分微分控制,简称PID控制 因为以下优点被人们广泛使用于各个领域 a. 技术成熟 b. 易被人们熟悉和掌握 c. 不需要建立数学模型 d. 控制效果好 e. 鲁棒性 通常依据控…

PID控制

一、PID: 1.基本公式 P:Proportion(比例):就是输入偏差乘以一个常数。 I:Integral(积分),就是对输入偏差进行积分运算。 D:Derivative(微分),对输入偏差进行微分运算。 注:输入偏差读出的被…

控制算法学习 二、PID控制算法

控制算法学习 二、PID控制 前言PID算法比例环节P积分环节I微分环节D 离散PID位置式PID增量式PID 前言 PID应该是应用最广泛的控制算法(没有之一)。无人机中的飞控就是基于PID的。 PID算法 PID——Proportional, Integral, Derivate,就是比…

PID算法的原理和公式

PID算法的原理和公式 (PID) PID算法原理 P:即Proportion,输入偏差乘以比例常数I:即Integral,对输入偏差进行积分运算D:即Derivative,对输入偏差进行微分运算 输入偏差读取值与设定值(理想值&…

【 PID 算法 】PID 算法基础

前言: 这两天打算找个实习,奈何感觉自己有点菜,所以,就补习了一下知识,说一下,这个PID算法吧。 一、简介 PID即:Proportional(比例)、Integral(积分&#…

org.springframework.data.mapping.PropertyReferenceException: No property item found for type BItem!

Caused by: org.springframework.data.mapping.PropertyReferenceException: No property item found for type BItem! 后来发现在Service层 PageRequest.of里排序的参数必须是 实体类字段 希望能帮助到您

5G NR PDSCH、PUSCH资源分配

通信就是把数据承载在特定的时间和频率上,传输到数据接收方,数据接收方在在相应的时间和频率上把数据接收下来。其实,把数据承载在哪个时间和频率上,对应的就是资源分配的过程。我们今天主要讨论5G NR中的资源分配过程。 目录 1…