13.08.2013 Views

?????????????? ?????? ? ????????? ?????????? ??????? ?????

?????????????? ?????? ? ????????? ?????????? ??????? ?????

?????????????? ?????? ? ????????? ?????????? ??????? ?????

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!