Internet, Programmazione, Ingegneria & Power

AC / C + + Programma e codice sorgente per Computing Ybus e Zbus Matrici

Di seguito è riportato un C / C + + programma e codice sorgente che calcola la Ybus e Zbus di una determinata rete elettrica di qualsiasi dimensione. Il sistema di input è scritto su "rx.txt" con il seguente formato colonna; 'Da bus',' Per autobus ',' R ', e,' x '. Il 'autobus Da' e 'Per il bus' deve essere un intero positivo consecutivi a partire da zero. Bus è pari a zero assumere per essere il lasco o swing autobus. Un file header complesso è stato utilizzato per assistere le operazioni di matrice. Zbus è stato calcolato semplicemente invertendo la Ybus.

  //----------------------------- # Pragma hdrstop //-------------- --------------- # Pragma argsused # include <stdio.h> # include <conio.h> # include "matrix.h" # include <complex.h> utilizzando std:: complesso; using namespace matematica; typedef complesso complessi; typedef matrice Matrix; void main (void) (/ / dichiarare variabili int cnt, i, j, matsize = 1; doppio tmp3, tmp4; Complesso tmp6; Matrix Y, Ybus, Zbus; FILE * a; Y. SetSize (matsize, matsize); / / impostare una matrice di dimensioni temporanea / / ottenere il ramo dei dati in = fopen ( "rx.txt", "r"); / / apre il file if (in == NULL) (printf ( "nrx.txt non trovato"); 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); / / fine di ottenere dati ramo / / Crea Ybus Ybus.SetSize (matsize +1, matsize 1); / / Diagonal voci per (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);)) / / fine / / off diagonale voci 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 + +;) / / fine / / fine di creare Y autobus / / autobus 0 non è incluso nel Ybus Matrix / / perché è il riferimento per l'autobus (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 ( "nnYbus Matrixn"); cout <<Ybus <<endl; Zbus =! Ybus; / / ottenere l'inverso del Ybus printf ( "nnZbus Matrixn"); cout <<Zbus << endl; getch ();) 


Depositata in: sistema di trasmissione e di carico del flusso, C + +

«Precedente articolo e del sistema di trasmissione del flusso di carico: Tipo di bus di un autobus con entrambi i carichi Generator e su di essa collegate
«Previous article in C + +: Matrix TCL Lite: una matrice file header per Matrix operazioni in C + +

»Successive articolo nel sistema di trasmissione e del flusso di carico: una metodologia nella valutazione di impatto della centrale eolica sul Power Transmission System
»Successive articolo in C + +: Come per l'esecuzione di uno Stand Alone Borland C + + Applicazioni

Cerca nel sito

Web www.jcmiras.net

LINK SPONSORIZZATI


Traduzioni

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