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ů).
© Jiří Hospodka
soubor pro MAPLE 6
> restart;
Načtení knihovny
> with(Syrup):
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));
Syrup/parsedeck: Analyzing SPICE deck "zesilovač" (ignoring this line)
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;
pk:=simplify(K1*K2*K/F);
simplify(p-pk);
Fn:=evalf(subs({R0=50,R1=2500,R2=1000,Rz=5000,S=0.04},F));
pkn:=evalf(subs({R0=50,R1=2500,R2=1000,Rz=5000,S=0.04},pk));
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 , proto je nutné ho v tomto případě vynulovat (je seriově s odporem ).
> Rvst_bez:=R1+R2;
> Rvst_:=simplify(Rvst_bez*subs(R0=0,F));
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);
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));
>