前推回代算法

非常好的前推回代算法,当时的课程设计

应用介绍

非常好的前推回代算法,当时的课程设计 

clear all;

clc

  %branchno.  INbus   OUTbus  Resistance(pu) Reactance(pu)

LD=[  1       1      2       0.123         0.4127                                          % i edited the 0 bus to 1 and add +1 to all the bus

      2       2      3       0.014         0.6051 

      3       3      4       0.746         1.205

      4       4      5       0.698         0.6084

      5       5      6       1.983         1.7276

      6       6      7       0.905         0.7886

      7       7      8       2.055         1.164

      8       8      9       4.795         2.716

      9       9      10       5.343         3.0264];  

     

     % bus no     activepowerPU   reactivepowerPU

  BD=[   1         0            0                                   % swing bus

         2         1.840         0.460  

         3         0.980         0.340

         4         1.790         0.446

         5         1.598         1.840

         6         1.610          0.600

         7         0.780         0.110

         8         1.150         0.060

         9         0.980         0.130

         10        1.640         0.200 ] ;

     

F=LD(:,2:3);

M=max(LD(:,2:3));

N=max(M);

f=[1:N]';

for i=1:N

    g=find(F(:,:)==i);

    h(i)=length(g);

end

k(:,1)=f;

k(:,2)=h';

  cent= input('central bus  ');

% this section of the code is to adjust line data to the standard

  NLD=zeros(N,size(LD,2));

[c r]=find(LD(:,2:3)==cent);

for i=1:length(c)

    if r(i)==2

        LD(c(i),2:3)=[LD(c(i),3),LD(c(i),2)];

    end

    

end

NLD=LD(c,:);

LD(c,:)=[];

t=find(k(:,1)==cent);

k(t,2)=k(t,2)-length(c);

j=length(c);

i=1;

while sum(k(:,2))>0

    c=[];

    b=[];

    t=[];

    [c e]=find(LD(:,2:3)==NLD(i,3));

    

    

    if size(c,2)~=0

        b=LD(c,:);

        LD(c,:)=[];

        t=find(k(:,1)==NLD(i,3));

        k(t,2)=k(t,2)-(size(c,1)+1);

        d=find(b(:,3)==NLD(i,3));

        b(d,2:3)=[b(d,3),b(d,2)];

        NLD(j+1:j+size(c,1),:)=b;

        j=j+size(c,1);

    elseif size(c,2)==0 && k(NLD(i,3),2)>0

            k(NLD(i,3),2)=k(NLD(i,3),2)-1;

    end

    i=i+1;

end

LD=NLD;

S=complex(BD(:,2),BD(:,3));% complex power

VB=ones(size(BD,1),1);% initial bus votage% 10 change to specific data value

Z=complex(LD(:,4),LD(:,5));%branch impedance

IB=zeros(size(LD,1),1);

It=input('Enter Number of Iteration: ');

for i=1:It

    

%backward sweep

I=conj(S./VB);

    for i=size(LD,1):-1:1

        c=[];

        e=[];

        [c e]=find(LD(:,2:3)==LD(i,3));

        if size(c,1)-1==0

            IB(LD(i,1))=I(LD(i,3));

        else

             IB(LD(i,1))=I(LD(i,3))+sum(IB(LD(c,1)))-IB(LD(i,1));

        end

    end

 % forward sweep

 for i=1:size(LD,1)

     VB(LD(i,3))=VB(LD(i,2))-IB(LD(i,1))*Z(i);

 end

end

Vbus=VB

Ibus=IB

PowerlossPU=sum(abs(IB).^2.*real(Z))

文件列表(部分)

名称 大小 修改日期
finalrobustbackwardforward.m1.10 KB2017-11-10
finalrobustbackwardforward_powermatlab0.00 KB2017-11-10

立即下载

相关下载

[改进牛拉法配电网潮流计算] 针对配电网的特点,做出两种假设,基于这两种假设,改进了一般牛顿拉夫逊法,使其能够适应配电网潮流计算的要求,其运算性能与前推回代法的性能一致,效果良好。文件中提供了IEEE33节点的数据,将其放在d盘中,执行源文件即可获得结果。
[电力系统状态估计] 电力系统状态估计(电力网系统辨识)-最小二乘法-matlab txt文件为IEEE30节点电力网数据 导入其它电力网数据时,可按txt文档内格式保存数据,也可修改m文件代码 辨识后的数据将会存储在oStateEstimation.txt文件内
[基于GUI的潮流计算工具] 该工具箱包含具有三种不同的潮流计算方法:Gauss-Seidel,Newton-Raphson和快速解耦。 有如下算例已经进行过计算,IEEE6节点,IEEE9节点,IEEE14节点,IEEE26节点等等,更多详情请看代码。
[快速解耦牛顿拉夫森法代码] 这是使用快速解耦牛顿拉夫森法进行潮流分析, ​潮流计算电压和电流过程​
[快速解耦潮流计算代码] 通过使用快速解耦法进行潮流计算,该方法是接近于近似的方法,接近于真实值来求解,其传输线路X与R的比值高,这个程序并且可以适用于任何相关的节点和线路数据。
[NEWTON-RAPHSON潮流分析] 这个程序将线路数据(标幺值)和bus数据(以pu为单位)(按照给定的格式定义),适用于不同的电力系统网络(例如:IEEE标准系统为6节点算例等)作为输入并计算PQ节点的| V | 在p.u.

评论列表 共有 1 条评论

jiali 2年前 回复TA

请问作者有这个代码对应的配电系统图吗?是适用于所有的电气拓扑图吗?

微信捐赠

微信扫一扫体验

立即
上传
发表
评论
返回
顶部