Internet, Programación, Ingeniería & Power

AC / C + + y el Programa de Código Fuente de Informática Ybus y Zbus Matrices

A continuación se presenta una relación C / C + + y el programa de código fuente que calcula la Ybus y Zbus de una red eléctrica de cualquier tamaño. El sistema de entrada está escrito en "rx.txt" con la columna siguiente formato: "A partir de autobús', 'Para autobús ',' R 'y,' x '. El campo 'De bus »y« Para bus »debe ser un número entero positivo consecutivo a partir de cero. Bus cero es asumir que se holgura el swing o autobús. Un complejo archivo de cabecera se utilizó para ayudar a las operaciones de la matriz. Zbus se calcula simplemente invirtiendo la Ybus.

//-----------------------------
# pragma hdrstop
//----------------------------
# pragma argsused
# include <stdio.h>
# include <conio.h>
# include "matrix.h"
# include <complex.h>
usando std:: complejo;
el uso de nombres de matemáticas;
typedef complejo Complejo;
typedef Matrix Matrix;
void main (void)
(
/ / declarar variables
int CNT, i, j, matsize = 1;
doble tmp3, tmp4;
Complejo tmp6;
Y Matrix, Ybus, Zbus;
FILE * a;
Y. SetSize (matsize, matsize); / / establecer una matriz de tamaño temporal
/ / obtener la sucursal de datos
a = fopen ( "rx.txt", "r"); / / abrir el archivo
if (a == NULL)
(printf ( "\ nrx.txt no encontrada");
getch ();
)
CNT = j = i = 0;
(;);
(if (fscanf (a, "% d", & i) == EOF)
(break;)
if (i> matsize)
matsize = (i;)
fscanf (a, "% d", & j);
if (j> matsize)
(matsize = j;)
Y. SetSize (matsize +1, matsize +1);
fscanf (a, "% lf", & tmp3);
fscanf (a, "% lf", & tmp4);
tmp6 = Complejo (tmp3, tmp4);
Y (i, j) = 1.0/tmp6;
CNT + +;
)
fclose (a);
/ / fin de obtener datos rama
/ / Crear 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);)
)
/ / fin
/ / 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 + +;
)
/ / Fin
/ / fin de crear Y bus
/ / bus 0 no se incluye en la matriz Ybus
/ / porque es la referencia de bus
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");
tribunal <<Ybus <<Endl;
Zbus =! Ybus; / / obtener la inversa de la Ybus
printf ( "\ n \ nZbus Matriz \ n»);
tribunal <<Zbus <<Endl;
getch ();
)


Presentadas en: Sistema de Transmisión y Análisis de flujo de carga, C + +

«En el artículo anterior del Sistema de Transporte de Carga y Análisis de la Corriente: Tipo de Bus de un autobús con dos Generador de Cargas y por lo Conectado
«Anteriores artículo en C + +: Matrix TCL Lite: Una matriz de la cabecera del archivo para la matriz de Operaciones en C + +

»Siguiente artículo en el Sistema de Transporte de Carga y Análisis de la Corriente: Una Metodología de Evaluación de Impacto de los Parques Eólicos en la red de transmisión eléctrica
»Siguiente artículo en C + +: Cómo correr una Stand Alone Borland C + + Application

Buscar en este sitio web

Web www.jcmiras.net

Enlaces patrocinados


Traducciones

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

Legal