Analýza nelineárních obvodů
Analýza nelineárních obvodů je mnohonásobně obtížnější, než analýza obvodů lineárních. V tomto balíku nejí její implementace tak propracovaná jako u jinných speciálních programů. Je použitelná a vhodná pro DC analýzy. AC anaýza je obvykle řešena pomocí linearizace v pracovním bodě, což zde chybí. Přechodovou analýzu lze prakticky provést pouze u nejjednodušších obvodů. Ve složitějších případech je řešení příslušných nelineárních diferenciálních rovnic velmi obtížné.
Následují dvě ukázky jednoduché DC analýzy.
> | RRn:="nelineární odporový dělič V 1 0 4 R1 1 2 1 Gn 2 0 2 0 v[2] *pozor! v[2] v zápisu řízeného zdoje udává transkonduktanci, tudíž proud i=G*v[2]=v[2]*v[2] .end": |
> | napeti_sym:=syrup(RRn, dc, symbolic); |
syrup: Symbolic analysis, numeric values will be ignored
> | allvalues(subs(napeti_sym,v[2])); |
To samé, ale numericky.
> | napeti_num:=syrup(RRn, dc);allvalues(subs(napeti_num,v[2]));evalf(%); |
Grafické zobrazení řešení v prvním kvadrantu.
> | plot({4-x,x^2},x=0..4,y=0..4); |
Syrup má sice připraveny definice nelineárních polovodičových součástek, avšak vlastní popis (definice podobvodu) součástky nechává na uživateli.
> | DD:= " Diodový model V1 1 0 2 D1 1 2 diode R1 2 0 100 .subckt diode a k Vd a k Vt*ln(i[Vd]/Io+1) .ends .end": |
> | napeti:=syrup(DD, dc); |
parsedeck: Analyzing SPICE deck "Diodový model" (ignoring this line)
> | evalf(subs({Io=1e-14,Vt=0.05},napeti)); |
> |