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

8.  Д.Д.Карасёв, Е.Д.Карасёв. Принципы построения расчётных схем для несимметричных режимов электрических сетей в программе “Маскарад”. В кн. “Электротехника, электромеханика и электротехнологии. Энергетика. Экономика и менеджмент // Науч.-тех. конф., посвящённая 40-летию Смол. филиала МЭИ. – Смоленск: ГОУВПО СФМЭИ (ТУ), 2001, т.1, с.57.

9.   Г.М.Шалыт, А.И.Айзенфельд. Определение мест повреждения линий по параметрам аварийного режима. – М.:Энергоиздат – 1983 г.

10.  Летун В. М. Некоторые проблемы оптимального управления режимом работы энергосистемы в условиях оптового рынка. Энергетик, 2002 г.,  №1, с.10.

11. Грибков А. М, Щелоков Ю. В, Чадаев А. В. Снижение выбросов оксидов азота котлами ПЭО Татэнерго. Электрические станции, 2001 г., №4, с.13.

12. Левченко И. И., Засыпкин А. С., Рябуха Е. В. О мерах безопасности при работах на воздушных линиях под наведенным напряжением. Электрические станции, 2001 г., №5, с.37.

Приложение 1

Процедура добавления матрицы Y поврежденного многополюсника к матрице Y сети

function AddMPforY(Num,YMP) result(ier)

! Учитываем новый МП со схемным номером Num с матрицей  YMP в матрице Y сети

  use UnitName;     use Ynet; use MatraDim; use Global

                   implicit none

          complex, dimension(:), intent(in):: YMP

  integer*2:: d,i,il,ier,index,indi,iu,j,k,kmp,ku,kf,kfi,kfm,kfmp, &

                     kpol,l,mp,mpb,nd,nstl,nstr,p,pp,uz0, Key(0:npmp),Kfp(npmp),Nmp(1),Num

  logical*4:: inverse

  complex, dimension(neYmp):: Y

  common Y

  Automatic KFP,Key

!  Первый элемент блока (I,J) располагается по адресу:

  index(I,J)=Key(0)*Key(J)+Key(I)+1

!  Diag   - массив диагональных блоков Y

!  Yn,Yv  - над- и поддиагональные блоки Y

!  AnbY   - адреса начал блоков в массивах Yn,Yv

!  Ibs    - индекс блочной строки (столбца)

!  Next   - адрес, по которому хранится информация о следующем в

!           столбце (строке) блоке

!  Anbd   - адреса начал диагоналоных блоков

!  Ans    - адреса начал блочных столбцов (строк)

!  Kfuz   - количества фаз по узлам

  kmp=Cxema.kmpn      !    число МП в сети

  ku=Uzel(0)          !    число узлов в сети

  mp = indi(CXEMA.Num,nmpn,Num)

  if(mp<0) then

    write (Msg,'(a,i6,a)') &

      'Повреждённый многополюсник',Num,' в схеме отсутствует.'

            call AbortDlg(Msg)

    ier=1

    goto 99

  endif

          Nmp(1)=Num

          uz0=Cxema.Addr(mp)-1   !   uz0+p - адрес номера узла,

                         !   подключенного к p-му полюсу МП

  ! Чтение матрицы Y с учетом внутренних разъемов

  mpb=indi(Coctym(1,1),Coctym(0,1),Num)

  if(mpb<0) then

    write (Msg,'(a,i6,a)') 'Mатрицы Y многополюсника',Num,' в банке нет.'

    call AbortDlg(Msg)

    ier=2

    goto 99

  endif

  kfm=Coctym(mpb,3)  !   число фаз в МП

  ! Подключение внешних разъемов

  kpol=2

  call kfmpu2 (mp,Kfp,kfmp,ier)

  if(ier==0) call MaskYmp(Cxema.Plext(mp),kpol,Kfp,YMP,Y,ier)

    if(ier/=0)  then

    write (Msg,'(a,i6,a)') 'K МП',Cxema.Num(mp), &

      ' не удалось подключить внешние разъемы.'

    call AbortDlg(Msg)

    goto 99

  end if

    ! Генерация вектора ключей для быстрого доступа к началам блоков

  call BlocKey (Kfp,kpol,Key)   !    матрицы Y МП

  do p=1,kpol   !   перебор полюсов МП

    ! Добавление диагонального блока Y МП к диагональному блоку Y сети

    j=Cxema.Nodi(uz0+p) ! номер узла, к которому подключен полюс p

    kf=Kfuz(j)    !  число фаз в этом узле

    d=Anbd(j)    !  адрес диагонального блока для этого узла

    call AddMat (Y(index(p,p)),kfmp,Diag(d),kf,Diag(d),kf,kf,kf)

    do pp=p+1,kpol   !  перебор недиагональных элементов Y МП

      ! номер узла, связанного с полюсом i через МП:

      i=Cxema.Nodi(uz0+pp)

      kfi=Kfuz(i)   !  число фаз в этом узле

      if(i==j) then  !  два полюса подключены к одному узлу:

        k=index(p,pp)   !  добавка к диагональному блоку Y сети