ardupilot飞控的控制层级及其相应的文件所在

ardupilot采用了级联式PID,我认为级联式可以简单理解为串联,串联中混杂着并联,本质来说控制的上层的输入作为下层的输出。

在 ArduPilot 中,各个控制层级分别对应不同的文件或模块,以下是各层级在 ArduPilot 文件结构中的具体位置说明:
1.位置控制层
• 文件位置:ArduCopter/PositionControl.cppArduCopter/PositionControl.h• 作用:根据目标位置和实际位置的偏差,生成速度目标。

2.速度控制层
2.1• 水平速度控制
• 文件位置:ArduCopter/VelocityControl.cppArduCopter/VelocityControl.h• 作用:根据水平速度目标和实际水平速度的偏差,生成水平加速度目标。

2.2• 垂直速度控制
• 文件位置:ArduCopter/PositionControl.cppArduCopter/PositionControl.h(与位置控制层部分逻辑在一起)• 作用:根据垂直速度目标和实际垂直速度的偏差,生成总推力变化需求。

3.姿态控制层
• 文件位置:libraries/AP_AttitudeControl/AP_AttitudeControl.cpplibraries/AP_AttitudeControl/AP_AttitudeControl.h
• 作用:根据加速度目标或力的变化,结合当前姿态,生成期望的角速度目标。

4.角速度控制层
• 文件位置:libraries/AP_AttitudeControl/AP_AttitudeControl.cpplibraries/AP_AttitudeControl/AP_AttitudeControl.h
• 作用:根据期望的角速度目标和实际角速度的偏差,生成所需的力矩。

5.力矩控制层
• 文件位置:ArduCopter/motors/AP_MotorsMatrix.cppArduCopter/motors/AP_MotorsMatrix.h
• 作用:根据所需的力矩和总推力需求,计算每个电机的转速指令。

6.电机控制层
• 文件位置:ArduCopter/motors/AP_MotorsMatrix.cppArduCopter/motors/AP_MotorsMatrix.h
• 作用:根据转速指令,生成电机驱动信号。

这些文件在 ArduPilot 的源代码库中具有特定的作用和功能,涵盖了从位置控制到电机驱动的整个控制流程。每个文件都包含相应的头文件(.h 文件),这些头文件定义了类、结构体和函数原型,而实现代码则在对应的.cpp 文件中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值