电力系统潮流计算中的导纳矩阵计算,matlab源程序

电力系统导纳矩阵计算,MATLAB

这学期在上大四专业选修课时,一个课后作业是写一个电力系统的导纳矩阵计算程序,我找了找资料肝了半天的程序如下图所示,希望能对大家有用。

程序说明

1.具有非标准变比的变压器处理
如果变压器阻抗归算到非标准变比的K侧,则在参数输入脚本文件data中变压器参数第五列记为0;如果归算到非标准变比的1侧,则在参数输入脚本文件data中变压器参数第五列记为1。
变压器阻抗参数归算

2.线路为双回线时,需要将两个节点之间线路阻抗减半,导纳加倍;同时,如果线路是双回线则在data线路参数中第五列记为1,否则记为0。

程序如下

程序data脚本用于输入参数,buildYbus是计算导纳矩阵函数
data.m

%-----Input Data-------输入参数脚本

%线路参数:第一、二列为母线节点编号 第三列为线路阻抗 第四列为线路对地导纳(Y)
%---------第五列(0——单回线,1——双回线)
lineData=[1 2 0.04+0.25i 0.5i 0;
    1 3 0.1+0.35i 0 0;
    2 3 0.08+0.3i 0.5i 0;];

%变压器参数:第一、二列为母线节点编号  第三列变压器阻抗 第四列变压器非标准变比(1:K) 
%---------第五列(0——变压器阻抗归算到K侧即第二列母线节点编号,1——归算到1侧即第一列节点编号) 
transData=[4 2 0.015i 1.05 1;
    5 3 0.03i 1.05 1;];

主程序buildYbus.m

function Ybus=buildYus()
    %调用data输入参数
    data;
    %变压器π型等效导纳参数
    trans=zeros(size(transData ,1),5);
    trans(:,1:2)=transData(:,1:2);
    for k=1:size(transData,1)
        if transData(k,5)   %变压器阻抗归算到1侧计算导纳矩阵
            trans(k,3)=1/(transData(k,3)*transData(k,4));
            trans(k,4)=(transData(k,4)-1)/(transData(k,3)*transData(k,4));
            trans(k,5)=(1-transData(k,4))/(transData(k,4)^2*transData(k,3));
        else   %变压器阻抗归算到K侧计算导纳矩阵
            trans(k,3)=transData(k,4)/transData(k,3);
            trans(k,4)=(transData(k,4).^2-transData(k,4))/transData(k,3);
            trans(k,5)=(1-transData(k,4))/transData(k,3);
        end
    end
    %节点数
    nodeNum=max([lineData(:,1)' lineData(:,2)' transData(:,1)' transData(:,2)']);
    %计算节点导纳矩阵
    Ybus=zeros(nodeNum);
    %根据线路参数修改节点导纳矩阵
    n1=lineData(:,1);
    n2=lineData(:,2);
    for k=1:size(lineData,1)
        %判断线路参数若为双回线,则阻抗减半,导纳加倍
        if lineData(k,5)
            lineData(k,3)=lineData(k,3)/2;
            lineData(k,4)=2*lineData(k,4);
        end
        Ybus(n1(k),n2(k))=Ybus(n1(k),n2(k))-1/lineData(k,3);
        Ybus(n2(k),n1(k))=Ybus(n2(k),n1(k))-1/lineData(k,3);
        Ybus(n1(k),n1(k))=Ybus(n1(k),n1(k))+1/lineData(k,3)+lineData(k,4)/2;%对地导纳Y/2
        Ybus(n2(k),n2(k))=Ybus(n2(k),n2(k))+1/lineData(k,3)+lineData(k,4)/2;
    end
    %根据变压器参数修改节点导纳矩阵
    n1=trans(:,1);
    n2=trans(:,2);
    for k=1:size(trans,1)
        Ybus(n1(k),n2(k))=Ybus(n1(k),n2(k))-trans(k,3);
        Ybus(n2(k),n1(k))=Ybus(n2(k),n1(k))-trans(k,3);
        Ybus(n1(k),n1(k))= Ybus(n1(k),n1(k))+trans(k,4)+trans(k,3);
        Ybus(n2(k),n2(k))= Ybus(n2(k),n2(k))+trans(k,5)+trans(k,3);
    end
end

程序示例

  • 一个五节点的电力系统如下图所示
    五节点电力系统示例
  • 输入为:
%-----Input Data-------输入参数脚本

%线路参数:第一、二列为母线节点编号 第三列为线路阻抗 第四列为线路对地导纳(Y)
%---------第五列(0——单回线,1——双回线)
lineData=[1 2 0.04+0.25i 0.5i 0;
    1 3 0.1+0.35i 0 0;
    2 3 0.08+0.3i 0.5i 0];

%变压器参数:第一、二列为母线节点编号(第一列1侧,第二列K侧)  第三列变压器阻抗 第四列变压器非标准变比(1:K) 
%---------第五列(0——变压器阻抗归算到K侧即第二列母线节点编号,1——归算到1侧即第一列节点编号) 
transData=[4 2 0.015i 1.05 1;
    5 3 0.03i 1.05 1];
  • 跑出的结果如下所示
>> buildYus

ans =

   1.3787 - 6.2917i  -0.6240 + 3.9002i  -0.7547 + 2.6415i   0.0000 + 0.0000i   0.0000 + 0.0000i
  -0.6240 + 3.9002i   1.4539 -66.9808i  -0.8299 + 3.1120i   0.0000 +63.4921i   0.0000 + 0.0000i
  -0.7547 + 2.6415i  -0.8299 + 3.1120i   1.5846 -35.7379i   0.0000 + 0.0000i   0.0000 +31.7460i
   0.0000 + 0.0000i   0.0000 +63.4921i   0.0000 + 0.0000i   0.0000 -66.6667i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.0000 + 0.0000i   0.0000 +31.7460i   0.0000 + 0.0000i   0.0000 -33.3333i
如有错误和改进,欢迎指正交流
  • 23
    点赞
  • 109
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值