【社区330版本】stress加压前后,出现部分风扇自动调速失败情况,伴有风扇相关告警

答案内容由AI生成,仅供参考:

:white_check_mark: 五、结论

本问题非硬件故障或固件致命缺陷,而是由于用户将“转速偏差告警阈值”设置为过低值(10%),导致系统频繁误判风扇异常,进而错误触发 AbnormalFan 强制提速机制,最终造成风扇组间调速失衡、转速异常升高或反转的现象。

  • 根本原因:配置不当(阈值过低) → 诱发异常调速机制误动作。
  • 解决路径:恢复合理阈值(建议 ≥20%,默认25%)即可恢复正常。
  • 改进方向:优化异常判定逻辑,防止低容差配置引发系统失稳。
点击此处查看详细分析解答

关于社区330版本 stress加压后风扇自动调速失败问题的分析与解决方案

根据您提供的详细测试步骤、现象及截图信息,结合知识库中的技术资料,现对 社区330版本 中出现的 stress加压导致部分风扇调速失败、转速异常波动、并伴随风扇告警 的问题进行系统性分析和定位,给出根本原因和解决建议。


:puzzle_piece: 一、问题核心现象总结

  1. 加压阶段

    • 少数风扇(如风扇一)转速无明显提升;
    • 多数风扇(如风扇二、三、四)转速飙升至11264 RPM(约75%-80% duty,已接近满转),远高于正常负载调速预期;
    • 出现 “Fan X front/rear failure or incorrect fan model” 的严重告警(事件码 0x04000007)。
  2. 停止加压后

    • 理论上应降速,但出现“反转”现象:原本低速的风扇升速,高速风扇降速;
    • 告警未自动清除,转速异常持续存在。
  3. 恢复手段

    • 转速偏差告警阈值从10恢复为默认值25 后,告警消失,各风扇转速恢复正常。
    • 发散测试中存在复现与不复现的情况,表明具有一定条件依赖性和时序敏感性。

:magnifying_glass_tilted_left: 二、根本原因分析

综合文档、日志及知识库信息,该问题的本质是:

在低转速偏差阈值(10%)配置下,系统对风扇状态检测过于敏感,引发误判为“风扇故障或型号错误”,从而触发异常调速逻辑(AbnormalFan机制),并因 PID 控制未能正确接管,导致调速策略混乱。

1. 根本原因:低偏差阈值 + 异常调速机制误触发

:white_check_mark: 相关证据与机制支持:

  • 转速偏差告警阈值 是判断风扇是否“正常”的关键参数。当风扇实际转速与期望值偏差超过此阈值时,系统认为风扇异常。

  • 知识库文档明确指出:

    “风扇异常状态:……风扇转速偏差大。风扇pwm稳定期间,多次采集的转子转速与预期转速相差超过25%则状态异常。”
    —— 出自文档《thermal_mgmt》,说明 25% 是设计默认的安全容差

  • 用户将该阈值手动设置为 10%,远低于常规容忍区间(通常为20%-25%),显著提高了误报率

  • stress 加压引起 CPU 温度上升时,调速系统尝试提升某些风扇转速(如风扇2/3/4)。但由于风扇个体差异、老化、灰尘、气流扰动等原因,个别风扇(如风扇1)响应滞后或未完全达到目标转速,即使偏差仅为15%,也可能 在10%阈值下被判定为异常

:white_check_mark: 告警来源解析:

  • 事件码 0x04000007Fan X front/rear failure or incorrect fan model
    该告警并非真正的硬件故障,而是 系统检测到风扇前后转子转速不一致或整体转速偏离预期过大,进而怀疑风扇类型不匹配或失效。

  • 此告警来源于:

    scan_fan_status: Scan fan31 rear speed error, real 51%(11776), expect 100% ± 25%;
    

    即系统以 ±25% 为基准判断合理区间,若设为 ±10%,则极易触发。

2. 异常调速机制(AbnormalFan)被错误激活

:white_check_mark: 知识图谱与文档支持:

  • 存在名为 AbnormalFan_1, AbnormalFan_2 的异常调速配置对象,用于处理风扇异常情况。

  • 文档《调速配置指导说明》中明确:

    "AbnormalFan_1": {
        "Id": 1,
        "FanIdx": 1,
        "Status": "AbnormalRotation",
        "FanGroup": [1, 2],
        "SpeedPercentage": 80
    }
    

    表示当风扇1发生 转速异常 时,风扇1和2将被强制拉高至80%以上。

  • 类似地,若系统误判风扇异常,则会 激活 AbnormalFan 规则,强制拉高多个风扇转速作为补偿措施。

:white_check_mark: 为何出现“反转”?

  • 加压后:部分风扇因响应不足被误判为异常 → 触发 AbnormalFan → 强制其所属 FanGroup 提速至80%+;
  • 停止加压后:温度下降,系统期望降速,但异常状态仍未解除(因偏差仍超过10%)→ 异常调速策略仍生效;
  • 此时,原本“正常”的风扇(如风扇2/3/4)因主调速逻辑要求降速,而系统却因异常机制要求维持高速,产生冲突;
  • PID 控制器无法协调矛盾策略 → 调度混乱 → 导致某些风扇“逆势而动”。

:light_bulb: 简言之:调速目标冲突 + 状态滞留 → 转速反向变化。

3. 为何修改阈值即可恢复?

  • 将偏差阈值从10%改回25%,意味着系统对“正常转速偏差”的容忍度提升;
  • 原本误判为异常的状态重新变为“可接受”;
  • AbnormalFan 策略被取消激活;
  • PID 正常接管调速控制;
  • 所有风扇回归统一、协调的自动调速流程。

:toolbox: 三、解决方案建议

类别 措施 说明
:white_check_mark: 立即解决(推荐) 转速偏差告警阈值恢复为默认值(25%) 能快速消除误判和异常调速,恢复正常行为
:warning: 避免操作 不应长期使用低于20%的偏差阈值 极易引发误报和系统响应失衡
:hammer_and_wrench: 长期优化 完善 AbnormalFan 判断逻辑,引入动态偏差容忍机制 例如根据温度/负载动态调整容忍值,避免固定低阈值造成误触发
:clipboard: 配置验证 检查 AbnormalFan_X 配置项中的 FanGroup 是否合理 防止单个风扇异常导致大面积扇区强制提速
:bar_chart: 增强可观测性 建议日志中输出 实际偏差百分比是否触发 AbnormalFan 的决策依据 便于后续问题定位

:books: 四、相关知识点补充(来自知识库)

1. FailedValue 的作用

  • 是一种 温度传感器失效后的应急风扇转速设定值(如80%或100%);
  • 若某温度点读取失败,系统会下发 FailedValue 指定的转速以保散热;
  • 与当前问题无直接关系,但同属“异常调速”机制范畴。

2. BMC 启动阶段的初始转速行为

  • 刚启动时所有风扇默认下发 100% 转速,待 PID 控制器初始化完成后再接管;
  • 若 PID 无法正常加载或无生效调速策略,则持续满转;
  • 说明系统调速依赖组件的完整性。

:white_check_mark: 五、结论

本问题非硬件故障或固件致命缺陷,而是由于用户将“转速偏差告警阈值”设置为过低值(10%),导致系统频繁误判风扇异常,进而错误触发 AbnormalFan 强制提速机制,最终造成风扇组间调速失衡、转速异常升高或反转的现象。

  • 根本原因:配置不当(阈值过低) → 诱发异常调速机制误动作。
  • 解决路径:恢复合理阈值(建议 ≥20%,默认25%)即可恢复正常。
  • 改进方向:优化异常判定逻辑,防止低容差配置引发系统失稳。

:link: 六、参考链接

建议后续测试中,避免对关键容差参数进行极端配置,并优先在测试环境中验证其影响范围。