Читайте также:
|
|
Ø Ввод и печать исходной информации.
Схема исследуемой сети:
Схема 7‑1
Ввод схемы в программу будет осуществляться из следующих двух таблиц:
Таблица 7-1
------------------------------------------------------------------------------
| РЛ №24, 10.0 кВ |
------------------------------------------------------------------------------
|№ п/п| Nn | Nk | Марка | Li, |Тип транс- | Kz, | Tma, | cos |
| | | | провода | км |форматора | o.e.| ч | o.e. |
------------------------------------------------------------------------------
| 1 | 1 | 2 | AC-50 | 0.080 | | | | |
| 2 | 2 | 101 | | | TM-30 | 0.60 | 1700 | 0.80 |
| 3 | 2 | 3 | AC-50 | 5.360 | | | | |
| 4 | 3 | 102 | | | TM-160 | 0.80 | 2500 | 0.70 |
| 5 | 3 | 4 | AC-50 | 0.400 | | | | |
| 6 | 4 | 5 | AC-50 | 0.480 | | | | |
| 7 | 4 | 6 | AC-50 | 0.100 | | | | |
| 8 | 5 | 103 | | | TM-160 | 0.35 | 2000 | 0.90 |
| 9 | 6 | 104 | | | TM-180 | 0.40 | 2800 | 0.80 |
| 10 | 6 | 7 | AC-70 | 0.100 | | | | |
| 11 | 7 | 8 | AC-70 | 0.100 | | | | |
| 12 | 8 | 105 | | | TM-160 | 0.50 | 2800 | 0.80 |
| 13 | 7 | 9 | AC-70 | 1.440 | | | | |
| 14 | 9 | 10 | A-35 | 0.400 | | | | |
| 15 | 10 | 106 | | | TM-160 | 0.25 | 2200 | 0.80 |
| 16 | 9 | 11 | AC-70 | 1.120 | | | | |
| 17 | 11 | 107 | | | TM-160 | 0.70 | 2350 | 0.90 |
| 18 | 11 | 12 | AH-50 | 0.900 | | | | |
| 19 | 12 | 108 | | | TM-200 | 0.20 | 2000 | 0.70 |
| 20 | 12 | 13 | AC-50 | 0.160 | | | | |
| 21 | 13 | 109 | | | TM-100 | 0.90 | 2800 | 0.80 |
| 22 | 11 | 14 | AH-50 | 0.500 | | | | |
| 23 | 14 | 110 | | | TM-400 | 0.40 | 3200 | 0.80 |
| 24 | 14 | 15 | AH-50 | 0.240 | | | | |
| 25 | 15 | 16 | AH-50 | 0.560 | | | | |
| 26 | 16 | 111 | | | TM-400 | 0.55 | 3200 | 0.80 |
| 27 | 15 | 17 | AH-50 | 0.320 | | | | |
| 28 | 17 | 18 | AH-50 | 0.480 | | | | |
| 29 | 18 | 112 | | | TM-63 | 0.70 | 2000 | 0.70 |
| 30 | 17 | 19 | AH-50 | 6.680 | | | | |
| 31 | 19 | 20 | A-35 | 3.360 | | | | |
| 32 | 20 | 113 | | | TM-30 | 0.90 | 1600 | 0.90 |
| 33 | 19 | 21 | A-35 | 0.880 | | | | |
| 34 | 21 | 114 | | | TM-160 | 0.30 | 2200 | 0.80 |
-------------------------------------------------------------------------------
Таблица 7-2
---------------------------------------------------------------
| Код задачи | РЛ №24, 10.0 кВ |
---------------------------------------------------------------
| Расчетный период, ч | 8760 |
---------------------------------------------------------------
| Номинальное напряжение, кВ | 10.0 |
---------------------------------------------------------------
Каталоги трансформаторов и линий выглядят следующим образом:
Таблица 7-3
-------------------------------------------------------------------------
| | Мощ- | Uном, кВ, | | | | |
| Тип транс- | ность | обмоток |Uкз,% | Pкз, кВт |Iхх, % | Pхх, |
| форматора | Sном, |---------------| | | | кВт |
| | кВА | ВН | НН | | | | |
-------------------------------------------------------------------------
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
-------------------------------------------------------------------------
| ТМ-100 | 100 | 10.50 | 0.40 | 5.50 | 2.400 | 6.50 | 0.730 |
| ТМ-400 | 400 | 10.50 | 0.40 | 4.50 | 5.500 | 5.50 | 1.100 |
| ТМ-560 | 560 | 10.50 | 0.40 | 5.50 | 9.400 | 6.00 | 2.500 |
| ТМ-630 | 630 | 10.50 | 0.40 | 5.50 | 7.600 | 2.00 | 1.310 |
Таблица 7-4
-----------------------------------------------------------------------------
| Марка | Номинальное | Удельное | Удельное | Допустимый | Емкостный |
| провода | напряжение | активное | реактивное | ток | ток |
| (кабеля) | Uном, кВ | сопротив- | сопротив- | Iдоп, А | Iс, А |
| | | ление | ление | | |
| | | Rо, Ом/км | Xо, Ом/км | | |
-----------------------------------------------------------------------------
| 1 | 2 | 3 | 4 | 5 | 6 |
-----------------------------------------------------------------------------
| ААБ-150 | 10.50 | 0.206 | 0.079 | 275 | 0.000 |
| АСБ-95 | 10.50 | 0.310 | 0.083 | 265 | 1.000 |
| АСБ-150 | 10.50 | 0.196 | 0.079 | 355 | 1.300 |
| АСБ-240 | 10.50 | 0.122 | 0.075 | 460 | 1.600 |
| ААШВУ-150 | 10.50 | 0.206 | 0.079 | 275 | 0.000 |
| АСБ-95 | 6.30 | 0.340 | 0.083 | 210 | 1.000 |
Ø Диагностика.
Диагностика и исправление ошибок в программе заключается в следующем:
· Проверка и исправление пунктов нумерации введенных данных;
· Правильное месторасположение марок линий и трансформаторов в таблице;
· Проверка на наличие введенных марок линий и трансформаторов в каталогах, при их отсутствии – программное добавление их в каталог;
· Проверка введения длинны линии;
· Проверка правильности выбранных коэффициентов загрузок трансформаторов;
· Проверка правильности введения часов использования максимальной нагрузки;
· Проверка правильности выбранных коэффициентов мощности трансформаторов.
Ø Программная реализация основных аналитических положений.
Код программы
#include<stdio.h>
#include<iostream.h>
#include<math.h>
#include<conio.h>
void main()
{
FILE* TR;
if((TR=fopen("TRANSFORMER_DOS.TXT", "r+"))==NULL)
{printf("Не удается открыть файл.");}
FILE* LIN;
if((LIN=fopen("LINE_DOS.TXT", "r+"))==NULL)
{printf("Не удается открыть файл.");}
FILE* SOUR;
if((SOUR=fopen("SOURCE_DOS.TXT", "rt"))==NULL)
{printf("Не удается открыть файл.");}
FILE* CHN;
if((CHN=fopen("Info_CHAIN_DOS.TXT", "rt"))==NULL)
{printf("Не удается открыть файл.");}
FILE* POT;
if((POT=fopen("Result_POT.txt", "wt"))==NULL)
{printf("Не удается создать файл для записи.");}
FILE* POW;
if((POW=fopen("Losses_powers.txt", "wt"))==NULL)
{printf("Не удается создать файл для записи.");}
FILE* ENE;
if((ENE=fopen("Losses_energy.txt", "wt"))==NULL)
{printf("Не удается создать файл для записи.");}
FILE* Vol;
if((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];
double TRSnom[500], TRUnomvn[500], TRUnomnn[500], TRUkz[500], TRPkz[500], TRIxx[500], TRPxx[500], TRRtr[500], TRXtr[500], TRQxx[500];
double LNUnom[500], LNRo[500], LNXo[500], LNIdop[500], LNIc[500], SOURTma[500], CHNUnom;
double POTP[300], POTQ[300], POTWp[300], POTWq[300];
int AO[300], SOURP[300], SOURNn[500], SOURNk[500], PERIOD;
double SOURKz[500], SOURCOS[500], SOURDLINA[500];
char OglTr[900], OglLn[900], SOURML1[300][30],SOURMTR1[300][30];
int i, tr, ent, lin, t, TRAN[300], k, r, t1, t2, t3;
char line[12] = " ";
double Pl[300], dPl, Pt[300], dPt, Pxx[300], dPxx, dPlt, dP, Pgy, Ql[300], dQl, Qt[300], dQt, Qxx[300], dQxx, dQlt, dQ, Qgy;
double Wt[300], Wl[300], Wxx[300], Kfl2[300], Kft2[300], Tma[300], Wgy, dWt, dWl, dWlt, dW, dWxx;
char L1[300][30], L2[300][30], L3[300][30], T1[300][30], T2[300][30],T3[300][30];
double dU[300], Uict, Unode[300];
fscanf (SOUR, "%474c",&T); // Файл SOURCE_DOS.TXT
for (i=1; i<50;i++)
{fscanf (SOUR, "%23c%11c%10c%11c%24c", &T,&SOURML1[i],&T,&SOURMTR1[i],&T);} rewind(SOUR);
fscanf (SOUR, "%158c%316c",&KOD, &K);
i=1;
do
{ TRAN[i]=strcmp(SOURML1[i],line);
if(TRAN[i]!=0){fscanf (SOUR, "%1c%4d%3c%3d%6c%3d%3c%11c%2c%6lf%37c",&T, &SOURP[i], &T, &SOURNn[i], &T, &SOURNk[i], &T, &SOURML[i], &T,&SOURDLINA[i], &T);}
else {fscanf (SOUR, "%1c%4d%3c%3d%6c%3d%24c%11c%2c%4lf%3c%5lf%3c%4lf%3c",&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);
fscanf (CHN, "%227c%6d%122c%7lf ",&T, &PERIOD, &T, &CHNUnom); // Файл Info_CHAIN_DOS.TXT
M5:
rewind(LIN);
fscanf (LIN, "%858c", &OglLn); // Файл LINE_DOS.TXT
i=1;
do
{fscanf (LIN, "%1c%11c%4c%6lf%7c%6lf%7c%6lf%9c%3lf%9c%5lf%4c",&T, &LNM[i], &T, &LNUnom[i], &T, &LNRo[i], &T, &LNXo[i],&T, &LNIdop[i], &T, &LNIc[i], &T);
i++; lin=i-1;} while(LNUnom[i-1]!=0);
M4:
rewind(TR);
fscanf (TR, "%740c", &OglTr); // Файл TRANSFORMER_DOS.TXT
i=1;
do
{fscanf (TR, "%1c%11c%3c%5lf%3c%5lf%3c%5lf%2c%5lf%4c%6lf%3c%5lf%3c%6lf%3c", &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);
clrscr();
printf("\n\n\n\n\n Расчет потерь в разомкнутой сети\n\n\n");
printf("Для начала расчета нажмите любую клавишу \n");
getch();
for (int i=1; i<ent; i++){
strncpy(L1[i],SOURML[i],1); strncpy(L2[i],SOURML[i],2); strncpy(L3[i],SOURML[i],3);
strncpy(T1[i],SOURMTR[i],1); strncpy(T2[i],SOURMTR[i],2); strncpy(T3[i],SOURMTR[i],3);}
for (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("Извините, данные введены не верно. Марку линии под пунктом %2d (узел%3d) необходимо сдвинуть вправо на один символ.\n\n",SOURP[i],SOURNk[i]);
printf("\nИсправте и запустите программу снова\n"); goto M7;}
if((t2==0) && (t3!=0)) { printf("Извините, данные введены не верно. Марку линии под пунктом %2d (узел%3d) необходимо сдвинуть влево на один символ.\n\n",SOURP[i],SOURNk[i]);
printf("\nИсправте и запустите программу снова\n"); goto M7;}
if(t3==0) { printf("Извините, данные введены не верно. Марку линии под пунктом %2d (узел%3d) необходимо сдвинуть влево на два символа.\n\n",SOURP[i],SOURNk[i]);
printf("\nИсправте и запустите программу снова\n"); goto M7;}
}}
for (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("Извините, данные введены не верно. Марку трансформатора под пунктом %2d (узел %3d) необходимо сдвинуть вправо на один символ.\n\n",SOURP[k],SOURNk[k]);
printf("\nИсправте и запустите программу снова\n"); goto M7;}
if((t2==0) && (t3!=0)) {printf("Извините, данные введены не верно. Марку трансформатора под пунктом %2d (узел %3d) необходимо сдвинуть влево на один символ.\n\n",SOURP[k],SOURNk[k]);
printf("\nИсправте и запустите программу снова\n"); goto M7;}
if(t3==0) { printf("Извините, данные введены не верно. Марку трансформатора под пунктом %2d (узел %3d) необходимо сдвинуть влево на два символа.\n\n",SOURP[k],SOURNk[k]);
printf("\nИсправте и запустите программу снова\n"); goto M7;}
}}
for (i=1; i<ent; i++)
{for (r=1; r<ent+1; r++){if(SOURNn[i]==SOURNk[r]){goto M9;}
else
if(r==ent+1){printf("просто123456\n"); }} M9: }
for (i=1; i<ent; i++)
{if(TRAN[i]==0) {if((SOURTma[i]==0) || (SOURTma[i]<1200) || (SOURTma[i]>3400)){SOURTma[i]=2600;
printf("Извените, число часов использования максимума для узла %3d (N пункта %3d) задан не верно. Принято значение 2600 ч.\n",SOURNk[i],SOURP[i]);}}}
for (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) && (SOURKz[i]!=1.3) && (SOURKz[i]!=1.35) && (SOURKz[i]!=1.40) && (SOURKz[i]!=1.45) && (SOURKz[i]!=1.50) && (SOURKz[i]!=1.55) && (SOURKz[i]!=1.60) &&
(SOURKz[i]!=1.65) && (SOURKz[i]!=1.70))) { SOURKz[i]=1.1;
printf("Извените, коэффициент загрузки трансформатора узла %3d (N пункта %3d) задан не верно. Принято значение 1.1 \n",SOURNk[i],SOURP[i]);}}}
for (i=1; i<ent; i++)
{if(TRAN[i]==0) {if((SOURCOS[i]!=0.7) && (SOURCOS[i]!=0.9) && (SOURCOS[i]!=0.8) && (SOURCOS[i]!=0.75) && (SOURCOS[i]!=0.92) && (SOURCOS[i]!=0.83)){
SOURCOS[i]=0.8;
printf("Извините, коэффициент мощности трансформатора узла %3d (N пункта %3d) задан не верно. Принято значение 0.8 \n",SOURNk[i],SOURP[i]);}}}
for (i=1; i<ent; i++)
{if(TRAN[i]!=0) {if(SOURDLINA[i]==0){ SOURDLINA[i]=1;
printf("Извините, длина участка %3d (N пункта %3d) не задана. Принято значение 1 км. \n",SOURNk[i],SOURP[i]);}}}
for (i=1; i<ent; i++)
{if(TRAN[i]==0) {
for (r=1; r<tr+1; r++){ int t=strcmp(SOURMTR[i],TRM[r]);
if((t==0) && (CHNUnom<=TRUnomvn[r]) && (1.15*CHNUnom>=TRUnomvn[r])){goto M3;}
if(r==tr){printf("Извините, но трансформатор %11s (N n/n %3d) в каталоге не найден.\n", SOURMTR[i],SOURP[i]);
printf("Добавить трансформатор в католог? (1- да, 2 - нет) "); int A; cin >> A;
switch (A)
{ case 1:
printf("Трансформатор %11s\n", SOURMTR[i]);
printf("Введите Sном в кВА: ");scanf("%5lf", &TRSnom[tr]);
printf("\n"); printf("Введите Uном ввысшей обмотки в кВ: ");scanf("%5lf", &TRUnomvn[tr]);
printf("\n"); printf("Введите Uном низшей обмотки в кВ: ");scanf("%5lf", &TRUnomnn[tr]);
printf("\n"); printf("Введите Uкз в %: ");scanf("%5lf", &TRUkz[tr]);
printf("\n"); printf("Введите Pкз в кВт: ");scanf("%5lf", &TRPkz[tr]);
printf("\n"); printf("Введите Iхх в кВт: ");scanf("%5lf", &TRIxx[tr]);
printf("\n"); printf("Введите Pхх в кВт: ");scanf("%5lf", &TRPxx[tr]);
printf("\n");
fprintf(TR,"|%11s | %5.0f | %5.2f | %5.2f |%5.2f | %6.3f |%6.2f | %6.3f |\n", SOURMTR[i],TRSnom[tr],
TRUnomvn[tr],TRUnomnn[tr],TRUkz[tr],TRPkz[tr],TRIxx[tr],TRPxx[tr]);
goto M4;
case 2:
break; } }}}M3:}
for (i=1; i<ent; i++)
{if(TRAN[i]!=0) {
for (r=1; r<lin+1; r++){ int t=strcmp(SOURML[i],LNM[r]);
if(t==0) {goto M6;}
if(r==lin){printf("\n\nИзвините, но провод %11s (N n/n %3d) в каталоге не найден.\n",SOURML[i],SOURP[i]);
printf("Добавить провод в католог? (1- да, 2 - нет) "); int A; cin >> A;
switch (A)
{ case 1:
printf("Провод %11s\n",SOURML[i]);
printf("Введите Uном в кВА: ");scanf("%5lf", &LNUnom[lin]);
printf("\n"); printf("Введите удельное активное сопротивление Rо в Ом/км: ");scanf("%5lf", &LNRo[lin]);
printf("\n"); printf("Введите удельное реактивное сопротивление Xо в Ом/км: ");scanf("%5lf", &LNXo[lin]);
printf("\n"); printf("Введите допустимый ток Iдоп в А: ");scanf("%5lf", &LNIdop[lin]);
printf("\n"); printf("Введите емкостный ток Iс в А: ");scanf("%5lf", &LNIc[lin]);
printf("\n");
fprintf(LIN, "|%11s| %7.2f | %7.3f | %7.3f | %7.0f | %7.3f |\n",SOURML[i], LNUnom[lin], LNRo[lin], LNXo[lin], LNIdop[lin], LNIc[lin]);
goto M5;
case 2:
break; } }}}M6:}
for (int i=1; i<ent; i++)
{if(SOURP[i]!=i){ SOURP[i]=i; printf("N п/п %3d введен не правильно. Ошибка исправлена.\n",SOURP[i]);}}
// Адреcное отображение
for (int i=1; i<ent; i++)
{for (int k=0; k<ent; k++)
{if(SOURNn[i]==1){AO[i]=0; break;}
else
if(SOURNn[i]==SOURNk[k]){AO[i]=SOURP[k];}}}
for (int i=1; i<ent; i++) // Расчет POTP, POTQ, POTWp, POTWq
{if(TRAN[i]==0) {for (int r=0; r<tr; r++){int t=strcmp(SOURMTR[i],TRM[r]); if((t==0) && (CHNUnom<=TRUnomvn[r]) && (1.15*CHNUnom>=TRUnomvn[r])){POTP[i]=TRSnom[r]*SOURKz[i]*SOURCOS[i];
POTQ[i]=TRSnom[r]*SOURKz[i]* sqrt(1-SOURCOS[i]*SOURCOS[i]);
POTWp[i]=POTP[i]*SOURTma[i]; POTWq[i]=POTWp[i]* sqrt(1-SOURCOS[i]*SOURCOS[i])/SOURCOS[i]; }}}}
for (int i=1; i<ent; i++) // Потокораспределение
{ if(TRAN[i]==0)
{int k=i;
for (int r=0; r<ent; r++)
{ POTP[AO[k]]+=POTP[i];
POTQ[AO[k]]+=POTQ[i];
POTWp[AO[k]]+=POTWp[i];
POTWq[AO[k]]+=POTWq[i];
if(AO[k]==0) {break;}
else
k=AO[k]; }}}
// Вывод POTP, POTQ, POTWp, POTWq в файл Result_POT.txt
fprintf(POT,"-------------------------------------------------------------------------------\n");
fprintf(POT,"| | | | Поток мощности ветви | Поток энергии ветви |\n");
fprintf(POT,"| N n/n| Nn | Nk |-------------------------|-------------------------------|\n");
fprintf(POT,"| | | | активный | реактивный | активный | реактивный |\n");
fprintf(POT,"| | | | кВт | кВАр | кВт*ч | кВАр*ч |\n");
fprintf(POT,"-------------------------------------------------------------------------------\n");
for (int i=1; i<ent; i++)
{fprintf(POT,"| %3d | %3d | %3d | %8.2f | %8.2f | %12.2f | %12.2f |\n",SOURP[i], SOURNn[i], SOURNk[i], POTP[i], POTQ[i],POTWp[i],POTWq[i]);}
fprintf(POT,"-------------------------------------------------------------------------------\n");
for (int i=1; i<ent; i++) // Расчет Pt, Qt, Pxx, Qxx
{if(TRAN[i]==0){for (int r=0; r<tr; r++){int t=strcmp(SOURMTR[i],TRM[r]); if((t==0) && (CHNUnom<=TRUnomvn[r]) && (1.15*CHNUnom>=TRUnomvn[r])){
Pt[i]=((POTP[i]*POTP[i]+POTQ[i]*POTQ[i])*TRPkz[r]*CHNUnom*CHNUnom)/(TRSnom[r]*TRSnom[r]*CHNUnom*CHNUnom);
Qt[i]= (POTP[i]*POTP[i]+POTQ[i]*POTQ[i])*sqrt((TRUkz[r]*CHNUnom*CHNUnom*1000)/(100*TRSnom[r])*(TRUkz[r]*CHNUnom*CHNUnom*1000)/(100*TRSnom[r])-
(TRPkz[r]*1000*CHNUnom*CHNUnom)/(TRSnom[r]*TRSnom[r])*(TRPkz[r]*1000*CHNUnom*CHNUnom)/(TRSnom[r]*TRSnom[r]))/(CHNUnom*CHNUnom)/1000;
Pxx[i]=TRPxx[r];
Qxx[i]=TRIxx[r]*TRSnom[r]/100; }}}}
for (int i=1; i<ent; i++) // Расчет Pl, Ql
{if(TRAN[i]!=0){for (int r=0; r<lin; r++){int t=strcmp(SOURML[i],LNM[r]); if((t==0) && (CHNUnom<=LNUnom[r]) && (1.15*CHNUnom>=LNUnom[r])){
Pl[i]=((POTP[i]*POTP[i]+POTQ[i]*POTQ[i])*LNRo[r]*SOURDLINA[i])/(1000*CHNUnom*CHNUnom);
Ql[i]=((POTP[i]*POTP[i]+POTQ[i]*POTQ[i])*LNXo[r]*SOURDLINA[i])/(1000*CHNUnom*CHNUnom);}}}}
for (int i=1; i<ent; i++) // Расчет dP, dQ, dQlt, dPlt, dPt, dQt, dQxx, dPxx, dPl, dQl
{dP+=Pt[i]+Pxx[i]+Pl[i];
dPlt+=Pl[i]+Pt[i];
dQlt+=Ql[i]+Qt[i];
dPl+=Pl[i];
dPt+=Pt[i];
dPxx+=Pxx[i];
dQl+=Ql[i];
dQt+=Qt[i];
dQxx+=Qxx[i];
dQ+=Qt[i]+Qxx[i]+Ql[i];
if(TRAN[i]==0){Pgy+=POTP[i]; // Расчет Pgy, Qgy
Qgy+=POTQ[i];}}
Pgy+=dP;
Qgy=dQ+Qgy;
// Вывод Pt, Qt, Pl, Ql
fprintf(POW," Потери мощности в сети \n\n");
fprintf(POW,"------------------------------------------------------------------------\n");
fprintf(POW,"| | | | Переменные | Постоянные (хол. хода) |\n");
fprintf(POW,"| N n/n| Nn | Nk |--------------------------------------------------\n");
fprintf(POW,"| | | | активной | реактивной | активной | реактивной |\n");
fprintf(POW,"| | | |-----------|------------|-----------|------------|\n");
fprintf(POW,"| | | | кВт | кВАр | кВт | кВАр |\n");
fprintf(POW,"-----------------------------------------------------------------------|\n");
for (int i=1; i<ent; i++)
{if(TRAN[i]==0){fprintf(POW,"| %3d | %3d | %3d | %8.3f | %8.3f | %8.3f | %8.3f |\n",SOURP[i], SOURNn[i], SOURNk[i], Pt[i], Qt[i],Pxx[i], Qxx[i]);}
else
fprintf(POW,"| %3d | %3d | %3d | %8.3f | %8.3f | | |\n",SOURP[i], SOURNn[i], SOURNk[i], Pl[i], Ql[i]);}
fprintf(POW,"------------------------------------------------------------------------\n");
fprintf(POW,"\n\n\n\n Суммарные потери мощности в сети (%) \n\n");
fprintf(POW,"---------------------------------------------------------------------\n");
fprintf(POW,"| | активной | реактивной |\n");
fprintf(POW,"---------------------------------------------------------------------\n");
fprintf(POW,"| | % | % |\n");
fprintf(POW,"---------------------------------------------------------------------\n");
fprintf(POW,"| Суммарные потери мощности в сети: | %6.2f | %6.2f |\n", 100*dP/Pgy, 100*dQ/Qgy);
fprintf(POW,"---------------------------------------------------------------------\n");
fprintf(POW,"| Суммарные потери мощности в линиях: | %6.2f | %6.2f |\n", 100*dPl/Pgy, 100*dQl/Qgy);
fprintf(POW,"---------------------------------------------------------------------\n");
fprintf(POW,"| Суммарные потери мощности в линиях и | | |\n");
fprintf(POW,"| трансформаторах: | %6.2f | %6.2f |\n", 100*dPlt/Pgy, 100*dQlt/Qgy);
fprintf(POW,"---------------------------------------------------------------------\n");
fprintf(POW,"| Суммарные потери мощности в | | |\n");
fprintf(POW,"| трансформаторах: | %6.2f | %6.2f |\n", 100*dPt/Pgy, 100*dQt/Qgy);
fprintf(POW,"---------------------------------------------------------------------\n");
fprintf(POW,"| Суммарные потери мощности | | |\n");
fprintf(POW,"| холостого хода: | %6.2f | %6.2f |\n", 100*dPxx/Pgy, 100*dQxx/Qgy);
fprintf(POW,"---------------------------------------------------------------------\n");
dWxx=0; dW=0, dWt=0, dWlt=0, dWl=0;
for (int i=1; i<ent; i++) // Расчет Tma
{if(TRAN[i]!=0){Tma[i]=POTWp[i]/POTP[i];}}
for (int i=1; i<ent; i++) // Расчет Kfl2, Kft2
{if(TRAN[i]!=0){Kfl2[i]=(0.16*PERIOD/Tma[i]+0.82)*(0.16*PERIOD/Tma[i]+0.82);}
else
Kft2[i]=(0.16*PERIOD/SOURTma[i]+0.82)*(0.16*PERIOD/SOURTma[i]+0.82); }
for (int i=1; i<ent; i++) // Расчет Wl, Wt, Wxx
{if(TRAN[i]!=0){for (int r=0; r<lin; r++){int t=strcmp(SOURML[i],LNM[r]); if((t==0) && (CHNUnom<=LNUnom[r]) && (1.15*CHNUnom>=LNUnom[r])){
Wl[i]=((POTWp[i]*POTWp[i]*(1+(POTWq[i]*POTWq[i])/(POTWp[i]*POTWp[i]))*Kfl2[i]*SOURDLINA[i]*LNRo[r])/(1000*PERIOD*CHNUnom*CHNUnom*1000));}}}
else
for (int r=0; r<tr; r++){int t=strcmp(SOURMTR[i],TRM[r]); if((t==0) && (CHNUnom<=TRUnomvn[r]) && (1.15*CHNUnom>=TRUnomvn[r])){
Wt[i]=((POTWp[i]*POTWp[i]*(1+(sqrt(1-SOURCOS[i]*SOURCOS[i])*sqrt(1-SOURCOS[i]*SOURCOS[i]))/(SOURCOS[i]*SOURCOS[i]))*Kft2[i]*TRPkz[r]*CHNUnom*CHNUnom)/(PERIOD*CHNUnom*CHNUnom*TRSnom[r]*TRSnom[r]*1000));
Wxx[i]=TRPxx[r]*PERIOD/1000;
}}}
for (int i=1; i<ent; i++) // Расчет dW, dWlt, dWt, dWxx, dWl, Wgy
{dW+=Wt[i]+Wxx[i]+Wl[i];dWlt+=Wl[i]+Wt[i];dWl+=Wl[i];dWt+=Wt[i];dWxx+=Wxx[i];
if(TRAN[i]==0){Wgy+=POTWp[i]/1000;}}
Wgy+=dW;
fprintf(ENE," Потери электроэнергии \n\n");
fprintf(ENE,"-------------------------------------------------------------------------------------------------------------\n");
fprintf(ENE,"| Отпуск | Постоянные | Переменные (нагрузочные) | | \n");
fprintf(ENE,"| энергии | (холостого хода) |---------------------------------------------------------| суммарные |\n");
fprintf(ENE,"| в сеть | | в трансформаторах | в линии | суммарные | |\n");
fprintf(ENE,"| тыс.кВт*ч |------------------------------------------------------------------------------------------------\n");
fprintf(ENE,"| | тыс.кВт*ч | % | тыс.кВт*ч | % | тыс.кВт*ч | % | тыс.кВт*ч | % | тыс.кВт*ч | % |\n");
fprintf(ENE,"-------------------------------------------------------------------------------------------------------------\n");
fprintf(ENE,"| %8.2f | %7.2f |%5.2f | %7.2f |%5.2f | %7.2f |%5.2f | %7.2f |%5.2f | %7.2f |%5.2f |\n",Wgy, dWxx, 100*dWxx/Wgy, dWt, 100*dWt/Wgy,
dWl, 100*dWl/Wgy, dWlt, 100*dWlt/Wgy, dW, 100*dW/Wgy);
fprintf(ENE,"-------------------------------------------------------------------------------------------------------------\n");
Uict=CHNUnom*1.10;
for (int i=1; i<ent; i++) // Расчет dU
{if(TRAN[i]==0){for (int r=0; r<tr; r++){int t=strcmp(SOURMTR[i],TRM[r]); if((t==0) && (CHNUnom<=TRUnomvn[r]) && (1.15*CHNUnom>=TRUnomvn[r])){
dU[i]=((POTP[i]*TRPkz[r]*CHNUnom*CHNUnom*1000/(TRSnom[r]*TRSnom[r]))+POTQ[i]*sqrt((TRUkz[r]*CHNUnom*CHNUnom*1000)/(100*TRSnom[r])*(TRUkz[r]*CHNUnom*CHNUnom*1000)/(100*TRSnom[r])-
(TRPkz[r]*1000*CHNUnom*CHNUnom)/(TRSnom[r]*TRSnom[r])*(TRPkz[r]*1000*CHNUnom*CHNUnom)/(TRSnom[r]*TRSnom[r])))/(CHNUnom*1000);}}}
else
for (int r=0; r<lin; r++){int t=strcmp(SOURML[i],LNM[r]); if((t==0) && (CHNUnom<=LNUnom[r]) && (1.15*CHNUnom>=LNUnom[r])){
dU[i]=((1000*POTP[i]*LNRo[r]*SOURDLINA[i]+1000*POTQ[i]*LNXo[r]*SOURDLINA[i])/10000)/1000; }} }
for (int i=1; i<ent; i++)
{ if(SOURNn[i]==1){Unode[i]=Uict-dU[i];}
if(SOURNn[i]!=1) { k=i; Unode[i]=Uict-dU[i];
M1:
r=AO[k]; Unode[i]=Unode[i]-dU[r];
if(SOURNn[r]==1){continue;}
k=r;
goto M1;}}
for (int i=1; i<ent; i++)
{if(TRAN[i]==0){for (int r=0; r<tr; r++){int t=strcmp(SOURMTR[i],TRM[r]); if((t==0) && (CHNUnom<=TRUnomvn[r]) && (1.15*CHNUnom>=TRUnomvn[r])) {
Unode[i]=Unode[i]*TRUnomnn[r]/CHNUnom; }}}}
fprintf(Vol," Напряжение узлов \n\n");
fprintf(Vol,"---------------------------------------------------\n");
fprintf(Vol,"| N n/n| Nn | Nk | Потери | Напряжение |\n");
fprintf(Vol,"| | | | напряжения,кВ | узлов, кВ |\n");
fprintf(Vol,"---------------------------------------------------\n");
for (int i=1; i<ent; i++)
{fprintf(Vol, "| %3d | %3d | %3d | %5.3f | %6.3f |\n",SOURP[i], SOURNn[i], SOURNk[i], dU[i], Unode[i]);}
fprintf(Vol,"---------------------------------------------------\n");
M7:
printf("\n\n\nЗавершено...\n");
printf("Для выхода нажмите любую клавишу \n");
getch(); }
Ø Вывод результатов расчета и их анализ.
Программа выводит результаты в следующие таблицы:
Таблица 8-5
-------------------------------------------------------------------------------
| | | | Поток мощности ветви | Поток энергии ветви |
| N n/n| Nn | Nk |-------------------------|-------------------------------|
| | | | активный | реактивный | активный | реактивный |
| | | | кВт | кВАр | кВт*ч | кВАр*ч |
-------------------------------------------------------------------------------
| 1 | 1 | 2 | 906.37 | 673.27 | 2412540.00 | 1801700.87 |
| 2 | 2 | 101 | 14.40 | 10.80 | 24480.00 | 18360.00 |
| 3 | 2 | 3 | 891.97 | 662.47 | 2388060.00 | 1783340.87 |
| 4 | 3 | 102 | 89.60 | 91.41 | 224000.00 | 228525.71 |
| 5 | 3 | 4 | 802.37 | 571.06 | 2164060.00 | 1554815.16 |
| 6 | 4 | 5 | 50.40 | 24.41 | 100800.00 | 48819.67 |
| 7 | 4 | 6 | 751.97 | 546.65 | 2063260.00 | 1505995.49 |
| 8 | 5 | 103 | 50.40 | 24.41 | 100800.00 | 48819.67 |
| 9 | 6 | 104 | 57.60 | 43.20 | 161280.00 | 120960.00 |
| 10 | 6 | 7 | 694.37 | 503.45 | 1901980.00 | 1385035.49 |
| 11 | 7 | 8 | 64.00 | 48.00 | 179200.00 | 134400.00 |
| 12 | 8 | 105 | 64.00 | 48.00 | 179200.00 | 134400.00 |
| 13 | 7 | 9 | 630.37 | 455.45 | 1722780.00 | 1250635.49 |
| 14 | 9 | 10 | 32.00 | 24.00 | 70400.00 | 52800.00 |
| 15 | 10 | 106 | 32.00 | 24.00 | 70400.00 | 52800.00 |
| 16 | 9 | 11 | 598.37 | 431.45 | 1652380.00 | 1197835.49 |
| 17 | 11 | 107 | 100.80 | 48.82 | 236880.00 | 114726.22 |
| 18 | 11 | 12 | 100.00 | 82.57 | 257600.00 | 208331.43 |
| 19 | 12 | 108 | 28.00 | 28.57 | 56000.00 | 57131.43 |
| 20 | 12 | 13 | 72.00 | 54.00 | 201600.00 | 151200.00 |
| 21 | 13 | 109 | 72.00 | 54.00 | 201600.00 | 151200.00 |
| 22 | 11 | 14 | 397.57 | 300.06 | 1157900.00 | 874777.84 |
| 23 | 14 | 110 | 128.00 | 96.00 | 409600.00 | 307200.00 |
| 24 | 14 | 15 | 269.57 | 204.06 | 748300.00 | 567577.84 |
| 25 | 15 | 16 | 176.00 | 132.00 | 563200.00 | 422400.00 |
| 26 | 16 | 111 | 176.00 | 132.00 | 563200.00 | 422400.00 |
| 27 | 15 | 17 | 93.57 | 72.06 | 185100.00 | 145177.84 |
| 28 | 17 | 18 | 30.87 | 31.49 | 61740.00 | 62987.40 |
| 29 | 18 | 112 | 30.87 | 31.49 | 61740.00 | 62987.40 |
| 30 | 17 | 19 | 62.70 | 40.57 | 123360.00 | 82190.44 |
| 31 | 19 | 20 | 24.30 | 11.77 | 38880.00 | 18830.44 |
| 32 | 20 | 113 | 24.30 | 11.77 | 38880.00 | 18830.44 |
| 33 | 19 | 21 | 38.40 | 28.80 | 84480.00 | 63360.00 |
| 34 | 21 | 114 | 38.40 | 28.80 | 84480.00 | 63360.00 |
-------------------------------------------------------------------------------
Таблица 8-6 Потери мощности в сети
| | | | Переменные | Постоянные (хол. хода) |
| N n/n| Nn | Nk |--------------------------------------------------
| | | | активной | реактивной | активной | реактивной |
| | | |-----------|------------|-----------|------------|
| | | | кВт | кВАр | кВт | кВАр |
-----------------------------------------------------------------------|
| 1 | 1 | 2 | 0.615 | 0.362 | | |
| 2 | 2 | 101 | 0.306 | 0.509 | 0.300 | 2.700 |
| 3 | 2 | 3 | 39.899 | 23.490 | | |
| 4 | 3 | 102 | 1.984 | 4.385 | 0.540 | 3.840 |
| 5 | 3 | 4 | 2.339 | 1.377 | | |
| 6 | 4 | 5 | 0.009 | 0.005 | | |
| 7 | 4 | 6 | 0.521 | 0.307 | | |
| 8 | 5 | 103 | 0.380 | 0.839 | 0.540 | 3.840 |
| 9 | 6 | 104 | 0.656 | 1.442 | 1.200 | 12.600 |
| 10 | 6 | 7 | 0.316 | 0.254 | | |
| 11 | 7 | 8 | 0.003 | 0.002 | | |
| 12 | 8 | 105 | 0.775 | 1.713 | 0.540 | 3.840 |
| 13 | 7 | 9 | 3.736 | 3.005 | | |
| 14 | 9 | 10 | 0.005 | 0.002 | | |
| 15 | 10 | 106 | 0.194 | 0.428 | 0.540 | 3.840 |
| 16 | 9 | 11 | 2.615 | 2.103 | | |
| 17 | 11 | 107 | 1.519 | 3.357 | 0.540 | 3.840 |
| 18 | 11 | 12 | 0.094 | 0.054 | | |
| 19 | 12 | 108 | 0.164 | 0.408 | 1.200 | 14.000 |
| 20 | 12 | 13 | 0.008 | 0.005 | | |
| 21 | 13 | 109 | 1.944 | 4.008 | 0.730 | 6.500 |
| 22 | 11 | 14 | 0.774 | 0.440 | | |
| 23 | 14 | 110 | 0.880 | 2.742 | 1.100 | 22.000 |
| 24 | 14 | 15 | 0.171 | 0.097 | | |
| 25 | 15 | 16 | 0.169 | 0.096 | | |
| 26 | 16 | 111 | 1.664 | 5.185 | 1.100 | 22.000 |
| 27 | 15 | 17 | 0.028 | 0.016 | | |
| 28 | 17 | 18 | 0.006 | 0.003 | | |
| 29 | 18 | 112 | 0.627 | 1.239 | 0.220 | 1.764 |
| 30 | 17 | 19 | 0.232 | 0.132 | | |
| 31 | 19 | 20 | 0.021 | 0.009 | | |
| 32 | 20 | 113 | 0.689 | 1.146 | 0.300 | 2.700 |
| 33 | 19 | 21 | 0.017 | 0.007 | | |
| 34 | 21 | 114 | 0.279 | 0.617 | 0.540 | 3.840 |
------------------------------------------------------------------------
Таблица 8-7
Суммарные потери мощности в сети (%)
---------------------------------------------------------------------
| | активной | реактивной |
---------------------------------------------------------------------
| | % | % |
---------------------------------------------------------------------
| Суммарные потери мощности в сети: | 7.46 | 19.88 |
---------------------------------------------------------------------
| Суммарные потери мощности в линиях: | 5.27 | 3.78 |
---------------------------------------------------------------------
| Суммарные потери мощности в линиях и | | |
| трансформаторах: | 6.50 | 7.11 |
---------------------------------------------------------------------
| Суммарные потери мощности в | | |
| трансформаторах: | 1.23 | 3.33 |
---------------------------------------------------------------------
| Суммарные потери мощности | | |
| холостого хода: | 0.96 | 12.77 |
---------------------------------------------------------------------
Таблица 8-8 Потери электроэнергии
------------------------------------------------------------------------------------------
|Отпуск | Постоянные | Переменные (нагрузочные) | |
|энергии |(холостого хода)|----------------------------------------------| суммарные |
|в сеть | |в трансформаторах| в линии | суммарные | |
|тыс.кВт*ч|-------------------------------------------------------------------------------
| | тыс.кВт*ч | % |тыс.кВт*ч | % |тыс.кВт*ч| % |тыс.кВт*ч| |тыс.кВт*ч| % |
------------------------------------------------------------------------------------------
| 2588.92| 82.26 |3.18 | 17.24 | 0.67 | 76.88 | 2.97 | 94.12 |3.64 | 176.38 | 6.81|
------------------------------------------------------------------------------------------
Таблица 8-9 Напряжение узлов
---------------------------------------------------
| N n/n| Nn | Nk | Потери | Напряжение |
| | | | напряжения,кВ | узлов, кВ |
---------------------------------------------------
| 1 | 1 | 2 | 0.006 | 10.994 |
| 2 | 2 | 101 | 0.306 | 0.428 |
| 3 | 2 | 3 | 0.414 | 10.579 |
| 4 | 3 | 102 | 0.353 | 0.409 |
| 5 | 3 | 4 | 0.027 | 10.552 |
| 6 | 4 | 5 | 0.002 | 10.550 |
| 7 | 4 | 6 | 0.006 | 10.545 |
| 8 | 5 | 103 | 0.126 | 0.417 |
| 9 | 6 | 104 | 0.193 | 0.414 |
| 10 | 6 | 7 | 0.005 | 10.541 |
| 11 | 7 | 8 | 0.000 | 10.540 |
| 12 | 8 | 105 | 0.206 | 0.413 |
| 13 | 7 | 9 | 0.062 | 10.479 |
| 14 | 9 | 10 | 0.001 | 10.478 |
| 15 | 10 | 106 | 0.103 | 0.415 |
| 16 | 9 | 11 | 0.045 | 10.434 |
| 17 | 11 | 107 | 0.253 | 0.407 |
| 18 | 11 | 12 | 0.008 | 10.425 |
| 19 | 12 | 108 | 0.102 | 0.413 |
| 20 | 12 | 13 | 0.001 | 10.424 |
| 21 | 13 | 109 | 0.440 | 0.399 |
| 22 | 11 | 14 | 0.018 | 10.416 |
| 23 | 14 | 110 | 0.147 | 0.411 |
| 24 | 14 | 15 | 0.006 | 10.410 |
| 25 | 15 | 16 | 0.009 | 10.401 |
| 26 | 16 | 111 | 0.202 | 0.408 |
| 27 | 15 | 17 | 0.003 | 10.408 |
| 28 | 17 | 18 | 0.001 | 10.406 |
| 29 | 18 | 112 | 0.300 | 0.404 |
| 30 | 17 | 19 | 0.036 | 10.372 |
| 31 | 19 | 20 | 0.008 | 10.363 |
| 32 | 20 | 113 | 0.414 | 0.398 |
| 33 | 19 | 21 | 0.004 | 10.368 |
| 34 | 21 | 114 | 0.124 | 0.410 |
---------------------------------------------------
Выведенные программой расчетов полностью совпадают с ручным расчетом, поэтому можно судить о правильной программной реализации основных аналитических выражений.
Дата добавления: 2015-08-13; просмотров: 80 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Идентификация переменных | | | Руководство пользователя |