PID公式通俗理解

article/2025/9/17 14:25:48

PID调节是有方法、有规律可循的,不过在此之前先深入理解其公式。

别怕,先看认真看PID本体:

其中:

u(t) -------------输出曲线,pid输出值随时间的变化曲线

Kp --------------比例系数

e(t)------------- 偏差曲线,设定值与实际值的偏差随时间的变化曲线

Ti--------------- 积分时间

Td--------------微分时间

先来慢慢看上面的式子,我们发现式子中有一个Kp(比例系数)在括号外,我们把它乘进去:

 这就是位置式PID的模拟表达式,此外还有一种增量式PID,两则区别是:

位置式PID算的是当前控制系统应该输出的值增量式PID算的是当前控制系统该输出值的变化值

比如,当前输出是40,位置式PID算出48,那么输出就变为48,增量式PID算出8,拿输出就是40+8=48。

比例P,积分I,微分D就是我们要找到的参数。如果调节周期是定的,那么上方的比例P,积分I,微分D就是定值,

接着我们要做的事情就是这三个参数找出来。

如果你学过高数且上课没有睡觉,就很容易知道:

是求时间0到时间t,偏差曲线e(t)与X轴围起来的面积值的代数和,

偏差曲线e(t)的斜率,

结合上面的我们可以得到:

结合调解曲线来看,

 偏差=设定值-实际值,因此偏差曲线e(t)=SET-实际值曲线,也就是实际值曲线的x轴向上平移SET便是误差曲线e(t)。

根据高等数学的知识我们可以知道,在曲线SET下围成的面积为正的,在上面围成的面积为负的,即:面积A和面积C符号为正面积B符号为负,假设P、I、D都不为零,且都大于零。

                          比例项        积分项          微分项                                 输出                          被调量结果

当0<t<T1时:    偏差>0,    正大   ,斜率绝对值变大,且>0,          慢慢变大                   快速靠近设定值

当T1<t<T2时:  偏差<0,    减小   ,斜率绝对值变小,且>0,              

当T2<t<T3时:  偏差<0,    减小   ,斜率绝对值变大,且<0,              

可以发现:

比例项是纠正偏差的主力,越远离偏差绝对值就越大,快速把偏差纠正回来

积分项和以往的状态有关,面积的绝对值越大它的绝对值就越大,它的作用是消除累计偏差

微分项跟斜率有关,比较难解释,总的来说它的作用是:当目标靠近设定值时加速它靠近,当目标远离设定值时阻止它远离。因此微分可以增加系统稳定性,因为到达目的之后,离开会受到阻碍。

PID公式离散化

因为实际应用中我们用到的都是离散的数据,因此对PID进行编程之前我们得先把模拟公式转换成离散公式。

 其实就是把积分求面积、微分求斜率的方法换成离散的求面积和斜率的方法,离散转换后:

                    

 

其中:

u(t) -------------输出曲线,pid输出值随时间的变化曲线

Kp --------------比例系数

e(t)------------- 偏差曲线,设定值与实际值的偏差随时间的变化曲线

Ti--------------- 积分时间

Td--------------微分时间

T----------------调节周期

转换后我们发现我们需要整定的三个参数变为:

 多了个调节周期T,

因此需要注意的是:必须使T为定值,或者变化小到可以忽略

这样P、I、D才是固定常数,才可能调节

PID编程

网上有很多编程代码,只要理解了pid公式各个参数的意义,就可以理解别人的程序。这里直接给出我的程序:

/*******************************************************************位置式pid********************************************************************/
double PID(double Actual,double SET){		 static double E_sum,Error_last;          //上一次误差  double  kp=20.767,ki=1.867,kd=115.55;double pid_out;double Error_now;          //当前误差  Error_now = SET-Actual;               //当前误差		
//	if(Error_now>-0.9&&Error_now<0.9)	  //防静态误差	
//	{
//			 Error_now=0;
//		     Error_last=0;
//	}	E_sum +=  Error_now;                       //误差累计 		
//	if(E_sum>484)E_sum=484;          //积分限幅度,防止积分饱和
//	if(E_sum<-484)E_sum=-484;	pid_out= kp * Error_now + ki * E_sum + kd * (Error_now-Error_last);            //pid计算公式			Error_last=Error_now;//	if(pid>900)	pid=900;             //输出限幅
//	if(pid<-900)pid=-900;		return -pid_out;					
} 

增量式PID有点难理解,等后面了解了再补充


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

相关文章

PID公式

位置型PID&#xff1a; 增量式PID&#xff1a; 增量式PID和位置式PID的优缺点&#xff1a; 位置式PID&#xff1a; u&#xff08;k&#xff09;的值和执行机构的位置&#xff08;如阀门开度&#xff09;是一一对应的&#xff0c;因此通常称该公式为位置式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&#xff1a; -控制 比例积分微分控制&#xff0c;简称PID控制 因为以下优点被人们广泛使用于各个领域 a. 技术成熟 b. 易被人们熟悉和掌握 c. 不需要建立数学模型 d. 控制效果好 e. 鲁棒性 通常依据控…

PID控制

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

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

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

PID算法的原理和公式

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

【 PID 算法 】PID 算法基础

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

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资源分配

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

电动汽车充电桩中的漏电保护应用分析 RCD的分类和选型

一、漏电流的产生分类 一般漏电流分为四种&#xff0c;分别为&#xff1a;半导体元件漏电流、电源漏电流、电容漏电流和滤波器漏电流 1、半导体原件漏电流 PN结在截止时流过的很微小的电流。D-S正向偏置&#xff0c;G-S反向偏置&#xff0c;导电沟道打开后&#xff0c;D到S才…

RuntimeError: expected scalar type Double but found Float

最近在使用 sequitur库 快速搭建自编码器时遇到 RuntimeError: expected scalar type Double but found Float 涉及代码 import torch from sequitur.models import LINEAR_AEmodel LINEAR_AE(input_dim300,encoding_dim20,h_dims[120, 60],h_activNone,out_activNone )mode…

报错:RuntimeError: expected scalar type Double but found Float

这个问题是深度学习&#xff0c;用pytorch跑的时候出现的 解决办法&#xff1a;这个是格式问题&#xff0c;希望的格式是double&#xff0c;但得到的是float。字面意思是这个&#xff0c;但是并不是非要把格式改成double&#xff0c;这个时候应该在出错的前面几处代码设个断点…

关于USB Type A/B/C的区别和基本知识

USB 1.0   USB规格第一次是于1995年&#xff0c;由Intel、IBM、Compaq、Microsoft、NEC、Digital、North Telecom等七家公司组成的USBIF(USB Implement Forum)共同提出&#xff0c;USBIF于1996年1月正式提出USB1.0规格&#xff0c;频宽为1.5Mbps.不过因为当时支持USB的周边装…

USB TYPE A B C 引脚定义

----------------------------------------------------------------------------------------------------------------------------------------------------------

认识USB-TYPEA/B/C/micro/mini

1、USB分类 标准 根据标准分类的话大致分为以下&#xff0c;不同协议对用户而言最大的区别就是速率上和物理上接口的区别&#xff0c;从USB3.2之后TYPE C就成为唯一支持的接口了&#xff0c;相较其他接口支持双通道传输。 接插件 按照物理接插件分类如下&#xff1a; 2、接插…

STM32硬件SPI通过fm17550读取身份证UID,识别银行卡,识别TYPEA与TYPEB

上面是我的微信和QQ群&#xff0c;欢迎新朋友的加入。 目录 1.硬件平台 2.驱动实现 3.循环扫卡测试程序 4.TYPEB射频卡扫描 5.TYPEA射频卡扫描 6.身份证UID读取 1.硬件平台 1.STM32F103FM17550 2.卡片类型&#xff1a;身份证、TYPEA/B卡、银行卡 2.驱动实现 1.硬件S…

PUSCH repetition type A

NR Rel-15/16学习笔记 PUSCH repetition type A概念解释repetition次数的配置方法Rel-15Rel-16 repetition type A与PUSCH 时域资源分配repetition type A 与PUSCH 跳频配置是否进行跳频跳频参数配置Intra-slot & Inter-slot 配置Frequency Hopping offset 配置根据offset计…

常见几种USB接口引脚定义,Type A、Type B、Micro USB、Mini USB、Type C

USB2.0母座接口分为有好几种类型&#xff0c;有A型、B型、Mini型等。 Type A S、S- 代表&#xff1a;电源线正、负 D、D- 代表&#xff1a;数据线正、负 Type B 多用于多媒体设备&#xff0c;最为常见的可能就是打印机的数据接口&#xff0c;多是用于数据的传输。 Micro …

GPON Type B保护

GPON TYPE B保护的组网图如图1所示&#xff0c;相应的保护范围包括OLT的主用和备用PON端口&#xff0c;主用和备用光纤。 场景一&#xff1a;PON口工作过程中主用光纤断&#xff0c;如图2所示。 Standby PON口在进入Standby状态后&#xff0c;启动上行光信号检测功能。 Active…

ISO/IEC 14443协议浅谈:TYPE A与TYPE B

ISO/IEC14443规定了邻近卡(PICC)的物理特性;需要供给能量的场的性质与特征&#xff0c;以及邻近耦合设备(PCDs)和邻近卡(PICCs)之间的双向通信;卡(PICCs)进入邻近耦合设备(PCDs)时的轮寻&#xff0c;通信初始化阶段的字符格式&#xff0c;帧结构&#xff0c;时序信息;非接触的半…