5. Analiza stałoprądowa układów nieliniowych
Po zdefiniowaniu równania macierzowego, tzn. po wypełnieniu wszystkich elementów zmodyfikowanej macierzy konduktancyjnej i wektora wymuszeń, program SPICH musi obliczyć napięcia węzłowe. Do rozwiązywania równań macierzowych są stosowane dwa algorytmy - jeden dla obwodów liniowych, drugi dla nieliniowych. Obwód liniowy jest obwodem zawierającym jedynie elementy liniowe. W przypadku analizy stałoprądowej i analizy czasowej do grupy elementów liniowych należą rezystory i liniowo uzależnione źródła napięciowe i prądowe51. Podczas zmiennoprądowej analizy małosygnałowej do grupy tej należy jeszcze dołączyć kondensatory i cewki; układ równań staje się wówczas zespolony. Do rozwiązania liniowego układu równań program SPICE stosuje metodę dekompozycji LU będącą modyfikacją metody eliminacji Gaussa.
Jeśli w układzie pojawi się co najmniej jeden element nieliniowy, program stosuje algorytm iteracyjny, zwany algorytmem Newtona-Raphsona. Treścią niniejszego rozdziału jest omówienie metody Newtona-Raphsona oraz wynikających z niej iterowanych modeli elementów. W części końcowej rozdziału jest przedstawiona problematyka związana ze zbieżnością obliczeń.
Jako przykład równania nieliniowego rozpatrzymy na wstępie typową zależność występującą w układach zawierających elementy półprzewodnikowe:
x + ex=2 (5.1)
Równanie to nie może być rozwiązane za pomocą prostych przekształceń algebraicznych, jak w przypadku równań liniowych, można je natomiast rozwiązać metodą iteracyjną.
Przedstawmy zależność (5.1) w standardowej postaci:
Równanie takie może być rozwiązane poprzez przeprowadzenie serii iteracji aż do momentu otrzymania właściwej wartości x, dla której wartość funkcji jest równa lub bardzo bliska zeru. W programie SPICE zastosowano metodę zwaną metodą Newtona-Raphsona. Jest to metoda iteracyjna polegająca na tym, że po założeniu zerowego rozwiązania (tzw. punktu startowego) oblicza się „pierwsze” rozwiązanie; jeżeli nie jest ono właściwym rozwiązaniem, traktuje się je jako nowy punkt startowy i oblicza „drugie” rozwiązanie itd., aż do osiągnięcia rozwiązania z odpowiednio małym błędem.
Załóżmy, że znamy przybliżoną wartość rozwiązania jc0. Algorytm Newtona-Raphsona jest oparty na rozwinięciu nieliniowej funkcji/( w punkcie x0 w szereg :
5.1
Hlementy zachowawcze są albo ignorowane, albo zastępowane przez odpowiednie modele słowa' rzyszone.