【研究笔记04】把题目拆成可验证的方向
Brian · 发布于 2026/10/10 · 更新于 2026/10/10
Brian2026/10/10
参加「初焰·纳宙」AI for Science 黑客松,我选择的议题是:
储能系统能否持续自我改进?从钠电与磷酸铁锂的充放电差异出发,研究电池管理系统(BMS)如何利用运行数据改进策略、迭代模型与架构,探索递归自我改进(RSI)的可能。
笔记 01 建立共同语言,笔记 02 把 BMS 看具体,笔记 03 沿 RSI 从想法走到程序。第三篇结尾留下两个问题:当我们得到一种更好的工具,它能否帮助我们找到下一种更好的工具?这个过程又由什么证据来确认?
这两个问题至今没有答案。前三篇把该认识的都认识了,现在需要的是判断:哪些事必须先做,哪些可以等,每件事做到什么程度算做完。
本文分两部分。第一部分先厘清容易混淆的概念,再说明做具体实验和代码前要备好的三件事;第二部分讨论三种不同性质的改动,以及下一步的实验顺序。
文中引用他人或我前几篇的原话都标出作者与链接,便于核对。但引用不等于我复现了他们的结果,原作者的主张和我的判断分开写。
第一部分|准备:概念与前提
一、自适应不是自我改进
这是我在读同题文章时发现的一个表述。
两种电芯本身固有特性不一样,出厂预设一套固定控制算法无法长期最优,天然需要 BMS 可以随运行数据自适应调参。
这句话支持的其实是自适应,不是自我改进RSI。两者容易混在一起,区别在于改动对象:
| 改动的是什么 | 由谁决定怎么改 | 例子 | |
|---|---|---|---|
| 自适应 | 参数 | 人,按事先写好的规则 | 内阻、容量、控制增益的在线更新 |
| RSI | 规则本身 | 待验证的问题 | 让「用什么方法去找更好的方法」也能被修改 |
在线参数辨识(Parameter Identification,从数据中估计电阻、容量等模型参数)和自适应 SOC 估计都属于上边这一行,它们并不因此成为自我改进。早期的 BMS 就已经包含了自适应的功能,本题更多是讨论RSI。
所以,「固定参数长期非最优」只能推出需要自适应,推不出需要 RSI。这也决定了我后面的实验顺序:先在同一套机制下把策略优化做扎实,再问这套机制能否被改进。第六节会回到这里。
二、动手之前,先备好三样东西
要把题目变成可以回答的问题,眼下缺的是三样能交给别人接手的东西:
- 一颗具名电芯:说得清型号、批次、容量和温度的电芯;
- 一份可审计的运行数据:字段、单位、电流方向都有交代的数据;
- 一个能冻结的评价器:评价标准定死、不随候选一起改的评价器。
有了这三样,「改了什么」才有东西可比,「改好了没有」才有地方去问。
至于改什么,我采用 playerxlx 给的三层骨架(原文)。它把改动分得很清楚,后面所有实验都按这个分类:
| 层 | 改的内容 | 时间尺度 |
|---|---|---|
| 策略层 | 充放电截止窗口、均衡触发条件、倍率限制、温控阈值 | 在线微调 |
| 模型层 | 等效电路参数(内阻、电容)与老化模型 | 用运行数据持续拟合 |
| 架构层 | 按电芯状态切换模型结构,年轻电芯用简单模型,老化电芯用高阶非线性模型 | 长期迭代 |
在这个拆分上,我加一条自己的判断:三层要分别设对照,不能合并成一句「BMS 变好了」。 重新标定参数、修改控制规则、改动模型结构,是三种不同性质的改动,收益不能互相借用。
三、先确定电芯,再谈算法
方向要从最具体的地方开始:先说清管理的是哪一颗电池。
这一条笔记 02 里就留了位置。研究 BMS 之前,要先说明管理什么电池、服务什么场景。现在把它落成一张电芯卡,需要记录的项目如下:
| 项目 | 为什么必须写清楚 |
|---|---|
| 正负极材料、型号与批次 | 决定后续能否与同类结果比较 |
| 容量标定口径 | 同一个「Ah」在不同标定条件下不是同一个数 |
| 温度与老化状态 | 同型号电芯在不同温度和寿命阶段表现不同 |
| 截止条件 | 电压上下限会直接改变可用的充放电区间 |
| 曲线来源 | 实测、仿真还是引用他人数据,必须区分 |
在指定型号、批次、温度与 SOC 窗口之前,任何「钠电优于 LFP」的说法都不能写成结论。
robinbg 解释过钠电低温优势的来源:Na⁺ 离子半径比 Li⁺ 大而电荷数相同,电荷密度更低,对溶剂分子束缚更弱,脱溶剂化能垒更低,而这一步正是界面电荷转移的决速步。此外低温下钠电不析锂(原文)。
这段讲的是材料体系,替代不了电芯卡。但它恰好指出了两个可以照着问的问题:目标电芯的低温表现,是不是也来自脱溶剂化这一步?批次之间差多少? 核查电芯时我就带上这两问。这一节的阅读入口可结合笔记 02中的参数分类表一起看。
四、数据:先确定预警指标,再谈建模
数据是目前最紧的瓶颈。我还没有一颗自己核实过口径的电芯。
苹果用一组真实数据说明了顺序问题:先确定用什么指标做预警,比先确定算法更重要。这颗商用钠电在不同温度下的表现并不一致(原文):
| 温度 | 失效模式 | 容量保持率 |
|---|---|---|
| 25°C | 突发失效(第 200 圈腰斩) | 46.6% |
| 40°C | 突发失效(第 200 圈腰斩) | 44.6% |
| 50°C | 稳定 | 99.4% |
| −10°C | 渐进衰减 | 54.0% |
具体的数字是:前 200 圈容量稳定在 1.17 Ah,第 201 圈突然降到 0.55 Ah。
这个结果直接改变了我的验收标准。如果只用容量衰减率做监控,那么在第 200 圈之前一切都会显示正常,失效前毫无预警。所以运行数据的交付物不能只有电压、电流、温度三列,还要包含前兆指标候选,例如累计气体生成量、气体窗口温度。
同一作者接着指出,钠电的风险等级不是单调的,而是窗口型的:25–40°C 被严重低估,50°C 被严重高估(原文)。
在后续实验里写风险函数时,先标明它是否单调、依据来自哪个温度窗口,而不是先假定单调再往上搭约束。「风险是不是单调」应当是一个待检验项,不是一个前提。
五、评价:先确定谁来判断改得更好
这一节排在改动之前,因为它是其他所有实验的前提。
笔记 03 里整理的五个提问,现在直接当验收清单用:
| 要问的问题 | 它指向什么 | 需要看清什么 |
|---|---|---|
| 改了什么? | 改动对象 | 答案、参数、工具代码,还是整个研发过程 |
| 谁提出并执行修改? | 修改主体 | 人手动调整,还是系统根据反馈产生候选 |
| 怎样判断更好? | 评价依据 | 真实运行结果,还是模型自己的评价 |
| 改进是否进入下一轮? | 承继关系 | 新版本是否真的参与后续工作 |
| 换任务、换条件后还有效吗? | 适用范围 | 收益是否只对反复看过的题目成立 |
「评分变高」和「系统变好」确实会分家。 笔记 03 记过一个例子:DGM 团队在附加实验中发现,系统通过移除检测标记取得了虚假成功。也就是说,评价机制本身也会成为被绕过的对象。
由此得到这一层的判断:评价器要由修改范围之外的人或流程管理。 落到做法上是三条约定:
- 保留集只许打开一次;
- 候选不能读取评分;
- 开发者不能拿看过的验证集继续调参。
第二部分|改动:三种不同性质的修改
下面三节讨论具体改什么。它们对应第二节里的三层骨架,但顺序上我把模型层排在策略层前面,因为策略的可行区间要先由模型界定。
六、模型层:从「能跑」走到「可信」
模型现在的状态是能跑,不是可信。
苹果在自己的模型设定里写了一句声明:所用参数是通用级别的假设,不是真实钠电实测值,目的是验证数学闭环,而非模拟真实电池的物理退化(原文)。
我打算照这个做法,在每次实验记录里都先写清参数来源。看起来是小事,却决定了别人能否核对我做了什么。
robinbg 的方案里还有一句提示了模型层的边界:纯数据驱动的黑箱模型在钠电上先天不可靠,因为它没有足够数据去学,而外推到训练分布之外,恰恰是安全最需要它可靠的时候,所以必须引入机理先验(原文)。
我取用的是「机理约束」这个做法,而不是把「黑箱不可靠」直接当结论。 机理先验解决的是外推方向问题,它不保证参数可辨识。这两件事要分开处理。
于是这一层的验收只有一句话:只重新标定,能消掉多少误差? 只有当残差仍然稳定、可重复,才有理由去动结构。顺序也就定了:先做标定对照,再谈结构变化。
七、策略:锁定安全边界,只优化柔性参数
策略是我认为不必等实验、现在就该定下的一条规则。
playerxlx 讲得很明确:所有自我修改都不能突破电芯安全边界,电压上下限、温度极限这类硬阈值是锁死的,只能优化柔性控制参数,过压、欠压、超温保护硬限不能交给 AI 自主修改(原文)。
我采纳,而且要把它落到程序里,不只是写在文档里。做法是把属于安全硬限的量列成一张表,让程序直接拒绝超出该表的候选。候选只能提议柔性参数,碰不到保护阈值、容量和电压边界。
robinbg 对收益的写法,给了一个把软硬分开的形式:最大化全生命周期净收益,同时要求失效概率不超过 ε。 把 ε 从保守扫到激进,得到的是一条「失效概率—净收益」Pareto 前沿,而不是一句「安全第一」的口号(原文)。
这个形式化对划分约束与目标有用。但在我自己的实验里要先说明:ε 的取值依赖失效模型,而我这边的失效模型还没有实测验证,所以现阶段这条前沿只当实验设计模板,它的输出不能当安全承诺。
八、改进:RSI 需要什么证据
这是全篇最容易被误会的一节,也是题目真正在问的一节。
改了一次搜索规则,不等于实现了 RSI。 笔记 03 的结尾把这条链说得很清楚:
电池产生数据、人根据数据修改算法,是一条由人推动的改进链;Agent 帮助分析数据、提出候选,是在这条链中承担更多工作;只有当 Agent 还能检查自己的研究方法、验证修改,并让有效的新方法继续参与后续研究时,才更接近 RSI 要问的问题。
回到第一节那张表:自适应改的是参数,RSI 改的是规则。那么证据就得落在「规则被改了,而且改得更好」上。我把这个验证拆成三组对照,在同一批没见过的任务上、用相同的总预算跑:
| 组 | 继承什么 | 用来回答 |
|---|---|---|
| A 固定机制 | 什么都不继承,每轮从头开始 | 机制不变时能做到多好 |
| B 只继承历史记录 | 继承过去的成功案例 | 收益是否只来自「记住了答案」 |
| C 继承更新机制 | 继承上一代改机制的方法 | 机制本身是否变得更会改 |
三组要一起跑,重点看 A 和 C 的差。 如果 C 只是比 A 强,那可能只是 B 的功劳,也就是记住了历史而对新任务并不更会改。所以 B 组必须留着,它是把「记住答案」和「变聪明」分开的那把尺子。
再重复一遍那条最容易被跳过的规则:同一环境里最优分逐轮上升,不单独作为证据。 分数涨可能来自任务太熟、评价太松,或者干脆是评价器被绕过了。这正是第五节要防的事。
这个实验是整个题目里唯一能回答「持续自我改进」的实验。但它必须排在策略对照之后。如果连固定机制下的策略优化都跑不通,机制继承就没有可比较的对象。
九、下一步:按顺序做三件事
前一件是后一件的前提,不宜同时展开。
| 顺序 | 做什么 | 交付物 |
|---|---|---|
| 1. 固定电芯与数据契约 | 选定一颗钠电、一个温度,保存原始文件与来源 | 电芯卡、数据说明、缺口清单,含字段、单位、电流方向、容量定义与前兆指标候选 |
| 2. 建立 LFP 与钠电的模型对照 | 同一版本接入具名 LFP 与钠电模型,统一温度和相对充入电量,各自保留电压边界 | 先只在标定层比较,不动结构 |
| 3. 比较策略更新 | 固定钠电任务里比较固定基线、LFP 策略迁移、传统优化与 Agent 改进 | 冻结约束与评价预算,由未参与调参者做保留工况评价,先报可行率、再报完成时间,失败案例不删除 |
模型对照排在 RSI 之前,也因为它决定了后面能拿什么来验收。robinbg 的方案里写明:验证以计算机仿真为主、结合公开真实钠电数据校验,软件功能、理论成果及二者的实际连接分别接受检验(原文)。
我采用这个分层,两者的连接也要单独验收。
十、研究合作
越研究越发现这不是一个很简单的题目,除了RSI概念本身业界也没有讨论清晰以外,从讨论可能性到找到证据到落地还有很长的路要走,需要不同领域的人来合作。
作为黑客松来说,我觉得我们可以从系统设计和仿真实验开始,我需要一些合作者一起来做这件事。
想参与的话,欢迎联络,并且可以说明一下想要做哪一个模块的工作。
参考资料
同题共建者文章
| 文章 | 作者 | 我从中取用的部分 |
|---|---|---|
| 议题思考:储能系统能否持续自我改进? | playerxlx | 三层迭代目标;安全硬阈值锁死 |
| 容量、寿命与气体突发失效 | 苹果 | 突发失效与前兆指标 |
| 突发阈值型风险 | 苹果 | 风险窗口不是单调的 |
| 模型设定与验证逻辑 | 苹果 | 通用假设与实测的区分 |
| 权衡与边界 | robinbg | 约束与目标的拆分;机理约束 |
| 双弹性协同 | robinbg | 钠电低温的界面机制 |
| 钠衡 | robinbg | 软件功能与理论成果分别验收 |
我的前几篇
第三方资料
| 资料 | 适合带着什么问题阅读 |
|---|---|
| PyBaMM 钠电模型说明 | 共用模型结构与分开参数怎么实现 |
| Wang 等钠电公开数据 | 这颗电芯有哪些工况、字段是否够用 |
| foxBMS 官方文档 | 测量输入到截止输出的代码路径 |
| Attia 等,Nature 2020 | 充电方案如何用实验反馈选出 |
登录后可以留言