微电网作为分布式能源系统的重要形态,正在全球范围内加速普及。这种由分布式电源、储能装置、能量转换装置和负荷监控保护装置汇集而成的小型发配电系统,既能并网运行又能孤岛运行。但在实际运营中,调度人员常常面临一个两难选择:追求极致的经济性可能牺牲环保指标,而过度强调清洁能源消纳又会导致运营成本飙升。
去年参与某工业园区微电网项目时,我们就遇到了典型矛盾:光伏大发时段若全额消纳,需要关停部分燃气轮机,但夜间光伏出力归零后,重新启动燃气机组会产生额外成本。这种"环保-经济"的博弈关系,正是多目标优化调度需要解决的核心问题。
我们建立了双目标优化模型,第一个目标函数是经济成本最小化:
code复制min F1 = Σ(C_fuel + C_OM + C_start) + C_purchase - C_sell
其中包含燃料成本、运维成本、机组启停成本,以及从主网购电收益/售电支出。第二个目标函数是污染物排放最小化:
code复制min F2 = Σ(E_CO2 + E_SO2 + E_NOx) + E_purchase
特别需要注意的是,购电的排放量需要根据当地电网的能源结构折算,这个系数会显著影响优化结果。我们在华东某项目实测发现,当电网煤电占比超过70%时,微电网内燃气轮机发电的环保优势会变得非常明显。
除了常规的功率平衡约束、机组出力上下限约束外,有两点需要特别注意:
我们在MATLAB中建模时,采用如下方式处理启停约束:
matlab复制% 最小运行时间约束
for t = 2:T
for k = 1:N
if u(k,t) - u(k,t-1) == 1
sum(u(k,t:min(t+L_min-1,T))) >= L_min*(u(k,t)-u(k,t-1))
end
end
end
传统PSO在解决我们的微电网调度问题时暴露出三个缺陷:
我们采用了三种改进方法:
code复制w = w_max - (w_max-w_min)*(t/T)^2
关键实现代码如下:
python复制def update_velocity(self):
for i in range(self.swarm_size):
# 动态惯性权重
w = self.w_max - (self.w_max-self.w_min)*(self.iter/self.max_iter)**2
# 认知和社会学习部分
cognitive = self.c1 * random.random() * (self.pbest_pos[i] - self.position[i])
social = self.c2 * random.random() * (self.gbest_pos - self.position[i])
# 速度更新
self.velocity[i] = w*self.velocity[i] + cognitive + social
# 变异操作
if self.check_premature():
self.position[i] += self.cauchy_mutation()
采用拥挤距离排序法保持解集多样性。计算个体i的拥挤距离时:
code复制distance[i] = Σ (f_k(i+1) - f_k(i-1))/(f_k_max - f_k_min)
其中k表示第k个目标函数。这个指标能有效避免解在目标空间中的聚集。
我们开发了交互式决策界面,运营人员可以:
某次典型运行结果对比:
| 方案类型 | 日运行成本(元) | CO2排放(kg) | 光伏消纳率 |
|---|---|---|---|
| 纯经济型 | 28,546 | 2,856 | 72% |
| 折中型 | 31,208 | 2,102 | 89% |
| 纯环保型 | 35,677 | 1,543 | 97% |
问题:算法收敛过快
检查:惯性权重设置是否合理,变异概率是否过低
问题:解集分布不均匀
调整:增加拥挤距离计算时的目标函数归一化处理
问题:约束违反严重
对策:增加罚因子初始值,采用动态调整策略
在实际部署中,我们建议采用"离线训练+在线修正"的模式。每天0点基于最新预测数据运行优化算法,生成基础调度方案;每小时再根据实际运行偏差进行滚动修正。某工业园区项目采用该方案后,年运行成本降低12.7%,碳排放减少18.3%。