Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Написание и отладка программы

Читайте также:
  1. A. Разработка и отладка программного кода.
  2. I. Образовательные программы.
  3. I. ПРОГРАММЫ БАКАЛАВРИАТА
  4. II. Назначение программы
  5. II. Организационно-педагогические условия реализации программы
  6. II. Требования к результатам освоения основной образовательной программы начального общего образования
  7. II. ТРЕБОВАНИЯ К СТРУКТУРЕ ОСНОВНОЙ ОБРАЗОВАТЕЛЬНОЙ ПРОГРАММЫ ДОШКОЛЬНОГО ОБРАЗОВАНИЯ И ЕЕ ОБЪЕМУ

 

Ø Ввод и печать исходной информации.

 

Схема исследуемой сети:

 

Схема 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 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Идентификация переменных| Руководство пользователя

mybiblioteka.su - 2015-2024 год. (0.103 сек.)