跳转至

CopterForceModel 模块文档

所属工具箱:RflySim Model

CopterForceModel 模块外观

简介

一句话描述:该模块用于计算多旋翼无人机飞行过程中在机体坐标系下受到的合外力与合外力矩。

该模块属于RflySim Model接口库中的无人机动力学核心计算模块,为多旋翼无人机提供真实准确的动力与气动受力建模,是构建完整Simulink无人机动力学仿真闭环的关键环节。模块支持多种多旋翼机架布局,可根据输入的机架参数、动力参数与气动参数,结合电机转速与无人机当前运动状态完成受力计算。

该模块通常对接PX4飞控输出的油门指令经电机响应模块处理后的转速信号,同时接入6DOF模块输出的无人机当前运动状态信息,计算得到的力和力矩输出将送入6DOF动力学积分模块完成无人机运动状态更新,配合CopterSim完成实时动力学仿真,也可对接RflySim3D实现无人机飞行过程的三维可视化展示。

端口说明

输入端口(Inputs)

端口名 数据类型 维度 说明
MotorRads double 1×8 各电机的转速,单位为rad/s,信号来自电机响应模块
6DOF Bus - 六自由度总线信号,由6DOF模块输出,包含无人机当前运动状态信息

输出端口(Outputs)

端口名 数据类型 维度 说明
FM double 1×6 机体坐标系下多旋翼飞行时受到的总力和总力矩,前3维对应力分量,后3维对应力矩分量

参数配置(Parameters)

双击模块打开的 Mask 对话框中可配置以下参数:

参数名 类型 默认值 可选值/范围 说明
Param_uavType int 4 正整数 机架布局参数,确定所有电机在机体坐标系下的位置
Param_uavR double 0.4 > 0 机架轴距,单位为m
Param_motorJm double 4e-6 > 0 电机螺旋桨转动惯量,单位为kg/m²
Param_rotorCm double 1.8e-6 > 0 螺旋桨力矩系数,单位为N/(rad/s)²
Param_rotorCt double 1.1e-5 > 0 螺旋桨拉力系数,单位为N/(rad/s)² [待确认]
Param_uavCd double 0.03 ≥ 0 气动阻力系数,单位为N/(m/s)^2
Param_uavCCm double [0.01 0.01 0.01] 3维元素≥0 气动阻尼力矩系数,单位为N/(rad/s)^2
Param_uavDearo double [0 0 0] 3维任意值 机架重心偏移量,单位为m

参数设置说明

Param_uavType

机架布局参数用于指定多旋翼无人机的电机布局类型,不同的取值对应不同的电机排布方案,模块会根据该参数自动计算每个电机在机体坐标系中的位置坐标。

Param_rotorCt

原始文档标注单位为 N.m/(rad/s)³,根据螺旋桨拉力系数的常规物理定义,通常单位应为 N/(rad/s)²,此处为文档标注存疑,使用时请结合实际测试校准。

Param_uavDearo

当无人机实际重心与机架几何中心不重合时,通过该参数设置重心相对于几何中心的三维偏移量,用于更准确地计算受力和力矩。

模块特性(Block Characteristics)

特性项
支持的数据类型 doublesingle
直接馈通
采样时间 继承
代码生成支持

数据通信协议

本模块不涉及网络通信。

相关模块

模块名 说明
FixedWingForceModel 计算固定翼无人机飞行时受到的力和力矩
SixDOF 提供六自由度刚体动力学仿真,输出无人机位置、速度、姿态等状态总线
MotorResponse 模拟电机转速响应特性,输出各电机实际转速

注意事项与常见问题

  • 初始化顺序:该模块依赖6DOF模块输出的六自由度总线信号与电机响应模块输出的电机转速信号,仿真运行前需保证对应前置模块已正确完成初始化,请勿将该模块放置在前置模块之前执行,否则会出现初始力力矩计算错误,导致仿真发散。
  • 输入维度匹配MotorRads输入的维度需要和你选择的Param_uavType机架布局对应电机数量匹配,例如选择X8机架时必须输入8维电机转速向量,维度不匹配会触发信号维度错误。
  • 参数单位要求:所有物理参数均使用国际单位制输入,轴距单位为米、转动惯量单位为kg/m²,拉力/力矩系数需严格按照文档要求的单位填写,错误的单位会导致力力矩计算结果偏差多个数量级,引发仿真异常。
  • 采样时间匹配:该模块为连续计算模块,若将其放置在离散任务中,需保证其采样时间不大于电机模块、6DOF模块的采样时间,否则会出现力力矩更新不及时,导致仿真结果出现振荡误差。
  • 重心偏移影响:若设置了非零的Param_uavDearo重心偏移量,该模块会额外计算重心偏移带来的附加力矩,若你的模型假设重心和机体重心重合,需要将该参数设置为零向量,避免引入额外的力矩干扰。

更新日志

  • v4.00 (2024-07-10): 初始版本,发布多旋翼力和力矩计算外层模块CopterForceModel,支持多旋翼机架布局配置、气动力与力矩计算功能。