Для формирования матрицы 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, & - Число внутренних фаз в каждом из полюсов многополюсника – вредителя
NPhP(2,3),& - Числа внешних фаз по полюсам смежных многополюсников
kz(2), & - Схема присоединения фаз многополюсника – вредителя к начальному и конечному многополюснику
MPsMP(kfm/2), & - Схема соединения фаз начального и конечного многополюсника между собой
NYL, & - Банковский номер матрицы Y неповреждённого многополюсника
Phase[allocatable](:) - Сквозной номер фазы сборки, к которой присоединена очередная фаза очередного полюса очередного смежного многополюсника.
integer*4:: & - Указатели на матрицы Y, память под которые выделяется процедурой MAlloc
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.