PID控制逻辑基本介绍

news2024/11/20 4:23:06

PID控制逻辑基本介绍

  • 1. 源由
  • 2. PID基本框图
  • 3. PID公式变换
  • 4. PID参数释义
    • 4.1 比例因子Kp
    • 4.2 比例积分Ki
    • 4.3 比例微分Kd
    • 4.4 Kp/Ki关系
    • 4.5 Kp/Kd关系
  • 5. 总结
  • 6. 附录
    • 6.1 了解 PID 控制,第 1 部分:什么是 PID 控制?
    • 6.2 Anti-windup for PID control Understanding PID Control- Part 2
    • 6.3 Noise Filtering in PID Control Understanding PID Control- Part 3
    • 6.4 A PID Tuning Guide Understanding PID Control- Part 4
    • 6.5 Build a Model for Control System Design | Understanding PID Control, Part 5
    • 6.6 Manual and Automatic PID Tuning Methods Understanding PID Control- Part 6
    • 6.7 Important PID Concepts Understanding PID Control- Part 7

1. 源由

飞控上有9DOF(Degree Of Freedom):

  • 磁力计方向(degree/gauss)
  • 加速度方向(g)
  • 角速度方向(degree per second)

遥控器上对应的控制:

  • 姿态控制:Pitch/Roll/Yaw

角速度:Pitch/Roll/Yaw
磁力计:机头水平面投影指向方向
注1:角速度是通过扭力来触发

  • 油门控制:Throttle

加速度:(推力 + 重力 + 阻力) 矢量和
注2:推理矢量方向取决于飞控姿态

而上述遥控可以认为是输入,其整个逻辑过程如下:

遥控RC setpoint ==》 error ==》 飞控(PID)控制 ==》 动力模块(process)处理 ==》 物理output
注3:setpoint - output = error,这就是PID控制一个回路。

PID(Proportion Integration Differentiation比例-积分-微分)控制规律作为经典控制理论的最大成果之一,由于其原理简单且易于实现,具有一定的自适应性和鲁棒性,在目前的工业过程控制中仍被广泛采用,飞控算法中亦是如此。

为了更好的理解飞控控制行为,对PID的理解将可以深化飞控姿态调整逻辑。所以,本章将对PID基本控制逻辑做一个简单的介绍。

2. PID基本框图

该模型出现于20世纪40年代,目前世界上可能有高达95%的控制模型都是采用类似模型,比如:PI/PD/PID等。

在这里插入图片描述
其对应教科书上的经典理论公式:

在这里插入图片描述

其中:

  • y:measurable process variable
  • ysp:setpoint
  • e = ysp - y:control error
  • K:proportional gain
  • Ti:integral time
  • Td:derivative time

3. PID公式变换

上面表达式经过变换以后可以得到:

u ( t ) = K ⋅ e ( t ) + K T i ∫ 0 t e ( τ ) d τ + K ⋅ T d d e ( t ) d t u(t)=K \cdot e(t) + \cfrac{K}{T_i}\int_{0}^{t} e(\tau) d\tau + K \cdot T_d \cfrac{de(t)}{dt} u(t)=Ke(t)+TiK0te(τ)dτ+KTddtde(t)
= K ⋅ e ( t ) + K i ∫ 0 t e ( τ ) d τ + K d d e ( t ) d t = K \cdot e(t) + K_i \int_{0}^{t} e(\tau) d\tau +K_d \cfrac{de(t)}{dt} =Ke(t)+Ki0te(τ)dτ+Kddtde(t)

得到最终Kp,Ki,Kd参数如下:
K p = K K_p=K Kp=K

K i = K T i K_i=\cfrac{K}{T_i} Ki=TiK

K d = K ⋅ T d K_d=K \cdot T_d Kd=KTd

4. PID参数释义

假设:表达式不存疑的情况下,可以看出Kp,Ki,Kd之间是有关联关系的。

因此,首先不纠结Kp,Ki,Kd之间的关联关系,单独分析;然后在从关联关系去讨论。

4.1 比例因子Kp

Kp是修正误差的比例因子,时间作用于在于一次反馈回路的时间。

  1. 误差越大,相应的修正值也越大;
  2. 当比例因子越大,该修正项贡献越大;
  3. 作用时间取决于一次反馈回路的耗时;

4.2 比例积分Ki

Ki修正的是累计误差,时间作用于起始时间到作用时间。

  1. 累计误差越大,相应修正值越大;
  2. 当比例积分越大,该修正项贡献越大;
  3. 作用时间长期持续(具有记忆效应);

4.3 比例微分Kd

Kd修正的是误差的变化(斜率),时间作用于误差计算时刻。

  1. 误差变化率越大,相应修正值越大;
  2. 当比例微分越大,该修正项贡献越大;
  3. 作用于当下时刻(具有瞬时性);

4.4 Kp/Ki关系

Ki是有一个统计时间的概念,其作用时刻是对该时刻之前的统计时间的一个响应,会出现一种迟滞的问题。

典型场景:

当output被拉回setpoint时,由于error始终在积累,导致在output == setpoint时刻,Ki会将output继续维持推离setpoint。

此时,需要增加integrator windup的方法来进行判断处理。

4.5 Kp/Kd关系

鉴于Kp是瞬时斜率,通常来说稳定系统在修正过程中output变化不会非常大,而常见大斜率往往是一些噪声干扰,进而破坏稳定性。

此时,需要增加对output传感量进行降噪处理。

5. 总结

上述所介绍的都是在一个continous domain(连续域)的PID控制器,当处理简单线性变化的控制逻辑具有非常好的应用。

从定性的角度,可以给出如下表格:
在这里插入图片描述
从PID调试方法,简单可以给出如下方法:

在这里插入图片描述

当要针对复杂问题,尤其是discrete domain(分散域)处理问题时,往往需要进行更深入的业务分析,进而采用cascade control/discrete control。

6. 附录

6.1 了解 PID 控制,第 1 部分:什么是 PID 控制?

了解 PID 控制,第 1 部分:什么是 PID 控制?

6.2 Anti-windup for PID control Understanding PID Control- Part 2

Anti-windup for PID control Understanding PID Control- Part 2

6.3 Noise Filtering in PID Control Understanding PID Control- Part 3

Noise Filtering in PID Control Understanding PID Control- Part 3

6.4 A PID Tuning Guide Understanding PID Control- Part 4

A PID Tuning Guide Understanding PID Control- Part 4

6.5 Build a Model for Control System Design | Understanding PID Control, Part 5

Build a Model for Control System Design | Understanding PID Control, Part 5

6.6 Manual and Automatic PID Tuning Methods Understanding PID Control- Part 6

Manual and Automatic PID Tuning Methods Understanding PID Control- Part 6

6.7 Important PID Concepts Understanding PID Control- Part 7

Important PID Concepts Understanding PID Control- Part 7

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/562546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【pytorch损失函数(6)】Focal loss, for dense object detection再分析

之前翻译了这篇论文,但是理解还不深。今天借着研究rotation的计划,回顾这篇文章。 论文的主要贡献 Focal loss主要是为了解决目标检测中正负样本比例严重失衡的问题。该损失函数降低了大量简单负样本在训练中所占的权重,也可理解为一种困难…

Segment Anything专题论文和代码汇总

文章目录 2023Scaling-up Remote Sensing Segmentation Dataset with Segment Anything ModelPersonalize Segment Anything Model with One ShotSegment Anything in Medical ImagesMatcher: Segment Anything with One Shot Using All-Purpose Feature MatchingCustomized Se…

【Python】mmSegmentation语义分割框架教程(1.x版本)

文章目录 0.引言1. 数据集设置1.1. dataset implementation py1.2. dataset config py 2.模型设置3.训练 0.引言 \qquad 本文是mmSegmentation语义分割框架教程(0.x版本)的1.x版本。不熟悉mmsegmentation是什么的读者可参考原文的引言部分,熟…

sqlmap命令大全(附详细扫描流程)

一、sqlmap命令大全。 -u 指定目标URL (可以是http协议也可以是https协议)-d 连接数据库--dbs 列出所有的数据库--current-db 列出当前数据库--tables 列出当前的表--columns 列出当前的列-D 选择使用哪个数据库-T 选择使用哪个表-C 选择使用哪个列--dump 获取字段中的数据--…

程序猿想考一个PMP,可以吗,怎么考呢?

我从新考纲考完下来,3A通过了考试,最开始也被折磨过一段时间,但是后面还是找到了方法,也算有点经验,给大家分享一下吧。 程序猿应该是考PMP里面人最多的,毕竟有一个30大坎,大部分人还是考虑转型…

rk3588 大小核启动

setenv ipaddr 10.12.1.205;setenv serverip 10.12.1.200;tftp 0x800000 bsprk3588_owl_ai_box_plus_v10_x64.bin;go 0x800000 rk3588 启动 4 核无问题,启动 8 核出现乱码以及死机问题。 分析代码,对 psci 接口进行更新,启动 4 核&#xf…

【服务器数据恢复】EXT3文件系统下raid数据恢复案例

服务器数据恢复环境: 华为OceanStor某型号存储,10块硬盘组成raid6磁盘阵列。 上层操作系统采用EXT3文件系统,划分2个lun。 服务器故障&分析: 在巡检中发现存储中的raid不可用,管理员进行了重新分配并初始化raid的操…

VS2019 error LNK2001: 无法解析的外部符号 解决方法

今天编译一个项目的时候,用debug模式编译时可以通过并生成exe的。 换成release模式,直接报链接错误,如下: 1>libeay32.lib(pem_lib.obj) : error LNK2019: 无法解析的外部符号 ___iob_func,函数 _PEM_def_callback…

微信小程序| AIGC之动手实现ChatGPT法律顾问小程序

一、需求背景 在资本退去后,现如今的互联网行情很差劲,很多创新业务都不得不砍除。再加上国内互联网时代进入到了一个增量犹显疲态,增量杀红了眼!阶段,各大互联网公司均有一种断臂求生的态势!各位互联网同…

hadoop3.2.4集成flink 1.17.0

前言 flink安装部署有三种方式 local:单机模式,尽量不使用 standalone: flink自带集群,资源管理由flink集群管理,开发环境测试使用,不需要hadoop集群 flink on yarn: 把资源管理交给yarn实现,计算机资源统一由Haoop…

PCIe 载板设计资料原理图:382-基于FMC+的XCVU3P高性能 PCIe 载板

基于FMC的XCVU3P高性能 PCIe 载板 一、板卡概述 板卡主控芯片采用Xilinx UltraScale16 nm VU3P芯片(XCVU3P-2FFVC1517I)。板载 2 组 64bit 的DDR4 SDRAM,支持 IOX16或者 JTAG 口,支持PCIe X 16 ReV3.0以及 FMC 扩展接口。…

Hadoop基础学习---6、MapReduce框架原理

1、MapReduce框架原理 1.1 InputFormat数据输入 1.1.1 切片与MapTask并行度决定机制 1、问题引出 MapTask的并行度决定Map阶段的任务处理并发度,进而影响到整个job的处理速度。 2、MapTask并行度决定机制 数据块:Block是HDFS物理上吧数据分成一块一块。…

3D CAD模型的体素化

你有没有搜索过如何将 Cad 模型转换为 python 就绪的 numpy 数组,但没有得到任何明确的答案? 我也是。 经过长时间的研究并尝试了很多软件和 python 库,我终于能够将 3D STEP 文件转换为 3 维 numpy 数组。 如果你想做同样的事情或只是想知道…

线性表的总结

逻辑结构 逻辑结构 具有相同特性的数据元素的有限序列 特性 有穷性:一个线性表的元素个数是有限的 一致性:一个线性表的所有元素的性质相同,也就是具有相同的数据类型 序列性:所有元素之间的相对…

OJ练习第114题——T 秒后青蛙的位置

T 秒后青蛙的位置 力扣链接:1377. T 秒后青蛙的位置 题目描述 给你一棵由 n 个顶点组成的无向树,顶点编号从 1 到 n。青蛙从 顶点 1 开始起跳。规则如下: 在一秒内,青蛙从它所在的当前顶点跳到另一个 未访问 过的顶点&#xf…

十、数据仓库详细介绍(数据质量)流程与工具

上篇我们主要介绍了以下三部分内容。 第一部分,介绍了五种常见的数据管理知识体系,数据质量在所有的知识体系中都有非常重要的地位,数据应用体现数据价值,数据质量为应用提供支撑。 第二部分,我们介绍了数据质量评判的…

程序优化 - ABAP并行处理

SAP的并行方式有很多种: SPTA框架,参考debug可以看出这个核心也是异步bgRFC 异步RFC,使用CALL FUNCTION “XXXXXX” STARTING NEW TASK XXXX CALLING XXXX ON END OF TASK BANK_PP_JOBCTRL框架 拆分成多个后台JOB执行 这里只说SPTA框架…

【高危】Linux Kernel OverlayFS 权限提升漏洞(POC公开)

漏洞描述 Linux Kernel OverlayFS 是 Linux 内核提供的一种文件系统,允许将多个文件系统合并为一个单一的虚拟文件系统。 在 Linux Kernel OverlayFS 受影响版本中,当用户将具备特权的文件从 nosuid 的挂载点复制到另一个挂载点时,未授权的…

【严重】ejs 存在服务端模板注入漏洞(存在POC)

漏洞描述 EJS 是开源的 JavaScript 模板引擎,允许在HTML代码中使用JavaScript代码块,closeDelimiter 参数是 EJS 模板中的结束标记,用于指定结束分隔符。 由于对 CVE-2022-29078 漏洞修复不完全,当应用程序使用 EJS 模板引擎&am…

如何恢复已删除或丢失的音乐文件

您是否遇到过您或其他人不小心删除了您的音乐文件的情况?作为我自己的音乐爱好者,我知道这种感觉有多么毁灭性。听音乐让我们平静和放松,它可以帮助一些人在工作时提高工作效率或缓解他们感受到的压力。 这就是为什么如果您不小心丢失了您心…