论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
软件与程序人生
›
云原生
›
【无人机】多旋翼无人机控制器架构,PX4控制器,PID控制 ...
【无人机】多旋翼无人机控制器架构,PX4控制器,PID控制 ...
惊雷无声
论坛元老
|
2025-5-4 14:15:48
|
显示全部楼层
|
阅读模式
楼主
主题
1897
|
帖子
1897
|
积分
5691
目录
1、多旋翼控制架构
2、角速率控制器
3、姿态控制器
4、速率控制器
5、位置控制器
组合位置和速率控制器图
6、加速率到推力和姿态设定值的转换
参考:
Controller Diagrams | PX4 Guide (v1.15)
1、多旋翼控制架构
如图所示,多旋翼的控制器分为,
角速率控制器,姿态控制器,速率控制器,位置控制器
这是一种尺度的
级联控制架构
。
控制器由比例(P)控制器和比例 - 积分 - 微分(PID)控制器混合构成。
估计值来自扩展卡尔曼滤波器 2(EKF2)。
根据不同的模式,外环(位置环)会被绕过(在位置环之后以多路复用器的形式体现)。位置环仅在保持位置或某一轴上的哀求速率为零时利用。
2、角速率控制器
K-PID 控制器。更多信息请参见速率控制器,Multicopter PID Tuning Guide (Manual/Advanced) | PX4 User Guide (v1.14)。
为防止积分饱和,对积分作用进行了限幅。
输出在控制分配模块中进行限幅,通常限定在 -1 到 1 之间。
在微分项利用低通滤波器(LPF)来降低噪声(陀螺仪驱动步伐向控制器提供经过滤波的微分项)。
TIP
惯性测量单元(IMU)处理流程如下
:
陀螺仪数据 > 应用校准参数 > 去除估计偏差 > 陷波滤波器(依据 IMU_GYRO_NF0_BW 和 IMU_GYRO_NF0_FRQ 参数)> 低通滤波器(依据 IMU_GYRO_CUTOFF 参数)> 飞行器角速率(比例(P)和积分(I)控制器利用的滤波后角速率)> 求导 > 低通滤波器(依据 IMU_DGYRO_CUTOFF 参数)> 飞行器角加速率(微分(D)控制器利用的滤波后角加速率)
3、姿态控制器
姿态控制器利用四元数。
该控制器依据此文章实现:eth-7387-01.pdf。
在调试此控制器时,唯一需要关注的参数是比例(P)增益。
速率指令进行了限幅处理。
4、速率控制器
1、用于稳定速率的比例积分微分(PID)控制器。它
输出一个加速率
指令。
2、积分器采用了一种钳位方法来实现抗积分饱和(ARW)。
3、所指令的加速率并不进行限幅 —— 限幅操作将在结合最大倾斜角度对转换后的推力设定值进行处理时才会应用。
4、程度方向的增益通过参数 MPC_XY_VEL_P_ACC、MPC_XY_VEL_I_ACC 和 MPC_XY_VEL_D_ACC 来设置。
5、垂直方向的增益通过参数 MPC_Z_VEL_P_ACC、MPC_Z_VEL_I_ACC 和 MPC_Z_VEL_D_ACC 来设置。
5、位置控制器
1、这是一个
输出速率指令
的简朴比例(P)控制器。
2、指令速率会进行限幅处理,以将速率保持在一定范围内。请参考参数 MPC_XY_VEL_MAX,该参数设定了最大可能的程度速率。这与最大盼望速率(自主模式下的 MPC_XY_CRUISE 和手动位置控制模式下的 MPC_VEL_MANUAL)有所不同。
3、程度方向的比例(P)增益通过参数 MPC_XY_P 进行设置。
4、垂直方向的比例(P)增益通过参数 MPC_Z_P 进行设置。
组合位置和速率控制器图
1、与模式相干的前馈(ff)—— 例如,任务模式轨迹生成器(受加加速率限定的轨迹)会计算位置、速率和加速率设定值。
2、加速率设定值(在惯性坐标系中)将(结合偏航设定值)转换为姿态设定值(四元数形式)和总推力设定值。
6、加速率到推力和姿态设定值的转换
1、由速率控制器生成的
加速率设定值
将被
转换
为
推力和姿态设定值
。
2、转换后的加速率设定值将进行
限幅处理
,并按垂直和程度推力的优先级进行处理。
3、推力限幅是在计算出相应的推力之后进行的:
计算所需的垂直推力(thrust_z)
用 MPC_THR_MAX 对 thrust_z 进行限幅
用 (MPC_THR_MAX² - thrust_z²)^0.5 对程度推力 thrust_xy 进行限幅
4、具体的实现细节可在 PositionControl.cpp 和 ControlMath.cpp 文件中找到。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
惊雷无声
论坛元老
这个人很懒什么都没写!
楼主热帖
记一次实战 Shiro反序列化内网上线 ...
基于 Sealos 的镜像构建能力,快速部署 ...
蚂蚁金服杨军:蚂蚁数据分析平台的演进 ...
Linux之iptables(NAT表)——实验篇 ...
1亿条数据批量插入 MySQL,哪种方式最 ...
超融合走向红海,下一代超融合是新蓝海 ...
联合评测 DapuStor Roealsen5 NVMe SSD ...
【学习笔记】WPF-02:XMAL基础 ...
Neo4j
学习TraceLogging事件,使用ETW记录, ...
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表