【无功优化】基于知识获取与共享算法实现多目标无功电压优化附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信       无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机 

⛄ 内容介绍

1 算法原理

Existing heuristic optimization algorithms are prone to obtain a set of non-dominated solutions overconcentrated within an intermediate area in the objective space. It results in a poor diversity performance of the Pareto front when handling the problem on multi-objective voltage and reactive power coordinated control (MOVRPOC). For mitigating the

aforementioned disadvantages, a newly developed heuristic algorithm, gaining-sharing knowledge based algorithm (GSK), is implemented to handle the problem of MOVRPOC. Then, the minimum system losses, the minimum average voltage deviation and the minimum curtailment rate are treated as optimization objectives, and then the revised IEEE 33-bus distribution system is utilized as the benchmark networks. Grey wolf optimization (GWO) and equilibrium optimizer (EO) are taken as a comparison to validate the improvement on diversity of GSK. The results reveal that GSK is capable to obtain more diverse non-dominated solutions to MOVRPOC for distributed networks, which can bebetter applied to the practical scenarios on MOVRPOC ​distribution networks. 

2 算法流程

多目标无功电压优化是一种在配电网或输电网中通过调整无功功率和电压水平来实现多个优化目标的方法。这些目标可以包括降低功耗、改善电压稳定性、减少潮流损耗等。

以下是多目标无功电压优化的一般流程:

  1. 网络建模:将配电网或输电网进行建模,包括各个节点、支路、负载以及发电设备等。

  2. 目标函数定义:根据具体的优化目标,定义一个或多个目标函数。常见的目标函数包括最小化功耗、最大化电压稳定性指标、最小化网络损耗等。

  3. 约束条件设定:确定约束条件,包括电压限制、无功功率限制、线路容量限制等。这些约束条件是为了保证系统运行的安全性和可行性。

  4. 优化算法选择:选择适当的优化算法来求解多目标优化问题。常用的算法包括遗传算法、粒子群优化、蚁群算法等。这些算法能够搜索优化空间,并找到一组 Pareto 最优解集合,代表了权衡不同优化目标的最佳解。

  5. 优化求解:利用选择的优化算法对目标函数进行优化求解。通过迭代搜索和评估目标函数值,不断更新解空间,直到满足停止准则或达到一定的迭代次数。

  6. 解析结果分析:对求解得到的 Pareto 最优解集合进行分析,根据实际需求选择最优的方案。可以考虑权衡不同目标之间的权重,并选择具有最佳综合性能的解决方案。

⛄ 部分代码

function mpc = case33
mpc.version = '2';
mpc.baseMVA = 100;
%%bus data
%   bus_i type    Pd  Qd  Gs  Bs  area    Vm  Va  baseKV  zone    Vmax    Vmin
mpc.bus = [
    1    3    0        0        0    0    1    1.05    0    12.66    1    1.1    0.9;
%     1    3    0        0        0    0    1.05    1    0    12.66    1    1.05    0.95;
    2    1    0.100   0.060    0    0    1    1    0    12.66    1    1.05    0.95;
    3    1    0.090    0.040    0    0    1    1    0    12.66    1    1.05    0.95;
    4    1    0.120    0.080    0    0    1    1    0    12.66    1    1.05    0.95;
    5    1    0.060    0.030    0    0    1    1    0    12.66    1    1.05    0.95;
    6    1    0.060    0.020    0    0    1    1    0    12.66    1    1.05    0.95;
    7    1    0.200   0.100    0    0    1    1    0    12.66    1    1.05    0.95;
    8    1   0.200   0.100   0    0    1    1    0    12.66    1    1.05    0.95;
    9    1    0.060    0.020    0    0    1    1    0    12.66    1    1.05    0.95;
    10    1    0.060    0.020    0    0    1    1    0    12.66    1    1.05    0.95;
    11    1    0.045    0.030    0    0    1    1    0    12.66    1    1.05    0.95;
    12    1    0.060    0.035    0    0    1    1    0    12.66    1    1.05    0.95;
    13    1    0.060    0.035    0    0    1    1    0    12.66    1    1.05    0.95;
    14    1    0.120    0.080    0    0    1    1    0    12.66    1    1.05    0.95;
    15    1    0.060    0.010    0    0    1    1    0    12.66    1    1.05    0.95;
    16    1    0.060    0.020    0    0    1    1    0    12.66    1    1.05    0.95;
    17    1    0.060    0.020    0    0    1    1    0    12.66    1    1.05    0.95;
    18    1    0.090    0.040    0    0    1    1    0    12.66    1    1.05    0.95;
    19    1    0.090    0.040    0    0    1    1    0    12.66    1    1.05    0.95;
    20    1    0.090    0.040    0    0    1    1    0    12.66    1    1.05    0.95;
    21    1    0.090    0.040    0    0    1    1    0    12.66    1    1.05    0.95;
    22    1    0.090    0.040    0    0    1    1    0    12.66    1    1.05    0.95;
    23    1    0.090    0.050    0    0    1    1    0    12.66    1    1.05    0.95;
    24    1    0.420    0.200    0    0    1    1    0    12.66    1    1.05    0.95;
    25    1    0.420    0.200    0    0    1    1    0    12.66    1    1.05    0.95;
    26    1    0.060    0.025    0    0    1    1    0    12.66    1    1.05    0.95;
    27    1    0.060    0.025    0    0    1    1    0    12.66    1    1.05    0.95;
    28    1    0.060    0.020    0    0    1    1    0    12.66    1    1.05    0.95;
    29    1    0.120    0.070    0    0    1    1    0    12.66    1    1.05    0.95;
    30    1    0.200    0.100    0    0    1    1    0    12.66    1    1.05    0.95;
    31    1    0.150    0.070    0    0    1    1    0    12.66    1    1.05    0.95;
    32    1    0.210    0.100    0    0    1    1    0    12.66    1    1.05    0.95;
    33    1    0.060    0.040    0    0    1    1    0    12.66    1    1.05    0.95;
];
%%generator data
%   bus    Pg  Qg  Qmax    Qmin    Vg  mBase   status  Pmax    Pmin
mpc.gen = [
    1    0       0      60 -60    1.05   100   1   100   0  
        
];
%%branch data
%   fbus   tbus    r   x   b   rateA   rateB   rateC   ratio   angle
%   status
mpc.branch = [  %% (r and x specified in ohms here, converted to p.u. below)
    1   2    0.0922    0.0470    0    130    130    130 0    0    1;
    2    3    0.4930    0.2512    0    130    130    130    0    0    1;
    3    4    0.3661    0.1864    0    130    130    130    0    0    1;
    4    5    0.3811    0.1941    0    130    130    130    0    0    1;
    5    6    0.8190    0.7070    0    130    130    130    0    0    1;
    6    7    0.1872    0.6188    0    130    130    130    0    0    1;
    7    8    0.7115    0.2351    0    130    130    130    0    0    1;
    8    9    1.0299    0.7400    0    130    130    130    0    0    1;
    9    10    1.0440    0.7400    0    130    130    130    0    0    1;
    10    11    0.1967    0.0651    0    130    130    130    0    0    1;
    11    12    0.3744    0.1298    0    65    65    65    0    0    1;
    12    13    1.4680    1.1549    0    32    32    32    0    0    1;
    13    14    0.5416    0.7129    0    65    65    65    0    0    1;
    14    15    0.5909    0.5260    0    65    65    65    0    0    1;
    15    16    0.7462    0.5449    0    65    65    65    0    0    1;
    16    17    1.2889    1.7210    0    65    65    65    0    0    1;
    17    18    0.7320    0.5739    0    32    32    32    0    0    1;
    2    19    0.1640    0.1565    0    32    32    32    0    0    1;
    19    20    1.5042    1.3555    0    32    32    32    0    0    1;
    20    21    0.4095    0.4784    0    16    16    16    0    0    1;
    21    22    0.7089    0.9373    0    16    16    16    0    0    1;
    3    23    0.4512    0.3084    0    16    16    16    0    0    1;
    23    24    0.8980    0.7091    0    16    16    16    0    0    1;
    24    25    0.8959    0.7071    0    32    32    32    0    0    1;
    6    26    0.2031    0.1034    0    32    32    32    0    0    1;
    26    27    0.2842    0.1447    0    32    32    32    0    0    1;
    27    28    1.0589    0.9338    0    32    32    32    0    0    1;
    28    29    0.8043    0.7006    0    32    32    32    0    0    1;
    29  30    0.5074    0.2585    0    32    32    32    0    0    1;
    30    31    0.9745    0.9629    0    16    16    16    0    0    1;
    31    32    0.3105    0.3619    0    16    16    16    0    0    1;
    32    33    0.3411    0.5302    0    16    16    16    0    0    1;
];

%% convert branch impedances from Ohms to p.u.
[PQ, PV, REF, NONE, BUS_I, BUS_TYPE, PD, QD, GS, BS, BUS_AREA, VM, ...
    VA, BASE_KV, ZONE, VMAX, VMIN, LAM_P, LAM_Q, MU_VMAX, MU_VMIN] = idx_bus;
[F_BUS, T_BUS, BR_R, BR_X, BR_B, RATE_A, RATE_B, RATE_C, ...
    TAP, SHIFT, BR_STATUS, PF, QF, PT, QT, MU_SF, MU_ST, ...
    ANGMIN, ANGMAX, MU_ANGMIN, MU_ANGMAX] = idx_brch;
Vbase = mpc.bus(1, BASE_KV) * 1e3;      %% in Volts
Sbase = mpc.baseMVA * 1e6;              %% in VA
mpc.branch(:, [BR_R BR_X]) = mpc.branch(:, [BR_R BR_X]) / (Vbase^2 / Sbase);
return;

⛄ 运行结果

⛄ 参考文献

[1] 王亚梅.面向多目标的主动配电网无功协调优化[D].山东理工大学[2023-06-16].DOI:CNKI:CDMD:2.1018.139525.

[2] 陈功贵,曹佳,刘耀,等.基于全序排列帝国主义算法的多目标无功优化仿真研究[J].实验室研究与探索, 2019, 38(7):6.DOI:10.3969/j.issn.1006-7167.2019.07.023.

[3] 袁辉,徐贵光,周京阳.基于模糊线性规划的无功电压优化[J].电网技术, 2003, 27(12):5.DOI:CNKI:SUN:DWJS.0.2003-12-008.

[4] 刘述奎,陈维荣,李奇,等.基于自适应聚焦粒子群优化算法的电力系统多目标无功优化[J].电网技术, 2009(13):53-58.DOI:CNKI:SUN:DWJS.0.2009-13-012.

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值