Internet, programmation, Power Engineering &

AC / C + + Programme et le code source de l'Informatique et Ybus Matrices Zbus

Ci-dessous est un C / C + + programme et le code source qui calcule la Ybus et Zbus d'un réseau électrique de n'importe quelle taille. Le système de saisie est écrit sur "rx.txt" avec la colonne suivante le format; "De bus», «Pour taxi ',' R ', et' X '. Le "De bus» et «Pour bus» doit être un entier positif consécutifs à partir de zéro. Bus zéro est suppose être le relais ou swing bus. Un fichier d'en-tête complexe a été utilisé pour aider les opérations de la matrice. Zbus a été calculée par la simple inversion de la Ybus.

//-----------------------------
# pragma hdrstop
//----------------------------
# pragma argsused
# include <stdio.h>
# include <conio.h>
# include "matrix.h"
# include <complex.h>
en utilisant std:: complexe;
espace de nom en utilisant les mathématiques;
typedef complexe Complexe;
typedef Matrix Matrix;
void main (void)
(
/ / déclarer les variables
int cnt, i, j, matsize = 1;
double tmp3, tmp4;
Complexe tmp6;
Grille Y, Ybus, Zbus;
FILE *;
Y. SetSize (matsize, matsize) / / set une matrice temporaire
/ / récupère la branche de données
= fopen ( "rx.txt", "r") / / ouvre le fichier
si (== NULL)
(printf ( "\ nrx.txt not found");
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 = Complexe (tmp3, tmp4);
Y (i, j) = 1.0/tmp6;
cnt + +;
)
fclose (in);
/ / fin de branche obtenir des données
/ / Création Ybus
Ybus.SetSize (matsize +1, matsize +1);
/ / Diagonal entrées
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 diagonale entrées
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 la création d'autobus Y
/ / bus 0 ne sont pas inclus dans la Grille des Ybus
/ / car il est la référence 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 Grille \ n");
cout <<Ybus <<Endl;
Zbus =! Ybus / / obtenir l'inverse de la Ybus
printf ( "\ n \ nZbus Grille \ n");
cout <<Zbus <<Endl;
getch ();
)


Classé dans: gestionnaire de réseau de transport et l'analyse des flux de charge, C + +

«Article précédent dans la transmission du système et l'analyse des flux de charge: Type de bus d'un bus avec deux Générateur et des charges connexes sur Elle
«Article précédent en C + +: Grille THC Lite: A Matrix fichier d'en-tête pour Grille des opérations en C + +

»Suivant l'article dans gestionnaire de réseau de transport de charge et l'analyse des flux: méthodologie pour évaluer l'impact des éoliennes sur le système de transmission de puissance
»Suivant l'article en C + +: Comment exécuter un Stand Alone Borland C + +

Recherche sur ce site

Web www.jcmiras.net

Liens Sponsorisés


Traductions

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