【最优潮流】直流最优潮流(OPF)课设(Matlab代码实现)

💥 💥 💞 💞 欢迎来到本博客 ❤️ ❤️ 💥 💥


🏆 博主优势: 🌞 🌞 🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。


座右铭:行百里者,半于九十。

📋 📋 📋 本文目录如下: 🎁 🎁 🎁
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
🌈4 Matlab代码实现

💥1 概述

最优潮流(OPF)是指在满足电网约束的同时,以最小的成本将负荷分配给电厂。描述为在满足网络(潮流)约束的情况下最小化所有承诺的工厂的总燃料成本的优化问题。

📚2 运行结果

这里仅展现部分运行结果

%% Define Variables and Constraints

% decision variables

g = sdpvar(2,1);

p = sdpvar(5,1);

theta = sdpvar(4,1);

% objective function: min z = g1^2 + 40g1 + g2^2 + 50g2

P = [1 0;0 1];

q = [40;50];

z = g.'*P*g + q.'*g;

% constraints: A*g<=b; g>=0; IN*p=g-d; IN.'*theta=p.*X;

A = [1 2;4 3];

b = [40;120];

g_all = [g;0;0];

d = [0;0;10;20];

X = [0.01;0.01;0.01;0.02;0.01];

Cons = [A*g<=b; g>=0; IN*p==g_all-d; IN.'*theta==p.*X; p<=20; p>=-20];

% solve

ops = sdpsettings('verbose',0,'solver','gurobi');

sol = optimize(Cons,z,ops);

if(~sol.problem)

s_g = value(g)

s_p = value(p)

s_theta = value(theta)

s_z = value(z)

% visualization

G = digraph(startNode,endNode);

pic = plot(G);

%layout(pic,'layered');

labeledge(pic,1:numedges(G),s_p);% 画出线路潮流

for i = 1:4

if(i<3)

strMat{i,1}=[num2str(orderedNode(i,1)),',',num2str(s_g(i,1)),',',num2str(d(i,1)),',',num2str(s_theta(i,1))];

else

strMat{i,1}=[num2str(orderedNode(i,1)),',',num2str(0),',',num2str(d(i,1)),',',num2str(s_theta(i,1))];

end

end

labelnode(pic,1:numnodes(G),strMat);% 按编号、p、d、theta排列节点求解信息

else

printf('Optimal result not found!');

end

%% 该函数负责生成节点关联矩阵,考虑了非连续\编号不从0开始的情况,将节点从小到大排列

function [orderedNode,y] = myincidence(startNode,endNode)

uniNode = unique([startNode;endNode]);

orderedNode= sort(uniNode);

y = zeros(size(uniNode,2),size(startNode,1));

for i = 1:size(startNode,1)

y(orderedNode==startNode(i,1),i) = 1;

y(orderedNode==endNode(i,1),i) = -1;

end

end

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]金国彬,石超,陈庆,李国庆,潘狄,成龙.考虑变换器功率约束和直流电压约束的交直流混合配电网最优潮流计算[J].电网技术,2021,45(04):1487-1496.DOI:10.13335/j.1000-3673.pst.2020.1527.

🌈4 Matlab代码实现

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
潮流计算(OPF)是电力系统运行中的一项核心任务,它主要用于求解电力系统各节点的电压相角和电流大小。随着计算机技术的发展,Python成为了一种广泛使用的编程语言,并且在电力系统领域也有很多应用。 Python提供了丰富的数学计算工具和化算法库,这使得使用Python进行潮流计算变得更加简便高效。通过Python可以方便地使用科学计算库NumPy和计算工具包SciPy进行矩阵运算和化问题求解。另外,Python还有一些专门用于电力系统计算的库,如Power System Analysis Toolbox (PSAT)和 PYPOWER,它们提供了一系列的函数和模型,可以方便地进行潮流计算和电力系统分析。 在使用Python进行潮流计算时,首先需要构建电力系统的数学模型,包括节点导纳矩阵、节点功率方程和节点电压方程等。然后,通过使用梯度下降法、牛顿-拉夫逊法等化算法,求解模型中的未知量,即各节点的电压相角和电流大小。最后,通过结果的分析和比较,可以得到电力系统各节点的电压稳定性和功率平衡情况。 使用Python进行潮流计算的势在于,它具有灵活的编程语言特性,可以自定义模型和算法,便于适应不同的电力系统计算需求。此外,Python还有丰富的可视化工具和数据处理库,可以直观地展示和分析潮流计算结果,提高计算效率和可视化效果。 总之,Python是进行潮流计算的一种强大工具,它具有丰富的数学算法库和灵活的编程特性,能够方便地进行潮流计算和电力系统分析。通过Python,我们能够更加方便地求解电力系统的各节点参数,为电力系统的规划和运行提供有力的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值