Разработка алгоритма и программы расчёта электрической цепи, страница 7

zef=z1*z2*z3/(z2*z3+z3*z1+z1*z2)

zad=z4+zef

c     Выделяем мнимые и действительные части

z1d=real(z1)

z1m=aimag(z1)

z2d=Real(z2)

z2m=Aimag(z2)

z3d=real(z3)

z3m=aimag(z3)

zefd=real(zef)

zefm=aimag(zef)

zadd=real(zad)

zadm=aimag(zad)

c     Вычисление модуля комплексных чисел

z1mod=sqrt(z1d**2+z1m**2)

z2mod=sqrt(z2d**2+z2m**2)

z3mod=sqrt(z3d**2+z3m**2)

zefmod=sqrt(zefd**2+zefm**2)

zadmod=sqrt(zadd**2+zadm**2)

c     Расчет основных параметров синусоидального тока

I1m=Umad/zadmod

UmEF=zefmod*I1m

I2m=Umef/z1mod

I3m=UmEf/z2mod

I4m=umef/z3mod

Uml3=I1m*Xl3

UmC1=I2m*Xc1

c     Расчет углов сдвига между током и напряжением

call faza(z1d,z1m,ff,pi)

fi1=ff

call faza(z2d,z2m,ff,pi)

fi2=ff

fi3=0

call faza(zadd,zadm,ff,pi)

fiad=ff

c     Расчет мгновенных значений силы тока и напряжения

t2=0

n=50

dt=t/n

do 3 i=1,n

mgi2(i)=I2m*sin(w*t2+Fi1)

mgi3(i)=I3m*sin(w*t2+Fi2)

mgi4(i)=I4m*sin(w*t2+Fi3)

mgi1(i)=i1m*sin(w*t2+Fiad)

mguad(i)=Umad*sin(w*t2-fiad)

mgul3(i)=Uml3*sin(w*t2-fiad)

mguc1(i)=Umc1*sin(w*t2+fi1+pi/2.)

3  t2=t2+dt

c     Расчет действующей силы тока в цепи

call pr(mgi2,t,n,o)

i2d=o

call pr(mgi1,t,n,o)

i1d=o

call pr(mgi3,t,n,o)

i3d=o

call pr(mguad,t,n,o)

uadd=o

call pr(mgi4,t,n,o)

i4d=o

call pr(mguc1,t,n,o)

uc1d=o

call pr(mgul3,t,n,o)

ul3d=o

if (l.gt.0) go to 15

c     Вывод полученых графиков и результатов

write(2,4) i1d,i2d,i3d, i4d

4  format(/,4x,'/',69('-'),'\',/,

*4x,'| Действующее значение тока в цепи АД=  ',f11.6,

*' (A)','               |',/,4x,'------',12('-----'),'-----',/,

*4x,'| Действующее значение тока в 1 вети=   ',f11.6,' (A)',

*'               |',/,4x,'------',12('-----'),'-----',/,

*4x,'| Действующие значение тока во 2 ветви= ',f11.6,' (A)'

*,'               |',/,4x,'------',12('-----'),'-----',/,

*4x,'| Действующее значение тока в 3 вети=   ',f11.6,' (A)',

*'               |',/,4x,'------',12('-----'),'-----',/,

*'               |',/,4x,

*'\',69('-'),'/',/)  

5  format(1x,80(('-')))

write(2,5)

write(2,6)

6  format(20x,'График изменений значений токов в неразветвленной',/,

*20x,'схеме и её ветвях')

write(2,5)

write(2,7)

7  format(20x,'I1=$       I2=@       I3=!    I4=*   I5=&')

write(2,5)

do 77 i=1,n

77  mgi3(i)=mgi3(i)*10  

call grafik(mgi1,mgi2,mgi3,mgi4,mgi4,mgi4,n)

write(2,*)

write(2,8)Uadd,Ul3d,Uc1d

8  format(6x,'/',70('-'),'\',/,6x,

*'| Действующее значение напряжения на зажимах схемы=',F16.8,

*' (B)|',/,

*6x,'------',12('-----'),'------',/,6x,'| Действующее напряжение на

*катушке L3=             ',f16.8,' (B)|',/,

*6x,'------',12('-----'),'------',/,

*6x,'| Действующее напряжение на конденсаторе С1=       ',

*f16.8,' (B)|',/,6x,'\',70('-'),'/')

write(2,*)

write(2,5)

write(2,*)

write(2,10)

10  format(20x,'График изменения значений напряжений на зажимах')

write(2,5)

write(2,11)

11  format(20x,'Uad=%')

write(2,5)

call grafik(mguad,mguad,mguad,mguad,mguad,mguad,n)

write(2,*)

write(2,5)

write(2,51)

51    format(20x,'График изменения напряжений',/,20x'на конденсаторе С1

*и катушке L3')

write(2,5)

write(2,50)

50  format(20x,'UC1=%       UL3=!')

write(2,5)

call grafik(mguc1,mguc1,mguc1,mgul3,mgul3,mgul3,n)

write(2,*)

c     Исследование влияния параметра Q

27  If (pri.eq.0) write(2,35)

if (pri.ne.0) write(2,36)

35  format(1x,'/-----','-----------',4('------------'),

*'-------------\',/,1x,'|',

*14x,'Таблица изменения напряжений и токов на зажимах схемы,',9x,

*'|',/,1x,'|',14x,'конденсаторе С1 и катушке L3 при изменении',1x,

*'параметра Q',9x,'|')

36  format(1x,'/-----','-----------',4('------------'),

*'-------------\',/,1x,'|',

*14x,'Таблица изменения напряжений и токов на зажимах схемы,',9x,

*'|',/,1x,'|',14x,'конденсаторе С1 и катушке L3 при изменении',

*'параметра Q',10x,'|',

*/,1x,'|',24x,'и скачкообразном изменении частоты',19x,'|') 

write(2,13)

13  format(1x,'|-----','-----------',4('------------'),

*'-------------|',/,1x,

*'| R4 |','   F      |'

*,'   UDL3    |','   UdC1    |','   IdL3    |',