ARTICLE · 1068242
AI开始用上电力专业软件了
AI开始用上电力专业软件了把这个问题交给AI,常见的结果是一段解释。负荷上升,线路潮流加重,远端节点电压往下走,重载设备要多留意。这些话都对,可它说不出具体是哪几条、哪几个。要回答到这一步,得有人打开算例,调整负荷,跑潮流,再把前后结果放在一起比。 这一步现在也有AI参与了。哈佛大学工程与应用科学学院的电力与AI计划(Power and AI Initiative,PAI)维护着一个叫PowerAgent的开源社区,主页上列着一项负荷增长评估演示,说明写的是让大语言模型操作PowerWorld,评估不同的负荷增长情景,生成带建议的分析报告。 我把这个社区的主页、代码仓库和技能说明翻了一遍。比起演示本身,我更关注它背后的分工。电网怎么算,仍然交给电力专业软件;AI负责把一个问题拆成软件能执行的步骤,再把结果收拢回来。 PowerAgent把自己的工作分成四块。PowerFM收集电力领域的基础模型,PowerWF整理智能体工作流,和本文关系最大的是另外两块,PowerMCP和PowerSkills。代码都放在GitHub上,采用MIT开源许可。 PowerMCP是一组接口程序,把电力软件的功能交给AI调用。目前接入的软件已经不少,商业软件有PowerWorld、PSS/E、PSLF、PowerFactory、PSCAD等,开源工具有pandapower、OpenDSS、PyPSA、ANDES等。每个接口开放的功能不一样,能做哪些研究,要看具体接口和本机软件的配置。 PowerSkills是一组写给AI看的工作说明,告诉它用这些软件做研究时先做什么、后做什么,发现问题以后该往哪里走。 所以这里没有一个“更懂电力的新模型”。AI用的是通用大模型,计算交给专业软件,项目补上的是两者之间的连接和做研究的方法。 下面用一个说明性的任务把过程串起来。10%和20%是为了说明而设定的情景,项目并没有公布这样一组实验数据。 第一件事是把条件说清楚。调整哪个区域,负荷按原有比例放大还是集中加在几个节点上,无功怎么跟着变,电压和负载率按什么标准判断。这些条件人不交代,AI就只能自己补,补出来的电网未必是你想研究的那张。 条件定下来,AI开始调用软件。PowerMCP给PowerWorld准备的工具里,有打开算例、运行潮流、读取潮流结果、修改并确认参数、预想故障分析,还有导出雅可比矩阵、PTDF、LODF等灵敏度矩阵的工具。一次负荷增长比较,大体就是把前面几个工具按顺序用起来。打开算例,算出基础潮流,记下关注对象的电压和负载率,再改负荷,重新计算,读回同一批数值。 AI怎么知道有这些工具可用,靠的是模型上下文协议(Model Context Protocol,MCP)。这是一套让AI应用发现和调用外部工具的约定,每个工具叫什么、要哪些参数、执行完返回什么,都按统一格式写好。AI应用读到这份清单,就能像调用函数一样调用软件,不用在界面上找菜单、点按钮。 这个次序里,基础潮流最容易被跳过,也最不能跳。负荷增长以后某个节点电压偏低,得先知道它原来是多少,原本就贴着限值的问题,不能算到新增负荷头上。PowerSkills给PowerWorld和pandapower写的说明,都把“先把基础算例算通”放在最前面,基础算例不可信,就不往预想故障等进阶分析走。 算完以后交出来的东西,要和这套过程对得上。用了哪份算例,改了哪些负荷,每个情景有没有算收敛,哪些节点电压、哪些设备负载率越过了什么限值。PowerSkills里有一条要求我很认同,发现问题时要写出具体的母线或支路,以及触发它的那个数值,不能只说一句“存在越限”。它给的默认判据是母线电压超出0.95到1.05标幺值、支路负载率超过100%,实际研究当然要换成我们自己执行的标准。 某个情景没算收敛,也要照实留下。项目专门为潮流不收敛写了一份处理说明,从数据检查、孤岛和平衡节点检查,一直到逐步放松控制、降低运行压力。算不下去本身就是一条研究结果,不应该被报告里一句笼统的结论盖过去。 报告是最后一步。它有没有用,要看里面每一条判断能不能找回到算例、条件和计算结果。 PowerMCP把软件接进来,AI手里一下子多了十几个工具。工具多了,用错顺序的机会也多了,PowerSkills要管的就是这件事。 它分成两部分。一部分是11份软件使用说明,每份都按“加载算例、检查模型、求解、修改、进阶分析”的次序排列工具。PowerWorld那份很短,里面有几条规矩。基础潮流没算干净,不做预想故障;大批量读取结果之前,先问清楚监视哪些对象、按什么限值;每改一次模型,都重新求解,检查同一组指标。 另一部分是10份问题处理手册,覆盖电压越限、热过载、预想故障越限、动态稳定、潮流不收敛、短路电流超标、频率响应、新电源和大负荷接入、分布式电源承载力等情况。每份软件说明末尾有一张交接表,算出哪类数值,就转到哪份手册。项目给贡献者定的规矩里有一句,处理手册要按资深工程师实际会尝试的顺序列出纠正措施。 这些要求一点也不花哨,做过潮流计算的人大多默认就是这么干的。放到AI身上,就得一条条写下来。这些手册是项目整理的方法说明,还没有在各种场景下验证过,拿来参考可以,拿来当结论还不行。 读到“资深工程师实际会尝试的顺序”这句,我想到了电力人员参与AI应用的一个具体位置。电压偏低时先查什么、再调什么,改完以后盯哪几个量,出现哪种情况必须补算,这些东西平时装在老师傅的经验里,散在交接时的几句叮嘱里。它们可以整理成AI能读的工作方法,交给技术团队去实现、测试和修订。懂业务的人不用去训练模型,也能把自己的研究方法放进这套系统。 熟悉PowerWorld的同行会马上想到SimAuto。PowerWorld官方知识库里有一组Python示例,其中一个脚本做的就是负荷逐步增加条件下的N-1分析。它按一个系数放大全网负荷,对每条支路做N-1,把越限结果存成表格,再把负荷还原,换下一个系数接着算。 文章开头那个问题的标准版本,用脚本早就能批量算,自动化计算也用不着等AI来带。PowerMCP里的PowerWorld接口,本身就建立在SimAuto这类已有的自动化能力之上。 我觉得它值得研究的地方,在问题临时变了的时候。 比如算完均匀增长,讨论中有人问,如果新增负荷集中在另外几个节点,结果会怎样?按原来的脚本,这意味着要有人改写放大负荷的那段代码,写清楚加到哪些节点、怎么分,再调试一遍。 PowerMCP里有一处设计正好对着这种情况。它借助一个叫PowerIO的组件在不同软件之间转换算例,转换前可以附带一组假设修改,其中一项是按母线设定有功负荷。调用时必须指定分配规则,按原有负荷比例分,或者平均分,文档写明它不会把一个总数随意分给某个负荷。临时提出的新问题,就这样变成一次条件明确的调用,分配方式写在参数里,事后可以查。 这只说明接口具备了这种能力。AI能不能把一句口头追问准确地翻成这样的参数,改完以后有没有重新检查同一批指标,得拿任务去测。PowerAgent团队自己也在做这件事,他们整理了一个叫PowerAgentBench的基准,用多步骤的电网分析任务评价智能体,稳态和动态两部分的论文列入了2026年北美电力研讨会(NAPS)。 测试结果如果站得住,变化会落在研究的安排上。过去受时间和人手限制,一次研究通常只比较事先定好的几种情景,讨论里冒出的新想法,多半记下来留到下一轮。临时追问的代价降下来以后,同样的研究时间里就可能多比几种有意义的情景,有了新想法也能当场拿计算去验。 固定、重复、规则清楚的计算,继续交给成熟脚本就很好。AI更适合放在问题还在变化、需要把不同工具和结果接起来的环节。 想动手试的团队,起点可以很小。PowerSkills的pandapower说明里附了一份39节点测试算例,包括39条母线、34条线路、12台变压器、10台发电机,还配了基础分析和N-1筛查两个脚本。pandapower是开源软件,安装PowerMCP时默认就带,不涉及商业许可。 PowerWorld、PSS/E这类商业软件要另说。PowerMCP开源的是接口,软件本身仍要在本机安装并取得授权,PowerWorld接口连接的就是一个本机正在运行、已经授权的Simulator。项目默认配置的客户端是Claude Desktop、Claude Code和Codex CLI,计算软件在本地运行,大模型却多半在云端,对话里的算例信息会发出去。涉及真实电网资料,只能放在符合单位数据和网络安全要求的环境里研究。 试验的目标可以定得很直接。AI有没有准确理解任务,调用的功能对不对,改了什么,结果能不能和独立计算对上。这几件事看清楚了,才说得清AI到底在哪个环节帮上了忙。 回到开头的问题。按这套思路,AI列出的线路和节点来自一次实际的潮流计算,每一项都能追到算例和条件。计算靠的是电力人早就信得过的软件,步骤照的是可以写下来、可以修订的研究方法。一个好问题提出来以后,能不能比过去更顺地走到计算和验证,是接下来最值得拿算例去试的事情。
如果一个区域的用电需求继续增长,哪些线路、哪些节点需要重点关注?
这套东西由哪几块组成
跟着一个负荷增长任务走一遍
用一份测试算例,比较指定区域负荷增长10%和20%时的情况,列出需要关注的电压和设备负载变化,保留计算依据。