IEEE14节点求解系统潮流matlab仿真( PQ分解法)

目录

程序运行结果与IEEE14节点标准测试系统数据比较

设置变量和相关参数

线路和变压器参数矩阵

节点参数矩阵

计算节点导纳矩阵

调整节点编号

计算节点导纳矩阵

PQ解偶迭代

发电机和负荷的注入功率

雅可比矩阵

迭代主程序

潮流计算

还原节点顺序

输出结果


程序运行结果与IEEE14节点标准测试系统数据比较

 

设置变量和相关参数

%节点并联对地之路参数
GND=[9,0,0.19;];
%对地支路数
ngnd=1;
%节点个数
nbb=14;
%线路支路数
ntr=20;
%最大迭代数
nitmax=1000;
%容许误差
error=1e-3;
%迭代次数初始化
nit=0;
%PQ、PV节点数
PQNodes=0;
PVNodes=0;
%节点注入功率
P0=zeros(1,nbb-1);
Q0=[];
%节点导纳矩阵
Y=zeros(nbb,nbb);

线路和变压器参数矩阵

%       入  出   电阻      电抗      电导   电纳       有无    变比
%                                                  调压              
%                                                  变压器
%
tr=[
        1,  2,  .01938,  .05917,    0,   .0264*2,    0,    1.000;
        2,  3,  .04699,  .19797,    0,   .0219*2,    0,    1.000;
        2,  4,  .05811,  .17632,    0,   .0187*2,    0,    1.000;
        1,  5,  .05403,  .22304,    0,   .0246*2,    0,    1.000;
        2,  5,  .05695,  .17388,    0,   .0170*2,    0,    1.000;
        3,  4,  .06701,  .17103,    0,   .0173*2,    0,    1.000;
        4,  5,  .01335,  .04211,    0,   .0064*2,    0,    1.000;
        7,  8,  .00000,  .17615,    0,   .0000,      0,    1.000;
        7,  9,  .00000,  .11001,    0,   .0000,      0,    1.000;
        9,  10, .03181,  .08450,    0,   .0000,      0,    1.000;
        6,  11, .09498,  .19890,    0,   .0000,      0,    1.000;
        6,  12, .12291,  .15581,    0,   .0000,      0,    1.000;
        6,  13, .06615,  .13027,    0,   .0000,      0,    1.000;
        9,  14, .12711,  .27038,    0,   .0000,      0,    1.000;
        10, 11, .08205,  .19207,    0,   .0000,      0,    1.000;
        12, 13, .22092,  .19988,    0,   .0000,      0,    1.000;
        13, 14, .17093,  .34802,    0,   .0000,      0,    1.000;
        4,  7,  .00000,  .20912,    0,   .0000,      1,    0.978;    
        4,  9,  .00000,  .55618,    0,   .0000,      1,    0.969;    
        5,  6,  .00000,  .25202,    0,   .0000,      1,    0.932;    
  ]; 

节点参数矩阵

%节点参数矩阵
%1是平衡节点
%2是pv节点
%3是pq节点

node=[
        %编号  类型  发动机         负荷               电压幅值       电压相位      
         1,   1,    0,           0,                1.0600,           0; 
         2,   2,    0.40,        0.2170+0.1270i,   1.0450,           0;  
         3,   2,    0,           0.9420+0.1900i,   1.0100,           0;  
         4,   3,    0,           0.4780-0.0390i,   1.0000,           0;  
         5,   3,    0,           0.0760+0.0160i,   1.0000,           0;  
         6,   2,    0,           0.1120+0.0750i,   1.0700,           0;  
         7,   3,    0,           0.0000+0.0000i,   1.0000,           0;  
         8,   2,    0,           0.0000+0.0000i,   1.0900,           0;  
         9,   3,    0,           0.2950+0.1660i,   1.0000,           0;  
         10,  3,    0,           0.0900+0.0580i,   1.0000,           0;
         11,  3,    0,           0.0350+0.0180i,   1.0000,           0;  
         12,  3,    0,           0.0610+0.0160i,   1.0000,           0;  
         13,  3,    0,           0.1350+0.0580i,   1.0000,           0;  
         14,  3,    0,           0.1490+0.0500i,   1.0000,           0;  
 ]; 

计算节点导纳矩阵

调整节点编号

%PQ
%PV
%平衡节点
node2=[];
node3=[];
for i=1:nbb
    if(node(i,2)==1)%平衡节点放最后
        node1=node(i,:);
    elseif(node(i,2)==2)%pv节点放中间
        node2=[node2;node(i,:)];
        PVNodes=PVNodes+1;
    elseif(node(i,2)==3)%PQ节点放开头
        node3=[node3;node(i,:)];
        PQNodes=PQNodes+1;
    end
end
node = [node3;node2;node1];%新节点
clearvars node1 node2 node3;
tr1=tr;
for k=1:nbb 
    for i=1:ntr
        for j=1:2
            if(tr1(i,j)==node(k,1))
                tr(i,j)=k;
            end
        end
    end
end

计算节点导纳矩阵

%2---------------------节点导纳矩阵:

for i=1:ntr
    Y(tr(i,1),tr(i,2))=-(1/tr(i,8))/(tr(i,3)+tr(i,4)*1i);
    Y(tr(i,2),tr(i,1))=-(1/tr(i,8))/(tr(i,3)+tr(i,4)*1i);
    
    Y(tr(i,2),tr(i,2))=Y(tr(i,2),tr(i,2))+1/(tr(i,3)+tr(i,4)*1i)+tr(i,6)/2*1i;
    Y(tr(i,1),tr(i,1))=Y(tr(i,1),tr(i,1))+(1/tr(i,8)^2)/(tr(i,3)+tr(i,4)*1i)+tr(i,6)/2*1i;
end

for cc=1:ngnd %对地并联支路的修正
    i=4;%GND(cc,1);
    Y(i,i)=Y(i,i)+GND(cc,2)-GND(cc,3)*1i;
    
end
YR=real(Y);
YI=imag(Y);

PQ解偶迭代

PQ解偶后有:

发电机和负荷的注入功率


Q0=zeros(1,nbb-1-PVNodes);
for i=1:nbb-1
    P0(i)=node(i,3)-real(node(i,4));
end
for i=1:nbb-1-PVNodes
    Q0(i)=0-imag(node(i,4));
end

雅可比矩阵

B1=-YI;
B1(nbb,:)=[];
B1(:,nbb)=[];

B2=-YI;
for i=0:nbb-1
    if(nbb-i<=nbb-1-PVNodes)
        break;
    end
    B2(nbb-i,:)=[];
    B2(:,nbb-i)=[];
end

迭代主程序

%迭代
while(nit<=nitmax)
    %DP=Delta P/U 
    %DQ=Delta Q/U
    DP=zeros(1,nbb-1);
    DQ=zeros(1,nbb-1-PVNodes);   
    DP1=zeros(1,nbb-1);
    DQ1=zeros(1,nbb-1-PVNodes);
    for i=1:nbb-1
        psum=0;
        for j=1:nbb
           psum=psum+node(i,5)*node(j,5)*(YR(i,j)*cos(node(i,6)-node(j,6))+YI(i,j)*sin(node(i,6)-node(j,6))); %计算有功
        end
        DP1(i)=(P0(i)-psum);
        DP(i)=DP1(i)/node(i,5);
    end
    for i=1:nbb-1-PVNodes
        qsum=0;
        for j=1:nbb
           qsum=qsum+node(i,5)*node(j,5)*YR(i,j)*sin(node(i,6)-node(j,6))-node(i,5)*node(j,5)*YI(i,j)*cos(node(i,6)-node(j,6)); %计算无功
        end
        DQ1(i)=(Q0(i)-qsum);
        DQ(i)=DQ1(i)/node(i,5);
    end
    
    MAX=max(max(abs(DP1)),max(abs(DP1)));
    if(MAX<error)
        break;
    end
    UDeltadelta=B1\DP';
    Deltadelta=UDeltadelta./node(1:nbb-1,5);
    DeltaU=B2\DQ';
    
    %更新delta
    
    for i=1:nbb-1
        node(i,6)=node(i,6)+Deltadelta(i);
    end
    
    %更新U
    
    for i=1:nbb-1-PVNodes
        node(i,5)=node(i,5)+DeltaU(i);
    end
    
    nit=nit+1;
    
end

潮流计算

%计算发电机有功功率
psum=0;
for j=1:nbb
    psum=psum+node(14,5)*node(j,5)*(YR(14,j)*cos(node(14,6)-node(j,6))+YI(14,j)*sin(node(14,6)-node(j,6))); %计算有功
end
node(14,3)=psum;
%计算发电机无功
for i=nbb-PVNodes:nbb
    qsum=0;
    for j=1:nbb
        qsum=qsum+node(i,5)*node(j,5)*YR(i,j)*sin(node(i,6)-node(j,6))-node(i,5)*node(j,5)*YI(i,j)*cos(node(i,6)-node(j,6)); %计算无功
    end
    node(i,3)=node(i,3)+imag(node(i,4))*1i+qsum*1i;
end

还原节点顺序

node1=zeros(nbb,6);
for i=1:nbb
    for j=1:nbb
        if(i==node(j,1))
            node1(i,:)=node(j,:);
            node1(i,6)=node1(i,6)*180/pi;
        end
    end
end

输出结果


fprintf("\n         节点号             节点类型          发动机功率           负载功率               电压幅值             相角\n")
format short
disp(node1);

程序下载地址:IEEE14节点PQ分解法求解系统潮流matlab仿真,程序结构简单,仿真结果几乎与原测试数据相同-Matlab文档类资源-CSDN下载

  • 11
    点赞
  • 117
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

фора 快跑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值