基于改进粒子群算法的多目标分布式电源选址定容规划(附带Matlab代码)
通过分析分布式电源对配电网的影响,以有功功率损耗、电压质量及分布式电源总容量为优化目标,基于模糊理论建立了分布式电源在配电网中选址定容的多目标优化模型,并提出了一种改进粒子群算法进行求解。在算例仿真中,基于IEEE-14标准节点系统,采用MATLAB仿真工具对所提算法进行了测试,证实了所提算法全局搜索能力较强、收敛速度较快,并通过比较分析验证了该模型和算法的可行性及有效性。
1.含DG的配电网潮流计算
连接到配电网的 DG所采用的模型既可简化为 PV节点,也可以是PQ节点。本文将其当成具有恒定功率因数的PQ节点,由于DG 的位置一般靠近负荷中心,因此假设DG的位置就在负荷节点上。DG接入负荷节点的模型如下图所示,只需考虑改变接入DG 节点的负载功率变化即可。

建立了DG接入配电网模型后,便可以根据相应的节点发电负载功率参数和配电网线路参数进行潮流计算,进而得到配电网中各个节点的电压以及功率分布。本文在算例仿真过程中采用牛顿拉夫逊法进行潮流计算,该方法具有良好的线性收敛性能。
2.基于改进粒子群优化算法多目标优化的DG选址定容的流程

3.仿真代码
clc;
clear;
close all;
nbus=14;
V=without_DG_process(nbus);%初始电压
voltval1=V;
%% 设置种群迭代参数
iter_max=100; %迭代次数
no_of_pop=100; %种群数量
prop_crsval=0.7; %交叉概率
no_of_crs=2*round(prop_crsval*no_of_pop/2); prop_mutval=0.3; %突变概率
no_of_mut=round(prop_mutval*no_of_pop);
mu=0.02;
sigma=2;
% runpf(case14)
% mpc=case14;
% mpc.branch ;linedt =bus_line_data(14);%% 初始化种群
int_tmp_pop.Position=[];
int_tmp_pop.Cost=[];
int_tmp_pop.Rank=[];
int_tmp_pop.DominationSet=[];
int_tmp_pop.DominatedCount=[];
int_tmp_pop.CrowdingDistance=[];% 拥挤度
%储存每次迭代结果
population_func_data=repmat(int_tmp_pop,no_of_pop,1);
%B = repmat(A,m,n),将矩阵 A 复制 m×n 块,即把 A 作为 B 的元素,B 由 m×n 个 A 平铺而成。B 的维数是 [size(A,1)*m, size(A,2)*n] 。
%% dg位置与容量约束
minval1=1; %dg位置
maxval1=nbus; %dg位置,在1-14节点中
minval2=0; %dg容量
maxval2=50; %dg容量
no_of_dg=4; %dg数量%% randsrc函数,无参数形式,随机输出
for locm=1:no_of_pop%产生变量,随机生成dg位置与容量,population_func_data(locm).Position=[randsrc(1,no_of_dg,minval1:maxval1) randsrc(1,no_of_dg,minval2:maxval2)];%计算出随机生成对应位置与容量情况下的目标函数值population_func_data(locm).Cost=feed_power(nbus,population_func_data(locm).Position);end
[population_func_data, rankval]=non_dominate_sorting_process(population_func_data);%% 非支配种群排序过程
population_func_data=cal_crown_dist(population_func_data,rankval);%% 计算种群拥挤度
[population_func_data, rankval]=sort_process(population_func_data);%% 排序过程
%% 迭代
for iter=1:iter_max%% 种群交叉population_cross=repmat(int_tmp_pop,no_of_crs/2,2);%B = repmat(A,m,n),将矩阵 A 复制 m×n 块,即把 A 作为 B 的元素,B 由 m×n 个 A 平铺而成。B 的维数是 [size(A,1)*m, size(A,2)*n] 。for k=1:no_of_crs/2loc1=randi([1 no_of_pop]);loc1_data=population_func_data(loc1);loc2=randi([1 no_of_pop]);loc2_data=population_func_data(loc2);[population_cross(k,1).Position, population_cross(k,2).Position]=cross_over_process(loc1_data.Position,loc2_data.Position,minval1,maxval1,minval2,maxval2);population_cross(k,1).Cost=feed_power(nbus,population_cross(k,1).Position);population_cross(k,2).Cost=feed_power(nbus,population_cross(k,2).Position);endpopulation_cross=population_cross(:);%% 种群变异population_mute=repmat(int_tmp_pop,no_of_mut,1);for k=1:no_of_mutlocm=randi([1 no_of_pop]);data_locm=population_func_data(locm);population_mute(k).Position=mutation_process(data_locm.Position,mu,sigma,minval1,maxval1,minval2,maxval2);population_mute(k).Cost=feed_power(nbus,population_mute(k).Position);end%% 完成筛选population_func_data=[population_func_data;population_cross;population_mute]; [population_func_data, rankval]=non_dominate_sorting_process(population_func_data);population_func_data=cal_crown_dist(population_func_data,rankval);population_func_data=sort_process(population_func_data);population_func_data=population_func_data(1:no_of_pop);[population_func_data, rankval]=non_dominate_sorting_process(population_func_data);population_func_data=cal_crown_dist(population_func_data,rankval);[population_func_data, rankval]=sort_process(population_func_data);resout_final=population_func_data(rankval{1});res1=[resout_final.Cost];plot3(res1(1,:),res1(2,:), res1(3,:),'b*')
xlabel('1网损')
ylabel('2电压稳定性')
zlabel('3容量和')
grid on
hold off
title('目标优化结果')
drawnowend
%% 结果输出
datart=resout_final(end).Position;
%最优变量,位置和容量
DG_LOCATION=datart(1:4)
DG_UNIT_SIZE=datart(5:8)
load resg.mat
POWER_LOSSES_WITH_DG=POWER_LOSSES
STABILITY_INDEX_WITH_DG=STABILITY_INDEX;%稳定性指数
voltval2=V;
EIGEN_VALUE=diag(d1).';%特征值
%% 画图
figure,plot(1:nbus,voltval1,'p-s','linewidth',2);
hold on,
plot(1:nbus,voltval2,'b-s','linewidth',2);
grid on;
legend('无DG时电压分布','有DG时电压分布');
xlabel('节点');
ylabel('电压幅值/pu');
4.仿真算例与结果分析仿真
在算例仿真中,基于IEEE-14标准节点系统,采用MATLAB仿真工具对所提算法进行了测试,证实了所提算法全局搜索能力较强、收敛速度较快,并通过比较分析验证了该模型和算法的可行性及有效性。


代码地址:
基于改进粒子群算法的多目标分布式电源选址定容规划
参考论文:
基于改进粒子群算法的多目标分布式电源选址定容规划

相关文章:
基于改进粒子群算法的多目标分布式电源选址定容规划(附带Matlab代码)
通过分析分布式电源对配电网的影响,以有功功率损耗、电压质量及分布式电源总容量为优化目标,基于模糊理论建立了分布式电源在配电网中选址定容的多目标优化模型,并提出了一种改进粒子群算法进行求解。在算例仿真中,基于IEEE-14标准…...
SAP 学习笔记 - 系统移行业务 - MALSY(由Excel 移行到SAP 的收费工具)
以前有关移行,也写过一些文章,比如 SAP 学习笔记 - 系统移行业务 - Migration cockpit工具 - 移行Material(品目)-CSDN博客 SAP 学习笔记 - 系统移行业务 - Migration cockpit工具2 - Lot导入_sap cockpit-CSDN博客 SAP学习笔记…...
2025美国网络专线国内服务商推荐
在海外业务竞争加剧的背景下,稳定高效的美国网络专线已成为外贸企业、跨国电商及跨国企业的刚需。面对复杂的国际网络环境和严苛的业务要求,国内服务商Ogcloud凭借其创新的SD-WAN技术架构与全球化网络布局,正成为企业拓展北美市场的优选合作伙…...
如何正确地在 Postman 中添加认证 Token?
在 Postman 中设置 token。我们知道 HTTP 是无状态的。token 是保持用户的登录状态或者其他数据的一种机制,从而让用户在不同页面之间保持一致的体验。 在 Postman 中添加认证 token 教程...
c++-引用
一、引用的基本概念 引用是C中一种特殊的变量别名机制,本质上是指针常量(编译器自动解引用),但语法更简洁安全。 核心特性: 必须初始化:引用在定义时必须绑定到一个已存在的对象。 类型严格匹配…...
SpringCould微服务架构之Docker(6)
容器的基本命令: 1. docker exec :进入容器执行命令 2. docker logs: -f 持续查看容器的运行日志 3. docker ps:查看所有运行的容器和状态 案例:创建运行一个容Nginx容器 docker run--name myNginx -p 80:80 -d nginx 命…...
Linux|gitlab|二进制快速安装部署gitlab-ce教程
一、 gitlab二进制文件下载地址: 官方网站: gitlab/gitlab-ce - Packages packages.gitlab.com 清华镜像站: Index of /gitlab-ce/yum/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror gitlab分为ce也就是社区版本和ee版本,…...
java网盘项目,文件和文件夹用两个表还是一个表,两个表理论查询效率慢了为啥要用,有啥优势
java网盘项目,文件和文件夹用两个表还是一个表,两个表理论查询效率慢了为啥要用,有啥优势 根据网盘系统设计经验与数据库优化原则,独立文件夹表和文件表的设计在复杂场景下具有显著优势。以下是分表方案的核心价值与效率优化策略…...
NixVis 开源轻量级 Nginx 日志分析工具
NixVis NixVis 是一款基于 Go 语言开发的、开源轻量级 Nginx 日志分析工具,专为自部署场景设计。它提供直观的数据可视化和全面的统计分析功能,帮助您实时监控网站流量、访问来源和地理分布等关键指标,无需复杂配置即可快速部署使用。 演示…...
vscode正则表达式使用
小标题 ^\d.\d.\d\s.*$ ^表示匹配字符串的开头。\d\.\d\.\d表示匹配一到多个数字,接着一个小数点,再接着一到多个数字,然后又一个小数点和一到多个数字,用来匹配类似 “2.1.1” 这样的标题号部分。\s表示匹配一个空格。.*表示匹配…...
OpenAI API - Realtime 实时
文章目录 实时 API(Beta)使用实时API入门示例应用合作伙伴集成 用例通过 WebRTC 连接概述连接详情创建一个临时token发送和接收事件 使用 WebSockets 连接概述连接详情 实时对话Beta实时语音到语音会话会话生命周期事件文本输入和输出音频输入和输出语音…...
PE文件(十三)资源表
所谓的资源也就是我们之前学的MFC中的对话框,按钮,编辑框之类的东西。不仅MFC有资源,我们平时熟悉的控制台程序也有资源 当我们平时写一些程序或者木马时,我们通常对其定义一个随机的名称或者路径,然后再向外界进行释…...
丝杆升降机行程控制:精准运行的奥秘
丝杆升降机作为机械传动领域的 “得力干将”,在环保设备、工业生产线、建筑施工等众多场景中发挥着关键作用。其能够实现重物的升降、平移等操作,而行程控制对于丝杆升降机而言,就如同给机器设定了行动边界,不仅关乎设备能否精准达…...
为什么使用Flask + uWSGI + Nginx 部署服务?
概述 在Python开发的web应用中,我们通常能够看到flask、uWSGI、Nginx出现在一起,他们之间的关系是什么?为什么总是被应用在一起?  三者共同使用为了实现一个目的:客户端向服务端发送数据请求,服…...
力扣.旋转矩阵Ⅱ
59. 螺旋矩阵 II - 力扣(LeetCode) 代码区: class Solution {const int MAX25; public:vector<vector<int>> generateMatrix(int n) {vector<vector<int>> ans;vector<int> hang;int len_nn;int arry[25][25]…...
HFSS 使用入门
资源 下载资源: https://download.csdn.net/download/wangjun_huster/90547193 下载破解: https://download.csdn.net/download/wangjun_huster/90547551 安装 https://www.bilibili.com/list/ml3403866295?oid925751664&bvidBV1CT4y1u7LB 入门…...
对内核fork进程中写时复制的理解记录
前言 文章写于学习Redis时对aof后台重写中写时复制的疑问 一、感到不理解的歧义 在部分技术文档中(以小林的文章为例),对写时复制后的内存权限存在如歧义: ! 二、正确技术表述 根据Linux内核实现(5.15版本&#x…...
ubuntu 升级补丁,备份备份备份
一、常规软件包更新(安全补丁和软件升级) 更新软件包列表 从软件源服务器获取最新的软件包信息: sudo apt update升级已安装的软件包 安装所有可用的更新(安全补丁、功能更新): sudo apt upgrade处理依赖…...
HarmonyOS-ArkUI Navigation (导航组件)-第一部分
导航组件主要实现页面间以及组件内部的界面跳转,支持在不同的组件间进行参数的传递,提供灵活的跳转栈操作,从而便捷的实现对不同页面的访问和复用。 我们之前学习过Tabs组件,这个组件里面也有支持跳转的方式,Navigati…...
【磁盘扩容】linux磁盘扩容
一、新磁盘分区 1、新磁盘在接入服务器后,很好辨认 使用fdisk -l命令,查看: 或者使用 lsblk -f 其中sdb,sdc, sda都是挂载硬盘,sr0为DVD光盘,很明显sdc没有进行任何的挂载,确定sdc为新磁盘 2、格式化新…...
字典翻转教学
第1关:创建大学英语四级单词字典 任务描述 本关任务:编写一个能创建大学英语四级单词字典的小程序。 相关知识 为了完成本关任务,你需要掌握: 1.创建空字典 2.字典中增加元素 3.字典视图 4.字典排序 创建空字典 空的大括号{}和…...
详解CountDownLatch底层源码
大家好,我是此林。 今天来分享一下CountDownLatch的底层源码。 CountDownLatch 是 Java 并发包 (java.util.concurrent) 中的线程之间同步工具类,主要用于协调多个线程的执行顺序。其核心思想是通过计数器实现线程间的"等待-唤醒"机制&#…...
Gitee批量删除仓库
Gitee批量删除仓库 文章目录 Gitee批量删除仓库生成一个GiteeToken通过Python调用Gitee API参考文档 生成一个GiteeToken 右上角下拉->设置->安全设置->私人令牌->生成新令牌,注意将令牌保存(只会出现一次) 通过Python调用Gite…...
AI 时代,我们该如何写作?
当ChatGPT/DeepSeek能在几秒钟内产出一篇文章,而且生成能力日益精进,你是否也曾思考,我还能做什么? 当2024年AI开始进入人们的视野,我在CSDN 上的博客也悄然发生了变化,以前一篇文章发布后,阅读…...
day16 学习笔记
文章目录 前言一、广播机制二、数组遍历1.for循环2.nditer函数 三、数组操作1.reshape函数2.flat属性3.flatten函数4.revel函数5.数组转置6.升维与降维7.数组的连接与分割8.数组运算 前言 通过今天的学习,我进一步掌握了更多numpy的语法知识 一、广播机制 广播&am…...
Python基于EdgeTTS库文本转语音
EdgeTTS,支持粤语等各种方言,无需部署无需Key,完全免费,太香了 因为其底层是使用微软 Edge 的在线语音合成服务,所以不需要下载任何模型,甚至连 api_key 都给你省了,简直不要太良心~ 关键是&a…...
Day43 | 129. 求根节点到叶节点数字之和、1382. 将二叉搜索树变平衡、100. 相同的树
129. 求根节点到叶节点数字之和 题目链接:129. 求根节点到叶节点数字之和 - 力扣(LeetCode) 题目难度:中等 代码: class Solution {List<Integer> pathnew ArrayList<>();int res0;public int sumNumb…...
MFC案例:利用计时器(Timer)动态绘制正弦曲线
这是一个基于对话框的MFC程序,运行效果是在只画出I、IV象限的坐标系中绘制出红、蓝、绿各相差PI/2的三条正弦曲线,计时器运行一个周期曲线在X轴移动一个像素(对应1度),Y轴显示正弦值(150个像素代表1&#x…...
解析 HTML 网站架构规范
2025/3/28 向全栈工程师迈进! 一、网页基本的组成部分 网页的外观多种多样,但是除了全屏视频或游戏,或艺术作品页面,或只是结构不当的页面以外,都倾向于使用类似的标准组件。 1.1页眉 通常横跨于整个页面顶部有一…...
Kubernetes》》K8S》》Deployment 、Pod、Rs 、部署 nginx
Deployment deployment文档说明 kubectl get rs,deployment,pods 删除pod 、deployment 、service # 如果只删除pod,deployment会自动重建,所以应该先删除deployment。 # 下面演示的是删除所有deployment,可以指定只删除某个 # 删除所有…...

