智能能源燃料电池 650W/800W¶
本页介绍如何将 Intelligent Energy 的 650W 和 800W 燃料电池连接到 ArduPilot。燃料电池的遥测数据通过串口传输到 ArduPilot。这将提供以下反馈:
氢气罐液面百分比。
电池剩余电量百分比。
燃料电池状态。
错误代码。
设置¶
连接设备¶
将 UART 从燃料电池上的 "客户接口 "端口连接到(飞行)控制器上的任何串行端口。 参见设备用户手册 了解有关 "客户接口 "的详细信息。只需连接 GND、UART TX 和 UART RX。请参见下图:
参数配置¶
通过设置 基因类型 至 1。
燃料电池遥测数据通过串口传输。需要配置相应的串行端口来接收燃料电池数据。设置 serialx_protocol 发电机/燃料电池的参数为 30。
发电机/燃料电池库利用电池监控器 mavlink 信息在地面站显示燃料电池遥测数据。一个燃料电池需要两个电池监控器实例。一个用于燃料箱,另一个用于电池。设置 BATTX_MONITOR 参数设置为 17,以获取燃料电池的电气数据。设置另一个 BATTX_MONITOR 氢气罐遥测参数为 18。
该燃料电池装置仅报告电池剩余电量百分比和油箱剩余电量百分比。因此,必须为油箱和电池设置以下参数:
BATTX_CAPACITY = 必须设置为 100,以便在 GCS 上显示合理的百分比读数。
与容量相关的故障触发保护机制可使用 BATTX_LOW_MAH, BATTX_CRT_MAH, BATTX_ARM_MAH.
设置参数后重新启动(飞行)控制器,使设置生效。
提示
在这种情况下,请忽略这些参数的单位。容量仅以百分比的形式报告。因此,应在 1 至 100 的范围内输入数值。
备注
这些设备没有电压数据,始终报告 1 V 的固定电压。为避免低电压预设警报和故障保护 BATTX_ARM_VOLT = 0, BATTX_LOW_VOLT = 0,以及 BATTX_CRT_VOLT = 必须设置为 0 才能禁用该机型上与电压相关的故障保险。
燃料电池状态¶
燃料电池通过遥测报告状态。状态级别为
开始
准备就绪
跑步
故障
仅电池
每当燃料电池状态发生变化时,GCS 和飞行日志中都会显示一条信息。只有当燃料电池报告状态为 "运行 "时,才能对飞行器进行上膛。
防故障装置和臂前检查¶
故障保护和预先警报检查是硬编码的,以燃料电池发送的错误代码为基础。故障保护分为两组:低级和严重。错误代码组如下所示。如果从燃料电池接收到错误代码,则故障保护动作将由 battx_fs_low_act 和 battx_fs_crt_act 分别是
备注
对燃料电池内部错误代码的监控只能在为电气遥测分配的电池监控器实例上进行,用于上膛前检查和故障保护。因此,必须对电池电量监控器实例进行设置,以便根据错误代码触发故障触发保护机制。
故障安全低动作错误代码组¶
错误代码 | 定义 |
---|---|
0x4000000 | 风扇过电流(> 0.25 A) |
0x100000 | 燃料电池内部状态设置为 "停止"> 15 秒 |
0x20000 | 储罐压力 < 15 barg |
0x2000 | 堆栈 1 温度过低(< 5 摄氏度) |
0x1000 | 2 号堆栈温度过低(< 5 摄氏度) |
0x800 | 电池电压不足警告(21.6 V) |
0x200 | 风扇脉冲中止 |
0x100 | 叠加电压不足(650 瓦 < 17.4 伏,800 瓦 < 21.13 伏) |
0x80 | 堆栈电压不足,电池电量低于临界值(< -200 W) |
0x10 | 电池充电器故障 |
0x8 | 电池温度过低(< -15 摄氏度) |
故障安全关键动作错误代码组¶
错误代码 | 定义 |
---|---|
0x80000000 | 堆栈 1 超温警报(>58 摄氏度) |
0x40000000 | 堆栈 2 超温警报(>58 摄氏度) |
0x20000000 | 电池电压不足警报(<19 V) |
0x10000000 | 电池超温警报(>65 摄氏度) |
0x8000000 | 未检测到风扇电流(<0.01 A) |
0x2000000 | 堆栈 1 超温临界(>57 摄氏度) |
0x1000000 | 堆栈 2 超温临界(>57 摄氏度) |
0x800000 | 电池电压不足警告(<19.6 V) |
0x400000 | 电池超温警告(>60 摄氏度) |
0x200000 | 燃料电池内部状态 == 启动 > 30 秒 |
0x80000 | 储罐压力 < 6 barg |
0x40000 | 储罐压力 < 5 barg |
0x10000 | 燃料电池的内部安全标记未设置为真 |
0x8000 | 堆栈 1 拒绝启动 |
0x4000 | 堆栈 2 拒绝启动 |
0x400 | 电池电压不足(21.6 V),主控失电 |
0x40 | 过压和过流保护 |
0x20 | 序列号无效 |
示例¶
本示例旨在说明如何设置故障安全操作。
电池监测器的配置是,电能遥测数据在电池监测器 1 上,氢气罐遥测数据在电池监测器 2 上:
BATT_MONITOR = 17(电气数据)
BATT2_MONITOR = 18(油箱数据)
然后在电池监控器 1 上设置与上述错误代码组相对应的故障保护措施,因为电池监控器 1 与电气遥测数据相关。
batt_fs_low_act = 2 (RTL)
batt_fs_crt_act = 1(陆地)
在电池监控器 2 上设置了油箱油位故障安全保护,当油箱油位低于 25% 时,载具将返回陆地。设置方法如下
batt2_fs_low_act = 2 (RTL)
BATT2_CAPACITY = 100
BATTX_LOW_MAH = 25
如前所述,该模型可以使用电池容量故障保险。因此,在发电机/燃料电池监控实例中设置了临界电压故障安全保护,作为最后的 "皮带和支架 "方法,一旦电池剩余电量降至 40%,就会立即启动着陆:
BATT_CRT_MAH = 40
电池电量 = 100
司机不健康¶
如果您看到 发电机/燃料电池不健康 则表明 ArduPilot 在至少 5 秒钟内未收到来自燃料电池的任何数据包。请查看以下内容,了解导致此问题的常见原因:
燃料电池启动
遥测连接到(飞行)控制器串行端口。
串行连接已正确接线(TX->RX,RX->TX)。
"这款" serialx_protocol 参数设置为正确遥测端口的发生器。
飞行日志数据¶
燃料和电池电量按已用百分比记录。它们记录在 "BAT "数据组中。使用的电池将显示在电气实例的 "CurrTot "下。使用的燃料将显示在燃料实例的 "CurrTot "下。
燃料电池状态和错误信息存储在 "MSG "数据组中。