冗余架构基础:主备模式、双机热备、三模冗余(TMR)、N模冗余架构对比

聊到飞控冗余设计,绕不开的就是架构选型。我见过不少团队,一上来就拍脑袋说「我们要做三模冗余」,结果成本翻了三倍,可靠性却没提上去多少。说白了,冗余不是堆硬件,而是找对路子。

今天我把四种主流架构掰开揉碎讲清楚。每种架构我都亲手调过、踩过坑,希望能帮你少走弯路。

1. 主备模式(Active-Standby)

这是最朴素的冗余方式。一台主节点干活,一台备节点待命。主节点挂了,备节点顶上。

工作流程:

  • 主节点正常运行,输出控制信号
  • 备节点持续监听主节点的心跳
  • 心跳丢失,备节点接管控制权

核心指标:切换时间通常在 50ms~200ms 之间。我做过一个项目,切换时间要求 20ms 以内,最后不得不用硬件看门狗+FPGA 来实现。

优点:

  • 结构简单,成本低
  • 功耗控制好(备节点可降频运行)

缺点:

  • 切换期间存在控制中断
  • 备节点长期不工作,可能「睡死」

我的经验:主备模式适合对成本敏感、允许短暂中断的场景。比如农业无人机,掉几秒控制问题不大。但你要是做载人飞行器,这方案我劝你慎重。

2. 双机热备(Active-Active / Hot-Standby)

双机热备和主备模式最大的区别在于:两台机器同时运行,输出结果实时比对。

工作流程:

  • 两个节点同时接收传感器数据
  • 各自独立解算控制律
  • 输出结果通过交叉通道比对
  • 不一致时触发故障处理

为什么会这样设计?因为主备模式有个致命问题——备节点可能已经坏了,但你不知道。双机热备让两台机器互相监督,谁也别想偷懒。

注意:双机热备需要解决「脑裂」问题。两台机器都认为对方挂了,各自独立输出控制信号,那飞机就等着解体吧。我当年在某个项目中就遇到过,最后加了第三路仲裁通道才搞定。

优点:

  • 切换时间极短(< 10ms)
  • 故障检测率高

缺点:

  • 功耗翻倍
  • 需要额外的仲裁逻辑

3. 三模冗余(TMR)

TMR 是航空级飞控的标配。三个通道同时运行,输出结果三取二投票。

核心逻辑:

// 三取二投票伪代码
if (out1 == out2 || out1 == out3) {
    final_out = out1;
} else if (out2 == out3) {
    final_out = out2;
} else {
    // 三个都不一致,进入安全模式
    trigger_failsafe();
}

嗯,这里要注意:投票不是简单的数值相等。浮点数比较要设阈值,我习惯用 5% 的容差窗口。

优点:

  • 单点故障不影响系统
  • 可容忍一个通道失效

缺点:

  • 成本是单系统的 3 倍以上
  • 共因失效风险(三个通道用同一款传感器,一个批次全坏)

避坑指南:我曾经在一个项目中,三个通道用的都是同一批 IMU。结果温度冲击测试时,三个 IMU 同时漂移,投票结果一致但全是错的。从那以后,我坚持 TMR 必须用异构传感器——不同型号、不同厂商、甚至不同原理。

4. N模冗余

N模冗余是 TMR 的泛化版本。N 个通道,K 个通过投票(N 选 K)。

常见配置:

配置 可容忍故障数 典型场景
3 选 2 1 中小型无人机
4 选 2 2 载人飞行器
5 选 3 2 航天级

你想想看,N 越大,容错能力越强,但代价是指数级上升的。4 选 2 比 3 选 2 多了一个通道,但投票逻辑复杂了不止一倍。

我的建议:不要盲目追求高 N 值。对于大多数工业级无人机,3 选 2 已经足够。再往上加,边际效益递减明显。

架构对比总览

我把四种架构的核心参数整理成了一张表,方便你快速对比:

特性 主备模式 双机热备 TMR N模冗余
切换时间 50~200ms < 10ms 无切换(持续投票) 无切换
成本倍数 1.5x 2x 3x Nx
故障检测 被动 主动比对 投票自检 投票自检
脑裂风险
适用等级 消费级 工业级 航空级 航天级

架构选型决策树

我习惯用一张图来帮团队做决策。下面这个 SVG 是我自己画的,你可以直接拿去用:

冗余架构选型决策树 系统可靠性要求 低(消费级) 中(工业级) 高(航空/航天) 主备模式 双机热备 TMR / N模冗余 成本敏感 → 主备 可接受2倍成本 → 热备 安全第一 → TMR 推荐:主备模式 成本最低,切换可接受 推荐:双机热备 平衡成本与可靠性 推荐:TMR 最高可靠性保障 注:N模冗余(N>3)适用于航天级场景,成本随N值线性增长

我的选型建议

做了这么多年飞控,我总结了一条原则:冗余不是越多越好,够用就好

  • 预算有限、允许短暂中断 → 主备模式。我早期做植保无人机就用这个,成本控制得很好。
  • 需要高可用、但成本敏感 → 双机热备。注意一定要解决脑裂问题,加个硬件仲裁器最稳妥。
  • 安全关键系统 → TMR。异构设计是必须的,别省这个钱。
  • 航天级 → N模冗余。但说实话,我接触过的航天项目,4 选 2 已经顶天了,5 选 3 极少见。

最后提醒一句:无论选哪种架构,都要做故障注入测试。我曾经见过一个双机热备系统,平时跑得好好的,一注入故障就死机。原因?备节点的看门狗没配置对。这种低级错误,测试才能发现。


公众号:蓝海资料掘金营,微信deep3321