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

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

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

一、从一次炸机事故说起

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

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

二、为什么需要串级PID

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

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

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

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

3.1 数据结构定义

typedefstruct
http://www.rkmt.cn/news/1458282.html

相关文章:

  • 后端使用 AI 开发前端速成:第五期:Cursor 深度工作流与 Prompt 工程
  • Java Web 公寓报修管理系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
  • 告别裸机延时!在STM32CUBE MX环境下为TM1640编写更高效的DMA+定时器驱动
  • 华为系UI风格安卓天气应用完整工程源码,Java编写,适配Android 8.0+,含模拟定位与图标资源
  • 保姆级教程:QGC地面站二次开发中,TCP、串口、UDP三种通讯方式到底怎么选?
  • 鸿蒙开发选型指南:从手机到手表,你的第一个App该用Java、JS还是C++?
  • 自适应系统调度与计算图优化技术解析
  • 别再搞混了!C语言里sin、asin、sinh到底怎么用?一个例子讲清楚
  • S26 Ultra防窥屏原理:硬件级定向发光技术解析
  • TurboQuant原理与实战:llama.cpp轻量级LLM量化精度提升指南
  • 从一次数据泄露事件复盘:为什么我们的SM4 CBC加密没起作用?
  • 保姆级教程:为PX4飞控添加纳雷NRA12激光雷达驱动(基于PX4 1.14.0稳定版)
  • 树莓派3B轻量人脸检测方案:带接线图、流程图和即跑Python脚本
  • 别再傻傻分不清!电源纹波和噪声的实战测量与滤波方案(附示波器实测图)
  • 别再傻傻分不清了!用大白话讲明白电脑/手机里的RAM、ROM、Cache和内存条
  • 告别记事本!用Qt的QTextEdit和QTextDocument打造你的第一个富文本编辑器(附完整源码)
  • 避坑指南:HSPICE仿真不收敛?别急着改电路,先检查这5个设置和常见网表错误
  • 别再死记硬背了!用Python+Matplotlib动态可视化理解ASK、FSK、PSK和QAM
  • 从‘私钥碰撞’到‘多签钱包’:我的波场链(TRC20)资产安全升级实战记录
  • 小微企业AI落地秘籍:1-3个月见效,无需技术团队,告别踩坑!
  • 告别手动备份!用WinCC全局VBS脚本,让OnlineTableControl每小时自动导出CSV文件
  • AI辅助开发新体验:让快马平台智能分析代码并生成pytest测试用例
  • m4s-converter完整指南:5步轻松将B站缓存视频转换为通用MP4格式
  • 别光仿真了!用MATLAB复现SPICE模型,深入理解MOSFET那些数学公式
  • 超越PSNR和SSIM:用MATLAB动手实现并可视化更先进的图像质量评价指标(如LPIPS、FID)
  • Omni-Attribute:开放词汇视觉属性编码技术解析
  • 避坑指南:用Atmel ATmega4809的硬件I2C读取BQ4050电量,地址为啥总不对?
  • STM32红外遥控进阶:手把手教你实现‘分区存储’,让一个按键控制9台设备
  • 从AHB到APB:深入理解Cortex-M4总线架构中的地址重映射(Remap)实战
  • RT-Thread Studio + STM32CubeMX 联合开发避坑指南:搞定W25Q32 SPI Flash的SFUD与FAL配置