Určování parametrů ZV obvodů "ručně" a SYRUPem -- příklad 1.
© Jiří Hospodka
soubor pro MAPLE 6
> restart;
> with(Syrup):
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)
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);
Ověření správnosti výpočtu SYRUPem.
> simplify(P-Pv);
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(%)));
Výpočet vstupního odporu SYRUPem (bez odporu ) 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));
Vstupní odpor bez vlivu ZV (bez odporu ) 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));
Vstupní odpor se zpětnou vazbou. Vstupní odpor opět chápán bez odporu , proto je nutné ho v tomto případě vynechat (jeho hodnota jde v limitě do nekonečna - je vlastně paralelně k ). 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},%));
Ověření správnosti výpočtu SYRUPem.
> simplify(Rvst-Rvst_);
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;
Výstupní odpor bez vlivu ZV.
> Rvyst_bez:=R3*(R2+Ry)/(R3+R2+Ry);
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},%));
Opět ověření správnosti výpočtu SYRUPem.
> simplify(Rvyst-Rvyst_);
>