Analýza nelineárních obvodů - zatím není implementována

Analýza nelineárních obvodů je daleko obtížnější, než analýza obvodů lineárních. Zde je uvedena analýza, kterou lze pouze s knihovnou Syrup!   

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

napeti_sym := {v[2] = RootOf(-V+_Z+_Z^2*R1), v[1] = V}

>    allvalues(subs(napeti_sym,v[2]));

1/2/R1*(-1+(1+4*R1*V)^(1/2)), -1/2*(1+(1+4*R1*V)^(1/2))/R1

To samé, ale numericky.

>    napeti_num:=syrup(RRn, dc);allvalues(subs(napeti_num,v[2]));evalf(%);

napeti_num := {v[1] = 4, v[2] = RootOf(-4+_Z+_Z^2)}

-1/2+1/2*17^(1/2), -1/2-1/2*17^(1/2)

1.561552813, -2.561552813

Grafické zobrazení řešení v prvním kvadrantu.

>    plot({4-x,x^2},x=0..4,y=0..4);

[Maple Plot]

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)

napeti := {v[2] = Vt*LambertW(100*Io/Vt*exp(2*(1+50*Io)/Vt))-100*Io, v[1] = 2}

>    evalf(subs({Io=1e-14,Vt=0.05},napeti));

{v[1] = 2., v[2] = .6407080160}

>