elo_zv.mws

Určování parametrů ZV obvodů "ručně" a SYRUPem -- příklad 1.

soubor pro MAPLE 6

>    restart;

>    with(Syrup):

  [Maple OLE 2.0 Object]

Analýza obvodu podle obrázku: jeho zadání

>    Obvod:=" zesilovač
V0 1 0
R0 1 2
R1 2 0
E1 3 0 2 0 A
R3 3 4
Rz 4 0
R2 4 2
.end":

Analýza uzlových napětí, proudů větví a následný výpočet napěťového přenosu.

>    napeti:=syrup(Obvod, ac, 'proudy', symbolic):
P:=simplify(subs(napeti,v[4]/v[1]));

syrup:   Symbolic analysis, numeric values will be ignored

Syrup/parsedeck:   Analyzing SPICE deck " zesilovač" (ignoring this line)

P := -Rz*R1*(A*R2+R3)/(-R3*R2*R1-R0*R1*R3-R3*R0*R2-Rz*R2*R1+Rz*R0*R1*A-Rz*R0*R1-Rz*R0*R2-Rz*R1*R3-R0*R3*Rz)

Určení jednotlivých přenosových koeficientů. výpočet napěťového přenosu s jejich použitím.

>    Rx:=R3*Rz/(R3+Rz):
Ry:=R0*R1/(R0+R1):
K1:=R1*(R2+Rx)/(R1+R2+Rx)/(R0+R1*(R2+Rx)/(R1+R2+Rx)):
K2:=Rz*(R2+Ry)/(Rz+R2+Ry)/(R3+Rz*(R2+Ry)/(Rz+R2+Ry)):
K3:=R1/(R0+R1)*Rx/(Rx+R2+Ry):
K4:=Rz/(R3+Rz)*Ry/(Ry+R2+Rx):

Výpočet vratného rozdílu a napěťového přenosu s použitím výše definovaných přenosových koeficientů.

>    F:=1-K4*A:

>    Pv:=simplify(K3+K1*K2*A/F);

Pv := -Rz*R1*(A*R2+R3)/(-R3*R2*R1-R0*R1*R3-R3*R0*R2-Rz*R2*R1+Rz*R0*R1*A-Rz*R0*R1-Rz*R0*R2-Rz*R1*R3-R0*R3*Rz)

Ověření správnosti výpočtu SYRUPem.

>    simplify(P-Pv);

0

Vyčíslení napěťového přenosu (lineárně a v dB).

>    evalf(subs({R0=1e3,R1=10e3,R2=100e3,R3=100,Rz=10e3,A=-1e3},Pv));

>    evalf(20*log10(abs(%)));

-89.91017964

39.07617730

Výpočet vstupního odporu SYRUPem (bez odporu R0 ) a jeho vyčíslení.

>    Rvst:=simplify(subs(napeti,proudy,v[2]/i[R0]));

>    evalf(subs({R0=1e3,R1=10e3,R2=100e3,R3=100,Rz=10e3,A=-1e3},Rvst));

Rvst := -R1*(R2*Rz+R3*Rz+R3*R2)/(-R3*R2-Rz*R1-R3*Rz+Rz*R1*A-R1*R3-R2*Rz)

99.98813197

Vstupní odpor bez vlivu ZV (bez odporu R0 ) a jeho vyčíslení.

>    Rvst_bez:=R1*(R2+Rx)/(R1+R2+Rx);

>    evalf(subs({R0=1e3,R1=10e3,R2=100e3,R3=100,Rz=10e3,A=-1e3},Rvst_bez));

Rvst_bez := R1*(R2+R3*Rz/(R3+Rz))/(R1+R2+R3*Rz/(R3+Rz))

9091.726619

Vstupní odpor se zpětnou vazbou. Vstupní odpor opět chápán bez odporu R0 , proto je nutné ho v tomto případě vynechat (jeho hodnota jde v limitě do nekonečna - je vlastně paralelně k R1 ). Vstupní odpor se musí vlivem ZV zmenšit, protože se jedná o paralelní ZZV.  

>    Rvst_:=simplify(Rvst_bez/limit(F,R0=infinity));
evalf(subs({R0=1e3,R1=10e3,R2=100e3,R3=100,Rz=10e3,A=-1e3},%));

Rvst_ := -R1*(R2*Rz+R3*Rz+R3*R2)/(-R3*R2-Rz*R1-R3*Rz+Rz*R1*A-R1*R3-R2*Rz)

99.98813197

Ověření správnosti výpočtu SYRUPem.

>    simplify(Rvst-Rvst_);

0

Výpočet výstupního odporu pomocí SYRUPu jako poměr výstupního napětí naprázdno k výstupnímu proudu nakrátko.

>    Iv:=limit(subs(proudy,i[Rz]),Rz=0);
Uv:=limit(subs(napeti,v[4]),Rz=infinity);
Rvyst:=Uv/Iv;

Iv := V0*R1*(A*R2+R3)/(R3*(R0*R2+R2*R1+R0*R1))

Uv := -V0*R1*(A*R2+R3)/(-R2*R1+R1*A*R0-R0*R1-R0*R2-R1*R3-R3*R0)

Rvyst := -R3*(R0*R2+R2*R1+R0*R1)/(-R2*R1+R1*A*R0-R0*R1-R0*R2-R1*R3-R3*R0)

Výstupní odpor bez vlivu ZV.

>    Rvyst_bez:=R3*(R2+Ry)/(R3+R2+Ry);

Rvyst_bez := R3*(R2+R0*R1/(R1+R0))/(R3+R2+R0*R1/(R1+R0))

Výstupní odpor s vlivem ZV a jeho vyčíslení. Výstupní odpor se musí vlivem ZV také zmenšit, jelikož se jedná o napěťovou ZZV.

>    Rvyst_:=simplify(Rvyst_bez/limit(F,Rz=infinity));
evalf(subs({R0=1e3,R1=10e3,R2=100e3,R3=100,Rz=10e3,A=-1e3},%));

Rvyst_ := -R3*(R0*R2+R2*R1+R0*R1)/(-R2*R1+R1*A*R0-R0*R1-R0*R2-R1*R3-R3*R0)

9.990009990

Opět ověření správnosti výpočtu SYRUPem.

>    simplify(Rvyst-Rvyst_);

0

>