Программа определения места повреждения на воздушной линии электропередачи, страница 10

    Y1Ptr, & - Начальный участок 

    Y2Ptr, & - Конечный участок                     с учётом разъёмов

    YFPtr    - Многополюсник – вредитель       

 complex:: Y(neYmp) - Результирующая матрица Y повреждённой ЛЭП

 complex, dimension(:,:), allocatable::  &

    B, & - Недиагональный блок Y неповреждённой ЛЭП (взаимные прово­димости)

    C   - Сумма диагональных и недиагональных блоков матрицы Y неповре­ждённого многополюсника (собственные проводимости на землю)

  real*4:: O,HOPMA1  

2.2.1 Формирование диагональных  и недиагональных  блоков          матрицы Y неповрежденного многополюсника

Для трехфазной схемы замещения линии электропередачи сформируем мат­рицу Y. Формируемую матрицу Y представим четырехмерным массивом, она имеет следующую блочную структуру:

Рис. 2.3 Блочная структура матрицы Y

 


Рис.2.4 Однолинейная схема замещения  воздушной линии электропередачи

Для приведенной выше схемы замещения получим следующую матрицу .

Введем следующие обозначения:

В -  недиагональный блок матрицы Y,   ;

С – сумма диагональных и недиагональных блоков, то есть . Тогда для введенных обозначений получим:

 

Следовательно С – прямо пропорциональна длине линии L, а В – обратно пропор­ционально длине линии. 

Для формирования блоков матрицы Y необходимо вначале определить бан­ковский номер матрицы Y неповреждённого многополюсника в Y-файле. Для этого обращаемся к функции поиска INDI: аргументами которой являются

 CoctYM(1,1) - номер многополюсника для 1-й матрицы Y,

 CoctYM(0,1) - число матриц Y многополюсников в Y-файле,

 MPLine - пользовательский номер неповрежденнго многополюсника, ре­зультатом же этой функции будет банковский номер матрицы Y неповрежденного многополюсника

  NYL = IndI (CoctYM(1,1),CoctYM(0,1),MPLine) 

Если окажется, что банковский номер матрицы Y неповрежденного многополюс­ника меньше или равен нулю, то выводим пользователю сообщение: «В базе дан­ных нет матрицы Y неповреждённого многополюсника» и выходим из процедуры формирования матрицы Y поврежденного многополюсника, при этом код ошибки получает значение не равное нулю.

  if (NYL<=0) then

    write (Msg,'(2(a,i6)') 'В базе данных нет матрицы Y неповреждённого мно­гополюсника', MPLINE,'.'

    call AbortDlg(Msg)

    ier=1; goto 99

  end if

По найденному банковскому номеру определяем число внешних фаз в этом многополюснике

  NPhL = CoctYM(NYL,3)

Ежели поврежденный многополюсник имеет нечетное число фаз, то выводим пользователю сообщение и выходим из процедуры формирования матрицы Y по­врежденного многополюсника. При этом код ошибки получает значение не рав­ное нулю 

  if (mod(NPhL,2) /=0) then

    write (Msg,'(2(a,i3)') 'Повреждённый многополюсник имеет нечётное число фаз:',NPhL,'.'

    call AbortDlg(Msg)

    ier=2; goto 99

  end if

Определяем чило фаз одного полюса

  NPh1PL = NPhL/2

Выделяем память под блоки матрицы Y В и С. Размерность блоков В и С опреде­ляется количеством фаз в одном полюсе

  Allocate(C(NPh1PL,NPh1PL),B(NPh1PL,NPh1PL),stat=ier)

Если количество фаз в одном полюсе велико, то выводим пользователю сообще­ние: «Повреждаемая ЛЭП имеет чересчур много фаз» и выходим из процедуры формирования матрицы Y поврежденного многополюсника при этом код ошибки получает значение не равное нулю.

  if (ier/=0) then

write (Msg,'(a,i3,1h.)') 'Повреждаемая ЛЭП имеет чересчур много фаз -',NPh1PL

    call NoMemory(Msg)

    ier=3; goto 99

  end if

Сформируем матрицы собственных и взаимных проводимостей неповреж­дённого многополюсника. Для этого читаем из Y файла с позиции CoctYM(NYL,2), – номер первой записи для  матрицы Y неповрежденного много­полюсника.

   read (YFile,rec=CoctYM(NYL,2)) (C(:,j),B(:,j),j=1,UBound(C,2))

Находим сумму диагонального и недиагонального блока матрицы Y/  

C=C+B

2.2.2  Формирование матрицы Y смежных с повреждением                             многополюсников с учетом разъемов