# 控制分配(混合)
备注
控制分配取代了 PX4 v1.13 及更早版本中使用的传统混合方法。有关 PX4 v1.13 文档,请参见 混合&;执行器 (打开新窗口), 几何文件 (打开新窗口) 和 添加新的机身配置 (打开新窗口).
PX4 从核心控制器获取所需的扭矩和推力指令,并将其转换为控制电机或伺服的执行器指令。
平移取决于机身的物理几何形状。例如,给定一个向右转弯的扭矩指令(比方说):
- 如果飞机的每个副翼都有一个伺服器,则会将其中一个伺服器置于高位,另一个置于低位。
- 改变所有电机的速度,多旋翼飞行器就会向右偏航。
PX4 将这种被称为 "混合 "的转换逻辑与姿态/速度控制器分开。这确保了核心控制器无需针对每个机身几何形状进行特殊处理,并大大提高了可重用性。
此外,PX4 还能将输出功能抽象地映射到特定的硬件输出。这意味着任何电机或伺服都可以分配给几乎任何物理输出。
# 致动器控制管道
按模块和 uORB 主题分列的混合管道概览(按下可全屏显示):
备注
- 速率控制器输出扭矩和推力设定值
- 的
控制分配器
模块:- 根据配置参数处理不同的几何形状
- 搅拌
- 处理电机故障
- 发布电机和伺服控制信号
- 将伺服微调单独发布,这样就可以将其作为偏移量添加进来。 测试传动器 (使用测试滑块)。
- 输出驱动器:
- 处理硬件初始化和更新
- 使用共享库 src/libs/mixer_module (打开新窗口).驱动程序定义了一个参数前缀,例如
PWM_MAIN
然后由库进行配置。它的主要任务是从输入主题中进行选择,并根据用户设置将正确的数据分配给输出。<param_prefix>_FUNCx
参数值。例如PWM_MAIN_FUNC3
设置为 电机 2,第 3 个输出被设置为第 2 个电机的输出。致动器电机
. - 输出函数定义如下 src/lib/mixer_module/output_functions.yaml (打开新窗口).
- 如果要从 MAVLink 控制输出,请将相关输出功能设置为 车外执行器套件 x然后发送 mav_cmd_doo_set_actuator (打开新窗口) MAVLink 命令。
# 添加新的几何图形或输出函数
参见 该承诺 (打开新窗口) 了解如何添加新几何体。然后,QGC UI 将在以下情况下自动显示正确的配置 UI CA_AIRFRAME 设置为新几何体。
该承诺 (打开新窗口) 演示了如何添加一个新的输出函数。任何 uORB 主题都可以订阅并分配给一个函数。
请注意,控制分配的参数在 src/modules/control_allocator/module.yaml (打开新窗口)
该文件的模式为 这里 (打开新窗口) (特别是搜索关键字 混频器:
# 设置默认框架几何形状
何时 添加新机架配置,设置适当的 CA_AIRFRAME 和其他几何体的默认混合器值。
例如,您可以在机身配置文件中看到这一点 13200_generic_vtol_tailsitter (打开新窗口)
... 参数设置-默认 CA_AIRFRAME 4 参数设置-默认 CA_ROTOR_COUNT 2 参数设置-默认 CA_ROTOR0_KM -0.05 参数设置-默认 CA_ROTOR0_PY 0.2 ...
# 设置几何体和输出
在 QGroundControl 中选择机身时,将(从机身配置文件中)设置飞行器的大致几何形状和默认参数: 基本配置 > 机身.
然后使用 QGroundControl 配置特定机架和飞行控制器硬件的几何参数和输出映射。 致动器 设置屏幕: 基本配置> 执行器配置和测试.