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

Запомним временно портящиеся характеристики пакетов разъёмов

  Arc = (/CocPack(1,1:2),PlugPack(1:2)/)

 Формируем матрицу Y начального участка линии без учета разъемов. Для этого обращаемся к процедуре BuildYSect, входным аргументом которой является  рас­стояние начального участка линии до места повреждения. Выходным аргументом является матрица Y начального участка линии. Причем сформированная матрица начального участка записывается в матрицу YnonDamaged. Описание данной процедуры приведено ниже.  

  call BuildYSect(RelDistan,YNonDamaged)

Формируем матрицу Y одного из двухполюсников, смежных с точкой по­вреждения с помощью функции BuildYMP. Описание этой функции приведено ниже, пока же отметим, что данная функция формирует матрицу Y начального участка с учетом разъемов. То есть по только что сформированной матрицы YnonDamaged формируется указатель Y1Ptr  на матрицу Y, память под которую выделяется процедурой Malloc.  (YnonDamaged – используем как временный мас­сив).

Если не удалось сформировать Y1Ptr, то входим из процедуры формирова­ния матрицы Y поврежденного многополюсника.  

if (.not. BuildYMP('началь',Con1UN ,(/NPh1PL,NPh1PL/), YNonDamaged, Y1Ptr, NPhP(1,1))) then

    ier=5; goto 99

  end if

Аналогично формируем матрицу Y конечного участка линии:

  call BuildYSect(1.-RelDistan,YNonDamaged)

  if (.not. BuildYMP('конеч', Con2UN,(/NPh1PL,NPh1PL/), YNonDamaged, Y2Ptr,NPhP(1,2))) then

    ier=6; goto 99

  end if

Освобождаем память из-под блоков В и С, так как они нам больше не понадобятся

  Deallocate(B,C)

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

  call DevelopYfault(kindKZ,r,YNonDamaged,NPhFI,kfm,kz)

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

  NPhFI = NPhFI/2

Аналогично формируем матрицу Y многополюсника – вредителя с учетом разъе­мов

if (.not. BuildYMP ('повреждающе',ConFUN, (/NPhFI,NPhFI/), YNonDam­aged, YFPtr,NPhP(1,3))) then

    ier=9; goto 99

  end if

2.2.3 Формирование схемы соединения смежных многополюсников

Определим общее число фаз в трех смежных многополюсниках

  NPh123 = Sum(NPhP)

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

  allocate (Phase(NPh123))              

Присоединенные к месту повреждения многополюсники нумеруются в следую­щей очередности:

1 – многополюсник, моделирующий начальный участок ЛЭП

2 – многополюсник, моделирующий конечный участок ЛЭП

3 – многополюсник – вредитель.

Схема повреждения формируется по следующему принципу: фаза висячего или земляного полюса поврежденной ЛЭП, подключенная к очередной фазе очеред­ного смежного с точкой повреждения полюса очередного присоединенного к месту повреждения многополюсника.

Проиллюстрируем схему соединения фаз трех смежных многополюсников для двухфазного короткого замыкания «АВ».

 


Рис.2.5 Схема соединения фаз трех смежных многополюсников для двух­фазного короткого замыкания

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

 

То есть многополюсник-вредитель в рассматриваемом случае имеет всего две фазы.

Рассчитываем диапазоны сквозных номеров фаз для полюсов смежных мно­гополюсников: где m – многополюсники; р – полюса многополюсников; j – номер фазы.

 j = 1 

do m = 1,3

    do p = 1,2

      F(p,m)=j; j = j+NPhP(p,m)

      T(p,m)=j-1

    end do

  end do