Metoda węzłowa w
SPICE
Metoda węzłowa
Pierwsze prawo Kirchhoffa: suma
prądów w węźle jest równa 0 (suma
prądów wpływających jest równa
sumie prądów wypływających)
Metoda węzłowa
Równań prądowych jest tyle ile
węzłów
Każdy prąd wypływa z jednego
węzła (ze znakiem ‘-’) i wpływa do
innego węzła (ze znakiem ‘+’)
Metoda węzłowa
Jeśli zsumować wszystkie równania
prądowe, prądy zsumują się do zera
Czyli suma wszystkich równań jest zero
Czyli każde równanie da się wyrazić
jako suma pozostałych ze znakiem ‘-’
Czyli dla n węzłów w obwodzie można
sformułować tylko n-1 niezależnych
równań
Metoda węzłowa
Ten dodatkowy, n-ty węzeł jest
traktowany jako węzeł odniesienia,
czyli tzw. masa, oznacza się go
symbolem ‘0’
Metoda węzłowa
0
4
0
3
2
2
3
0
2
3
2
3
0
2
1
1
2
0
1
2
1
1
R
V
R
V
V
R
V
V
R
V
R
V
V
R
V
V
I
Metoda węzłowa
4
1
4
3
1
3
2
1
2
1
1
1
R
G
R
G
R
G
R
G
0
4
0
3
2
2
3
0
2
3
2
3
0
2
1
1
2
0
1
2
1
1
R
V
R
V
V
R
V
V
R
V
R
V
V
R
V
V
I
0
0
1
3
4
3
3
3
3
3
2
3
2
1
1
1
2
1
1
1
I
V
G
G
V
G
V
G
V
G
G
G
V
G
V
G
V
G
Metoda węzłowa
0
0
1
3
4
3
3
3
3
3
2
3
2
1
1
1
2
1
1
1
I
V
G
G
V
G
V
G
V
G
G
G
V
G
V
G
V
G
0
0
1
3
2
1
4
3
3
0
3
3
2
1
1
0
1
1
I
V
V
V
G
G
G
G
G
G
G
G
G
G
I
GV
Metoda węzłowa
Właściwie wszystkie analizy SPICE
prowadzą do rozwiązania takiego układu
równań:
analiza .DC, .OP dla układów liniowych – w
sposób oczywisty
analiza .DC, .OP dla układów nieliniowych –
algorytm Newtona-Raphsona w zasadzie składa
się z kolekcji problemów liniowych
analiza .TRAN – całkowanie numeryczne to
szereg kroków liniowych
Konstrukcja układu
równań z netlist
Opis topologii (netlist):
Konstrukcja układu
równań
Szablony elementów, np. rezystor:
n
n
n
n
n
n
n
n
V
V
G
G
G
G
n
n
G
V
V
G
V
V
n
G
V
V
n
:
:
:
:
Konstrukcja układu
równań
1
1
1
1
N
n
n
V
V
V
V
G
G
G
G
N
n
n
Konstrukcja układu
równań
Np. szablon źródła prądowego:
I
I
V
V
n
n
n
n
:
:
itd...
Konstrukcja układu
równań
m
m
V
V
1
1
0
0
0
0
:
1
:
0
1
0
Konstrukcja układu
równań
0
1
1
2
.
0
2
.
0
0
2
.
0
2
.
0
0
0
0
0
:
2
:
1
:
0
2
1
0
m
m
V
V
V
m
m
m
m
Konstrukcja układu
równań
0
1
1
3
.
0
2
.
0
1
.
0
2
.
0
2
.
0
0
1
.
0
0
1
.
0
:
2
:
1
:
0
2
1
0
m
m
V
V
V
m
m
m
m
m
m
m
Konstrukcja układu
równań
0
0
1
1
125
.
0
125
.
0
0
0
125
.
0
425
.
0
2
.
0
1
.
0
0
2
.
0
2
.
0
0
0
1
.
0
0
1
.
0
:
3
:
2
:
1
:
0
3
2
1
0
m
m
V
V
V
V
m
m
m
m
m
m
m
m
m
m
Konstrukcja układu
równań
0
0
1
1
625
.
0
125
.
0
0
5
.
0
125
.
0
425
.
0
2
.
0
1
.
0
0
2
.
0
2
.
0
0
5
.
0
1
.
0
0
6
.
0
:
3
:
2
:
1
:
0
3
2
1
0
m
m
V
V
V
V
m
m
m
m
m
m
m
m
m
m
m
m
Konstrukcja układu
równań
0
0
1
1
625
.
0
125
.
0
0
5
.
0
125
.
0
425
.
0
2
.
0
1
.
0
0
2
.
0
2
.
0
0
5
.
0
1
.
0
0
6
.
0
:
3
:
2
:
1
:
0
3
2
1
0
m
m
V
V
V
V
m
m
m
m
m
m
m
m
m
m
m
m
V0 z
założeni
a równe
0
Jedno równanie
jest liniowo
zależne od
pozostałych
Konstrukcja układu
równań
0
0
1
625
.
0
125
.
0
0
125
.
0
425
.
0
2
.
0
0
2
.
0
2
.
0
:
3
:
2
:
1
3
2
1
m
V
V
V
m
m
m
m
m
m
m
Ten układ równań można już rozwiązać za pomocą np.
eliminacji Gaussa
Inna metoda
rozwiązywania
Rozkład LU:
LU
G
1
0
0
1
0
1
0
0
0
2
1
12
2
1
22
12
11
2
1
2
22
21
1
12
11
n
n
nn
n
n
nn
n
n
n
n
u
u
u
l
l
l
l
l
l
g
g
g
g
g
g
g
g
g
Rozkład LU
Algorytm wyznaczania LU jest modyfikacją
algorytmu Gaussa
D
UV
UV
D
I
LD
I
LUV
I
GV
,
Rozkład LU
„podstawianie do przodu”:
n
n
nn
n
n
I
I
I
d
d
d
l
l
l
l
l
l
2
1
2
1
2
1
22
12
11
0
0
0
I
LD
Rozkład LU
n
n
n
n
d
d
d
V
V
V
u
u
u
2
1
2
1
2
1
12
1
0
0
1
0
1
D
UV
„podstawianie wstecz”:
Rozkład LU
Podstawowa zaleta:
Pracochłonny rozkład LU jest wykonywany
tylko raz, natomiast wielokrotne
obliczenia potencjałów węzłowych dla
zmieniających się pobudzeń (a nie
zmieniającej się topologii układu)
obejmują tanie obliczeniowo operacje
podstawiania do przodu i wstecz
Problemy nieliniowe
Rozwiązywanie równań
nieliniowych o postaci:
gdzie f(x) jest funkcją nieliniową
Obejmuje to oczywiście przypadek
każdego równania:
0
x
f
0
0
)
(
x
g
b
x
f
b
x
f
Problemy nieliniowe
Szczególnym przypadkiem są wszelkiego
rodzaju problemy optymalizacyjne –
poszukiwanie ekstremum (maksimum
albo minimum) funkcji kosztu lub zysku:
gdzie f’(x) to pierwsza pochodna funkcji f(x)
0
'
x
f
Rozwinięcie w szereg
Taylora
Jeżeli znamy wartość funkcji i
wszystkich jej pochodnych w
pewnym punkcie, można wyznaczyć
na tej podstawie wartość w innym
punkcie:
k
k
x
x
f
k
x
x
f
x
x
f
x
f
x
x
f
!
1
''
2
1
'
2
Rozwinięcie w szereg
Taylora
Przy obcięciu do wyrazu rzędu k
reszta rozwinięcia może być
oszacowana jako składnik rzędu
(O - funkcja Landaua):
1
2
!
1
''
2
1
'
k
k
k
x
O
x
x
f
k
x
x
f
x
x
f
x
f
x
x
f
1
k
x
O
Rozwinięcie w szereg
Taylora
Często jest stosowane nawet rozwinięcie
obcięte pierwszego rzędu:
Jest to tym lepsze przybliżenie prawdziwej
wartości, im mniejsza jest wartość Δx
Do takiego przybliżenia nawiązuje
algorytm Newtona-Raphsona
x
x
f
x
f
x
x
f
'
Algorytm Newtona-
Raphsona
Isaac Newton (1643-1727)
Joseph Raphson (1648-1715)
Algorytm Newtona-
Raphsona
)
(x
f
)
f(x
-
= x
x
i
i
i
i
1
f ( x )
f ( x
i
)
f ( x
i - 1
)
x
i + 2
x
i + 1
x
i
X
i
i
x
f
x
,
Algorytm Newtona-
Raphsona
Algorytm zaczyna z pewnego punkty
x
0
, będącego pierwszym
oszacowaniem prawdziwego
rozwiązania x
*
W punkcie x
0
na podstawie
znajomości pochodnej funkcji f(x
0
)
rozwiązywane jest równanie liniowe:
0
'
0
0
0
0
0
x
x
f
x
f
x
x
f
Algorytm Newtona-
Raphsona
Rozwiązanie tego równania:
wyznacza kolejne oszacowanie
rozwiązania x
*
:
0
0
0
' x
f
x
f
x
0
0
0
0
0
1
' x
f
x
f
x
x
x
x
Algorytm Newtona-
Raphsona
Ten sam sposób postępowania jest
stosowany w kolejnych iteracjach:
Kolejne wartości x
i
są coraz lepszymi
oszacowaniami x
*
i
i
i
i
x
f
x
f
x
x
'
1
Przykład
Algorytm Newtona-
Raphsona
Zamiast wyprowadzenia bazującego na
rozwinięciu Taylora można zastosować intuicję
geometryczną:
f(x)
f(x
i
)
x
i+1
x
i
X
B
C
A
)
(
'
)
(
1
i
i
i
i
x
f
x
f
x
x
1
)
(
)
(
'
i
i
i
i
x
x
x
f
x
f
AC
AB
tan(
Algorytm Newtona-
Raphsona
Problem nieliniowy jest zastąpiony
serią problemów liniowych
Każdy problem liniowy jest
lokalnym przybliżeniem Taylora
pierwszego rzędu dla problemu
nieliniowego
Algorytm Newtona-
Raphsona
W każdej iteracji jest wyznaczane kolejne
przybliżenie rozwiązania
Proces iteracyjny jest kończony kiedy
względny błąd procentowy:
spadnie poniżej ustalonej wartości
(dokładności algorytmu)
0%
10
1
1
x
- x
x
=
i
i
i
a
Algorytm Newtona-
Raphsona
System rozwiązujący równanie:
zgodnie z algorytmem Newtona-Raphsona nie zna
„globalnie” funkcji f(x), natomiast musi mieć możliwość
zapytać o wartość f(x), f’(x) w arbitralnym punkcie x
Kolejne pytania o wartość funkcji zwiększają wiedzę
systemu rozwiązującego o funkcji.
Początkowa hipoteza dotycząca rozwiązania x
0
z każdą
iteracją ulega zmianie, dzięki uwzględnieniu nowych
informacji o funkcji f(x)
0
x
f
Pułapki – wybór punktu
startowego
Pułapki – wybór punktu
startowego
Pułapki – oscylacje
dookoła ekstremum
Ekstrema – dzielenie
przez zero
-1.00E-05
-7.50E-06
-5.00E-06
-2.50E-06
0.00E+00
2.50E-06
5.00E-06
7.50E-06
1.00E-05
-0.03
-0.02
-0.01
0
0.01
0.02
0.03
0.04
x
f(x)
0.02
Pułapki – jedno z wielu
rozwiązań
-1.5
-1
-0.5
0
0.5
1
1.5
-2
0
2
4
6
8
10
x
f(x)
-0.0630690.54990
4.462
7.53982