Параметры ИДМ при неравномерной плотности тока
OPEN (7,file-parameter.dat'); OPEN (8,file='parameter.ch') Юткрывание файлов READ (7,LST); WRITE (8,LST) !Чтение исх. данных и их запись в файл с результатами ALLOCATE (NACHW (nwK), KONW (nwK))!PacnpeA. масс., кот. хранят нач. и кон.ном.площ. Rprov=roprov*(DIProv+DIProv)*4dO/(pi*DiamPr**2) !Активное сопротивл. проводов LProv=4d-7*DIProv*(DLOG ((DiamPr+2d0*TizPr)/(DiamPr/2d0))+0.25d0)!HHA… Читать ещё >
Параметры ИДМ при неравномерной плотности тока (реферат, курсовая, диплом, контрольная)
В приводимой ниже программе активные сопротивления катушки и диска, их собственные и взаимная индуктивности рассчитываются с учётом неравномерной плотности тока. Программа рассчитывает частоту разрядного тока в катушке и диске с учётом паразитных (собственных) сопротивления и индуктивности конденсатора. По этой частоте вычисляются эквивалентные глубины прникновения тока в катушке и диске. Эти глубины и определяют /?, L параметры ИДМ.
Ниже приведён текст программы.
PROGRAM ParameterlDM.
use msimsl; use INCL_GRF; IMPLICIT NONE.
INTEGER nwK, nrK, nrDz, nrDr, nrD, nrWKz, nrWKr, nrWK, ndimrz &, NACHWD (l), KONWD (l), k, ido, j, n, nn INTEGER, ALLOCATABLE: NACHW (:), KONW (:).
REAL (8): rKatvn, tWKr, tWKz, tlzwwr, shrzbK, udSoprK, sO, tO &.
hDisk, rDvn, rDnar, shrzbD, udSoprD, roProv, DiamPr, TizPr, DIProv &, ht, tkon, Uc0, emk, PARAM (50)=0d0,Y (3), RnarK, Rprov, ksv, CRs, CLs &, LTiristor, LProv, hKrach, hDrach, shDz, shDr, shWKz, shWKr, pi, Lk, Ld, vzi &, Ll, SoprK, Rl, RTiristor, piu2, rWvn, rWnar, tend, Psil, Psi2, uc, il, i2, d &, Tperiod, ipred, t, tpred, f, SoprD, tol=ld-4,DeltK, omga, rmu, DeltD, epsDel=ld-3.
REAL (8), ALL0CATABLE: RAD (:), Z (:).
REAL: XARR (5000), YARR (3,5000), delenx=2.5,deleny=2.5.
LOGICAL: otl=.false., perechK, perechD, poligrf=.false., comm_mashtab=.false.
EXTERNAL FCN.
COMMON/COM1/ Rl, emk, SoprD, Ll/Vzi, Ld, d.
NAMELIST/LST/ nwK, rKatvn, tWKr, tWKz, tlzwwr, shrzbK, udSoprK, sO &, hDisk, rDvn, rDnar, shrzbD, udSoprD, roProv, DiamPr, TizPr, DIProv &.
ht, tkon, UcO, emk, LTiristor, RTiristor.
pi=DCONST ('pi'); piu2=pi+pi; rmu=4d-7*pi; j=0;nn=0 !Вычисл. пи, 2*пи, магн.прон.мю CRs=0d0; CLs=0d0.
OPEN (7,file-parameter.dat'); OPEN (8,file='parameter.ch') Юткрывание файлов READ (7,LST); WRITE (8,LST) !Чтение исх. данных и их запись в файл с результатами ALLOCATE (NACHW (nwK), KONW (nwK))!PacnpeA. масс., кот. хранят нач. и кон.ном.площ. Rprov=roprov*(DIProv+DIProv)*4dO/(pi*DiamPr**2) !Активное сопротивл. проводов LProv=4d-7*DIProv*(DLOG ((DiamPr+2d0*TizPr)/(DiamPr/2d0))+0.25d0)!HHA. проводов call C_serialRL (emk, CRs, CLs, nn) !Вычисление собственных R, L параметров конд-ра hKrach=tWKz;hDrach=hDisk;perechK=.false.;perechD=.false. !Нач.высоты кат. и диска WRITE (8," (' hKat f DltK SoprK Lk hDisk DltD SoprD Ld vzi RnarK &.
&ksv'/' мм Гц мм мОм мкГн мм мм mkOm нГн мкГн мм')").
3 CALL RAZBIVKA (hKrach, twKr, shrzbK, shWKz, shWKr, nrWKz, nrWKr, nrWK)!Pa36.BHTKa Кат. nrK=nrWK*nWK !Число разбиений Катушки (полное число элементарн. витков в кат.) CALL RAZBIVKA (hDrach, rDnar-rDvn, shrzbD, shDz, shDr, nrDz, nrDr, nrD)!pa6nBKa Диска ndimrz=nrD+nrK; NACHW (1)=1; KONW (l)=nrWK !размерность массивов RAD и Z rWvn=rKatvn; rWnar=rWvn+tWKr !радиусы внутр. и наружный для внутр. Витка Кат-ки SoprK=0d0 Юбнуление суммы для расчёта в цикле сопрот. кат-ки; заполнен. масс-ов do k=l, nwK;
SoprK=SoprK+ldO/LOG (rWnar/rWvn); rWvn=rWnar+tlzWWr; rWnar=rWvn+tWKr if (k>l) then; NACHW (k)=NACHW (k-l)+nrWK; KONW (k)=KONW (k-l)+nrWK; endif enddo; SoprK=SoprK*piu2*udSoprK/hKrach !Сопротивление кат-ки SoprD=udSoprD*piu2/(hDrach*DLOG (rDnar/rDvn)) !Сопротивление диска ALLOCATE (RAD (ndimrz), Z (ndimrz)) !Выделение памяти для массивов RAD и Z RAD (l)=rKatvn+shWKr/2dO;Z (l)=shWKz/2dO, г-коорд.центра элемент.площ.в кат. NACHWD (l)=nrK+l; KONWD (l)=ndimrz !нач.и кон. номера площадок в диске! Расчёт координат центров площадок в кат. и заполн. ими массивов RAD и Z:
CALL KRD_PLOSK_KAT (RAD, Z, ndimrz, l, nrWKr, nrWKz, shWKz, shWKr, tlzwwr, otl, nrK) RAD (nrk+l)=rDvn+shDr/2dO;Z (nrk+l)=hKrach+sO+shDz/2dO !R, Z-кoop.l-й площ. в диске CALL KRD_PLOSK_KAT (RAD, Z, ndimrz, nrK+l/nrDr, nrDz, shDz, shDr, OdO, otl, nrD).
CALL lndKat_plosk_q (RAD, Z, ndimrz, nwK, NACHW, KONW, nrWKr, nrWKz, shWKr, shWKz, Lk) CALL lndMWtk_qq (RAD, Z, ndimrz, nrDr, nrDz, nrK+l, ndimrz, shDr, shDz, Ld).
CALL VZI_KK (RAD, Z, ndimrz, nwK, l, NACHW, KONW, NACHWD, KONWD, vzi); ksv=vzi/SQRT (Lk*Ld) !коэф.магнитной связи катушки и диска Rl=SoprK+Rprov+RTiristor; Ll=Lk+LTiristor+LProv !Акт.сопр.и инукт.1-го контура! Присвоение начальных значений переменным для решения СДУ (1.31):
Y=0d0; Y (3)=UcO; t=0d0; tend=0d0; k=l; XARR (1)=0.; YARR (3,l)=UcO; ido=l d=Ll*Ld-vzi*vzi !Детерминант САУ (1.19), см.(1.32).
!Бесконечный цикл по времени для решения системы диф. ур-й на каждом шаге:
DO; k=k+l !Счётчик шагов для заполн. массивов XARR, YARR для постр. графиков tend=tend+ht !Изменение текущего времени CALL DIVPRK (ido, 3, FCN, t, tend, tol, PARAM, Y) !решение СДУ (1.31) Psil=Y (l);Psi2=Y (2);uc=Y (3) !Потокосц. 1 и 2-го контуров ИДМ и напряж. конд-ра il=(Psil*Ld-Psi2*vzi)/d; i2=(Psi2*Ll-Psil*vzi)/d !Реш.САУ (1.32) относит. токов !Запоминание переменных на каждом шаге по времени для построения графиков: XARR (k)=t; YARR (l/k)=il; YARR (2,k)=i2; YARR (3,k)=uc.
!Условие для вылавливания первого перехода через ноль тока il катушки: if (il>OdO.AND.ipred<=OdO) then.
tO=(ipred*t-il*tpred)/(ipred-il); Tperiod=2d0*t0; f=0.5d0/t0; omga=piu2*f exit endif.
ipred=il; tpred=t !Запоминание тока и времени на каждом шаге для использования их в условии опред. перехода тока il через ноль if (t>=tkon) exit! Условие выхода из цикла по времени ENDDO;
ido=3; CALL DIVPRK (ido, 3, FCN, t, tend, tol, PARAM, Y)!ocTaHOBKa работы пп DIVPRK! Вызов программы построения графиков:
CALL GRF_TXT (k, XARR, 3, YARR, delenx, deleny, poligrf &.
comm_mashtab, name-Зависимости от времени', txtl='l-Ток кат,&.
&2- Ток диска, 3- Напряжение на конденсаторе', path='D:SAVE_Picture') DeltK=DSQRT (2dO*udSoprK/(omga*rmu)); DeltD=DSQRT (2dO*udSoprD/(omga*rmu)) RnarK=rKatvn+nWk*(twKr+tlzwwr)-tlzwwr !Наружный радиус катушки по металлу WRITE (8,110)hKrach, f, DeltK, SoprK, Lk, hDrach, DeltD, SoprD, Ld, vzi, RnarK, ksv 110 FORMAT (3pF5.2,0pF6.0,3pF5.2,F7.2,6pF6.1,3pF6.2,F5.2,6pF6.2,9pF6.2,6pF5.2 &, 3pF5.1,0pF5.2).
!Условие пересчёта R, L параметров диска по эквивал.глуб.проникн.поля: if (DABS (DeltD-hDrach)/hDrach>epsDel.AND.DeltD.
else; if (DeltD>=hDisk)then; perechD=.false.; hDrach=hDisk; endif endif.
!Условие пересчёта R, L параметров кат-ки по эквивал.глуб.проникн.поля: if (DABS (DeltK-hKrach)/hKrach>epsDel.AND.DeltK.
else; if (DeltK>=tWKz)then;perechK=.false.; hKrach=tWKz; endif endif.
!Условие пересчёта параметров катушки или диска: if (perechD.OR.perechK) then; perechD=.false.; perechK=.false.
!условие однократного уменьшения вдвое шагов разбразбиений катушки и диска: if (j==0)then; shrzbK=shrzbK/2dO; shrzbD=shrzbD/2dO; j=l;endif DEALLOCATE (RAD, Z); goto 3 Юсвобождение массивов и переход к новому расчёту endif.
WRITE (8,115)Rl, Ll, SoprD, Ld, vzi.
115 FORMAT ('R, L, M параметры для решения ур-й (1.31),(1.32):7,Rl=', 3pF8.3>OM& & Ll=', 6pF6.1,'MKrH; R2=', 6pF7.3/mkOm; L2=,, 9pF6.2,,hFh; М=', 6рР5.2,'мкГн').
END PROGRAM ParameterlDM.
SUBROUTINE C_serialRL (emk, CRs, CLs, n).
!Пп вычисляет собственное активное сопротивление CRs и собственную индуктив! ность CLs конденсатора по его ёмкости emk.
!Данные подпрограммы зависят от типа конденсатора, выбранного пользователем. !3десь CRs аппроксимируется экспоненциальной зависимостью по справочным данным! конденсаторов типа DC 85-С, a CLs — линейной.
INTEGER: п.
REAL (8):emk, CRs, CLs, a, RO, b &.
Cl=280d-6,C2=3300d-6,Rl=4.1d-3,R2=l.ld-3,Ll=50d-9,L2=95d-9 !Из справочника SAVE a, RO, b if (n==0) then.
a=log (Rl/R2)/(Cl-C2); RO=Rl/EXP (a*Cl); b=(L2-Ll)/(C2-Cl); n=l endif.
CRs=RO*EXP (a*emk); CLs=Ll+b*(emk-Cl).
END SUBROUTINE C_serialRL.
SUBROUTINE FCN (ndur, t, Y, YPR) !Подпрограмма расчёта правых частей СДУ (1.31) IMPLICIT NONE; INTEGER ndur REAL (8): Y (ndur), YPR (ndur), il, i2, Ll, M, Ld, C, Rl, Rd, d, t COMMON/COM1/ Rl, C, Rd, Ll, M, Ld, d.
il=(Y (l)*Ld-Y (2)*M)/d; i2=(Y (2)*Ll-Y (l)*M)/d !расчёт токов по ур-м (1.32).
!Вычисление правых частей системы диф. уравнений (1.31):
YPR (l)=-il*Rl-Y (3); YPR (2)=-i2*Rd; YPR (3)=il/C END SUBROUTINE FCN.