Meta把内部设计系统开源了:支撑内部13000+应用:专为Agent调优
2026-07-03
2026-07-08 0
标签:#WorkBuddy #人工智能 #能源系统优化 #工程仿真 #Python

我是森兰能源中心制冷系统项目的负责人,日常工作是根据用户侧随机负荷,以"单位供能成本最低"为目标做运行优化调度——核心抓手是分时电价 冰蓄冷削峰填谷。
过去这类事,要么自己啃论文写模型,要么等外包排期,平均两周起步。最近一个月我把活儿交给 WorkBuddy,真实体感是:仿真脚本搭建一下午搞定,调参和优化迭代半天,报告自动出。它不是"聊天机器人",是真的能动手干活的桌面搭子。
下面用我真实做过的一个任务,讲清完整链路。
WorkBuddy 直接:
拆解成「数据生成 → 建模 → 求解 → 可视化」四步写出完整可运行脚本(含注释)跑通后把三张图(负荷曲线、机组出力、成本构成)一并交付关键点是——我全程没打开 IDE 写一行代码,只看了结果和调整了参数。
下面就是 WorkBuddy 实际产出、我已在本机跑通的完整脚本(依赖 numpy / scipy / matplotlib,Python 3.11 可直接运行):
python
代码语言:javascript复制import numpy as npimport matplotlib.pyplot as pltfrom scipy.optimize import linprog# ========== 1. 基础参数 ==========H = 24dt = 1.0 # 小时COP = 4.0# 制冷机能效比# 上海商业分时电价(元/kWh):谷(0.30) / 平(0.80) / 峰(1.30)price = np.array([0.30,0.30,0.30,0.30,0.30,0.30, # 0-6谷0.80,0.80,# 6-8平1.30,1.30,1.30, # 8-11 峰0.80,0.80,0.80,0.80,0.80,0.80,0.80, # 11-18 平1.30,1.30,1.30, # 18-21 峰0.80, # 21-22 平0.30,0.30 # 22-24 谷])# 设备约束(统一用冷量 kW 表示)chiller_cap = 1200.0 # 制冷机最大冷量出力ice_charge_max= 800.0# 最大蓄冰速率ice_discharge_max = 1000.0 # 最大融冰速率S_max = 4000.0 # 蓄冰槽容量# ========== 2. 模拟 24h 冷负荷(随机波动) ==========rng = np.random.default_rng(42)base = 300 900 * np.exp(-((np.arange(H)-14)**2)/(2*5**2))# 午后峰值noise = rng.normal(0, 60, H)load = np.clip(base noise, 100, None)load = np.round(load, 1)# ========== 3. 建模:最小化全天购电成本 ==========# 变量顺序: q(24)制冷机冷量, c(24)蓄冰, d(24)融冰, s(24)蓄冰槽存量n = 4 * Hdef idx(k, h): return k * H hc_obj = np.zeros(n)for h in range(H):c_obj[idx(0, h)] = price[h] / COP# 电费 = 电价 × 电功率(=冷量/COP)A_eq, b_eq = [], []# 能量平衡: q d - c = loadfor h in range(H):row = np.zeros(n)row[idx(0, h)] = 1; row[idx(2, h)] = 1; row[idx(1, h)] = -1A_eq.append(row); b_eq.append(load[h])# 蓄冰动态: s[h] = s[h-1] c[h] - d[h]for h in range(H):row = np.zeros(n)row[idx(3, h)] = 1if h > 0:row[idx(3, h-1)] = -1row[idx(1, h)] = -1row[idx(2, h)] = 1A_eq.append(row); b_eq.append(0.0)# 初始蓄冰槽为空row0 = np.zeros(n); row0[idx(3, 0)] = 1A_eq.append(row0); b_eq.append(0.0)bounds = []for k in range(4):for _ in range(H):if k == 0: lo, hi = 0, chiller_capelif k == 1: lo, hi = 0, ice_charge_maxelif k == 2: lo, hi = 0, ice_discharge_maxelse:lo, hi = 0, S_maxbounds.append((lo, hi))res = linprog(c_obj, A_eq=A_eq, b_eq=b_eq, bounds=bounds, method='highs')assert res.success, res.messageq = res.x[idx(0, 0):idx(0, 24)] # 制冷机冷量出力c_ = res.x[idx(1, 0):idx(1, 24)]# 蓄冰d = res.x[idx(2, 0):idx(2, 24)] # 融冰s = res.x[idx(3, 0):idx(3, 24)] # 蓄冰槽存量elec = q / COP # 对应电功率total_cost = float(np.sum(elec * price * dt))peak_cost= float(np.sum(elec[price == price.max()] * price.max()))print(f"全天最低购电成本: {total_cost:,.0f} 元")print(f"峰段电费占比: {peak_cost/total_cost*100:.1f}%")print(f"蓄冰槽峰值存量: {s.max():.0f} / {S_max:.0f}")# ========== 4. 可视化 ==========hours = np.arange(H)fig, ax = plt.subplots(3, 1, figsize=(10, 9), sharex=True)ax[0].plot(hours, load, 'k--', label='冷负荷')ax[0].plot(hours, q, 'b', label='制冷机出力')ax[0].plot(hours, d, 'g', label='融冰供冷')ax[0].plot(hours, c_, 'orange', label='蓄冰')ax[0].legend(); ax[0].set_ylabel('冷量 kW'); ax[0].set_title('制冷机出力与蓄冰动作')ax[1].plot(hours, s, 'purple')ax[1].fill_between(hours, s, alpha=0.3, color='purple')ax[1].set_ylabel('蓄冰量 kWh冷'); ax[1].set_title('蓄冰槽存量变化')cost_h = elec * pricecolors = ['green' if p == price.min() else ('red' if p == price.max() else 'gray') for p in price]ax[2].bar(hours, cost_h, color=colors)ax[2].set_ylabel('电费 元'); ax[2].set_xlabel('小时')ax[2].set_title('逐时电费(绿=谷 红=峰 灰=平)')plt.tight_layout(); plt.show()
跑出来的关键结论(我本机实测):全天最低购电成本约 2810 元,其中峰段电费占比被压到 8.1%——也就是靠「谷电制冰 峰电融冰」把最贵那部分负荷基本挪走了。这正好印证了项目「单位供能成本最低」的调度目标。
真正拉开差距的是多轮追问,而不是一次交付。我常用的几个追问:
追问方式 | 效果 |
|---|---|
"把电价改成上海商业分时电价真实档位再算一次" | 模型立刻贴合实际 |
"加一个敏感性分析:蓄冰槽容量从 1000 到 5000 变化的成本曲线" | 直接出决策依据图 |
"把结论整理成一页给领导的汇报 PPT" | 自动产出可演示文件 |
"写一段给运维看的运行策略说明(非技术语言)" | 一份运营 SOP 就出来了 |
这等于一个任务同时产出:模型代码 分析图 决策建议 领导汇报 运维手册,以前要找五个人干一周。
我用下来最直观的三点:
能操作本地文件:直接读我的 Excel 负荷数据、CSV 历史曲线,改完写回,不用复制粘贴来回倒。多模态交付:文档、表格、PPT、数据分析一起给,而不是一段文字建议。自主规划:我说"目标",它拆"步骤"再执行,不像传统对话只会等我问下一步。对工程/数据分析岗来说,WorkBuddy 最大的价值不是"生成内容",而是把"想法 → 可运行模型 → 决策报告"的链路压缩到同一个对话里。
如果你也在做仿真、优化、数据分析类工作,强烈建议拿一个真实小任务试一遍——你会发现,真正卡住你的从来不是建模能力,而是把模型跑通、调参、出报告那一大堆"体力活",而这些,刚好是它最擅长的。
本文为本人真实使用体验,所用案例来自实际项目场景,欢迎在评论区交流制冷系统优化 / 能源调度相关问题。