PID控制算法01

article/2025/9/17 14:29:17

PID控制算法

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

PID控制算法公式

原理

PID控制是一种在工业生产中应用最广泛的控制方法,其最大优点是不需要了解被控对象精确的数学模型,只需要在线根据被控变量与给定值之间的偏差以及偏差的变化率等简单参数,通过工程方法对比例系数 K P K_P KP,积分时间 K I K_I KI,微分时间 K D K_D KD三个参数进行调整,就可以得到满意的效果。

pid1
PID控制器的微分方程为:
u ( t ) = K P [ e ( t ) + 1 T I ∫ 0 t e ( t ) d t + T D d e ( t ) d t ] u(t)=K_P[e(t)+\frac{1}{T_I}\int_{0}^{t}{e(t)}dt+T_D\frac{de(t)}{dt}] u(t)=KP[e(t)+TI10te(t)dt+TDdtde(t)]

  • e ( t ) e(t) e(t)—给定值与被控变量的偏差
  • K P K_P KP—比例系数
  • K I K_I KI—积分时间常数
  • K D K_D KD—微分时间常数
  • t t t—从开始调节到输出当前控制量所经过的时间间隔

对上式左右两边分别进行拉氏变换,可得PID控制器的传递函数为:
G ( s ) = U ( s ) E ( s ) = K P ( 1 + 1 T I s + T D s ) G(s)=\frac{U(s)}{E(s)}=K_P(1+\frac{1}{T_Is}+T_Ds) G(s)=E(s)U(s)=KP(1+TIs1+TDs)
注:此处的传递函数仅为PID控制器,是不含反馈环节的

由于计算机只能处理数字信号,故将连续信号离散化,采样周期为T:
u ( k ) = K P { e ( k ) + T T I ∑ i = 0 k e ( i ) + T D T [ e ( k ) − e ( k − 1 ) ] } u(k)=K_P \Bigg\{e(k)+\frac{T}{T_I}\sum_{i=0}^{k}{e(i)}+\frac{T_D}{T}[e(k)-e(k-1)]\Bigg\} u(k)=KP{e(k)+TITi=0ke(i)+TTD[e(k)e(k1)]}
继续化简,用 K I K_I KI代替 K P T T I \frac{K_PT}{T_I} TIKPT,用用 K D K_D KD代替 K P T D T \frac{K_PT_D}{T} TKPTD
⟹ u ( k ) = K P e ( k ) + K I ∑ i = 0 k e ( i ) + K D [ e ( k ) − e ( k − 1 ) ] \Longrightarrow u(k)=K_P e(k)+K_I\sum_{i=0}^{k}{e(i)}+K_D[e(k)-e(k-1)] u(k)=KPe(k)+KIi=0ke(i)+KD[e(k)e(k1)]

  • 比例系数 K P K_P KP
  • 积分系数 K I K_I KI
  • 微分系数 K D K_D KD

参数作用

  1. 比例系数
  • 比例环节是PID控制器必不可少的环节,作用是放大误差信号,提高控制器对偏差信号的灵敏度
  • 当比例系数过大时,会使系统的超调量增加,出现振荡。控制系统的灵敏性和稳定性是相互矛盾的,比例系数的选择只能在稳定性与灵敏性间折中
  • 单纯的比例环节会引入稳态误差,由原理性稳态误差和结构性稳态误差构成
  1. 积分系数
  • 积分环节的主要作用是改善系统的稳态性能,消除系统的稳态误差
  • 当积分时间常数 T I T_I TI的减小可能导致系统超调量T增加,过小的 T I T_I TI会造成系统的振荡甚至不稳定,因为积分环节总是滞后于偏差的变化,过强的积分作用还会造成积分饱和; T I T_I TI的增大可能使系统趋于稳态值的速度减慢
  1. 微分系数
  • 微分环节根据偏差的变化趋势输出控制量,在偏差值发生较大变化时输出校正信号
  • 当微分时间常数 T D T_D TD增大时,系统相应速度加快,调节时间减小,但过大时,会使响应过程提前制动,从而延长调节时间并出现余差

PID算法及改进

两个基本类型

位置型PID控制

位置型PID控制算法,适用于不带积分元件的执行器,比如舵机和温控系统,执行器的动作位置与其输入信号呈一一对应的关系。PID控制器根据第k次被控对象采样结果与设定值之间的偏差 e ( k ) e(k) e(k)计算出第k次采样时所输出的控制量。位置型PID算法的数学表达式为(即上述推导):
u ( k ) = K P e ( k ) + K I ∑ i = 0 k e ( i ) + K D [ e ( k ) − e ( k − 1 ) ] u(k)=K_P e(k)+K_I\sum_{i=0}^{k}{e(i)}+K_D[e(k)-e(k-1)] u(k)=KPe(k)+KIi=0ke(i)+KD[e(k)e(k1)]

  • 之所以叫位置型PID控制,也是因为控制器的输出 u ( k ) u(k) u(k)对应执行器的实际位置
  • 由于误差积累项 ∑ i = 0 k e ( i ) \sum_{i=0}^{k}{e(i)} i=0ke(i),当前的输出 u ( k ) u(k) u(k)与过去所有状态有关
  • 需要积分限幅和输出限幅

增量型PID控制

与位置型PID算法相对应的是增量型PID算法,增量型算法适用于自身带有积分记忆元件的执行器,比如步进电机,此类执行器的特点是:执行器的动作终点位置与之前每次输入信号的累加值有关,每次执行器输入的控制信号决定本次执行器动作终点位置相对于上一次动作终点位置的改变量。增量型PID算法的数学表达式为:
Δ u ( k ) = u ( k ) − u ( k − 1 ) = K P [ e ( k ) − e ( k − 1 ) ] + K I e ( k ) + K D [ e ( k ) − 2 e ( k − 1 ) + e ( k − 2 ) ] \Delta{u(k)}=u(k)-u(k-1)=K_P [e(k)-e(k-1)]+K_Ie(k)+K_D[e(k)-2e(k-1)+e(k-2)] Δu(k)=u(k)u(k1)=KP[e(k)e(k1)]+KIe(k)+KD[e(k)2e(k1)+e(k2)]

  • 增量型PID中不需要累加误差,控制量 u ( k ) u(k) u(k)仅与最近3次采样值有关
  • 无需积分限幅,只需输出限幅

积分环节改进的PID控制

积分分离的PID控制

积分分离的基本思想是,当被控量与预设量偏差较大时,取消积分量,以免积分量使系统稳定性降低,超调量增大;当被控值接近定值时,引入积分控制,以消除静差,算法原理如下:
计算 e ( k ) = R − c ( k ) e(k)=R-c(k) e(k)=Rc(k),设定阈值 ε \varepsilon ε,控制器输出量为
u ( k ) = K P e ( k ) + β K I ∑ i = 0 k e ( i ) + K D [ e ( k ) − e ( k − 1 ) ] u(k)=K_P e(k)+\beta{K_I}\sum_{i=0}^{k}{e(i)}+K_D[e(k)-e(k-1)] u(k)=KPe(k)+βKIi=0ke(i)+KD[e(k)e(k1)]
∣ e ( k ) ∣ > ε \left|{e(k)}\right|>\varepsilon e(k)>ε,\beta = 0;若 ∣ e ( k ) ∣ ≤ ε \left|{e(k)}\right|\leq\varepsilon e(k)ε,\beta = 1
注:在 ∣ e ( k ) ∣ > ε \left|{e(k)}\right|>\varepsilon e(k)>ε时,虽然控制器输出控制量中不含积分项,但控制器仍然将每次采样后所得的偏差值进行累加

变速积分的PID控制

变速积分的基本思想是改变积分项的累加速度,使其与偏差大小相对应,当偏差值较大时,积分速度减慢,当偏差值较小时,积分速度加快。这样就可以抑制积分环节产生超调,同时缩短调节时间,算法原理如下:
计算 e ( k ) = R − c ( k ) e(k)=R-c(k) e(k)=Rc(k),设定系数值 A A A,控制器输出量为
u ( k ) = K P e ( k ) + K I ∑ i = 0 k α e ( i ) + K D [ e ( k ) − e ( k − 1 ) ] u(k)=K_P e(k)+{K_I}\sum_{i=0}^{k}\alpha{e(i)}+K_D[e(k)-e(k-1)] u(k)=KPe(k)+KIi=0kαe(i)+KD[e(k)e(k1)]
其中, α = A − ∣ e ( k ) ∣ A \alpha = \frac{A-\left|{e(k)}\right|}{A} α=AAe(k)。为使 α = A − ∣ e ( n ) ∣ A ∈ [ 0 , 1 ] \alpha = \frac{A-\left|{e(n)}\right|}{A}\in[0,1] α=AAe(n)[0,1]区间之内,需使 A > ∣ e ( k ) ∣ m a x A>\left|{e(k)}\right|_{max} A>e(k)max

抗积分饱和的PID控制

积分饱和现象:当控制系统输出的被控变量长时间未达到给定值时,这段时间内积分环节所产生的控制量将形成一个很大的积累值,PID控制器的输出控制量将由于积分环节的累加作用而不断增加。当控制量达到或超出执行机构的输入信号上下限时,此后执行器将进入饱和区,不再随着输入控制量的增加而进一步动作。当偏差值反向时,控制器的输出控制量需要很长时间才能退出饱和区,这段时间内执行器停留在极限位置而暂时失去控制。

所谓抗积分饱和法,就是在计算 u ( k ) u(k) u(k)时,首先判断上一时刻的控制量 u ( k − 1 ) u(k-1) u(k1)是否已经超出了极限范围:若 u ( k − 1 ) > u m a x u(k-1)>umax u(k1)>umax,则只累加负偏差,如果 u ( k − 1 ) < u m i n u(k-1)<umin u(k1)<umin,则只累加正偏差。

微分环节改进的PID控制

不完全微分PID控制

不完全微分算法即在原微分环节上添加一个具有低通滤波作用的惯性环节,因此不完全微分环节的传递函数为:
G ( S ) = U D ( s ) E ( s ) = K P T D s 1 + T f s G(S)=\frac{U_D(s)}{E(s)}=\frac{K_PT_Ds}{1+T_fs} G(S)=E(s)UD(s)=1+TfsKPTDs
经化简,
( 1 + T f s ) U D ( s ) = K P T D s E ( s ) ⟹ U D ( s ) + T f s U D ( s ) = K P T D s E ( s ) (1+T_fs)U_D(s)={K_PT_Ds}{E(s)}\Longrightarrow U_D(s)+T_fsU_D(s)={K_PT_Ds}{E(s)} (1+Tfs)UD(s)=KPTDsE(s)UD(s)+TfsUD(s)=KPTDsE(s)
经拉氏反变换,写成微分方程为
u D ( t ) + T f d u D ( t ) d t = K P T D d e ( t ) d t u_D(t)+T_f\frac{du_D(t)}{dt}=K_PT_D\frac{de(t)}{dt} uD(t)+TfdtduD(t)=KPTDdtde(t)
取采样时间 T T T,将上式离散化得
u D ( k ) + T f u D ( k ) − u D ( k − 1 ) T = K P T D e ( k ) − e ( k − 1 ) T u_D(k)+T_f\frac{u_D(k)-u_D(k-1)}{T}=K_PT_D\frac{e(k)-e(k-1)}{T} uD(k)+TfTuD(k)uD(k1)=KPTDTe(k)e(k1)
整理得
u D ( k ) = T f T + T f u D ( k − 1 ) + K P T D T + T f [ e ( k ) − e ( k − 1 ) ] u_D(k)=\frac{T_f}{T+T_f}u_D(k-1)+\frac{K_PT_D}{T+T_f}[e(k)-e(k-1)] uD(k)=T+TfTfuD(k1)+T+TfKPTD[e(k)e(k1)]
α = T f T + T f \alpha = \frac{T_f}{T+T_f} α=T+TfTf,则 1 − α 1-\alpha 1α = T T + T f \frac{T}{T+T_f} T+TfT,因此不完全微分算法公式为
u D ( k ) = K D ( 1 − α ) [ e ( k ) − e ( k − 1 ) ] + α u D ( k − 1 ) u_D(k)=K_D(1-\alpha)[e(k)-e(k-1)]+\alpha{u_D(k-1)} uD(k)=KD(1α)[e(k)e(k1)]+αuD(k1)

微分先行PID控制

微分先行算法适用于给定量频繁改变的控制系统,被控值与给定值的偏差若出现频繁的跳变,如果对偏差进行微分,会使微分结果产生剧烈的脉冲变化,不利于系统稳定,而控制系统的被控量输出一般不会产生突变,采用微分先行算法可改善系统的动态特性,有利于系统的稳定。

微分先行即将对偏差的微分改为对被控变量的微分,微分环节的输出为
u D ( k ) = K P T D T [ c ( k ) − c ( k − 1 ) ] u_D(k)=\frac{K_PT_D}{T}[c(k)-c(k-1)] uD(k)=TKPTD[c(k)c(k1)]


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

相关文章

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;时序信息;非接触的半…

物联16:4 ISO/IEC 14443-3 防冲突、防碰撞算法、Type A、Type B

ISO&#xff0f;IEC14443-3 防冲突、防碰撞算法、TypeA、Type B 防冲突原理 1 前言 当2张或2张以上的同类型的PICC卡同时进入RF(Radio Frequency)区域时&#xff0c;多张卡同时接收到PCD机发出的查询命令。会根据卡上的控制逻辑&#xff0c;同时返回响应命令。这样就造成了卡…

5GNR漫谈9:PDSCH和PUSCH资源映射(频域type0/type1和时域typeA/typeB/typeC)

在漫谈6中&#xff0c;我们了解了PDSCH和PUSCH这两个信道&#xff0c;在将比特数据调制为复数的星座图符号后&#xff0c;映射到具体的时频资源位置。映射的具体过程由先频域后时域&#xff0c;即一个OFDM符号的RB子载波上映射完成后&#xff0c;再映射下一个OFDM符号的RB子载波…