资源简介

用matpower计算潮流,需要matpower工具箱才能运行

资源截图

代码片段和文件信息

%%基本粒子群算法
clear all
clc
tic
%%参数设置
maxgen=100;       %迭代次数
sizepop=20;       %种群大小
c=1.49445;       %速度更新参数,c1=c2
wmax=0.9;           %惯性权重
wmin=0.4
popmax=[1.06 8 5]; %发电机节点电压、变压器分接头、电容器投入组数上限
popmin=[0.94 0 0]; %发电机节点电压、变压器分接头、电容器投入组数下限
vmax=[0.2 2 2];    %速度上限
vmin=[-0.2 -2 -2]; %速度下限
dim=[6 4 2];       %变量维数
shuju=case_ieee30; %得到30节点的数据
%%初始化种群

for i=1:sizepop
    pop(i1:dim(1))                             =rand(1dim(1))*(popmax(1)-popmin(1))+popmin(1); %初始化节点电压
    pop(idim(1)+1:dim(1)+dim(2))               =round(popmax(2)*rand(1dim(2)));                %初始化分接头位置,取整
    pop(idim(1)+dim(2)+1:dim(1)+dim(2)+dim(3)) =round(popmax(3)*rand(1dim(3)));                %初始化投入组数,取整
    v(i1:dim(1))                               =0.2*rands(1dim(1));
    v(idim(1)+1:dim(1)+dim(2))                 =2*rands(1dim(2));
    v(idim(1)+dim(2)+1:dim(1)+dim(2)+dim(3))   =2*rands(1dim(3));
    %计算网损大小
    shuju.bus([1 2 5 8 11 13]8)                =pop(i1:dim(1));                                %改30节点中的节点电压
    shuju.gen(:6)                              =pop(i1:dim(1));                                %改30节点中的节点电压
    shuju.branch([11 12 15 36]9)               =pop(idim(1)+1:dim(1)+dim(2))*0.025+0.9;                  %改变压器变比
    shuju.bus([10 24]6)                        =pop(idim(1)+dim(2)+1:dim(1)+dim(2)+dim(3))*10;    %改电容器容量
    [basemva bus gen branch success et]         =runpf(shuju);
    fitness(i)                                  =sum(branch(:14)+branch(:16));                %计算出适应度大小,即网损大小
end
[best index]=min(fitness);
gtsite=pop;             %个体最佳位置
gtfit=fitness           %个体最佳适应度
popsite=pop(index:);   %全局最佳位置
popfit=fitness(index);  %全局最佳适应度
trace(1)=popfit;
for j=1:maxgen
    w=wmax-(wmax-wmin)/maxgen*j;
    for i=1:sizepop
        %速度更新
        v(i:)=w*v(i:)+c*rand*(gtsite(i:)-pop(i:))+c*rand*(popsite-pop(i:));
        %限制微粒速度
        v1=v(i1:dim(1));                               %节点电压速度
        v2=v(idim(1)+1:dim(1)+dim(2));                 %变比速度
        v3=v(idim(1)+dim(2

评论

共有 条评论