You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyPSA示例中n.objective为何与总成本数值不相等?

PyPSA中n.objective的含义与计算方式

核心结论

n.objective不是你统计的“总成本”,它是优化时实际最小化的目标函数值,仅包含新增装机的资本成本与全部运行成本——初始装机的资本成本默认被视为沉没成本,不纳入优化目标。

结合你的模型拆解计算逻辑

你的代码里发电机设置了p_nom=100(初始装机)且p_nom_extendable=True(允许扩容),PyPSA默认不对初始装机的资本成本做优化考量,只计算新增部分的成本,具体计算步骤如下:

1. 运行成本计算

发电机边际成本为2,每个时段发电量等于负载需求,总发电量为:
120 + 90 + 90 + 160 + 110 = 570
运行总成本:570 * 2 = 1140

2. 新增装机的资本成本计算

优化后最终装机p_nom_opt=160,新增容量为:
160 - 100 = 60
新增装机的资本成本(按capital_cost=10计算):
60 * 10 = 600

3. 目标函数值(n.objective)

将两部分相加:
1140 + 600 = 1740,与你看到的n.objective数值完全匹配。

关于“总成本”的差异说明

你计算的“总成本2740”是把全部装机的资本成本(160*10=1600)加上运行成本(1140)得到的,但其中初始100kW装机对应的资本成本(100*10=1000)属于沉没成本,没有被PyPSA纳入优化目标,因此n.objective不包含这部分。

如果需要让初始装机的资本成本也进入目标函数,可以修改模型设置:比如将p_nom设为0,完全通过p_nom_extendable定义装机容量;或者自定义成本计算逻辑。

内容的提问来源于stack exchange,提问作者Bengt Olsson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 03:55:57