当前位置: 首页 > news >正文

056、位置环与速度环的串级PID实现

056、位置环与速度环的串级PID实现

一、从一次炸机事故说起

去年调试四轴飞行器,在室内用光流定位做悬停。位置环输出直接给了电机油门,结果飞机像抽风一样上下抖动,最后侧翻炸机。事后分析日志,发现位置环输出变化率太大,电机响应跟不上,导致积分项疯狂累积——这就是典型的单级位置PID的缺陷。

后来换成位置环+速度环的串级结构,同样的参数,飞机稳得像钉在空中。今天就把这个坑填上。

二、为什么需要串级PID

单级PID的问题在于:位置环直接输出油门值,但油门和加速度之间隔着电机响应、空气动力学、姿态变化等多重非线性环节。位置环的P项稍微大一点,电机就会过冲;I项大了,积分饱和能把飞机送上房顶。

串级PID的思路是:外环(位置环)输出期望速度,内环(速度环)输出实际油门。这样外环只负责“我要多快”,内环负责“怎么达到这个速度”。内环的响应速度比外环快得多,能及时抑制扰动。

这里踩过坑:有人把内外环频率设成一样,结果两个环互相打架。正确做法是内环频率至少是外环的5-10倍。

三、代码实现(C语言,STM32平台)

3.1 数据结构定义

typedefstruct
http://www.jsqmd.com/news/946780/

相关文章:

  • 后端使用 AI 开发前端速成:第五期:Cursor 深度工作流与 Prompt 工程
  • 效率飞跃:基于快马AI,一键生成高质量RESTful API代码
  • PCL2启动器网络故障诊断:从问题树分析到解决方案矩阵的完整指南
  • STM32F0/F1在线升级时中断卡死?手把手教你RAM运行中断服务程序的完整配置流程
  • 为什么92%的营销团队AI整合失败?揭秘被忽略的3层数据治理断层与4套兼容性验证协议
  • 神经网络在参数优化问题中的实时求解与应用
  • 告别裸机延时!在STM32CUBE MX环境下为TM1640编写更高效的DMA+定时器驱动
  • Java Web 公寓报修管理系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
  • ai辅助开发:借助快马多模型能力打造智能zotero文献问答助手
  • 宿舍挂机刷学习通选修课?我用Python写了个‘摸鱼’脚本(Selenium/PyAutoGUI实战)
  • 华为系UI风格安卓天气应用完整工程源码,Java编写,适配Android 8.0+,含模拟定位与图标资源
  • GLM-5混合架构解析:任务感知路径与开源工程实践
  • SEED数据集预处理避坑指南:MATLAB处理中的常见错误与数据对齐技巧
  • 别再让程序跑飞了!用STM32CubeMX(V6.0.0)配置独立/窗口看门狗(IWDG/WWDG)的保姆级避坑指南
  • 保姆级教程:QGC地面站二次开发中,TCP、串口、UDP三种通讯方式到底怎么选?
  • m4s-converter完整指南:解锁B站缓存视频的跨平台播放自由
  • 鸿蒙开发选型指南:从手机到手表,你的第一个App该用Java、JS还是C++?
  • 保姆级教程:在Ubuntu 22.04 LTS上搞定Intel Realsense D435i驱动与SDK(含内核降级避坑指南)
  • AI辅助开发新思路:借助快马平台构建智能应用控制风险分析与代码生成助手
  • 自适应系统调度与计算图优化技术解析
  • 别再为Oracle 11g驱动发愁了!手把手教你两种获取ojdbc6.jar的靠谱方法(附Maven安装命令)
  • FlagOS实现AI芯片Day0适配:构建异构抽象层与行为契约驱动
  • S26 Ultra防窥屏原理:硬件级定向发光技术解析
  • 从一次数据泄露事件复盘:为什么我们的SM4 CBC加密没起作用?
  • 浏览器内核架构演进:从网页渲染器到应用操作系统的范式转移
  • 固态硬盘装系统失败?UEFI/GPT启动原理与6种实操方案
  • 保姆级教程:为PX4飞控添加纳雷NRA12激光雷达驱动(基于PX4 1.14.0稳定版)
  • 别再搞混了!C语言里sin、asin、sinh到底怎么用?一个例子讲清楚
  • TurboQuant原理与实战:llama.cpp轻量级LLM量化精度提升指南
  • 别再只‘看图说话’了!用Gaussian给你的FTIR谱图一个‘量子化学’解释