电气热 综合能源 二阶锥。 采用matlab编制含电气热的综合能源优化程序,采用yalmip和...
电气热 综合能源 二阶锥。 采用matlab编制含电气热的综合能源优化程序,采用yalmip和cplex求解,通过二阶锥模型实现相关约束限制,综合能源系统考虑39节点电网+6节点气网+热网模型,程序注释还是挺清楚的,易于理解。 适合入门。
最近在研究综合能源系统的优化问题,发现电气热三者的耦合关系挺有意思的。于是用Matlab写了个小程序,结合了39节点电网、6节点气网和热网模型,用YALMIP和CPLEX来求解。整个过程用到了二阶锥模型来处理一些非线性约束,感觉还挺适合入门的。
首先,我们得明确一下综合能源系统的目标。简单来说,就是要在满足电力、天然气和热力需求的前提下,最小化系统的总成本。这个成本包括发电成本、天然气采购成本等等。为了简化问题,我们假设这些成本是线性的。
电气热 综合能源 二阶锥。 采用matlab编制含电气热的综合能源优化程序,采用yalmip和cplex求解,通过二阶锥模型实现相关约束限制,综合能源系统考虑39节点电网+6节点气网+热网模型,程序注释还是挺清楚的,易于理解。 适合入门。
接下来,我们得定义一些变量。比如,电网的功率流、气网的流量、热网的供热功率等等。这些变量之间是有耦合关系的,比如发电机组可能需要消耗天然气,热电联产机组同时产生电力和热力。这些耦合关系得在模型中体现出来。
% 定义电网、气网、热网的变量 P = sdpvar(n_bus, n_time); % 电网功率 Q = sdpvar(n_gas, n_time); % 气网流量 H = sdpvar(n_heat, n_time); % 热网供热功率然后,我们得考虑一些约束条件。比如,电网的功率平衡、气网的流量限制、热网的供热能力等等。这些约束条件有些是线性的,有些是非线性的。对于非线性的约束,我们可以用二阶锥模型来处理。
% 电网功率平衡约束 Constraints = [Constraints, sum(P, 1) == Load]; % 气网流量限制约束 Constraints = [Constraints, Q <= Q_max]; % 热网供热能力约束 Constraints = [Constraints, H <= H_max]; % 二阶锥约束 Constraints = [Constraints, norm([P; Q; H], 2) <= R];这里,norm([P; Q; H], 2) <= R就是一个典型的二阶锥约束。它表示电网、气网、热网的功率流、流量、供热功率的欧几里得范数不超过某个上限R。这个约束可以用来限制系统的总能量流动,避免某些节点过载。
最后,我们得定义目标函数。目标函数就是系统的总成本,包括发电成本、天然气采购成本等等。我们可以用线性函数来表示这些成本。
% 定义目标函数 Objective = sum(C_p * P + C_q * Q + C_h * H);有了目标函数和约束条件,我们就可以用YALMIP和CPLEX来求解这个优化问题了。
% 求解优化问题 optimize(Constraints, Objective);整个程序的注释还是挺清楚的,易于理解。如果你对综合能源系统感兴趣,可以试试这个程序。它不仅能帮你理解电气热三者的耦合关系,还能让你熟悉二阶锥模型的使用。
总之,综合能源系统的优化问题挺复杂的,但用Matlab和YALMIP来处理还是挺方便的。希望这个小程序能帮你入门,也欢迎大家一起讨论和改进。
