Advertisement
Guest User

Untitled

a guest
May 26th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.25 KB | None | 0 0
  1. v2
  2.  
  3. 0.1
  4. 0.42
  5. 160
  6.  
  7. v1
  8.  
  9. 0.1
  10. 0.42
  11. 130
  12.  
  13. m2
  14.  
  15. 220000
  16. 7500000000
  17. 6000000000
  18. 0.05
  19.  
  20. m1
  21.  
  22. 110000
  23. 5000000000
  24. 3500000000
  25. 0.05
  26.  
  27. t3
  28.  
  29.  
  30. 400000
  31. 1.82
  32. 300000000
  33. 0.12
  34.  
  35. t2
  36.  
  37. 400000
  38. 3.64
  39. 300000000
  40. 0.12
  41.  
  42. t1
  43.  
  44. 400000
  45. 25.4
  46. 200000000
  47. 0.15
  48.  
  49. ge
  50.  
  51. 15750
  52. 200000000
  53. 0.15
  54. 0.2
  55. 0.05
  56. 1
  57. 0.15
  58.  
  59. Tabela
  60.  
  61. *##########################################################*
  62.  
  63. MONTAŽNA TABELA
  64.  
  65. *##########################################################*
  66.  
  67. ----------------------------------------------------------------------------
  68. | Ekh | Edh | I2 | Tae | iud | A | POD1 | POD2 | POD3 |
  69. | | | | | | | | | |'
  70.  
  71. ----------------------------------------------------------------------------
  72.  
  73. -0.77 0.00 0.00 31.86 33.46 8.42 -1.34
  74. 1.02
  75. ----------------------------------------------------------
  76. ##########################################################
  77.  
  78. zadatak
  79.  
  80. module Racun
  81.  
  82. implicit none
  83.  
  84. integer, parameter:: unit = 1000
  85. integer, parameter:: unit1 = 2000
  86.  
  87. real, parameter::pi=3.14
  88. real, parameter::ti=0.2
  89. real, parameter::Un=400000
  90. real::z,k,c,c1,c2,c3
  91. real::Xl2
  92. real::Xd2
  93. real::Xl1
  94. real::Xd1
  95. real::Xe2
  96. real::Xe1
  97. real::Rl
  98. real::Rd
  99. real::Re
  100.  
  101. real::Xg1
  102. real::Xg2
  103. real::Rg
  104. real::Xt1
  105. real::Rt1
  106. real::Xt2
  107. real::Rt2
  108. real::Xt3
  109. real::Rt3
  110. real::Xv1
  111. real::Rv1
  112. real::Xv2
  113. real::Rv2
  114. real::Xm12
  115. real::Xm11
  116. real::Rm1
  117. real::Xm22
  118. real::Xm21
  119. real::Rm2
  120.  
  121. real::I2
  122. real::I1
  123. real::I0
  124. real::Tae
  125. real::iud
  126. real::A
  127.  
  128.  
  129. type Gen
  130. !Staticki podaci
  131. real:: Ung
  132. real:: Sng
  133. real:: xdg2
  134. real:: xdg1
  135. real:: Td2
  136. real:: Td1
  137. real:: Ta
  138. !Izvedeni podaci
  139. real::Xg2
  140. real::Xg1
  141. real::Rg
  142. end type Gen
  143.  
  144. type Trans
  145. !staticki podaci
  146. real::Unt
  147. real::mt
  148. real::Snt
  149. real::x
  150. !izvedeni podaci
  151. real::Xt
  152. real::Rt
  153. end type Trans
  154.  
  155. type Vod
  156. !staticki podaci
  157. real::Re
  158. real::Im
  159. real::l
  160. !izvedeni podaci
  161. real::Xv
  162. real::Rv
  163. end type Vod
  164.  
  165. type Mreze
  166. !staticki podaci
  167. real::Unm
  168. real::Sn
  169. real::Snm
  170. real::Tam
  171. !izvedeni podaci
  172. real::Xm
  173. real::Xmn
  174. real::Rm
  175. end type Mreze
  176.  
  177. !type resi
  178. !real::MI2
  179. !real::MI1
  180. !real::MI0
  181. !real::MTae
  182. !real::Miud
  183. !real::MA
  184. !1end type resi
  185.  
  186. !type(resi)::re1
  187.  
  188. type resenje
  189. real::I2
  190. real::I1
  191. real::I0
  192. real::Tae
  193. real::iud
  194. real::A
  195. type (Gen):: gen1
  196. type (Trans) :: traf1
  197. type (Trans) :: traf2
  198. type (Trans) :: traf3
  199. type (Vod) :: vodi1
  200. type (Vod) :: vodi2
  201. type (Mreze) :: mrez1
  202. type (Mreze) :: mrez2
  203. end type resenje
  204.  
  205. type(resenje)::res
  206.  
  207. contains
  208.  
  209. subroutine Sabirnice_uzemljenje (ge,t1,t2,t3,v1,v2,m1,m2)
  210. implicit none
  211.  
  212. character(*)::ge
  213. character(*)::t1
  214. character(*)::t2
  215. character(*)::t3
  216. character(*)::v1
  217. character(*)::v2
  218. character(*)::m1
  219. character(*)::m2
  220. !character(*)::re1
  221.  
  222. write (*,*) " ------------------------------------------------------"
  223. write (*,*) " Program za dimenzionisanje sabirnica i uzemljenja "
  224. write (*,*) " ------------------------------------------------------"
  225.  
  226. call ucitaj (ge,t1,t2,t3,v1,v2,m1,m2)
  227. call test
  228. call mont_tabela
  229.  
  230. write (*,*) " ------------------------------------------------------"
  231.  
  232. end subroutine Sabirnice_uzemljenje
  233.  
  234. subroutine ucitaj (ge,t1,t2,t3,v1,v2,m1,m2)
  235. implicit none
  236.  
  237. character(*)::ge
  238. character(*)::t1
  239. character(*)::t2
  240. character(*)::t3
  241. character(*)::v1
  242. character(*)::v2
  243. character(*)::m1
  244. character(*)::m2
  245. !character(*)::re1
  246.  
  247. real, parameter::pi=3.14
  248. real, parameter::ti=0.2
  249. real, parameter::Un=400000
  250. real::z,k,c,c1,c2,c3
  251. real::Xl2
  252. real::Xd2
  253. real::Xl1
  254. real::Xd1
  255. real::Xe2
  256. real::Xe1
  257. real::Rl
  258. real::Rd
  259. real::Re
  260.  
  261. real::Xg1
  262. real::Xg2
  263. real::Rg
  264. real::Xt1
  265. real::Rt1
  266. real::Xt2
  267. real::Rt2
  268. real::Xt3
  269. real::Rt3
  270. real::Xv1
  271. real::Rv1
  272. real::Xv2
  273. real::Rv2
  274. real::Xm12
  275. real::Xm11
  276. real::Rm1
  277. real::Xm22
  278. real::Xm21
  279. real::Rm2
  280.  
  281. real::I2
  282. real::I1
  283. real::I0
  284. real::Tae
  285. real::iud
  286. real::A
  287.  
  288. call ucitavanje1("ge.txt","t1.txt")
  289. call ucitavanje2("t2.txt","t3.txt")
  290. call ucitavanje3("v1.txt","v2.txt")
  291. call ucitavanje4("m1.txt","m2.txt")
  292.  
  293. z=(Xg2+Xt1+Xv1)/2
  294. Xl2=(z*(Xm22+Xt3+Xv2))/(z+Xm22+Xt3+Xv2)
  295. Xd2=Xt2+Xm12
  296. Xe2=(Xl2*Xd2)/(Xl2+Xd2)
  297.  
  298. k=(Xg1+Xt1+Xv1)/2
  299. Xl1=(k*(Xm21+Xt3+Xv2))/(k+Xm21+Xt3+Xv2)
  300. Xd1=Xt2+Xm11
  301. Xe1=(Xl1*Xd1)/(Xl1+Xd1)
  302.  
  303. c=(Rg+Rt1+Rv1)/2
  304. Rl=(c*(Rm2+Rt3+Rv2))/(c+Rm1+Rt3+Rv2)
  305. Rd=Rt2+Rm1
  306. Re=(Rl*Rd)/(Rl+Rd)
  307.  
  308. I2=(1.1*Un)/(Xe2*(3**(1./2.)))
  309. I1=(1.15*Un)/(Xe1*(3**(1./2.)))
  310. I0=I2/1.1
  311.  
  312. Tae=(1/(100*pi))*(Xe2/Re)
  313. iud=(2**(1./2.))*I2*(1+(exp(-0.01/Tae)))
  314. A=I1*I1*ti+I0*I0*Tae
  315.  
  316. res%I2=I2
  317. res%I1=I1
  318. res%I0=I0
  319. res%Tae=Tae
  320. res%iud=iud
  321. res%A=A
  322.  
  323. !re1%MI2=I2
  324. !re1%MI1=I1
  325. !re1%MI0=I0
  326. !re1%MTae=Tae
  327. !re1%Miud=iud
  328. !re1%MA=A
  329.  
  330. !open(unit1, file="re1.txt", status="unknown")
  331. !write(unit1,*)re1%MI2
  332. !write(unit1,*)re1%MI1
  333. !write(unit1,*)re1%MI0
  334. !write(unit1,*)re1%MTae
  335. !write(unit1,*)re1%Miud
  336. !write(unit1,*)re1%MA
  337. !close(unit1)
  338. I2=res%I2
  339. write(*,*) I2
  340. end subroutine ucitaj
  341.  
  342. subroutine ucitavanje1 (ge,t1)
  343. implicit none
  344.  
  345. character(*):: ge
  346. character(*):: t1
  347. real::gen1
  348. real::traf1
  349.  
  350. open(gen1, file = ge, status='old' )
  351. read(gen1,*) res%gen1%Ung
  352. read(gen1,*) res%gen1%Sng
  353. read(gen1,*) res%gen1%xdg2
  354. read(gen1,*) res%gen1%xdg1
  355. read(gen1,*) res%gen1%Td2
  356. read(gen1,*) res%gen1%Td1
  357. read(gen1,*) res%gen1%Ta
  358. close(gen1)
  359.  
  360. open(traf1, File = t1, status='old')
  361. read(traf1,*) res%traf1%Unt
  362. read(traf1,*) res%traf1%mt
  363. read(traf1,*) res%traf1%Snt
  364. read(traf1,*) res%traf1%x
  365. close(traf1)
  366.  
  367. Xg2=res%gen1%xdg2*res%gen1%Ung*res%gen1%Ung/res%gen1%Sng*res%traf1%mt*res%traf1%mt
  368. Xg1=res%gen1%xdg1*res%gen1%Ung*res%gen1%Ung/res%gen1%Sng*res%traf1%mt*res%traf1%mt
  369. Rg=(1/(100*pi))*(Xg2/res%gen1%Ta)
  370. res%gen1%Xg2=Xg2
  371. res%gen1%Xg1=Xg1
  372. res%gen1%Rg=Rg
  373.  
  374. Xt1=res%traf1%x*res%traf1%Unt*res%traf1%Unt/res%traf1%Snt
  375. Rt1=0.1*Xt1
  376. res%traf1%Xt=Xt1
  377. res%traf1%Rt=Rt1
  378.  
  379. end subroutine ucitavanje1
  380.  
  381. subroutine ucitavanje2 (t2,t3)
  382. implicit none
  383.  
  384. character(*):: t2
  385. character(*):: t3
  386. real::traf2
  387. real::traf3
  388.  
  389. open(traf2, File = t2, status='old')
  390. read(traf2,*) res%traf2%Unt
  391. read(traf2,*) res%traf2%mt
  392. read(traf2,*) res%traf2%Snt
  393. read(traf2,*) res%traf2%x
  394. close(traf2)
  395.  
  396. open(traf3, File = t3, status='old')
  397. read(traf3,*) res%traf3%Unt
  398. read(traf3,*) res%traf3%mt
  399. read(traf3,*) res%traf3%Snt
  400. read(traf3,*) res%traf3%x
  401. close(traf3)
  402.  
  403. Xt2=res%traf2%x*res%traf2%Unt*res%traf2%Unt/res%traf2%Snt
  404. Rt2=0.1*Xt2
  405. res%traf2%Xt=Xt2
  406. res%traf2%Rt=Rt2
  407.  
  408. Xt3=res%traf3%x*res%traf3%Unt*res%traf3%Unt/res%traf3%Snt
  409. Rt3=0.1*Xt3
  410. res%traf3%Xt=Xt3
  411. res%traf3%Rt=Rt3
  412.  
  413. end subroutine ucitavanje2
  414.  
  415. subroutine ucitavanje3 (v1,v2)
  416. implicit none
  417.  
  418. character(*):: v1
  419. character(*):: v2
  420. real::vodi1
  421. real::vodi2
  422.  
  423. open(vodi1, File = v1, status='old')
  424. read(vodi1,*) res%vodi1%Re
  425. read(vodi1,*) res%vodi1%Im
  426. read(vodi1,*) res%vodi1%l
  427. close(vodi1)
  428.  
  429. open(vodi2, File = v2, status='old')
  430. read(vodi2,*) res%vodi2%Re
  431. read(vodi2,*) res%vodi2%Im
  432. read(vodi2,*) res%vodi2%l
  433. close(vodi2)
  434.  
  435. Xv1=res%vodi1%l*res%vodi1%Im
  436. Rv1=res%vodi1%l*res%vodi1%Re
  437. res%vodi1%Xv=Xv1
  438. res%vodi1%Rv=Rv1
  439.  
  440. Xv2=res%vodi2%l*res%vodi2%Im
  441. Rv2=res%vodi2%l*res%vodi2%Re
  442. res%vodi2%Xv=Xv2
  443. res%vodi2%Rv=Rv2
  444.  
  445. end subroutine ucitavanje3
  446.  
  447. subroutine ucitavanje4 (m1,m2)
  448. implicit none
  449.  
  450. character(*):: m1
  451. character(*):: m2
  452. real::mrez1
  453. real::mrez2
  454.  
  455. open(mrez1, File = m1, status='old')
  456. read(mrez1,*) res%mrez1%Unm
  457. read(mrez1,*) res%mrez1%Sn
  458. read(mrez1,*) res%mrez1%Snm
  459. read(mrez1,*) res%mrez1%Tam
  460. close(mrez1)
  461.  
  462. open(mrez2, File = m2, status='old')
  463. read(mrez2,*) res%mrez2%Unm
  464. read(mrez2,*) res%mrez2%Sn
  465. read(mrez2,*) res%mrez2%Snm
  466. read(mrez2,*) res%mrez2%Tam
  467. close(mrez2)
  468.  
  469. Xm12=res%mrez1%Unm*res%mrez1%Unm/res%mrez1%Sn*res%traf2%mt*res%traf2%mt
  470. Xm11=res%mrez1%Unm*res%mrez1%Unm/res%mrez1%Snm*res%traf2%mt*res%traf2%mt
  471. Rm1=(1/(100*pi))*(res%mrez1%Xm/res%mrez1%Tam)
  472. res%mrez1%Xm=Xm12
  473. res%mrez1%Xmn=Xm11
  474. res%mrez1%Rm=Rm1
  475.  
  476. Xm22=res%mrez2%Unm*res%mrez2%Unm/res%mrez2%Sn*res%traf3%mt*res%traf3%mt
  477. Xm21=res%mrez2%Unm*res%mrez2%Unm/res%mrez2%Snm*res%traf3%mt*res%traf3%mt
  478. Rm2=(1/(100*pi))*(res%mrez2%Xm/res%mrez2%Tam)
  479. res%mrez2%Xm=Xm22
  480. res%mrez2%Xmn=Xm21
  481. res%mrez2%Rm=Rm2
  482.  
  483. end subroutine ucitavanje4
  484.  
  485. subroutine test
  486. implicit none
  487.  
  488.  
  489. integer,parameter:: ro=50
  490. integer,parameter:: a=160
  491. integer,parameter:: b=120
  492. real,parameter:: Iu=11500
  493. real,parameter:: pi=3.14
  494. real,parameter:: t=0.15
  495. real,parameter:: kd=1.4
  496. real:: Ed
  497. real:: Ek
  498. real:: Ud
  499. real:: Lm
  500. real:: Edh
  501. real:: Ekh
  502. real:: L
  503. real:: n
  504. real:: na
  505. real, parameter:: h=0.8
  506. real::Km
  507. real ::D
  508. real::z
  509. real::Kii
  510. real::Kih
  511. real::Kim
  512. real::p,k,e,w
  513. real::Kis,Ks,M
  514.  
  515. Ud=75/t
  516. Ed=Ud*(1+1.5*0.001*50)
  517. Ek=Ud*(1+6*0.001*50)
  518. Lm=kd*ro*Iu/Ed
  519.  
  520. n=Lm/(a+b)
  521. na= INT(n)
  522. L=na*a+na*b
  523.  
  524. z=2*(25+4)/pi
  525. w=z/1000
  526. p=1/(2*pi)
  527. e=(16*h*w)
  528.  
  529. D= (a*b/((na-1)*(na-1)))**(1./2.)
  530. Kii=1/((2*na)**(2./na))
  531. Kih= (1+h)**(1./2.)
  532. k=(Kii/Kih)*log(8/(pi*(2*na-1)))
  533. Km=p*(log((D**2)/e+((D+2*h)**2)/(8*D*w)-h/(4*w))+k)
  534. Kim=0.656+0.172*na
  535. Edh=ro*Km*Kim*Iu/L
  536.  
  537. M=0.5+0.9*(log((na-1)/2))
  538. Ks=(1/pi)*(1/(2*h)+1/(D+h)+M/D)
  539. Kis=0.94+0.047*na
  540. Ekh=ro*Kis*Ks*Iu/L
  541. If (Edh <= Ed) then
  542. If ( Ekh <= Ek ) then
  543. STOP
  544. else
  545. DO while ( Ekh > Ek )
  546. na= na+1
  547. L=na*a+na*b
  548. D= (a*b/((na-1)*(na-1)))**(1./2.)
  549. M=0.5+0.9*log((na-1)/2)
  550. Ks=(1/pi)*(1/(2*h)+1/(D+h)+M/D)
  551. Kis=0.94+0.047*na
  552. Ekh=ro*Kis*Ks*Iu/L
  553. End do
  554. Endif
  555. else
  556. If ( Ekh <= Ek ) then
  557. DO while ( Edh >Ed )
  558. na= na+1
  559. L=na*a+na*b
  560. D= (a*b/((na-1)*(na-1)))**(1./2.)
  561. Kii=1/((2*na)**(2./na))
  562. k=(Kii/Kih)*log(8/(pi*(2*na-1)))
  563. Km=p*(log((D**2)/e+((D+2*h)**2)/(8*D*w)-h/(4*w))+k)
  564. Kim=0.656+0.172*na
  565. Edh=ro*Km*Kim*Iu/L
  566. M=0.5+0.9*log((na-1)/2)
  567. Ks=(1/pi)*(1/(2*h)+1/(D+h)+M/D)
  568. Kis=0.94+0.047*na
  569. Ekh=ro*Kis*Ks*Iu/L
  570. End do
  571. else
  572. DO while ( Ekh > Ek )
  573. na= na+1
  574. L=na*a+na*b
  575. D= (a*b/((na-1)*(na-1)))**(1./2.)
  576. M=0.5+0.9*log((na-1)/2)
  577. Ks=(1/pi)*(1/(2*h)+1/(D+h)+M/D)
  578. Kis=0.94+0.047*na
  579. Ekh=ro*Kis*Ks*Iu/L
  580. End do
  581. DO while ( Edh > Ed )
  582. na= na+1
  583. L=na*a+na*b
  584. D= (a*b/((na-1)*(na-1)))**(1./2.)
  585. Kii=1/((2*na)**(2./na))
  586. k=(Kii/Kih)*log(8/(pi*(2*na-1)))
  587. Km=p*(log((D**2)/e+((D+2*h)**2)/(8*D*w)-h/(4*w))+k)
  588. Kim=0.656+0.172*na
  589. Edh=ro*Km*Kim*Iu/L
  590. M=0.5+0.9*log((na-1)/2)
  591. Ks=(1/pi)*(1/(2*h)+1/(D+h)+M/D)
  592. Kis=0.94+0.047*na
  593. Ekh=ro*Kis*Ks*Iu/L
  594. END do
  595. Endif
  596. Endif
  597. write(*,*) Ekh
  598. end subroutine test
  599.  
  600. subroutine mont_tabela
  601. implicit none
  602.  
  603. integer,parameter:: a=160
  604. integer,parameter:: b=120
  605. real,parameter:: Iu=11500
  606. real,parameter:: pi=3.14
  607. real,parameter:: t=0.15
  608. real:: E1
  609. real:: E2
  610. real:: I2
  611. real:: MI1
  612. real:: MI0
  613. real:: Mi
  614. real:: MT
  615. real:: MA
  616. real:: Ud
  617. real:: Edh
  618. real:: Ekh
  619. real:: na
  620.  
  621.  
  622.  
  623.  
  624. !open(unit1, file="re1.txt", status="old")
  625. !read(unit1,*) re1%I2
  626. !read(unit1,*) re1%I1
  627. !read(unit1,*) re1%I0
  628. !read(unit1,*) re1%Tae
  629. !read(unit1,*) re1%iud
  630. !read(unit1,*) re1%A
  631. !close(unit1)
  632.  
  633. !MI2=re1%MI2
  634. !MI1=re1%MI1
  635. !MI0=re1%MI0
  636. !MT=re1%MTae
  637. !Mi=re1%Miud
  638. !MA=re1%MA
  639.  
  640. !MI2=res%I2
  641. !MI1=res%I1
  642. !MI0=res%I0
  643. !MT=res%Tae
  644. !Mi=res%iud
  645. !MA=res%A
  646.  
  647.  
  648. open(unit, file="Tabela.txt", status="unknown")
  649. write(unit,*)"*##########################################################*"
  650. write(unit,*)""
  651. write(unit,*)" MONTAŽNA TABELA "
  652. write(unit,*)""
  653. write(unit,*)"*##########################################################*"
  654. write(unit,*)""
  655. write(unit,*)'----------------------------------------------------------------------------'
  656. write(unit,*)'| Ekh | Edh | I2 | Tae | iud | A | POD1 | POD2 | POD3 |'
  657. write(unit,*)"| | | | | | | | | |' "
  658. write(unit,*)'----------------------------------------------------------------------------'
  659. write(unit,*)""
  660.  
  661. call test
  662. call ucitaj
  663. I2=res%I2
  664. E2=Ekh
  665. 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
  666. write(unit,*)'----------------------------------------------------------'
  667. write(unit,*)"##########################################################"
  668. close(unit)
  669.  
  670.  
  671.  
  672. end subroutine mont_tabela
  673.  
  674.  
  675. end module racun
  676.  
  677. komplet
  678.  
  679. program Komplet
  680.  
  681. use Racun
  682. implicit none
  683. call Sabirnice_uzemljenje ("ge.txt","t1.txt","t2.txt","t3.txt","v1.txt","v2.txt","m1.txt","m2.txt")
  684.  
  685. pause
  686. end program Komplet
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement