Matlab,风光火储网综合能源系统优化调度。 包括热电厂热电机组(11台,电出力上下限受热出力的影响)、热电厂纯凝机组(4台),储能,储热,电转热设备(考虑与风电、热电厂出力配合的启停策略)风电光伏等机组。 考虑经济性指标,cplex求解
在能源领域,风光火储网综合能源系统优化调度是个热门且极具挑战的话题。今天咱就唠唠如何利用Matlab结合Cplex来搞定它。
咱们先来看看这个复杂系统的组成部分。这里面有热电厂的热电机组,足足11台呢,而且它们的电出力上下限还受热出力的影响,就像被一根无形的线牵扯着。还有4台热电厂纯凝机组,它们也在整个系统里发挥着独特作用。另外,储能、储热设备,以及电转热设备,这电转热设备还得考虑与风电、热电厂出力配合的启停策略,是不是听起来就很复杂?当然,不能少了风电和光伏机组,它们可是绿色能源的主力军。
在Matlab里,我们首先得定义好各种参数。比如说热电机组的参数,咱可以这么写:
matlab
% 定义热电机组数量
num_thermal_gen = 11;
% 电出力下限向量,这里假设先给个初始值,实际需要根据热出力关系调整
P_thermal_min = zeros(num_thermal_gen,1);
% 电出力上限向量,同理
P_thermal_max = zeros(num_thermal_gen,1);
% 热出力下限向量
Q_thermal_min = zeros(num_thermal_gen,1);
% 热出力上限向量
Q_thermal_max = zeros(num_thermal_gen,1);
这里代码就是先简单初始化了热电机组相关出力限制的向量,后续根据实际热 - 电出力关系去填充真实数据。
对于纯凝机组,也类似:
matlab
% 定义纯凝机组数量
num_pure_condensing_gen = 4;
% 纯凝机组电出力下限
P_pure_condensing_min = zeros(num_pure_condensing_gen,1);
% 纯凝机组电出力上限
P_pure_condensing_max = zeros(num_pure_condensing_gen,1);
再看看储能设备,它有充电和放电功率限制等参数:
matlab
% 储能最大充电功率
P_charge_max = 100;
% 储能最大放电功率
P_discharge_max = 100;
% 储能容量
E_max = 1000;
现在来说说关键的优化目标------经济性指标。在实际运行中,我们希望整个系统的运行成本最低。这成本可能包括燃料成本、设备启停成本等等。用数学式子表示可能像这样:
Matlab,风光火储网综合能源系统优化调度。 包括热电厂热电机组(11台,电出力上下限受热出力的影响)、热电厂纯凝机组(4台),储能,储热,电转热设备(考虑与风电、热电厂出力配合的启停策略)风电光伏等机组。 考虑经济性指标,cplex求解
\[ Cost = \sum*{i = 1}^{n* {thermal}} C*{fuel,i} P* {thermal,i} + \sum*{j = 1}^{n*{start - stop}} C_{start - stop,j} \]
其中,\( C*{fuel,i} \) 是第 \( i \) 台热电机组的燃料成本系数,\( P*{thermal,i} \) 是第 \( i \) 台热电机组的电出力,\( C_{start - stop,j} \) 是第 \( j \) 次设备启停成本。
在Matlab里,结合Cplex求解器来实现这个优化目标。首先得安装好Cplex并且配置好Matlab与Cplex的接口。假设已经配置好,我们可以这么写代码片段来构建优化问题:
matlab
% 创建优化问题对象
prob = optimproblem('ObjectiveSense','min');
% 定义热电机组电出力决策变量
P_thermal = optimvar('P_thermal',num_thermal_gen,'LowerBound',P_thermal_min,'UpperBound',P_thermal_max);
% 定义其他决策变量类似上述方式
% 添加约束条件,比如热电机组热 - 电出力关系约束
for i = 1:num_thermal_gen
prob.Constraints.thermal_power(i) = Q_thermal_min(i) <= some_function(P_thermal(i)) <= Q_thermal_max(i);
end
% 定义目标函数
prob.Objective = sum(C_fuel.*P_thermal) + sum(C_start_stop);
% 使用Cplex求解
[sol,fval] = solve(prob,'CPLEX');
这里代码先是创建了一个优化问题对象,目标是最小化成本。接着定义了热电机组电出力的决策变量,并设置了上下限。然后添加了热 - 电出力关系的约束条件,最后定义目标函数并使用Cplex求解。得到的 sol 就是优化后的决策变量值,fval 是最小化的成本值。
整个风光火储网综合能源系统优化调度是个复杂但有趣的事儿,通过Matlab和Cplex的配合,我们能更好地实现系统的经济运行,在能源利用上达到更高的效率。后续还可以不断完善模型,考虑更多实际因素,让这个系统更加贴合实际运行情况。
