Untitled
unknown
c_cpp
3 years ago
3.0 kB
4
Indexable
#include <bits/stdc++.h> using namespace std; class Matrix { public: double conductivePart; double susceptivePart; }; int main() { int busBar; printf("Enter the number of the bus bar: "); scanf("%d", &busBar); int genBus; printf("Enter the number of the generator connected bus: "); scanf("%d", &genBus); printf("\n\nConsider zero(0) if there is no value\n"); int nonGenBus = busBar - genBus; Matrix admittanceBusValue[busBar][busBar]; for(int i=0; i<busBar; i++) { for(int j=0; j<busBar; j++) { if(i>j) { admittanceBusValue[i][j].conductivePart = admittanceBusValue[j][i].conductivePart; admittanceBusValue[i][j].susceptivePart = admittanceBusValue[j][i].susceptivePart; continue; } printf("\nFor Z%d%d\n", i+1, j+1); printf("Conductive Part <space> Susceptive Part: "); scanf("%lf %lf", &admittanceBusValue[i][j].conductivePart, &admittanceBusValue[i][j].susceptivePart); } } printf("\n\n"); for(int n=busBar-1; n>=nonGenBus; n--) { for(int j=0; j<n; j++) { for(int k=0; k<n; k++) { double mulRe = (admittanceBusValue[j][n].conductivePart * admittanceBusValue[n][k].conductivePart) - (admittanceBusValue[j][n].susceptivePart * admittanceBusValue[n][k].susceptivePart); double mulIm = (admittanceBusValue[j][n].susceptivePart * admittanceBusValue[n][k].conductivePart) + (admittanceBusValue[j][n].conductivePart * admittanceBusValue[n][k].susceptivePart); double divRe = ((mulRe * admittanceBusValue[n][n].conductivePart) + (mulIm * admittanceBusValue[n][n].susceptivePart)) / (pow(admittanceBusValue[n][n].conductivePart,2) + pow(admittanceBusValue[n][n].susceptivePart,2)); double divIm = ((mulIm * admittanceBusValue[n][n].conductivePart) - (mulRe * admittanceBusValue[n][n].susceptivePart)) / (pow(admittanceBusValue[n][n].conductivePart,2) + pow(admittanceBusValue[n][n].susceptivePart,2)); admittanceBusValue[j][k].conductivePart = admittanceBusValue[j][k].conductivePart - divRe; admittanceBusValue[j][k].susceptivePart = admittanceBusValue[j][k].susceptivePart - divIm; } } } printf("\n\nReduced Admittance Bus Matrix:\n\n"); for(int i=0; i<genBus; i++) { for(int j=0; j<genBus; j++) { if(admittanceBusValue[i][j].susceptivePart < 0) { printf("%0.2lf-j%0.2lf \t", admittanceBusValue[i][j].conductivePart, (-1)*admittanceBusValue[i][j].susceptivePart); } else { printf("%0.2lf+j%0.2lf \t", admittanceBusValue[i][j].conductivePart, admittanceBusValue[i][j].susceptivePart); } if(j+1==genBus) { printf("\n"); } } } }
Editor is loading...