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): |
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)
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)); |
> | pk:=simplify(K1*K2*K/F); simplify(p-pk); 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)); |
> |