Расчет потерь электроэнергии в сетях
Дипломная работа - Физика
Другие дипломы по предмету Физика
0.000 |
| АСБ-95 | 6.30 | 0.340 | 0.083 | 210 | 1.000 |
Диагностика.
Диагностика и исправление ошибок в программе заключается в следующем:
Проверка и исправление пунктов нумерации введенных данных;
Правильное месторасположение марок линий и трансформаторов в таблице;
Проверка на наличие введенных марок линий и трансформаторов в каталогах, при их отсутствии - программное добавление их в каталог;
Проверка введения длинны линии;
Проверка правильности выбранных коэффициентов загрузок трансформаторов;
Проверка правильности введения часов использования максимальной нагрузки;
Проверка правильности выбранных коэффициентов мощности трансформаторов.
Программная реализация основных аналитических положений.
Код программы
#include
#include
#include
#include
main()
{* TR;((TR=fopen("TRANSFORMER_DOS.TXT", "r+"))==NULL)
{printf("Не удается открыть файл.");}
FILE* LIN;((LIN=fopen("LINE_DOS.TXT", "r+"))==NULL)
{printf("Не удается открыть файл.");}
FILE* SOUR;((SOUR=fopen("SOURCE_DOS.TXT", "rt"))==NULL)
{printf("Не удается открыть файл.");}
FILE* CHN;((CHN=fopen("Info_CHAIN_DOS.TXT", "rt"))==NULL)
{printf("Не удается открыть файл.");}
FILE* POT;((POT=fopen("Result_POT.txt", "wt"))==NULL)
{printf("Не удается создать файл для записи.");}
FILE* POW;((POW=fopen("Losses_powers.txt", "wt"))==NULL)
{printf("Не удается создать файл для записи.");}
FILE* ENE;((ENE=fopen("Losses_energy.txt", "wt"))==NULL)
{printf("Не удается создать файл для записи.");}
FILE* Vol;((Vol=fopen("Voltage_node.txt", "wt"))==NULL)
{printf("Не удается создать файл для записи.");}
char T[900], KOD[200],TRM[500][50], K[900], L[900], LNM[500][50], SOURML[300][30], SOURMTR[300][30];TRSnom[500], TRUnomvn[500], TRUnomnn[500], TRUkz[500], TRPkz[500], TRIxx[500], TRPxx[500], TRRtr[500], TRXtr[500], TRQxx[500];LNUnom[500], LNRo[500], LNXo[500], LNIdop[500], LNIc[500], SOURTma[500], CHNUnom;POTP[300], POTQ[300], POTWp[300], POTWq[300];AO[300], SOURP[300], SOURNn[500], SOURNk[500], PERIOD ;SOURKz[500], SOURCOS[500], SOURDLINA[500];OglTr[900], OglLn[900], SOURML1[300][30],SOURMTR1[300][30];i, tr, ent, lin, t, TRAN[300], k, r, t1, t2, t3;line[12] = " ";Pl[300], dPl, Pt[300], dPt, Pxx[300], dPxx, dPlt, dP, Pgy, Ql[300], dQl, Qt[300], dQt, Qxx[300], dQxx, dQlt, dQ, Qgy;Wt[300], Wl[300], Wxx[300], Kfl2[300], Kft2[300], Tma[300], Wgy, dWt, dWl, dWlt, dW, dWxx;L1[300][30], L2[300][30], L3[300][30], T1[300][30], T2[300][30],T3[300][30];dU[300], Uict, Unode[300];(SOUR, "4c",&T); // Файл SOURCE_DOS.TXT(i=1; i<50;i++)
{fscanf (SOUR, "ccccc", &T,&SOURML1[i],&T,&SOURMTR1[i],&T);} rewind(SOUR);
(SOUR, "8c6c",&KOD, &K);=1;
{ TRAN[i]=strcmp(SOURML1[i],line);(TRAN[i]!=0){fscanf (SOUR, "c%6lfc",&T, &SOURP[i], &T, &SOURNn[i], &T, &SOURNk[i], &T, &SOURML[i], &T,&SOURDLINA[i], &T);}{fscanf (SOUR, "cc%4lf%5lf%4lf",&T, &SOURP[i], &T, &SOURNn[i], &T, &SOURNk[i], &T,
&SOURMTR[i], &T, &SOURKz[i], &T, &SOURTma[i], &T, &SOURCOS[i], &T);} i++ ; ent=i-1;} while ( SOURP[i-1]!=0 );
(CHN, "7c2c%7lf ",&T, &PERIOD, &T, &CHNUnom ); // Файл Info_CHAIN_DOS.TXT
:
(LIN);(LIN, "8c", &OglLn); // Файл LINE_DOS.TXT=1;
{fscanf (LIN, "c%6lf%6lf%6lf%3lf%5lf",&T, &LNM[i], &T, &LNUnom[i], &T, &LNRo[i], &T, &LNXo[i],&T, &LNIdop[i], &T, &LNIc[i], &T);++; lin=i-1;} while( LNUnom[i-1]!=0 );
:(TR);(TR, "0c", &OglTr); // Файл TRANSFORMER_DOS.TXT=1;
{fscanf (TR, "c%5lf%5lf%5lf%5lf%6lf%5lf%6lf", &T, &TRM[i], &T, &TRSnom[i], &T, &TRUnomvn[i], &T, &TRUnomnn[i],
&T, &TRUkz[i], &T, &TRPkz[i], &T, &TRIxx[i], &T, &TRPxx[i], &T); i++; tr=i-1;} while ( TRSnom[i-1]!=0 );();("\n\n\n\n\n Расчет потерь в разомкнутой сети\n\n\n");
printf("Для начала расчета нажмите любую клавишу \n");
getch();
(int i=1; i<ent; i++){(L1[i],SOURML[i],1) ; strncpy(L2[i],SOURML[i],2) ; strncpy(L3[i],SOURML[i],3);(T1[i],SOURMTR[i],1); strncpy(T2[i],SOURMTR[i],2); strncpy(T3[i],SOURMTR[i],3);}
(i=1; i<ent; i++)
{if(TRAN[i]!=0) { t1=strcmp(L1[i]," ");t2=strcmp(L2[i]," ");t3=strcmp(L3[i]," ");
if( t1!=0) { printf("Извините, данные введены не верно. Марку линии под пунктом (узел) необходимо сдвинуть вправо на один символ.\n\n",SOURP[i],SOURNk[i]);("\nИсправте и запустите программу снова\n"); goto M7 ;}( (t2==0) && (t3!=0)) { printf("Извините, данные введены не верно. Марку линии под пунктом (узел) необходимо сдвинуть влево на один символ.\n\n",SOURP[i],SOURNk[i]);("\nИсправте и запустите программу снова\n"); goto M7 ;}( t3==0) { printf("Извините, данные введены не верно. Марку линии под пунктом (узел) необходимо сдвинуть влево на два символа.\n\n",SOURP[i],SOURNk[i]);("\nИсправте и запустите программу снова\n"); goto M7 ;}
}}
(i=k; k<ent; k++)
{if(TRAN[i]==0) { t1=strcmp(T1[k]," ");t2=strcmp(T2[k]," ");t3=strcmp(T3[k]," ");
if( t1!=0) { printf("Извините, данные введены не верно. Марку трансформатора под пунктом (узел ) необходимо сдвинуть вправо на один символ.\n\n",SOURP[k],SOURNk[k]);("\nИсправте и запустите программу снова\n"); goto M7 ;}( (t2==0) && (t3!=0)) {printf("Извините, данные введены не верно. Марку трансформатора под пунктом (узел ) необходимо сдвинуть влево на один символ.\n\n",SOURP[k],SOURNk[k]);("\nИсправте и запустите программу снова\n"); goto M7 ;}( t3==0) { printf("Извините, данные введены не верно. Марку трансформатора под пунктом (узел ) необходимо сдвинуть влево на два символа.\n\n",SOURP[k],SOURNk[k]);("\nИсправте и запустите программу снова\n"); goto M7 ;}
}}
(i=1; i<ent; i++)
{for (r=1; r<ent+1; r++){if(SOURNn[i]==SOURNk[r]){goto M9;}(r==ent+1){printf("просто123456\n"); }} M9: }
(i=1; i<ent; i++)
{if(TRAN[i]==0) {if((SOURTma[i]==0) || (SOURTma[i]3400) ){SOURTma[i]=2600;
printf("Извените, число часов использования максимума для узла (N пункта ) задан не верно. Принято значение 2600 ч.\n",SOURNk[i],SOURP[i] );}}}
(i=1; i<ent; i++)
{if(TRAN[i]==0) {if(((SOURKz[i]!=0.1) && (SOURKz[i]!=0.15) && (SOURKz[i]!=0.2) && (SOURKz[i]!=0.25) && (SOURKz[i]!=0.3) && (SOURKz[i]!=0.35) &&
(SOURKz[i]!=0.40) && (SOURKz[i]!=0.45) && (SOURKz[i]!=0.50) && (SOURKz[i]!=0.55) && (SOURKz[i]!=0.60) && (SOURKz[i]!=0.65) &&
(SOURKz[i]!=0.70) && (SOURKz[i]!=0.75) && (SOURKz[i]!=0.80) && (SOURKz[i]!=0.85) && (SOURKz[i]!=0.90) && (SOURKz[i]!=1.0) &&
(SOURKz[i]!=1.05) && (SOURKz[i]!=1.1) && (SOURKz[i]!=1.15) && (SOURKz[i]!=1.2) && (SOURKz[i]!=1.25)