elo_zvzz.mws

Určování parametrů ZV obvodů "ručně" a SYRUPem -- příklad 2 (napětím řízený zdroj proudu -- zajímavé díky "rozměrům" koeficientů).

>    restart;

Načtení knihovny

>    with(Syrup):

[Maple OLE 2.0 Object]

Zadání obvodu podle obrázku.

>    Obvod:= "zesilovač
V1 1 0
R0 1 2
R1 2 4
G1 3 4 2 4 S
R2 4 0
Rz 3 0
.end":

Výpočet uzlových napětí a proudů větví obvodu. Výpočet napěťového přenosu symbolicky i číselně (místo funkce pro výběr lze samozřejmě použít i příkaz assign  pro globální přiřazení).  

>    napeti:=syrup(Obvod, ac, 'proudy'):
p:=simplify(subs(napeti,v[3]/v[1]));
pn:=evalf(subs({R0=50,R1=2500,R2=1000,Rz=5000,S=0.04},p));

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

p := -Rz*S*R1/(R1+R2+R0+S*R1*R2)

pn := -4.828585225

Určení jednotlivých přenosových koeficientů a výpočet napěťového přenosu s jejich použitím a ověření správnosti výpočtu SYRUPem. Vyčíslení vratného rozílu a napěťového přenosu.  

>    Rp:=R2*(R1+R0)/(R0+R1+R2):
K1:=(R1)/(R0+R1+R2):
K:=S:
K2:=-Rz:
K4:=-R1*Rp/(R1+R0):
F:=1-K4*K;
Fn:=evalf(subs({R0=50,R1=2500,R2=1000,Rz=5000,S=0.04},F));

F := 1+R1*R2/(R0+R2+R1)*S

Fn := 29.16901408

>    pk:=simplify(K1*K2*K/F);
simplify(p-pk);
pkn:=evalf(subs({R0=50,R1=2500,R2=1000,Rz=5000,S=0.04},pk));

pk := -Rz*S*R1/(R1+R2+R0+S*R1*R2)

0

pkn := -4.828585225

Výpočet vstupního odporu bez vlivu ZV a s jejím vlivem. Vstupní odpor je v tomto případě chápán bez odporu R0 , proto je nutné ho v tomto případě vynulovat  (je seriově s odporem R1 ).

>    Rvst_bez:=R1+R2;

>    Rvst_:=simplify(Rvst_bez*subs(R0=0,F));

Rvst_bez := R2+R1

Rvst_ := R2+S*R1*R2+R1

Je možné si zkontrolovat i zesílení bez vlivu ZV. Výsledek je v takto jednoduchém případě zřejmý.

>    pk_bez:=simplify(K1*K2*K);

pk_bez := -R1/(R0+R2+R1)*Rz*S

Ověření vztahu pro vstupní odpor pomocí SYRUPu a jeho vyčíslení.  

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

>    Rvstn:=evalf(subs({R0=50,R1=2500,R2=1000,Rz=5000,S=0.04},Rvst));

Rvst := R2+S*R1*R2+R1

Rvstn := 103500.00

>