Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- v2
- 0.1
- 0.42
- 160
- v1
- 0.1
- 0.42
- 130
- m2
- 220000
- 7500000000
- 6000000000
- 0.05
- m1
- 110000
- 5000000000
- 3500000000
- 0.05
- t3
- 400000
- 1.82
- 300000000
- 0.12
- t2
- 400000
- 3.64
- 300000000
- 0.12
- t1
- 400000
- 25.4
- 200000000
- 0.15
- ge
- 15750
- 200000000
- 0.15
- 0.2
- 0.05
- 1
- 0.15
- Tabela
- *##########################################################*
- MONTAŽNA TABELA
- *##########################################################*
- ----------------------------------------------------------------------------
- | Ekh | Edh | I2 | Tae | iud | A | POD1 | POD2 | POD3 |
- | | | | | | | | | |'
- ----------------------------------------------------------------------------
- -0.77 0.00 0.00 31.86 33.46 8.42 -1.34
- 1.02
- ----------------------------------------------------------
- ##########################################################
- zadatak
- module Racun
- implicit none
- integer, parameter:: unit = 1000
- integer, parameter:: unit1 = 2000
- real, parameter::pi=3.14
- real, parameter::ti=0.2
- real, parameter::Un=400000
- real::z,k,c,c1,c2,c3
- real::Xl2
- real::Xd2
- real::Xl1
- real::Xd1
- real::Xe2
- real::Xe1
- real::Rl
- real::Rd
- real::Re
- real::Xg1
- real::Xg2
- real::Rg
- real::Xt1
- real::Rt1
- real::Xt2
- real::Rt2
- real::Xt3
- real::Rt3
- real::Xv1
- real::Rv1
- real::Xv2
- real::Rv2
- real::Xm12
- real::Xm11
- real::Rm1
- real::Xm22
- real::Xm21
- real::Rm2
- real::I2
- real::I1
- real::I0
- real::Tae
- real::iud
- real::A
- type Gen
- !Staticki podaci
- real:: Ung
- real:: Sng
- real:: xdg2
- real:: xdg1
- real:: Td2
- real:: Td1
- real:: Ta
- !Izvedeni podaci
- real::Xg2
- real::Xg1
- real::Rg
- end type Gen
- type Trans
- !staticki podaci
- real::Unt
- real::mt
- real::Snt
- real::x
- !izvedeni podaci
- real::Xt
- real::Rt
- end type Trans
- type Vod
- !staticki podaci
- real::Re
- real::Im
- real::l
- !izvedeni podaci
- real::Xv
- real::Rv
- end type Vod
- type Mreze
- !staticki podaci
- real::Unm
- real::Sn
- real::Snm
- real::Tam
- !izvedeni podaci
- real::Xm
- real::Xmn
- real::Rm
- end type Mreze
- !type resi
- !real::MI2
- !real::MI1
- !real::MI0
- !real::MTae
- !real::Miud
- !real::MA
- !1end type resi
- !type(resi)::re1
- type resenje
- real::I2
- real::I1
- real::I0
- real::Tae
- real::iud
- real::A
- type (Gen):: gen1
- type (Trans) :: traf1
- type (Trans) :: traf2
- type (Trans) :: traf3
- type (Vod) :: vodi1
- type (Vod) :: vodi2
- type (Mreze) :: mrez1
- type (Mreze) :: mrez2
- end type resenje
- type(resenje)::res
- contains
- subroutine Sabirnice_uzemljenje (ge,t1,t2,t3,v1,v2,m1,m2)
- implicit none
- character(*)::ge
- character(*)::t1
- character(*)::t2
- character(*)::t3
- character(*)::v1
- character(*)::v2
- character(*)::m1
- character(*)::m2
- !character(*)::re1
- write (*,*) " ------------------------------------------------------"
- write (*,*) " Program za dimenzionisanje sabirnica i uzemljenja "
- write (*,*) " ------------------------------------------------------"
- call ucitaj (ge,t1,t2,t3,v1,v2,m1,m2)
- call test
- call mont_tabela
- write (*,*) " ------------------------------------------------------"
- end subroutine Sabirnice_uzemljenje
- subroutine ucitaj (ge,t1,t2,t3,v1,v2,m1,m2)
- implicit none
- character(*)::ge
- character(*)::t1
- character(*)::t2
- character(*)::t3
- character(*)::v1
- character(*)::v2
- character(*)::m1
- character(*)::m2
- !character(*)::re1
- real, parameter::pi=3.14
- real, parameter::ti=0.2
- real, parameter::Un=400000
- real::z,k,c,c1,c2,c3
- real::Xl2
- real::Xd2
- real::Xl1
- real::Xd1
- real::Xe2
- real::Xe1
- real::Rl
- real::Rd
- real::Re
- real::Xg1
- real::Xg2
- real::Rg
- real::Xt1
- real::Rt1
- real::Xt2
- real::Rt2
- real::Xt3
- real::Rt3
- real::Xv1
- real::Rv1
- real::Xv2
- real::Rv2
- real::Xm12
- real::Xm11
- real::Rm1
- real::Xm22
- real::Xm21
- real::Rm2
- real::I2
- real::I1
- real::I0
- real::Tae
- real::iud
- real::A
- call ucitavanje1("ge.txt","t1.txt")
- call ucitavanje2("t2.txt","t3.txt")
- call ucitavanje3("v1.txt","v2.txt")
- call ucitavanje4("m1.txt","m2.txt")
- z=(Xg2+Xt1+Xv1)/2
- Xl2=(z*(Xm22+Xt3+Xv2))/(z+Xm22+Xt3+Xv2)
- Xd2=Xt2+Xm12
- Xe2=(Xl2*Xd2)/(Xl2+Xd2)
- k=(Xg1+Xt1+Xv1)/2
- Xl1=(k*(Xm21+Xt3+Xv2))/(k+Xm21+Xt3+Xv2)
- Xd1=Xt2+Xm11
- Xe1=(Xl1*Xd1)/(Xl1+Xd1)
- c=(Rg+Rt1+Rv1)/2
- Rl=(c*(Rm2+Rt3+Rv2))/(c+Rm1+Rt3+Rv2)
- Rd=Rt2+Rm1
- Re=(Rl*Rd)/(Rl+Rd)
- I2=(1.1*Un)/(Xe2*(3**(1./2.)))
- I1=(1.15*Un)/(Xe1*(3**(1./2.)))
- I0=I2/1.1
- Tae=(1/(100*pi))*(Xe2/Re)
- iud=(2**(1./2.))*I2*(1+(exp(-0.01/Tae)))
- A=I1*I1*ti+I0*I0*Tae
- res%I2=I2
- res%I1=I1
- res%I0=I0
- res%Tae=Tae
- res%iud=iud
- res%A=A
- !re1%MI2=I2
- !re1%MI1=I1
- !re1%MI0=I0
- !re1%MTae=Tae
- !re1%Miud=iud
- !re1%MA=A
- !open(unit1, file="re1.txt", status="unknown")
- !write(unit1,*)re1%MI2
- !write(unit1,*)re1%MI1
- !write(unit1,*)re1%MI0
- !write(unit1,*)re1%MTae
- !write(unit1,*)re1%Miud
- !write(unit1,*)re1%MA
- !close(unit1)
- I2=res%I2
- write(*,*) I2
- end subroutine ucitaj
- subroutine ucitavanje1 (ge,t1)
- implicit none
- character(*):: ge
- character(*):: t1
- real::gen1
- real::traf1
- open(gen1, file = ge, status='old' )
- read(gen1,*) res%gen1%Ung
- read(gen1,*) res%gen1%Sng
- read(gen1,*) res%gen1%xdg2
- read(gen1,*) res%gen1%xdg1
- read(gen1,*) res%gen1%Td2
- read(gen1,*) res%gen1%Td1
- read(gen1,*) res%gen1%Ta
- close(gen1)
- open(traf1, File = t1, status='old')
- read(traf1,*) res%traf1%Unt
- read(traf1,*) res%traf1%mt
- read(traf1,*) res%traf1%Snt
- read(traf1,*) res%traf1%x
- close(traf1)
- Xg2=res%gen1%xdg2*res%gen1%Ung*res%gen1%Ung/res%gen1%Sng*res%traf1%mt*res%traf1%mt
- Xg1=res%gen1%xdg1*res%gen1%Ung*res%gen1%Ung/res%gen1%Sng*res%traf1%mt*res%traf1%mt
- Rg=(1/(100*pi))*(Xg2/res%gen1%Ta)
- res%gen1%Xg2=Xg2
- res%gen1%Xg1=Xg1
- res%gen1%Rg=Rg
- Xt1=res%traf1%x*res%traf1%Unt*res%traf1%Unt/res%traf1%Snt
- Rt1=0.1*Xt1
- res%traf1%Xt=Xt1
- res%traf1%Rt=Rt1
- end subroutine ucitavanje1
- subroutine ucitavanje2 (t2,t3)
- implicit none
- character(*):: t2
- character(*):: t3
- real::traf2
- real::traf3
- open(traf2, File = t2, status='old')
- read(traf2,*) res%traf2%Unt
- read(traf2,*) res%traf2%mt
- read(traf2,*) res%traf2%Snt
- read(traf2,*) res%traf2%x
- close(traf2)
- open(traf3, File = t3, status='old')
- read(traf3,*) res%traf3%Unt
- read(traf3,*) res%traf3%mt
- read(traf3,*) res%traf3%Snt
- read(traf3,*) res%traf3%x
- close(traf3)
- Xt2=res%traf2%x*res%traf2%Unt*res%traf2%Unt/res%traf2%Snt
- Rt2=0.1*Xt2
- res%traf2%Xt=Xt2
- res%traf2%Rt=Rt2
- Xt3=res%traf3%x*res%traf3%Unt*res%traf3%Unt/res%traf3%Snt
- Rt3=0.1*Xt3
- res%traf3%Xt=Xt3
- res%traf3%Rt=Rt3
- end subroutine ucitavanje2
- subroutine ucitavanje3 (v1,v2)
- implicit none
- character(*):: v1
- character(*):: v2
- real::vodi1
- real::vodi2
- open(vodi1, File = v1, status='old')
- read(vodi1,*) res%vodi1%Re
- read(vodi1,*) res%vodi1%Im
- read(vodi1,*) res%vodi1%l
- close(vodi1)
- open(vodi2, File = v2, status='old')
- read(vodi2,*) res%vodi2%Re
- read(vodi2,*) res%vodi2%Im
- read(vodi2,*) res%vodi2%l
- close(vodi2)
- Xv1=res%vodi1%l*res%vodi1%Im
- Rv1=res%vodi1%l*res%vodi1%Re
- res%vodi1%Xv=Xv1
- res%vodi1%Rv=Rv1
- Xv2=res%vodi2%l*res%vodi2%Im
- Rv2=res%vodi2%l*res%vodi2%Re
- res%vodi2%Xv=Xv2
- res%vodi2%Rv=Rv2
- end subroutine ucitavanje3
- subroutine ucitavanje4 (m1,m2)
- implicit none
- character(*):: m1
- character(*):: m2
- real::mrez1
- real::mrez2
- open(mrez1, File = m1, status='old')
- read(mrez1,*) res%mrez1%Unm
- read(mrez1,*) res%mrez1%Sn
- read(mrez1,*) res%mrez1%Snm
- read(mrez1,*) res%mrez1%Tam
- close(mrez1)
- open(mrez2, File = m2, status='old')
- read(mrez2,*) res%mrez2%Unm
- read(mrez2,*) res%mrez2%Sn
- read(mrez2,*) res%mrez2%Snm
- read(mrez2,*) res%mrez2%Tam
- close(mrez2)
- Xm12=res%mrez1%Unm*res%mrez1%Unm/res%mrez1%Sn*res%traf2%mt*res%traf2%mt
- Xm11=res%mrez1%Unm*res%mrez1%Unm/res%mrez1%Snm*res%traf2%mt*res%traf2%mt
- Rm1=(1/(100*pi))*(res%mrez1%Xm/res%mrez1%Tam)
- res%mrez1%Xm=Xm12
- res%mrez1%Xmn=Xm11
- res%mrez1%Rm=Rm1
- Xm22=res%mrez2%Unm*res%mrez2%Unm/res%mrez2%Sn*res%traf3%mt*res%traf3%mt
- Xm21=res%mrez2%Unm*res%mrez2%Unm/res%mrez2%Snm*res%traf3%mt*res%traf3%mt
- Rm2=(1/(100*pi))*(res%mrez2%Xm/res%mrez2%Tam)
- res%mrez2%Xm=Xm22
- res%mrez2%Xmn=Xm21
- res%mrez2%Rm=Rm2
- end subroutine ucitavanje4
- subroutine test
- implicit none
- integer,parameter:: ro=50
- integer,parameter:: a=160
- integer,parameter:: b=120
- real,parameter:: Iu=11500
- real,parameter:: pi=3.14
- real,parameter:: t=0.15
- real,parameter:: kd=1.4
- real:: Ed
- real:: Ek
- real:: Ud
- real:: Lm
- real:: Edh
- real:: Ekh
- real:: L
- real:: n
- real:: na
- real, parameter:: h=0.8
- real::Km
- real ::D
- real::z
- real::Kii
- real::Kih
- real::Kim
- real::p,k,e,w
- real::Kis,Ks,M
- Ud=75/t
- Ed=Ud*(1+1.5*0.001*50)
- Ek=Ud*(1+6*0.001*50)
- Lm=kd*ro*Iu/Ed
- n=Lm/(a+b)
- na= INT(n)
- L=na*a+na*b
- z=2*(25+4)/pi
- w=z/1000
- p=1/(2*pi)
- e=(16*h*w)
- D= (a*b/((na-1)*(na-1)))**(1./2.)
- Kii=1/((2*na)**(2./na))
- Kih= (1+h)**(1./2.)
- k=(Kii/Kih)*log(8/(pi*(2*na-1)))
- Km=p*(log((D**2)/e+((D+2*h)**2)/(8*D*w)-h/(4*w))+k)
- Kim=0.656+0.172*na
- Edh=ro*Km*Kim*Iu/L
- M=0.5+0.9*(log((na-1)/2))
- Ks=(1/pi)*(1/(2*h)+1/(D+h)+M/D)
- Kis=0.94+0.047*na
- Ekh=ro*Kis*Ks*Iu/L
- If (Edh <= Ed) then
- If ( Ekh <= Ek ) then
- STOP
- else
- DO while ( Ekh > Ek )
- na= na+1
- L=na*a+na*b
- D= (a*b/((na-1)*(na-1)))**(1./2.)
- M=0.5+0.9*log((na-1)/2)
- Ks=(1/pi)*(1/(2*h)+1/(D+h)+M/D)
- Kis=0.94+0.047*na
- Ekh=ro*Kis*Ks*Iu/L
- End do
- Endif
- else
- If ( Ekh <= Ek ) then
- DO while ( Edh >Ed )
- na= na+1
- L=na*a+na*b
- D= (a*b/((na-1)*(na-1)))**(1./2.)
- Kii=1/((2*na)**(2./na))
- k=(Kii/Kih)*log(8/(pi*(2*na-1)))
- Km=p*(log((D**2)/e+((D+2*h)**2)/(8*D*w)-h/(4*w))+k)
- Kim=0.656+0.172*na
- Edh=ro*Km*Kim*Iu/L
- M=0.5+0.9*log((na-1)/2)
- Ks=(1/pi)*(1/(2*h)+1/(D+h)+M/D)
- Kis=0.94+0.047*na
- Ekh=ro*Kis*Ks*Iu/L
- End do
- else
- DO while ( Ekh > Ek )
- na= na+1
- L=na*a+na*b
- D= (a*b/((na-1)*(na-1)))**(1./2.)
- M=0.5+0.9*log((na-1)/2)
- Ks=(1/pi)*(1/(2*h)+1/(D+h)+M/D)
- Kis=0.94+0.047*na
- Ekh=ro*Kis*Ks*Iu/L
- End do
- DO while ( Edh > Ed )
- na= na+1
- L=na*a+na*b
- D= (a*b/((na-1)*(na-1)))**(1./2.)
- Kii=1/((2*na)**(2./na))
- k=(Kii/Kih)*log(8/(pi*(2*na-1)))
- Km=p*(log((D**2)/e+((D+2*h)**2)/(8*D*w)-h/(4*w))+k)
- Kim=0.656+0.172*na
- Edh=ro*Km*Kim*Iu/L
- M=0.5+0.9*log((na-1)/2)
- Ks=(1/pi)*(1/(2*h)+1/(D+h)+M/D)
- Kis=0.94+0.047*na
- Ekh=ro*Kis*Ks*Iu/L
- END do
- Endif
- Endif
- write(*,*) Ekh
- end subroutine test
- subroutine mont_tabela
- implicit none
- integer,parameter:: a=160
- integer,parameter:: b=120
- real,parameter:: Iu=11500
- real,parameter:: pi=3.14
- real,parameter:: t=0.15
- real:: E1
- real:: E2
- real:: I2
- real:: MI1
- real:: MI0
- real:: Mi
- real:: MT
- real:: MA
- real:: Ud
- real:: Edh
- real:: Ekh
- real:: na
- !open(unit1, file="re1.txt", status="old")
- !read(unit1,*) re1%I2
- !read(unit1,*) re1%I1
- !read(unit1,*) re1%I0
- !read(unit1,*) re1%Tae
- !read(unit1,*) re1%iud
- !read(unit1,*) re1%A
- !close(unit1)
- !MI2=re1%MI2
- !MI1=re1%MI1
- !MI0=re1%MI0
- !MT=re1%MTae
- !Mi=re1%Miud
- !MA=re1%MA
- !MI2=res%I2
- !MI1=res%I1
- !MI0=res%I0
- !MT=res%Tae
- !Mi=res%iud
- !MA=res%A
- open(unit, file="Tabela.txt", status="unknown")
- write(unit,*)"*##########################################################*"
- write(unit,*)""
- write(unit,*)" MONTAŽNA TABELA "
- write(unit,*)""
- write(unit,*)"*##########################################################*"
- write(unit,*)""
- write(unit,*)'----------------------------------------------------------------------------'
- write(unit,*)'| Ekh | Edh | I2 | Tae | iud | A | POD1 | POD2 | POD3 |'
- write(unit,*)"| | | | | | | | | |' "
- write(unit,*)'----------------------------------------------------------------------------'
- write(unit,*)""
- call test
- call ucitaj
- I2=res%I2
- E2=Ekh
- write(unit,'(4x,f7.2,4x,f7.2,4x,f7.2,4x,f7.2,3x,f7.2,3x,f7.2,3x,f7.2)')I2,I1,I0,MT,Mi,MA,E2
- write(unit,*)'----------------------------------------------------------'
- write(unit,*)"##########################################################"
- close(unit)
- end subroutine mont_tabela
- end module racun
- komplet
- program Komplet
- use Racun
- implicit none
- call Sabirnice_uzemljenje ("ge.txt","t1.txt","t2.txt","t3.txt","v1.txt","v2.txt","m1.txt","m2.txt")
- pause
- end program Komplet
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement