?????????????? ?????? ? ????????? ?????????? ??????? ?????
?????????????? ?????? ? ????????? ?????????? ??????? ?????
?????????????? ?????? ? ????????? ?????????? ??????? ?????
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Подпрограмма расчета переходного процесса<br />
subroutine obrabotka<br />
use obmen<br />
real iL, L, iL0<br />
! Ввод параметров<br />
!'R1= ','R2= ','L= ','C= ','E= ','dt= ','Tsum= '<br />
R1=vhod(1); R2=vhod(2);L=vhod(3);C=vhod(4);E=vhod(5);<br />
! Ввод расчетного шага dt и времени расчета Tsum<br />
dt=vhod(6); Tsum=vhod(7);<br />
! Вычиcление числа расчетных точек Nt<br />
Nt=floor (Tsum/dt); ! вычисление наибольшего целого от деления<br />
if (Nt>nsum) then<br />
print *,'NT= ',nt<br />
CALL DWGMSG ('Предупреждение:|&<br />
&Слишком маленький шаг|устанавливается число расчетных точек|nt=nsum');<br />
Nt=nsum-1<br />
endif<br />
Uc0=0.; iL0=0.; ! Задание начальных условий<br />
t(1)=0.<br />
iLgr(1)=iL0; Ucgr(1)=Uc0<br />
do n=2, Nt ! Задание цикла по n<br />
! Расчетные формулы<br />
iL=(E-Uc0+L/dt*iL0)/(R1+dt/C+L/dt+R2)<br />
Uc=dt/C*iL+Uc0<br />
! присвоение новых начальных значений для напряжения и тока<br />
iL0=iL; Uc0=Uc;<br />
! формирование массивов тока, напряжения и времени для вывода на график<br />
iLgr(n)=100 * iL; Ucgr(n)=Uc; t(n)=t(n-1)+dt;<br />
end do<br />
return<br />
end subroutine obrabotka<br />
154