
1) 【一句话结论】采用分层式冗余架构,通过多传感器/执行器冗余、故障检测与诊断(FDD)及容错控制(FTC)策略,实现故障下的系统重构与安全运行,兼顾性能与可靠性。
2) 【原理/概念讲解】首先,系统分层通常分为感知层(传感器)、控制层(控制算法)、执行层(舵机/电机)。冗余控制的核心是“多备份”,比如感知层用多个传感器(如IMU+GPS+视觉),执行层用冗余舵机。故障检测与诊断(FDD)常用方法:基于模型的残差分析(如卡尔曼滤波输出残差)、基于数据统计的异常检测(如均值/方差突变);容错策略包括故障隔离(切换到冗余模块)、控制律重构(调整控制律适应故障)、降级运行(减少功能)。安全性保障需设定安全边界(如姿态角、速度限制),故障时触发安全模式(如着陆、返航)。
类比:感知层冗余像给无人机装多个“眼睛”(IMU+GPS+视觉),执行层冗余像给每个舵机配“备用腿”,故障检测像医生用多种检查(血常规+CT)诊断疾病,容错控制像医生根据诊断结果调整治疗方案(换药或手术)。
3) 【对比与适用场景】
| 类型 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 冷冗余 | 故障时才激活的备份模块 | 无故障时无功耗,切换延迟大 | 关键传感器(如IMU) | 需要快速切换机制 |
| 热冗余 | 始终在线的备份模块 | 无切换延迟,但功耗高 | 执行器(如舵机) | 需要同步控制 |
| 温冗余 | 部分激活的备份模块 | 处于待机状态,功耗中等 | 控制律(如PID参数冗余) | 需要唤醒机制 |
| 软件冗余 | 多套控制算法并行运行 | 无硬件成本,但计算资源消耗大 | 控制律(如PID+LQR) | 需要算法一致性验证 |
4) 【示例】
# 伪代码:传感器数据融合与执行器切换
def sensor_fusion(sensor_data_list):
fused_data = {}
for key in ['acc', 'gyro', 'mag']:
fused_data[key] = np.mean([s[key] for s in sensor_data_list if s[key] is not None])
return fused_data
def actuator_switch(fault_status):
if fault_status['actuator1']:
return {'actuator1': 'actuator2', 'actuator2': 'actuator1'}
return {'actuator1': 'actuator1', 'actuator2': 'actuator2'}
# 故障检测示例(基于残差)
def fault_detection(sensor_data, model):
residuals = model.predict(sensor_data) - sensor_data
if np.linalg.norm(residuals) > THRESHOLD:
return True # 故障
return False
5) 【面试口播版答案】(约90秒)
“面试官您好,针对飞控系统的冗余控制架构设计,我的核心思路是构建分层式冗余架构,通过多传感器/执行器冗余、故障检测与诊断(FDD)及容错控制(FTC)策略,实现故障下的系统重构与安全运行,兼顾性能与可靠性。首先,系统分层分为感知层(IMU、GPS、视觉等)、控制层(控制算法)、执行层(舵机/电机)。感知层采用多传感器冗余(如IMU+GPS+视觉),执行层采用热冗余(双舵机),控制层采用软件冗余(PID+LQR)。故障检测与诊断方面,采用基于模型的残差分析(如卡尔曼滤波输出残差)和基于数据统计的异常检测(如均值/方差突变),当检测到故障时,通过执行器切换(如故障舵机切换到冗余舵机)或控制律重构(调整PID参数适应故障)实现容错。安全性保障方面,设定安全边界(如姿态角不超过30度、速度不超过5m/s),故障时触发安全模式(如自动着陆、返航)。这样,系统在传感器或执行器故障时,能快速切换到冗余模块,重构控制律,确保安全运行,同时尽量保持性能。”
6) 【追问清单】
7) 【常见坑/雷区】