资源简介

matlab近似处理电力系统潮流追踪(PowerTracing),一个简易计算潮流追踪的小程序,适用于处理多节点的电力系统潮流分配追踪,作为收取电价的依据

资源截图

代码片段和文件信息

function [Propotion_P_Backward_Result] = PowerTracing(BusBranch)
%PowerTracing 数据格式参考IEEE118_BustxtIEEE118_Branch

%% 生成逆流有功稀疏矩阵
% 支路有功部分
[Node_Bus~]=size(Bus);
i=Branch(:1);
j=Branch(:2);
P_Backward=-(Branch(:3)-Branch(:5))/2;
Sparse_P_Backward=sparse(jiP_BackwardNode_BusNode_Bus);
Sparse_P_Backward=full(Sparse_P_Backward);
for r=1:Node_Bus
    for s=1:Node_Bus
        if (Sparse_P_Backward(rs)>0)
            temp=Sparse_P_Backward(sr);
            Sparse_P_Backward(sr)=-Sparse_P_Backward(rs);
            Sparse_P_Backward(rs)=temp;
        end
    end
end
% 发电机有功部分
for t=1:Node_Bus
    if (Bus(t4)>0)
        Sparse_P_Backward(tt)=-Bus(t4);
    end
end
% 矩阵取反
Sparse_P_Backward=-Sparse_P_Backward;
%% 发电机和支路的分配比
% 先构造基本比例矩阵
Sum_P_Backward=sum(Sparse_P_Backward);
Sum_P_Backward(Sum_P_Backward==0)=0.001;
Proportion_P_Backward=zeros(Node_BusNode_Bus);
for u=1:Node_Bus
    for v=1:Node_Bus
        Proportion_P_Backward(uv)=Sparse_P_Backward(uv)/Sum_P_Backward(v);
    end
end
% 比例矩阵构建
for w=1:Node_Bus
    Proportion_Part=zeros(Node_BusNode_Bus);
    Proportion_Part(:w)=Proportion_P_Backward(:w);
    Proportion_Final=Proportion_Part;
    Flag=1;
    
    while(Flag==1)
        Proportion_Temp=Proportion_Part-diag(diag(Proportion_Part));
        Proportion_Part=zeros(Node_BusNode_Bus);
        for x=1:Node_Bus
            Proportion_Part_Temp=zeros(Node_BusNode_Bus);
            for y=1:Node_Bus
            Proportion_Part_Temp(:y)=Proportion_Temp(yx)*Proportion_P_Backward(:y);
            end
            Proportion_Part=Proportion_Part+Proportion_Part_Temp;
        end
        Proportion_Final=Proportion_Final+Proportion_Part;
        Proportion_Flag=Proportion_Part-diag(diag(Proportion_Part));
        if (Proportion_Flag==zeros(Node_BusNode_Bus))
            Flag=0;
        end
    end
    Propotion_P_Backward_Result(::w)=Proportion_Final;
end
end


评论

共有 条评论