大数跨境

告别手写MATPOWER脚本!中山大学LLM智能体自动生成电力分析代码,全局保真度82.38%,静默错误降低31%

告别手写MATPOWER脚本!中山大学LLM智能体自动生成电力分析代码,全局保真度82.38%,静默错误降低31% Coovally AI Hub
2026-06-12
5

关注下方“公众号”,获取更多开源资讯

导读

电力系统静态分析(潮流计算、N-1校核等)高度依赖专业工具如MATPOWER,工程师需手工编写或调试代码,耗时且易错。

中山大学团队提出一套基于LLM的智能体框架,将自然语言指令自动转换为MATPOWER脚本,并通过三层纠错机制(静态预检+动态反馈循环+语义校验器)确保代码可靠性。利用DeepSeek-OCR将265页MATPOWER手册重构为增强向量库,结合MCP协议实现异步执行与自动调试。在10个仿真任务上,系统全局保真度GCA达82.38%,相比无RAG模式提升近18个百分点,有效消除了复杂分析任务中的代码幻觉。并于2026年4月17日至19日在中国南京举行的第九届能源、电气和电力工程国际会议(CEEPE 2026)上被接受发表。


文章信息
  • 标题:Agentic Application in Power Grid Static Analysis: Automatic Code Generation and Error Correction
  • 作者:Qinjuan Wang, Shan Yang, Yongli Zhu
  • 机构:中山大学
  • 发表CEEPE 2026

一、背景与挑战

电力系统静态分析(如潮流计算、N-1安全校核、最优潮流等)是电网稳定运行的核心环节。工程师通常使用MATPOWER、PSS/E等专业工具,但这些工具的学习成本高,每次分析任务都需要手动编写或修改MATLAB脚本。特别是当分析场景变化(例如从支路故障切换到母线故障,或从发电机失效改为负荷失效)时,代码需要大幅调整,过程繁琐且容易出错。

大语言模型(LLM)的出现为自然语言生成代码提供了可能,但直接使用通用LLM存在两大障碍:

  1. 领域知识缺失:MATPOWER有265页用户手册,包含大量参数表、API约定和数学公式,普通LLM无法准确记忆。
  2. 代码幻觉:生成的代码可能在MATLAB中运行成功,但逻辑上并未实现用户意图,这种“静默错误”难以发现。

本文提出的智能体框架,通过增强检索、三层纠错和MCP异步执行,将自然语言指令转化为可靠的可执行MATPOWER脚本。


二、架构设计

2.1 增强向量库构建:DeepSeek-OCR + 双源拼接

传统的PDF文本提取会破坏表格和代码块的结构关系。系统采用DeepSeek-OCR对265页MATPOWER 8.1用户手册进行版式分析,输出高质量Markdown,保留层级标题和代码块结构。然后通过滑动窗口切分为语义块。

为兼顾内容完整性和结构清晰,系统将OCR处理后的Markdown原始PDF文本流拼接后共同入库,使用预训练Transformer编码为向量,FAISS建立索引。检索时,先通过Query Planner将用户指令拆解为子请求,分别召回Top-K片段后重组注入LLM提示。

图片来源于原论文

2.2 三层纠错机制

第一层:静态预检(Static Pre-check)

在代码送入MATLAB前,基于MATPOWER约定进行规则扫描:

  • 模糊匹配纠正API拼写错误(如pf.algorithm→ pf.alg
  • 检测到PDGEN_BUS等常量时自动注入define_constants;语句

第二层:动态反馈循环(Dynamic Feedback Loop)

当MATLAB返回运行时错误时,系统捕获错误栈,结合静态预检提示、上一轮失败代码、用户原始请求、RAG检索上下文,构造错误报告作为新提示发给LLM,让其分析并重写代码。最大迭代次数设为5,避免无限循环。

第三层:语义校验器(Semantic Validator)

即使代码能运行,也可能不符合用户意图。系统使用一个独立的LLM实例,将用户请求与最终代码进行比较,输出“关键级”或“轻微级”偏差。关键偏差强制重试,轻微偏差仅输出警告但放行。

图片来源于原论文

2.3 MCP异步架构与工程实现

系统基于LangChain构建Agent工作流,并封装为MCP(Model Context Protocol)服务器,支持外部工具调用。由于MATLAB仿真计算密集,采用asyncio+subprocess异步架构:主进程收到请求后fork独立子进程运行Agent,避免阻塞。子进程将最终代码、执行状态、调试日志打包为JSON,并在头部添加标识符,主进程通过流解析后返回MCP标准响应。

前端使用Chainlit提供Web可视化界面,实时显示Agent的思考过程、代码生成与纠错历史。


三、实验结果与对比

3.1 测试任务与评价指标

论文设计了10个仿真任务,其中6个代表性任务如下:

难度
任务描述
Easy 1
加载case14,将Bus2有功负荷增加15%,跑DC潮流
Easy 2
加载case57,分别跑AC与DC潮流,对比电压幅值
Easy 3
加载case39,比较牛顿-拉夫逊与快速解耦法
Hard 1
在case39上计算区域1→2的TTC,步长5%递增负荷与发电,直至支路过载
Hard 2
在case9的Bus4添加新发电机,需同步修改mpc.bus、mpc.gen、mpc.gencost
Hard 3
在case30上添加自定义线性约束Pg1+Pg2≤30 MW,需手工计算变量索引

评价指标

  • 单任务保真度 CSGF_i = S_i × (N_threshold - (n_i - 1)) / N_threshold,其中S_i为语义得分(1.0完美,0.8必要变通,0失败),n_i为迭代轮数,N_threshold=5
  • 全局保真度 GCA = (1 - sqrt(1/K Σ(1-CSGF_i)²)) × 100%

3.2 不同检索模式对比

检索模式
GCA
无RAG(零样本)
64.36%
Mode 1(仅OCR-Markdown关键词匹配)
25.82%
Mode 2(仅PDF向量库)
64.65%
Mode 3(双源增强向量库) 82.38%

关键发现:

  • Mode 1反而最差(25.82%),因为关键词匹配引入大量噪声。
  • Mode 2(仅PDF)仅略高于零样本,说明原始PDF切块破坏结构,RAG收益被噪声抵消。
  • Mode 3结合OCR结构化信息与PDF完整文本,达到最佳。
图片来源于原论文

3.3 消融实验

配置
GCA
相对Full Model跌幅
Full Model(Mode 3 + 反馈 + 规划器 + 校验器)
82.38%
去掉语义校验器(Execution Only)
51.42%
-30.96pp
去掉动态反馈(Single Pass)
67.75%
-14.63pp
去掉Query Planner(Simple Search)
68.38%
-14.00pp
无RAG(零样本)
64.36%
-18.02pp

核心结论:语义校验器贡献最大,去掉后性能崩盘;动态反馈与Query Planner也至关重要;单独的反馈循环(无校验器)反而比零样本更差,因为LLM会自信地输出错误代码。

3.4 31%幻觉率与语义校验器的作用

在Execution Only(去掉语义校验器)的消融中,约31%的代码在MATLAB中可运行但违背用户意图。语义校验器将这31%的“静默错误”抓出并强制重试,从而将GCA从51.42%拉升至82.38%。

图片来源于原论文


四、关键发现与消融分析

  1. 向量库构建质量决定RAG成败:仅使用OCR-Markdown关键词匹配(Mode 1)GCA最低(25.82%),反而比无RAG还差。说明结构保留不够,且未做语义向量检索,导致大量噪声干扰。双源拼接+FAISS向量检索(Mode 3)是性能跃升的关键。

  2. 语义校验器不可替代:去掉校验器后GCA下降30.96个百分点,是所有组件中影响最大的。因为很多代码能运行但逻辑错误,人类难以逐行审计,必须用LLM自动校验。

  3. 动态反馈需要校验器配合:单有反馈循环(无校验器)GCA仅51.42%,低于零样本的64.36%。这是因为反馈循环会把“运行成功”当作成功,反而强化了错误代码。必须与语义校验器配套使用。

  4. Query Planner对硬任务至关重要:在Hard任务上,Simple Search(去掉规划器)的平均CSGF仅0.86,而Full Model达0.90。复杂任务需要拆解意图才能召回精确的API使用示例。


五、总结与思考

核心贡献

  1. 首个面向MATPOWER的LLM智能体自动代码生成与纠错系统,实现从自然语言到可执行脚本的端到端自动化。
  2. DeepSeek-OCR+双源向量库,解决了技术文档中表格、代码块的结构化检索难题。
  3. 三层纠错机制(静态预检+动态反馈+语义校验器),将全局保真度从64.65%提升至82.38%,有效消除31%的静默幻觉。
  4. MCP异步架构,支持与外部工具集成,避免长时间仿真阻塞。

产业落地价值

  • 电网调度/规划人员:可直接用自然语言描述分析任务,系统自动生成并调试MATPOWER脚本,大幅降低编程门槛。
  • 教育培训:学生可通过自然语言交互学习电力系统分析,无需记忆复杂API。
  • 运维自动化:当分析场景频繁变化时(如不同故障类型),系统可快速重新生成代码,减少人工修改时间。

该工作为电力系统分析自动化提供了一个可复用的Agent范式:高质量文档向量化 + 三层纠错 + 异步工具调用。对于任何需要频繁编写仿真脚本的工程领域,该方法都具有借鉴意义。





Coovally 团队在视觉算法开发中也在实践 AI 编码工具与 Agent 工作流。如果您对 AI 辅助开发的落地经验感兴趣,欢迎评论区交流~

© THE END

转载请联系本公众号获得授权

图片

图片 分享点赞在看,至少帮我拥有一个~

【声明】内容源于网络
0
0
Coovally AI Hub
Coovally AI Hub构建国际领先的人工智能开源算法平台,专注开源社区深度解读,带你了解最新科技趋势,洞悉未来发展!
内容 374
粉丝 0
Coovally AI Hub Coovally AI Hub构建国际领先的人工智能开源算法平台,专注开源社区深度解读,带你了解最新科技趋势,洞悉未来发展!
总阅读1.2k
粉丝0
内容374