Internet, Programação, & Power Engineering

AC / C + + Programa e código fonte para a Computação Ybus e Zbus Matrizes

Abaixo está um C / C + + e código fonte do programa que calcula o Ybus e Zbus de uma determinada rede eléctrica de qualquer tamanho. O sistema de entrada está escrito em "rx.txt" com o seguinte formato coluna; 'De ônibus',' Para autocarro ',' R ', e' x '. O 'De ônibus' e' para o autocarro "deve ser um inteiro positivo consecutivo começar do zero. Ônibus zero é assumir a ser o afrouxamento ou swing ônibus. Um complexo cabeçalho arquivo foi usado para ajudar a matriz operações. Zbus era computada por simplesmente invertendo a Ybus.

//-----------------------------
# PRAGMA hdrstop
//----------------------------
# PRAGMA argsused
# include <stdio.h>
# include <conio.h>
# include "matrix.h"
# include <complex.h>
usando std:: complexos;
namespace usando matemática;
typedef complexo Complexo;
typedef matriz Matriz;
void main (void)
(
/ / declarar variáveis
int CNT, I, J, matsize = 1;
tmp3 dupla, tmp4;
Complexo tmp6;
Matrix Y, Ybus, Zbus;
FILE * em;
Y. SetSize (matsize, matsize) / / definir uma matriz temporária tamanho
/ / get a sucursal dados
na = fopen ( "rx.txt", "r"); / / abrir o arquivo
if (no == NULL)
(printf ( "\ nrx.txt não encontrado");
getch ();
)
CNT = j = i = 0;
for (;)
(if (fscanf (in, "% d", & i) == EOF)
(break;)
if (i> matsize)
matsize = (i;)
fscanf (in, "% d", & j);
if (j> matsize)
(matsize = j;)
Y. SetSize (matsize +1, matsize 1);
fscanf (in, "% lf", & tmp3);
fscanf (in, "% lf", & tmp4);
tmp6 = Complex (tmp3, tmp4);
Y (i, j) = 1.0/tmp6;
CNT + +;
)
fclose (in);
/ / fim de obter dados sucursal
/ / Criar Ybus
Ybus.SetSize (matsize +1, matsize 1);
/ / Diagonal entradas
for (i = 0; i <= matsize; i + +)
(for (j = 0; j <= matsize; j + +)
(Ybus (i, i) = Ybus (i, i) + Y (i, j);)
)
for (j = 0; j <= matsize; j + +)
(for (i = 0; i <= matsize; i + +)
(Ybus (j, j) = Ybus (j, j) + Y (i, j);)
)
/ / fim
/ / off diagonal entradas
CNT = 0;
for (j = CNT; j <= matsize; j + +)
(for (i = 0; i <= matsize; i + +)
(if (j! = i)
(Ybus (i, j) = Ybus (j, i) =- 1,0 * Y (i, j);)
)
CNT + +;
)
/ / Fim
/ / fim de criar Y ônibus
/ / 0 ônibus não está incluído no Ybus Matrix
/ / porque ele é a referência ônibus
for (j = 1; j <= matsize; j + +)
(for (i = 1; i <= matsize; i + +)
(Ybus (i-1, j-1) = Ybus (i, j);
)
)
Ybus.SetSize (matsize, matsize);
Zbus.SetSize (matsize, matsize);
printf ( "\ n \ nYbus Matrix \ n");
jurisdicional <<Ybus <<endl;
Zbus =! Ybus; / / obter o inverso do Ybus
printf ( "\ n \ nZbus Matrix \ n");
jurisdicional <<Zbus <<endl;
getch ();
)


Arquivado em: Sistema de Transmissão e de Fluxo de Carga Analysis, C + +

«Artigo anterior no Sistema de Transmissão e de Fluxo de Carga Análise: Bus Tipo de um autocarro com Tanto Generator e Cargas Não Conectado ao
«Artigo anterior em C + +: Matrix TCL Lite: Um arquivo de cabeçalho Matrix Matrix Operações em C + +

»Próxima artigo no Sistema de Transmissão e de Fluxo de Carga Análise: uma metodologia de avaliação do impacto do parque eólico sobre o Sistema de Transmissão de Energia
»Próxima artigo em C + +: How to Run uma Stand Alone Borland C + + Application

Pesquisar neste site

Links Patrocinados


Traduções

English flagItalian flagKorean flagChinese (Simplified) flagPortuguese flag
German flagFrench flagSpanish flagJapanese flagArabic flag
Russian flagHindi flag   
By N2H

Legal