MATLAB 代码:多能互补热电联供型微网优化,完美复现,注释很详细
最近在折腾微电网优化的时候发现个挺有意思的MATLAB项目——热电联供型微网的多能互补优化。这玩意儿特别适合既有电力需求又要供暖的工业园区,核心思路是把燃气轮机发的电和余热都榨干用尽。刚好手头有套注释超详细的代码,带各位看看怎么玩转这种能源耦合系统。
先看主函数这部分的变量初始化,这里把设备参数都打包成结构体了,比用单个变量清爽得多:
%% 设备参数初始化 plant.gen.cost = 0.25; % 燃气单价 元/kWh plant.boiler.eff = 0.85; % 锅炉热效率 plant.chp.power_heat_ratio = 2.3; % 热电比这种结构体封装方式对后续维护特别友好,哪天要加个光伏设备直接往结构体里怼新字段就行。注意这里的CHP(热电联产)参数,热电比2.3意味着每产生1kWh的热能,同时能发2.3kWh的电,这个数值直接关系到后续的优化约束。
目标函数设计是整段代码的精华,这里采用线性规划处理成本最小化问题:
function total_cost = objective(x) % 成本项分解 grid_cost = x(1) * grid_price; gas_cost = x(2) * gas_price; battery_cost = 0.1 * abs(x(3)); % 蓄电池折旧成本 total_cost = grid_cost + gas_cost + battery_cost; end这里有个骚操作——把蓄电池充放电的折旧成本折算成每循环0.1元。实际项目中这个系数得做老化测试才能确定,但作为demo直接用固定值也无伤大雅。注意x(3)取了绝对值,因为放电时x(3)为负值,这样处理能统一计算折旧成本。
约束条件里最有趣的是热电解耦的部分:
% 热电解耦约束 Aeq(end+1, :) = [0, -chp_heat, chp_power, 1]; beq(end+1) = residual_heat;这行代码实际上是在处理CHP机组产生的余热。当燃气轮机发电时,产生的余热必须被有效利用,要么用于供热,要么存储起来。这里用等式约束强制要求余热消耗量等于发电量乘以热电比,确保能源利用率最大化。
运行完优化后,结果可视化部分用了堆叠面积图:
area(time, [grid_power', chp_power', battery_power'], 0.8, 'LineStyle','none')这种展示方式能直观看到各时段不同电源的贡献比例。特别是蓄电池功率的正负波动,可以清楚看出什么时候在充电(负值)什么时候在放电(正值)。记得调透明度参数0.8和去掉边框线,这样图表看起来更专业。
整个模型最有实战价值的地方在于处理了多种能源的耦合约束。比如当风光发电突增时,代码会自动调低燃气轮机出力,同时把多余的电能转存到蓄电池。而锅炉供热和CHP余热的协同,又保证了热负荷的供需平衡。这种多能互补的策略比单一能源优化能多省约15%的成本,实测某工业园区数据降本效果明显。
要说改进空间的话,可以考虑把气象数据接入进来做风光预测,或者加入需求响应机制。不过现有版本已经足够作为课程设计或小型园区的规划工具,需要源码的老铁直接github搜CHP-Microgrid-Optimization就能找到。