【UAV】串级 PID 控制原理及应用

article/2025/6/9 11:56:39

文章目录

  • 简介
  • 实现过程
    • 单级 PID
    • 串级 PID
  • 三个问题
  • Ref:

简介

什么是串级PID?顾名思义就是两个串起来的PID,下面是一个双闭环的例子,外环是位置(角度)环,内环是速度(角速度)环,最终的执行器是电机,电机输出产生了速度(角速度)和位置(角度),具体框图如下图所示。

在这里插入图片描述

例如执行器是四轴飞行器时,整体控制过程如下:

  1. 我们在外环给定相应的位置高度,外环 PID 的输出就是内环 PID 的期望值;
  2. 内环 PID 的输出将产生相应的油门大小,最终飞行器会产生上升的速度;
  3. 内环反馈值为速度,控制相应的速度达到外环所需的速度期望值;
  4. 最终外环达到期望的位置。

PID 的算法控制其实是一种无系统模型的控制,可以根据参数经验去调试系统。但是实际的物理对象的模型其实早就确定好了,PID的输入量和输出量的物理意义也会因为实际的被控对象而改变。换句话说,PID的输入基本上和系统的反馈量相关,而实际的反馈量是什么,从一开始就因为系统而确定下来了。

实现过程

单级 PID

在这里插入图片描述
单级 PID 伪代码:
当 前 角 度 误 差 = 期 望 角 度 − 当 前 角 度 单 环 P I D P 项 = K p ∗ 当 前 角 度 误 差 \begin{aligned} 当前角度误差 =& 期望角度 - 当前角度 \\ 单环 \red{PID_P} 项 =& Kp * 当前角度误差 \\ \end{aligned} =PIDP=Kp

当前角度误差积分及其积分限幅
单 环 P I D I 项 = K i ∗ 当 前 角 度 误 差 积 分 \begin{aligned} 单环 \green{PID_I} 项 =& Ki * 当前角度误差积分 \\ \end{aligned} PIDI=Ki

当前角度的微分(原理上为当前角度误差 - 上次角度误差,实际上角度的微分就是角速度,恰好由陀螺仪给出)
单 环 P I D D 项 = K d ∗ 当 前 角 度 的 微 分 ( 直 接 用 陀 螺 仪 输 出 ) 单 环 P I D 输 出 = 单 环 P I D P 项 + 单 环 P I D I 项 + 单 环 P I D D 项 \begin{aligned} 单环 \blue{PID_D} 项 =& Kd * 当前角度的微分(直接用陀螺仪输出) \\ 单环 \purple{PID_{输出}} =& 单环 \red{PID_P} 项 + 单环 \green{PID_I} 项 + 单环 \blue{PID_D} 项 \\ \end{aligned} PIDD=PID=KdPIDP+PIDI+PIDD

串级 PID

在这里插入图片描述

给出串级 PID 伪代码:
当 前 角 度 误 差 = 期 望 角 度 − 当 前 角 度 外 环 P I D p 项 = 外 环 K p ∗ 当 前 角 度 误 差 \begin{aligned} 当前角度误差 =& 期望角度 - 当前角度 \\ 外环 \red{PID_p} 项 =& 外环 Kp * 当前角度误差 \\ \end{aligned} =PIDp=Kp

当前角度误差积分及其积分限幅
外 环 P I D I 项 = 外 环 K i ∗ 当 前 角 度 误 差 积 分 外 环 P I D 输 出 = 外 环 P I D P 项 + 外 环 P I D I 项 − − − 这 里 来 个 分 割 线 − − − 当 前 角 速 度 误 差 = 外 环 P I D 输 出 − 当 前 角 度 ( 直 接 用 陀 螺 仪 输 出 ) 内 环 P I D P 项 = 内 环 K p ∗ 当 前 角 速 度 误 差 \begin{aligned} 外环 \green{PID_I} 项 =& 外环 Ki * 当前角度误差积分 \\ 外环 \purple{PID_{输出}} =& 外环 \red{PID_P} 项 + 外环 \green{PID_I} 项 \\ ---&这里来个分割线---\\ 当前角速度误差 =& 外环 \purple{PID_{输出}} - 当前角度(直接用陀螺仪输出) \\ 内环 \red{PID_P} 项 =& 内环 Kp * 当前角速度误差 \\ \end{aligned} PIDI=PID==PIDP=KiPIDP+PIDI线PIDKp

当前角速度误差积分及其积分限幅
内 环 P I D I 项 = 内 环 K i ∗ 当 前 角 速 度 误 差 积 分 \begin{aligned} 内环 \green{PID_I} 项 =& 内环 Ki * 当前角速度误差积分 \\ \end{aligned} PIDI=Ki

当前角速度的微分(本次角速度误差 - 上次角速度误差)
内 环 P I D D 项 = 内 环 K d ∗ 当 前 角 速 度 的 微 分 内 环 P I D 输 出 = 内 环 P I D P 项 + 内 环 P I D I 项 + 内 环 P I D D 项 \begin{aligned} 内环 \blue{PID_D} 项 =& 内环 Kd * 当前角速度的微分 \\ 内环 \purple{PID_{输出}} =& 内环 \red{PID_P} 项 + 内环 \green{PID_I} 项 + 内环 \blue{PID_D} 项 \\ \end{aligned} PIDD=PID=KdPIDP+PIDI+PIDD

三个问题

如何做到垂直起飞、四轴飞行时为何会飘、如何做到脱控?

眼看这三个问题是三个不同的问题,其实就原理上讲,他们的原因在绝大多数情况下都是由于加速度计引起的。如果飞机可以垂直起飞,说明你的加速度计放置地很水平,同时也说明你的PID控制算法参数找的不错,既然可以垂直起飞,那么飞行过程中,只要无风,四轴几乎就不会飘,自然而然就可以脱控飞行。由此可见,加速度计是个十分重要的器件。

在姿态解算中,或者说在惯性导航中,依靠的一个重要器件就是惯性器件,包括了加速度计陀螺仪

陀螺仪的特性就是高频特性好,可以测量高速的旋转运动;而加速度计的低频特性好,可以测量低速的静态加速度。无论是何种算法(互补滤波、梯度下降、甚至是Kalman滤波器),都离不开对当地重力加速度 g g g 的测量和分析。

惯性导航利用的就是静态性能好的加速度计去补偿动态性能好的陀螺仪漂移特性,得到不飘并且高速的姿态跟踪算法,因此基于惯性器件的姿态解算,加速度计是老大,它说了算。

首先,为了让四轴平稳的悬停或飞行在半空中,四个电机必须提供准确的力矩。假设力矩与电机PWM输出呈线性关系,也就是必须提供准确的4路PWM。4路PWM由遥控器输入(期望角度)、PID算法及其参数和姿态解算输出(当前角度)组成。

假设遥控器输入不变(类似脱控)、PID算法及其参数也较为准确(PID参数无需十分精确,但只要在某个合理的范围内,控制品质差不了多少),也就是姿态解算的输出必须是十分准确的,可以真实反应飞行器的实际角度,而姿态解算的结果由加速度计和陀螺仪给出,根据前述惯性导航的描述,加速度计补偿陀螺仪,因此要得到精确的姿态解算结果,务必要求加速度输出精确的重力加速度 g g g。这里仅讨论悬停飞行,因此忽略掉额外的线性加速度(事实证明,在四轴强机动飞行过程中,线性加速度必须要考虑并消除),假设加速度计输出重力加速度 g g g,这个重力加速度 g g g 必须十分“精确”。

总结来说就是
精 准 力 矩 → 精 准 P W M → 精 准 姿 态 → 加 速 度 计 输 出 “ 精 确 ” 重 力 加 速 度 g 精准力矩 \rightarrow 精准PWM \rightarrow 精准姿态 \rightarrow 加速度计输出“精确”重力加速度 g PWM姿g

Ref:

  1. 到底什么是串级PID?
  2. 四轴飞行器上两种常用的PID算法(单环PID和串级PID)

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

相关文章

PID控制原理基本介绍(图解)

PID控制原理基本介绍(图解) 这里先以一个阶跃响应做图解说明: 如下图所示,目标值设定为单位1,随着我们逐渐增大比例系数Kp,可以看到系统相应速度逐渐加快,但是始终存在稳态误差, 如下图所示,引入积分环节后,随着积分控制系数Ki逐渐加大,误差逐渐减小,并最终达…

自动控制原理 (二): 控制系统的微分方程

要进一步研究一个自动控制系统, 就需要建立系统的数学模型来描述一个系统。 所谓数学模型, 就是描述系统输入、 输出变量以及内部各变量之间关系的数学表达式。 常用微分方程来描述系统各变量的动态关系。 建立微分方程的步骤如下: 分析各元…

自动控制原理 (一): 基础概念

自动控制系统, 是指能够完成自动控制任务的设备; 而自动控制任务是指在没有人的参与下, 利用控制装置操纵被控对象, 使被控量等于给定值。 一个自控系统一般包括被控对象和控制器。 自动控制系统 有如下概念: 控制&…

【自动控制原理】控制系统数学模型

目录 一、控制系统数学模型1.1 数学模型概述1.2 时域、复域、频域下的常见数学模型举例1.3 时域微分方程建模示例一1.4 时域微分方程建模示例二1.5 线性系统特性1.6 运动模态 二、线性系统复域数学模型2.1 传递函数2.1.1 传递函数2.1.2 推导2.1.3 Matlab写连续传递函数的方式2.…

自动控制原理知识点梳理——1. 自动控制的一般概念 2. 控制系统的数学模型

目录 1. 自动控制的一般概念 1.1知识梳理&逻辑图 2. 控制系统的数学模型 2.1知识梳理&逻辑图 2.2补充内容 2.2.1传递函数的零点和极点 2.2.2典型环节及其传递函数 2.2.3相同的特征多项式和开环传递函数定义 2.2.4由结构图得传递函数 2.2.5拉氏变换知识回顾 1…

第2章-系统控制原理 -> 经典控制理论

第1章-多智能体系统回到目录第2章-系统控制原理 -> 线性系统状态空间 文章目录 2 系统控制原理2.1 经典控制理论2.1.2 连续系统求解定义 2.1 [拉普拉斯变换]定义 2.2 [传递函数 transfer function]定义 2.3 [零点 zeros、极点 poles]例题 2.1 2.1.3 线性离散系统2.1…

【经典控制理论】| 自动控制原理知识点概要(上)

参考资料 胡寿松《自动控制原理》第6版刘豹《现代控制理论》第3版斐润《自动控制原理》哈工大控制学科803考研资料 前言 对于控制工程专业的我来说,经典控制理论是很重要的,因此趁着参加秋招这个档口,顺便复习下学过的控制理论。希望也能对…

DMA控制器原理详解

目录 工作原理 DMA硬件架构 DMA通道的作用 DMA寄存器 DMA出现的目的 工作原理 DMA全拼Direct Memory Access(直接内存存取),在传统的CPU存取数据时会先将数据放到缓存寄存器中然后在写入到指定位置 CPU存取数据流程图: CPU…

自动控制原理8.1---非线性控制系统概述

参考书籍:《自动控制原理》(第七版).胡寿松主编. 《自动控制原理PDF版下载》 1.非线性控制系统概述 1.1 研究非线性控制理论的意义 当系统中含有一个或多个具有非线性特性的元件时,该系统称为非线性系统; 随动系统实例说明: …

【经典控制理论】| 自动控制原理知识点概要(下)

参考资料 胡寿松《自动控制原理》第6版刘豹《现代控制理论》第3版斐润《自动控制原理》哈工大控制学科803考研资料 前文 【经典控制理论】| 自动控制原理知识点概要(上) 6. 线性系统的校正 6.1 综合和校正问题的提出 控制系统的综合和校正问题是在已知…

交流异步电机矢量控制(二)——矢量控制原理

前言:在前面梳理完电机数学模型和坐标变换的知识后,下一步就是对矢量控制系统的建立,矢量控制系统重在于其思想框架的理解以及异步电机独有多种磁场定向方案之间的区别,这两个问题都是值得独立探究的,按照顺序来。 本…

自动控制原理(一)

目录 一阶系统1.数学模型2.单位阶跃响应3.特性分析4.典型实例 二阶系统1.数学模型2.单位阶跃响应3.暂态响应的定量分析指标 高阶系统自动控制系统稳定性参考资料 一阶系统 1.数学模型 系统闭环传递函数入下图: 开环传函:积分环节 闭环传函:惯性环节 …

【知识点总结】自动控制原理(自控)

自动控制原理 总结内容: 内容包括: 控制系统的时域数学模型、控制系统的复数域数学模型、控制系统的结构图与信号流图、梅逊公式 、闭环系统传递函数、线性系统的时域分析法、一阶系统的时域分析、系统时间响应的性能指标、二阶系统的时域分析、线性系统…

通俗易懂的自动控制原理 # 绪论

1 自动控制系统的基本原理 1.1 引入以及定义 诸如:神舟10号发射升空、战斧式巡航导弹、装配机器人、自动泊车系统等其中都应用了自动控制的相关理论和技术。 什么是控制? 控制 - 使某个(某些)量按一定的规律变化某个&#xff0…

自动控制原理(来自于b站的笔记整理,深入理解自动控制框架)

一、自动控制原理 1 文章目录 一、自动控制原理 [^1]1. 控制原理1.1 开环与闭环系统1.2 稳定性分析[^2]1.3 一起燃烧卡路里/科学减肥(系统分析实例_数学建模部分)1.4 终值定理与稳态误差[^3]1)比例控制2)比例积分控制 1.5 根轨迹1…

《自动控制原理》个人笔记(来自ppt课件)

控制的含义 控制(CONTROL)----某个主体使某个客体按照一定的目的动作。 主体–人:人工控制; 机器:自动控制 客体–指一件物体,一套装置,一个物化过程,一个特定系统。 人工控制与自…

4. 吴恩达深度学习--优化算法

本文主要参考了 严宽 大神的学习笔记,并在其基础上补充了一点内容,点此查看原文。   本文所使用的资料已上传到百度网盘【点击下载】,提取码:hnwl ,请在开始之前下载好所需资料。   到目前为止,哦我们始…

吴恩达深度学习课程第二章第三周编程作业(pytorch实现)

文章目录 声明一、问题描述二、编程实现1.加载数据集2.使用mini-batch3.利用pytorch搭建神经网络3.1 利用torch.nn简单封装模型3.2 定义优化算法和损失函数 4.整体代码 声明 本博客只是记录一下本人在深度学习过程中的学习笔记和编程经验,大部分代码是参考了【中文】…

吴恩达深度学习L4W4人脸识别

1、One-shot learning 人脸识别往往每个人只有一张照片,因此不应该用卷积神经网络配合softmax训练。 应该选择学习 Similarity 函数。详细地说,你想要神经网络学习这样一个用𝑑表示的函数,𝑑(𝑖&#x1d45…

吴恩达深度学习Deep Learning课程笔记

1.1 前言 课程安排: 1.神经网络和深度学习 内容:神经网络的基础,如何建立神经网络、深度神经网络、以及如何在数据时训练它们 2.提升深度神经网络 内容:深度学习方面的实践,严密地构建神经网络以及提升其表现&…