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
Для приведенной выше схемы замещения получим следующую матрицу .
Введем следующие обозначения:
В - недиагональный блок матрицы 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
Определяем чило фаз одного полюса
Выделяем память под блоки матрицы 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 смежных с повреждением многополюсников с учетом разъемов
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.