Skip to content

添加自适应自动风扇控制#29

Merged
massif-01 merged 2 commits into
RMinte:mainfrom
massif-01:massif/adaptive-auto-fan-control
May 25, 2026
Merged

添加自适应自动风扇控制#29
massif-01 merged 2 commits into
RMinte:mainfrom
massif-01:massif/adaptive-auto-fan-control

Conversation

@massif-01
Copy link
Copy Markdown
Collaborator

@massif-01 massif-01 commented May 23, 2026

概要

这个 PR 将现有风扇 AUTO 模式接入自适应闭环控制,同时保持 CURVE、手动模式和既有风扇 NVS 配置兼容。

主要改动:

  • 为自动化变量增加 last_update_msage_msstale 等新鲜度信息。
  • 变量温度源只在所有正权重绑定变量 fresh 且数值有效时参与控制。
  • 保留 temp.bind 多变量加权:加权结果作为控制温度,绑定变量中的最高 fresh 温度作为保护温度。
  • AUTO 模式在没有可用 fresh 温度输入时立即进入 100% 安全满速。
  • 95°C 触发硬保护满速,降到 90°C 并持续 30 秒后释放。
  • 自适应学习只在本次运行内生效,不写入 NVS,不做 GPU profile cache。
  • 不新增 adaptive 模式,不修改 fan_nvs_config_t,不提升 FAN_CONFIG_VERSION
  • fan.status 增加自动控制遥测字段,并在 WebUI 中增加自动模式说明弹窗。
  • 同步更新温度 API、控制台命令和相关文档。

背景和原因

旧的 AUTO 路径在变量输入断流时存在把默认 25°C 当作有效温度的风险,这会让风扇在温度数据失效时错误降速。这个 PR 的核心修正是把变量新鲜度变成明确合同,并让 AUTO 在温度输入失效时优先保护设备。

用户影响

用户仍然点击原来的“自动”按钮,不需要选择新模式。绑定多个温度变量后,系统会按权重计算控制温度,同时用绑定变量里的最高 fresh 温度做保护,避免热点温度被平均值稀释。

曲线模式保持原行为:它仍然按用户配置的温度曲线和迟滞运行。自动模式则以曲线为基线,再根据升温趋势、预测温度和散热响应动态加速或缓慢降速。

验证

本地已运行:

  • node --check components/ts_webui/web/js/app.js
  • node --check components/ts_webui/web/js/lang/zh-CN.js
  • node --check components/ts_webui/web/js/lang/en-US.js
  • git diff --check

本地未运行:

  • ESP-IDF build。本机环境没有 idf.py,需要在 ESP-IDF 5.5.2 环境中继续验证。

@massif-01 massif-01 marked this pull request as ready for review May 23, 2026 14:08
@massif-01 massif-01 changed the title Add adaptive auto fan control 添加自适应自动风扇控制 May 23, 2026
PR 合并 LPMU 接入 API 后总端点数为 257,超过 256 上限导致
config.pack API 注册失败,进而 webui 服务无法启动。
@massif-01 massif-01 merged commit fa50320 into RMinte:main May 25, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant