固定翼多种PID学习总结

2023-11-01 01:41

本文主要是介绍固定翼多种PID学习总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • PID介绍
    • 位置PID
    • 增量PID
      • 位置和增量PID的关系
    • 串级PID
    • 模糊PID
    • 自适应模糊PID
  • 优化PID方法


前言

固定翼多种PID学习总结
参考如下:
参考一
参考二

PID介绍

位置PID

e(k): 用户设定的值(目标值) - 控制对象的当前的状态值

比例P : e(k)

积分I : ∑e(i) 误差的累加

微分D : e(k) - e(k-1) 本次误差-上次误差

顾名思义,位置PID是通过不同时间下位置的变化量作为误差,通过P,I,D三个比例系数进行控制。

此处重点讲下积分项I:
【1】在位置PID算法中,因为有积分项I的存在,一旦积分饱和,也就是积分累计的误差太大,当你想反向输出时,积分项却让你的系统一直正向输出(因为积分项之前一直在累计正向误差),这就是积分饱和,解决方法是积分分离,后面会讲到。
【2】因此在位置PID中多用PD控制。
【3】适用于舵机快速响应,平衡小车的直立和温控系统的控制。
对于惯性较大的对象,常常希望能加快控制速度, 此时可增加微分作用。
特点:
比例控制对于惯性较大对象,控制过程缓慢,控制品质不佳。比例微分控制可提高控制速度,对惯性较大对象,可改善控制质量,减小偏差,缩短控制时间。
理想微分作用持续时间太短, 执行器来不及响应。实际使用中,一般加以惯性延迟,称为实际微分。
PD 调节以比例调节为主,微分调节为辅,PD调节是有差调节被调量与设定值之间将产生不可避免的偏差)。
PD 调节具有提高系统稳定性、抑制过渡过程最大动态偏差的作用。
PD 调节有利于提高系统响应速度。
PD 调节抗干扰能力差,一般只能应用于被调参数 变化平稳的生产过程。
微分作用太强时,容易造成系统振荡。

增量PID

比例P : e(k)-e(k-1) 本次误差-上次误差
积分I : e(i) 误差
微分D : e(k) - 2e(k-1)+e(k-2) 这次误差-2*上次误差+上上次误差
增量式PID根据公式可以很好地看出, 一旦确定了 KP、TI 、TD,只要使用前后三次测量值的偏差, 即可由公式求出控制增量
而得出的控制量▲u(k)对应的是近几次位置误差的增量,而不是对应与实际位置的偏差 没有误差累加

【1】算式中不需要累加。控制增量Δu(k)的确定仅与最近3次的采样值有关,容易通过加权处理获得比较好的控制效果;
【2】计算机每次只输出控制增量,即对应执行机构位置变化量这里不理解的可以自己设一个期望值和三个渐变的实际值举例子看一下),故机器发生故障时影响范围小、不会严重影响生产过程;
【3】 手动—自动切换时冲击小。当控制从手动向自动切换时,可以作到无扰动切换。

位置和增量PID的关系

【1】位置式的PD控制相当于增量式PID的PI控制
位置式的D为偏差e(t),而增量式的I也为偏差e(t)
【2】位置式需引入初始阀位值,增量式不需要
【3】位置式需防积分饱和,增量式不会产生积分饱和(因为增量式没有累加关系,这个地方可能会与位置式的积分混淆。
【4】只有存在偏差时,增量式才会有输出
【5】增量式容易实现从手动到自动的切换
【6】位置式PID控制的输出与整个过去的状态有关,用到了误差的累加值;而增量式PID的输出只与当前拍和前两拍的误差有关,因此位置式PID控制的累积误差相对更大;
【7】增量式存在稳态误差

串级PID

在这里插入图片描述
【这是在网上能找到可以很好表达串级PID的一张图片】
以固定翼控制为例:

角度环:*******************加速环
期望值 实际值 *************期望值 *********实际值
打舵量 欧拉角 *************角度环输出值 陀螺仪输出

使用串级PID的原因:
【个人理解】比如只用位置pid控制舵机,那么输出值就是所要转动的角度值。感觉很合理,就是你让舵机转多少度嘛,但是仔细分析下舵机转动这个过程,物体做运动(舵机转动),现有加速度,再有速度,再有角度,所以当角度为零的时候,角速度和角加速度不一定为零,这样就可能产生误差。

模糊PID

自适应模糊PID

优化PID方法

这篇关于固定翼多种PID学习总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/319599

相关文章

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

C#中字符串分割的多种方式

《C#中字符串分割的多种方式》在C#编程语言中,字符串处理是日常开发中不可或缺的一部分,字符串分割是处理文本数据时常用的操作,它允许我们将一个长字符串分解成多个子字符串,本文给大家介绍了C#中字符串分... 目录1. 使用 string.Split2. 使用正则表达式 (Regex.Split)3. 使用

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

Java向kettle8.0传递参数的方式总结

《Java向kettle8.0传递参数的方式总结》介绍了如何在Kettle中传递参数到转换和作业中,包括设置全局properties、使用TransMeta和JobMeta的parameterValu... 目录1.传递参数到转换中2.传递参数到作业中总结1.传递参数到转换中1.1. 通过设置Trans的

C# Task Cancellation使用总结

《C#TaskCancellation使用总结》本文主要介绍了在使用CancellationTokenSource取消任务时的行为,以及如何使用Task的ContinueWith方法来处理任务的延... 目录C# Task Cancellation总结1、调用cancellationTokenSource.

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]