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

Для формирования матрицы Y поврежденного многополюсника, необхо­димы следующие входные параметры: номер неповрежденного многополюсника MPLine, вид короткого замыкания KindKZ, расстояние до места повреждения в относительных единицах RelDistan, сопротивление короткого замыкания R.

subroutine MPDamLine(YNonDamaged, RelDistan, R, KindKZ, MPLine, Y)

Y - формируемая матрица Y

Произведем обработку информации о поврежденном многополюснике:

  integer*2::&

    ier,     & - Код ошибки

    mpline,  & - Номер поврежденного многополюсника

          kindKZ – Вид  короткого замыкания

  real*4::     &

    RelDistan, & - Расстояние до места повреждения в о.е.

    R - Сопротивление короткого замыкания

  complex*8, dimension(:)::YNonDamaged – Матрица проводимостей непо­врежденного многополюсника, память под которую выделяется динамически

  complex Y(*)  - Формируемая матрица Y

  character F(800); pointer (FPtr, F); FPtr = Loc(Y)

    ier=0

Считаем что первые полюса начального и конечного многополюсника (Con1UN(1), Con2UN(1)) к месту повреждения не подключены, то есть к схеме они подключаются без разъема. Также считаем, что первый и второй полюс мно­гополюсника вредителя (ConFUN(1), ConFUN(2)) и вторые полюса начального и конечного многополюсника (Con1UN(2), Con2UN(2)) подключены к месту по­вреждения без разъемов. Для этого обнуляем следующие массивы:

    Con1UN=0

    Con2UN=0

    ConFUN=0

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

call DamLine (YNonDamaged,RelDistan,r,KindKZ,MPLine,Y,ier)

Если код ошибки неравен нулю, то выводим пользователю сообщение «Матрицу Y сформировать не  удалось» и выходим из процедуры формирования матрицы Y.

  if(ier \= 0) then

               write (Msg,'(a)')  'Матрицу Y сформировать не  удалось.'

               call AbortDlg(Msg)

     goto 99

  end if

99      end subroutine

subroutine DamLine (YNonDamaged,RelDistan,r,KindKZ,MPLine,Y,ier)

Формирование матрицы проводимостей

Входными параметрами данной процедуры являются: матрица Y неповреж­денного многополюсника YnonDamaged,  вид короткого замыкания KindKZ, но­мер многополюсника вредителя MPLine, расстояние до места повреждения в о.е RelDistan, сопротивление короткого замыкания R. Выходными параметрами яв­ляются матрица проводимостей поврежденного многополюсника и код ошибки ier ежели не удалось сформировать матрицу Y поврежденного многополюсника.  

  integer*2:: mpline,kindKZ

  real*4:: RelDistan,r

  complex*8, dimension(:)::YNonDamaged

  integer*2:: &

   ier,IndI,j,i,m,p,&

   Arc(4),   & - Копии временно портящихся характеристик пакетов разъёмов

   F(2,3),   & - F(p,m) - сквозной номер первой фазы p-го полюса m-го  смеж­ного многополюсника

    T(2,3),   & - T(p,m) - сквозной номер последней фазы p-го полюса m-го смежного многополюсника

    NPh123,   & - Общее число внешних фаз в трёх смежных многополюсни­ках

    NPh,      & - Размерность матрицы Y до исключения висячего полюса

    NPh1PL,   & - Число фаз в одном полюсе начального или конечного уча­стка для неповреждённого многополюсника

    NPhFI,    & - Число внутренних фаз в каждом из полюсов многополюс­ника – вредителя

    NPhL,     & - Число фаз неповрежденного многополюсника

   NPhP(2,3),& - Числа внешних фаз по полюсам смежных многополюсников

    kz(2),      & - Схема присоединения фаз многополюсника – вредителя к начальному и конечному многополюснику  

MPsMP(kfm/2),    & - Схема соединения фаз начального и конечного много­полюсника между собой

    NYL,      & - Банковский номер матрицы Y неповреждённого многопо­люсника

Phase[allocatable](:) - Сквозной номер фазы сборки, к которой присоединена очередная фаза очередного полюса очередного смеж­ного многополюсника.

  integer*4:: & - Указатели на матрицы Y, память под которые выделяется процедурой MAlloc