рефераты скачать

МЕНЮ


Анализ режимов работы электрических сетей ОАО "ММК им. Ильича" и разработка адаптивной системы управления режимами электропотребления


Подставив номинальные параметры в (5.4) - (5.7) получим:

rT=1,9 Ом,

хТ=44 Ом,

GT=0.0045,

BT=0.0167.


Таблица 5.16 - Номинальные параметры двухобмоточного трансформатора п/ст 31: ТДНГ-40500/110/10

Трансформатор

Среднее номинальное напряжение, кВ

Uкз, %

Ркз, кВт

Рх.х, кВт

I х.х, %

ТДНГУ-40500/110

115/11

10,5

172

36

0,65


Подставив номинальные параметры в (5.4) - (5.7) получим:

rT=1,42 Ом,

хТ=34,7 Ом,

GT=0.0027,

BT=0.0197.


Таблица 5.17 - Номинальные параметры двухобмоточного трансформатора Т3, Т4 п/ст 41

Трансформатор

Среднее номинальное напряжение, кВ

Uкз, %

Ркз, кВт

Рх.х, кВт

I х.х, %

ТРДЦН-63000/110

115/10

10,5

260

59

0,6


Подставив номинальные параметры в (5.4) - (5.7) получим:

rT=0,87 Ом,

хТ=22 Ом,

GT=0.0045,

BT=0.0286.


5.2 Расчет сети при различных нагрузках


На первом этапе (см. рис. 3.1) с помощью разработанного программного обеспечения были рассчитаны неоптимальные режимы работы сети ОАО "ММК им. Ильича" с компенсацией реактивной мощности при коэффициенте реактивной мощности . При номинальных нагрузках потери активной мощности составили  кВт. При максимальных нагрузках -  кВт.


Таблица 5.18 - Оптимальный режим сети при номинальных нагрузках

№ п/ст

Приведенные напряжения к ступени 110 кВ

Генерируемые мощности



активная, кВА

реактивная, кВА

28

114,2

-

42351

2

113,8

-

38136

6

114,5

-

14233

32

113,7

-

9541

38

113,9

-

14919

46

114,1

-

5351

37

114,3

-

3780

40

113,8

-

10280

44

114,2

-

25306

34

114,5

-

15570

33

114,6

-

24905

20

113,8

-

45693

31

114,2

-

13560

43

114,1

-

10751

42

114,3

-

13341

41

114,2

-

65340

ТЭЦ-1

114,8

15210

6800

ТЭЦ-2

115,1

32155

12751


Проведя расчет оптимального режима сети ОАО "ММК им. Ильича" при номинальных нагрузках, было получено минимальное значение потерь активной мощности в сети ΔРопт=84500 кВт. Эффект разработанного программного обеспечения оценивается по снижению потерь активной мощности на величину  кВт.


Таблица 5.19 - Оптимальный режим сети при максимальных нагрузках

№ п/ст

Приведенные напряжения к ступени 110 кВ

Генерируемые мощности



активная, кВА

реактивная, кВА

28

113,8

-

46283

2

113,3

-

40563

6

114,1

-

15621

32

113,1

-

10159

38

113,2

-

16105

46

113,8

-

6258

37

113,9

-

4106

40

113,5

-

12223

44

113,9

-

28412

34

114,0

-

16933

33

114,1

-

26122

20

113,4

-

47731

31

113,8

-

15303

43

113,7

-

116697

42

113,9

-

15105

41

113,9

-

68251

ТЭЦ-1

114,7

16250

7200

ТЭЦ-2

115,0

34120

14105

Проведя расчет оптимального режима сети ОАО "ММК им. Ильича" при максимальных нагрузках, было получено минимальное значение потерь активной мощности в сети ΔРопт=89320 кВт. Эффект разработанного программного обеспечения оценивается по снижению потерь активной мощности на величину  кВт.


Выводы


Разработанное программное обеспечение позволяет решить комплекс проблем, связанных с оптимальным распределением реактивной мощности по сети.

Разработанная адаптивная система управления позволяет осуществлять постоянный контроль над нагрузками подстанций и конфигурацией сети, оперативно реагировать на какие-либо изменения и производить точный расчет для нового режима.

Внедрение представленного комплекса, состоящего из программного обеспечения и адаптивной системы управления, на любое предприятие с любой сложно замкнутой сетью, в данном случае, на ОАО "ММК им. Ильича" позволяют:

значительно уменьшить потери энергии;

поддерживать постоянный уровень напряжения у приемного конца сети;

значительно уменьшить денежные затраты на потребление и генерацию реактивной мощности.

Минимум аппаратного обеспечения, необходимого для информационного режима работы адаптивной системы управления, и совместимость системы с любым оборудованием, уже установленного на подстанциях, позволяет сделать вывод о целесообразности применения разработанного программного обеспечения на ОАО "ММК им. Ильича" и других крупных промышленных предприятий.


Перечень ссылок


1.      В.Н. Костин.: Оптимизационные задачи электроэнергетики: Учеб. пособие. - СПб.: СЗТУ, 2003 - 120с.

2.      В.Г. Карманов. Математическое программирование. - М.: Наука, 1980 - 256с.

3.      Дж. Деннис, Р. Шнабель. Численные методы безусловной оптимизации и решения нелинейных уравнений. - М.: Мир, 1988 - 440с.

4.      З.Н. Бененсон, М.Р. Елистратов, Л.К. Ильин и др. Моделирование и оптимизация на ЭВМ радиоэлектронных устройств. - М.: Радиосвязь, 1981 - 272с.

5.      С. Гилл, У. Мюррей. Численные методы условной оптимизации. - М.: Мир, 1977 - 339с.

6.      Васильев С.П. Численные методы решения экстремальных задач. - М.: Наука, 1980 - 518с.

7.      И.Т. Черноруцкий. Методы оптимизации в теории управления, С.-П.: Питер, 2004 - 226с.

8.      В.Е. Болконин, П.И. Чинаев. Анализ и синтез систем автоматического управления на ЭВМ. Алгоритмы и программы. - М.: Радио и связь, 1986 - 248с.

9.      В.Н. Костин, Е.В. Распопов, Е.А. Родченко. Передача и распределение электроэнергии: Учеб. пособие. - СПб.: СЗТУ, 2003 - 147с.

10.    Барзам А.Б. Системная автоматика. - М.: Энергоатомиздат, 1989. - 446с.

11.    Баркан Я.Д., Орехов Л.А. Автоматизация энергосистем: учебное пособие для студентов вузов. - М.: Высш. школа, 1981. - 271с.

12.    А. А. Черносвитов. Курс MCSD Visual C++ 6.0 и MFC, С.-П.: Питер, 2000 - 554с.

13.    Веников В.А. Управление переходными режимами в электрических системах. - М.: Высшая школа, - 1972. - 352с.

Приложение А

Программа расчета оптимальных режимов


#include <stdio.h>

#include <complex.h>

#include <iostream.h>

#include <conio.h>

#include <math.h>


int luc ( int, complex [][31], int [], double );

void rluc ( int, complex [][31], int [], complex [] );

void gauss ( int n, complex [][31], complex [], complex * );

void rasis ( int, int, complex [], complex [], complex [], int [], int [] );

void start ( int, int, int, complex [][31], complex [],

complex [], int [], int [], int [], int );

void vard ( int, int, int, complex [][31], complex [],

complex [], int [], int [], int [] );

void varm ( int, int, int, complex [][31], complex [],

complex [], int [], int [], int [] );

void prejc ( int, int, int, complex [], complex [] );

void rasis ( int, int, complex [], complex [], complex [], int [], int [] );

void pryzc ( int, complex [], int [], int [], int );

void foryzc ( int, int, complex [][31], complex [], int [], int [] );


double w;


void main ( void )

{

complex a[30][31], b[30], yz[90], tok[90], s;

int imax[90], imin[90], irow[30];

int n, nyz, nej, istop, i, j;

double f;

do

{

clrscr ( );

scanf ( "%i4 %i4 %i4 %i4", &f, &n, &nyz, &nej, &istop );

w = 2 * M_PI * f;

start ( n, nyz, nej, a, b, yz, imax, imin, irow, 0 );

for ( i = 0; i < nyz; i++ )

{

yz[i] = 1.0 / yz[i];

cout << yz[i];

if ( ! ( i % 4 ) ) cout << '\n';

}

for ( i = 0; i < nyz; i++ )

cin >> imax[i] >> imin[i];

cin >> n;

vard ( n, nyz, nej, a, b, yz, imax, imin, irow );

rasis ( n, nyz, b, yz, tok, imax, imin );

}

while ( istop );

//for ( i = 0; i < n; i++ )

//for ( j = 0; j <= n; j++ )

//cin >> a[i][j];

//for ( i = 0; i < n; i++ )

//b[i] = a[i][n];

//for ( i = 0; i < n; i++ )

//{

//for ( j = 0; j <= n; j++ )

//cout << a[i][j];

//cout << '\n';

//}

//for ( i = 0; i < n; i++ )

//cout << b[i];

//luc ( n, a, irow, 0.00001 );

//rluc ( n, a, irow, b );

//cout << '\n';

//gauss ( n, a, b, &s );

//for ( i = 0; i < n; i++ )

//cout << b[i];

}


int luc ( int n, complex a[][31], int irow[], double eps )

{

int i, i1, j, k, l, n1;

complex prom;


for ( i = 0; i < n; i++ )

irow[i] = i;

n1 = n - 1;

for ( i = 0; i < n1; i++ )

{

i1 = i + 1;

l = i;

for ( k = i1; k < n; k++ )

if ( abs ( a[k][i] ) > abs ( a[l][i] ) ) l = k;

if ( abs ( a[l][i] ) < eps ) return 0;

if ( l > i )

{

for ( j = 0; j < n; j++ )

{

prom = a[i][j];

a[i][j] = a[l][j];

a[l][j] = prom;

}

irow[i] = l;

}

for ( j = i1; j < n; j++ )

a[i][j] = a[i][j] / a[i][i];

for ( k = i1; k < n; k++ )

for ( j = i1; j < n; j++ )

a[k][j] -= a[k][i] * a[i][j];

}

return 1;

}



void rluc ( int n, complex a[][31], int irow[], complex b[] )

{

int i, j;

complex sum;


for ( i = 0; i < n; i++ )

if ( i != irow[i] )

{

sum = b[i];

b[i] = b[irow[i]];

b[irow[i]] = sum;

}

for ( i = 0; i < n; i++ )

{

sum = b[i];

for ( j = 0; j < i; j++ )

sum -= a[i][j] * b[j];

b[i] = sum / a[i][i];

}

for ( i = n - 2; i >= 0; i-- )

{

sum = b[i];

for ( j = i+1; j < n; j++ )

sum -= a[i][j] * b[j];

b[i] = sum;

}

}


void gauss ( int n, complex a[][31], complex x[], complex *s )

{

int i, j, k, l, k1, n1;

complex r;

n1 = n + 1;

for ( k = 0; k < n; k++ )

{

k1 = k + 1;

*s = a[k][k];

j = k;

for ( i = k1; i < n; i++ )

{

r = a[i][k];

if ( abs ( r ) > abs ( *s ) )

{

*s = r;

j = i;

}

}

if ( *s == complex ( 0.0, 0.0 ) ) break;

if ( j != k )

for ( i = k; i < n1; i++ )

{

r = a[k][i];

a[k][i] = a[j][i];

a[j][i] = r;

}

for ( j = k1; j < n1; j++ )

a[k][j] /= *s;

for ( i = k1; i < n; i++ )

{

r = a[i][k];

for ( j = k1; j < n1; j++ )

a[i][j] -= a[k][j] * r;

}

}

if ( *s != complex ( 0.0, 0.0 ) )

for ( i = n - 1; i >= 0; i-- )

{

*s = a[i][n];

for ( j = i + 1; j < n; j++ )

*s -= a[i][j] * x[j];

x[i] = *s;

}

return;

}


void start ( int n, int nyz, int nej, complex a[][31], complex b[],

complex yz[], int imax[], int imin[], int irow[], int iy )

{

int i;


pryzc ( nyz, yz, imax, imin, iy );

for ( i = 0; i < nyz; i++ )

{

cout << yz[i];

if ( ! ( i % 4 ) ) cout << '\n';

}

vard ( n, nyz, nej, a, b, yz, imax, imin, irow );

}


void vard ( int n, int nyz, int nej, complex a[][31], complex b[],

complex yz[], int imax[], int imin[], int irow[] )

{

int i, j;


foryzc ( n, nyz, a, yz, imax, imin );

//for ( i = 0; i < n; i++ )

//{

//for ( j = 0; j < n; j++ )

//cout << a[i][j];

//cout << '\n';

//}

if ( luc ( n, a, irow, 1.0e-5 ) )

varm ( n, nyz, nej, a, b, yz, imax, imin, irow );

else

printf ( "\nв®з­®Ґ аҐиҐ­ЁҐ ­Ґ ў®§¬®¦­®" );

return;

}


void varm ( int n, int nyz, int nej, complex a[][31], complex b[],

complex yz[], int imax[], int imin[], int irow[] )

{

int i;


prejc ( n, nej, nyz, b, yz );

for ( i = 0; i < n; i++ )

{

cout << b[i];

if ( ! ( i % 4 ) ) cout << '\n';

}

rluc ( n, a, irow, b );

for ( i = 0; i < n; i++ )

{

cout << b[i];

if ( ! ( i % 4 ) ) cout << '\n';

}

return;

}


void pryzc ( int nyz, complex yz[], int imax[], int imin[], int iy )

{

int i, indrlc;

complex rlc;


for ( i = 0; i < nyz; i++ )

{

cin >> rlc >> indrlc >> imax[i] >> imin[i];

yz[i] = rlc;

if ( indrlc == 2 )

yz[i] = complex ( 0.0, -1000000 / ( w * imag ( rlc ) ) );

if ( indrlc == 1 )

yz[i] = complex ( 0.0, w * imag ( rlc ) * 0.001 );

if ( indrlc == 3 ) yz[i] = polar ( real ( rlc ), imag ( rlc ) );

cout << "YZ[" << i+1 << "]= " << yz[i];

}

}


void foryzc ( int n, int nyz, complex a[][31], complex yz[],

int imax[], int imin[] )

{

int i, j, k, kolstr;


for ( i = 0; i < n; i++ )

{

for ( j = 0; j < n; j++ )

a[i][j] = complex ( 0.0, 0.0 );

//cout << '\n';

}

for ( k = 0; k < nyz; k++ )

{

i = imax[k];

j = imin[k];

a[i-1][i-1] += yz[k];

if ( j )

{

a[j-1][j-1] += yz[k];

a[i-1][j-1] -= yz[k];

a[j-1][i-1] = a[i-1][j-1];

}

}

clrscr();

cout << "YZ[i][j]=";

kolstr = 0;

for ( i = 0; i < n; i++ )

{

for ( j = 0; j < n; j++ )

{

cout << "\nYZ[" << i+1 << "][" << j+1 << "]= " << a[i][j];

kolstr++;

if ( kolstr == 22 )

{

kolstr = 0;

getchar ( );

clrscr();

cout << "YZ[i][j]=";

}

}

}

return;

}


void prejc ( int n, int nej, int nyz, complex b[], complex yz[] )

{

int i, ind1, ind2, imin, imax, iyz;

complex ej;


for ( i = 0; i < n; i++ )

b[i] = complex ( 0.0, 0.0 );

for ( i = 0; i < nej; i++ )

{

cin >> ej >> iyz >> imax >> imin >> ind1 >> ind2;

if ( ind1 )

ej = polar ( real ( ej ), imag ( ej ) );

if ( ind2 ) ej *= yz[iyz-1];

cout << "ei= " << ej;

b[imax-1] += ej;

if ( imin ) b[imin-1] -= ej;

}

return;

}


void rasis ( int n, int nyz, complex b[], complex yz[],

complex tok[], int imax[], int imin[] )

{

int i, j, k;

for ( k = 0; k < nyz; k++ )

{

i = imax[k];

j = imin[k];

if ( j )

tok[k] = ( b[i-1] - b[j-1] ) * yz[k];

else

tok[k] = b[i-1] * yz[k];

}

for ( k = 0; k < nyz; k++ )

cout << "I["<< k+1 << "]=" << tok[k];

return;

}


Приложение Б

Структурная схема системы управления




Страницы: 1, 2, 3, 4, 5, 6


Copyright © 2012 г.
При использовании материалов - ссылка на сайт обязательна.