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 />

k=1;m=0<br />

do i=1,kv<br />

nameyz=symnp1(i)<br />

do j=1,kv<br />

if (np1(j)==0.and.nameyz==symnp1(j)) then<br />

np1(j)=k;m=1; endif<br />

if (np2(j)==0.and.nameyz==symnp2(j)) then<br />

np2(j)=k;m=1; endif<br />

end do<br />

if (m==1) then; m=0;k=k+1; endif<br />

end do<br />

do i=1,kv<br />

nameyz=symnp2(i)<br />

do j=1,kv<br />

if (np2(j)==0.and.nameyz==symnp2(j)) then<br />

np2(j)=k;m=1; endif<br />

end do<br />

if (m==1) then; m=0;k=k+1; endif<br />

end do<br />

!maxyz=k-1<br />

!контрольный вывод введенных ветвей<br />

write(*, *) 'Число ветвей kv =', kv<br />

do j = 1, kv<br />

write(*, *) namv(j),' от ',trim(symnp1(j)),np1(j),' до ', &<br />

& trim(symnp2(j)), np2(j), ' ',zv(j,j),' ',ev(j),' ',jv(j)<br />

end do<br />

CALL CPU_TIME (rt2)<br />

!******* 5. Формирование топологической матрицы ******************<br />

m1=maxval(np1);m2=maxval(np2);KP=max(m1,m2)<br />

call derevo(KP, kv, np1, np2, Csoed(1:kv,1:kv), Asoed(1:kv,1:kv))<br />

!******* 6. Расчет напряжений и токов в ветвях ********************<br />

er(1:kv)=matmul(transpose(csoed(1:kv,1:kv)),ev(1:kv))<br />

Jr(1:kv)=matmul(transpose(Asoed(1:kv,1:kv)),jv(1:kv))<br />

Zr(1:kv,1:kv)=matmul(matmul(transpose(csoed(1:kv,1:kv)),zv(1:kv,1:kv)),csoed(1:kv,1:kv));<br />

Yr(kp:kv,kp:kv)=Zr(kp:kv,kp:kv)<br />

call inverse4(Yr(kp:kv,kp:kv),kv-kp+1)<br />

iv(kp:kv)=matmul(Yr(kp:kv,kp:kv),er(kp:kv))- & ! расчет контурных токов<br />

& matmul(Yr(kp:kv,kp:kv),matmul(Zr(kp:kv,1:kp-1),Jr(1:kp-1)))-Jr(kp:kv)<br />

iv(1:kv)=matmul(Csoed(1:kv,kp:kv),iv(kp:kv)) ! токи в ветвях<br />

Uv(1:kv)=- ev(1:kv)+matmul(zv(1:kv,1:kv),iv(1:kv))+matmul(zv(1:kv,1:kv),jv(1:kv))<br />

CALL CPU_TIME (rt3)<br />

print*, 'time1 = ',rt2-rt1,'time2 = ',rt3-rt2<br />

!********* 7. Вывод результатов расчета в файл ****************************<br />

write (units,*)'результаты расчета'<br />

! do i=1,kv ! можно вывести в файл контурную матрицу<br />

! write (units,*)(Csoed(i,j),j=1,kv)<br />

! end do<br />

do i=1,kv !вывод токов и напряжений<br />

write (units,*)'ветвь ',namv(i),' ток = ',iv(i), ' напряжение = ',Uv(i)<br />

end do<br />

close(units)<br />

!***** окончание расчета, запрос на новый расчет****************<br />

CALL DWGBUT ('повторить расчет?', ipovtor)<br />

end do osnov<br />

90

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

Saved successfully!

Ooh no, something went wrong!