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