电力系统潮流计算中的导纳矩阵计算,matlab源程序_潮流计算导纳矩阵怎么写_山高一小的博客-程序员宅基地

技术标签: 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

如有错误和改进,欢迎指正交流

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43911044/article/details/108920310

智能推荐

抖音直播带货数据统计,抖音直播间数据怎么分析_一篇文章教你看懂抖音直播带货各项数据_飞瓜智投的博客-程序员宅基地

现在直播带货是一个热门趋势,它可以突破抖音挂购物车数量的限制,已经有不少商家通过直播带货实现流量变现了。那么,如何做好抖音直播就成了抖音电商玩家最大的需求。很多带货直播团队都知道,直播后对抖音直播间数据分析的工作十分重要,可以通过抖音直播间数据Fenix来知道直播间付费流量的转化效果好不好?直播间观众对哪些商品更感兴趣?主播应该重点介绍哪些商品特性?分析一场抖音直播间数据,首先需要知道整场直播的基础数据,比如直播时长、播主粉丝量、带货口碑,人气数据以及带货数据,初步判断直播间的控场人气和带货效果。_一篇文章教你看懂抖音直播带货各项数据

java 清空jframe_关于java GUI和清除JFrame来显示新内容?_白石菊姐姐的博客-程序员宅基地

这个小代码可以帮助您解释一些事情:import java.awt.event.*;import javax.swing.*;public class FrameDisplayTest implements ActionListener{/** Creating an object of JFrame instead of extending it* has no side effects.*/pr..._java中jframe清空内容

Avalon总线(一)Avalon-MM Signals_阿瓦隆总线burst_易燃易爆の狮的博客-程序员宅基地

最近在学习及改写dma模块,是基于Avalon总线的。正在结合手册《Avalon Interface Specifications》与相关代码进行深入了解。当然,各个信号顺序都是按照某位大佬的一个模块顺序来逐个学习分析的,排序可能不是太合理,等全部写完之后,我会再整理一波。主要参照**《Avalon Interface Specifications》中的Table3-1和Table3-2**1.Signalsburstcount宽度为1-11,方向为M->S,表示的是发生突发(burst)时传_阿瓦隆总线burst

[QT编程系列-25]:多线程机制 - QThread和MoveToThread简介_qthread movetothread_文火冰糖的硅基工坊的博客-程序员宅基地

QThread类提供了一个与平台无关的管理线程的方法。在Qt中建立线程的主要目的就是为了用线程来处理那些耗时的后台操作,比如大量运算,复制大文件,网络传输等。QT(也称为Qt框架)是一个用于开发跨平台应用程序的C++库。它提供了丰富的功能,包括多线程支持。多线程是一种在同一时间处理多个任务的技术,它可以改善应用程序的响应性和性能。_qthread movetothread

IDEA Error occurred during initialization of VM_retire123的博客-程序员宅基地

在操作idea的时候遇到的一些问题,在这里整理出一些来。比如说运行idea 的时候遇到的errorlogError occurred during initialization of VMCould not reserve enough space for object heap提示你虚拟机的内存不足,虽然不影响使用,但是强迫症的你疯狂的想要消去这个报错。当初我遇到这个问题的时候,是在写spark代码实例时,怎么运行都运行不了,然后报错还是报到一行无关的地方。一般是提示你 unable to _idea error occurred

Raspberry - 修改crontab默认编辑器为vim_w6611415的博客-程序员宅基地

sudo update-alternatives --config editor然后/usr/vim/vim.basic,vim.tiny与vim.basic的区别是vim.basic为完全的vim,而vim.tiny为简化版,功能上有所区别,如不支持高亮等等.

随便推点

Dubbox - 入门小Demo_雨临Lewis的博客-程序员宅基地

Dubbox简介Dubbox 是一个分布式服务框架,其前身是阿里巴巴开源项目Dubbo ,被国内电商及互联网项目中使用,后期阿里巴巴停止了该项目的维护,当当网便在Dubbo基础上进行优化,并继续维护,为了与原有的Dubbo区分,故将其命名为Dubbox。Dubbox 致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbox就是个服务框架,如果没有分布式的...

FreeRTOS+LWIP+STM32F CUBEMX心得_cubemx+freertos+lwip_黄大刀的博客-程序员宅基地

近段时间有个项目,需要用到操作系统。之前用过ucos,但是经过多方考虑后,还是决定使用Freerots。项目需要用到以太网,处理器决定使用STM32F。ST做得还是不错的,STM32CubeMX解决了很多底层的问题,但是因为之前我用的基本库,没有用到HAL库,所以在使用HAL库的时候也遇到了不少问题,还好都一一化解。唯一最大的问题是LWIP,之前用的1.4.1版本的,前后台系统,用起来很顺畅,也没..._cubemx+freertos+lwip

python 打包exe遇到许多问题,在这里总结下我遇到的问题与解决方法_python打包后的exe文件不打印怎么办_( ̄¬ ̄*)流口水的博客-程序员宅基地

python:使用PyInstaller打包成exe文件 最近用python 打包exe遇到许多问题,在这里总结下我遇到的问题与解决方法解决办法与安装pyinstaller教程如下:1.安装PyInstallercmd下直接• pip install PyInstaller常用的PyInstaller打包命令参数如下:• -F:打包 Python 程序为单个可执行文件• -D:打包 Python 程序为一个文件夹• -i: 生成图标,只适用于 Windows 平台 _python打包后的exe文件不打印怎么办

JavaFX之Scene Builder详细使用说明之菜单篇(4)——Modify菜单_gridpane设置参数scene builder_二木成林的博客-程序员宅基地

目录菜单项预览Fit to Parent菜单项Use Computed Size菜单项GridPane菜单项Set Effect菜单项Add Popup Control菜单项Scene Size菜单项菜单项预览各个菜单项功能说明: Fit to Parent:子控件尺寸填满父控件空间。 Use Computed Size:使用计算大小,..._gridpane设置参数scene builder

Debian Iptables防火墙配置_diyu5232的博客-程序员宅基地

iptables很强大,这只是介绍我小小的fllow debian wiki 然后简单的设置了下iptables,以后再根据需求具体设置首先 (查看当前iptables配置,我装的debian默认安装了)sudo iptables -L如果没配置过的话,输出是(什么作用都没起到)Chain INPUT (policy ACCEPT) targe...

排行榜redis-程序员宅基地

import ujsonimport functoolsclass RanklistBase(dict): def __init__(self, name, redis_handler, ex=30): self.name = name self.redis_handler = redis_handler self.ex = ex self.ranklist = [] self.plugin_functions

推荐文章

热门文章

相关标签