3.2 Epälineaariset yhtälöryhmät
3.2.2 Moniulotteinen Newtonin menetelmä
Edellä Newtoninmenetelmääsovellettiinyhden muuttujan yhtälöissä. Sitävoidaan
kuitenkin käyttää myös useamman muuttujan yhtälöiden ja yhtälöryhmien ratk
ai-suissa. Oletetaanesimerkiksi, ettäfunktio
F (x) = 0
onuseammanmuuttujanyhtä-löryhmä
,jonkanollakohtaaapproksimoidaanNewtoninmenetelmällä.Moniulotteisen
nolla-kohdan löytämiseksi yhtälö (12) on kuitenkin täydennettävä moniulotteiseen
muo-toon, eli jokaiselle funktiolle lasketaan tangettiviivan sijasta tangenttitaso ja
funk-tiosta onlaskettavatangentti sen jokaisen muuttujanmukaan.
g i (x) = f i (x (k) )+ ∂f i
Kyseinen yhtälövoidaan esittäämyös muodossa [17℄
G k (x) = f (x (k) ) +
, missä matriisi
J (x)
tunnetaan Jaobianmatriisina. Tangenttitasojen yhtymäkoh-tienx
selvittämiseksi 0-tasossavoidaan asettaaG k (x) = 0
, ja yhtälö (15) saamuo-don
x = x (k) − f(x (k) ) J (x (k) )
ja yleisemminpätevänä iteraatioyhtälönäse voidaan esittää muodossa
x (k+1) = x (k) − f (x (k) )
J(x (k) ) .
(16)Yhtälön(16)mukaanlaskettunaJaobianmatriisistatäytyisikuitenkinlaskea
kään-teismatriisi, joka on aikaa vievää ja yhtälö kannattaa ennemmin kertoa Jaobian
matriisilla.
J(x (k) )(x (k+1) − x (k) ) = −f(x (k) )
(17)Saatuyhtälöryhmä(17)onkätevämpijanopeampiratkaista,josyhtälöönsijoitetaan
y (k) = x (k+1) − x (k) (18)
ja yhtälöryhmä (17) saa muodon
J (x (k) )(y (k) ) = −f(x (k) ).
(19)Kyseessäonlineaarinenyhtälöryhmä,jokavoidaanratkaistaesimerkiksijotakin
suo-raa menetelmä, kuten Gaussin eliminointiakäyttäen. Yhtälöryhmän ratkaisun
jäl-keensaatutulos
y (k)voidaansijoittaayhtälöön(18)javaiheen(k+1)
approksimaatio
saadaan lasketuksi. Tämän jälkeen tulokseksi saatu approksimaatio sijoitetaanyhä
uudelleen yhtälöön (17), kunnes approksimaatioon niintarkka,kuin ontarpeen.
TeoreettisestitarkasteltunaNewtoninmenetelmäsaattaavaikuttaahyvinkin
mo-nimutkaiseltamenetelmältäepälineaaristenyhtälöryhmienratkaisemiseksi.
Käytän-nössä Newtoninmenetelmä eikuitenkaan olekovinkaan monimutkainen ja pieni
ai-heenmukainenesimerkkiosoittaasenparhaiten.Oletetaanesimerkiksi,että
ratkais-tavana on kuvan 8 mukaisesta epälineaarisesta piiristä muodostettu epälineaarinen
yhtälöryhmä.
f (v 1 , v 2 , v 3 , i 3 ) =
YhtälöryhmänlinearisoimiseksionyhtälöryhmästälaskettavaJaobianmatriisi,
jo-ka voidaan laskea yhtälön (15) mukaisesti ja Jaobian matriisinyleiseksi muodoksi
saadaan
Ennen Newtoninmenetelmän soveltamista onratkaisullekuitenkin vielä asetettava
alkuarvaus, joka onhyvä asettaanollapisteeseen
x (0) = (0, 0, 0, 0).
Tämän jälkeen ensimmäisen approksimaation laskemiseen voidaan käyttääyhtälöä
J(x (0) )y (0) = −f (x (0) )
Kyseisen yhtälöryhmän ratkaisuksi saatu tulos,
y (0) =
2.260870, 1.391304, 0.695652, 0.695652
sijoitetaan lausekkeeseen(18) ja ensimmäisen approksimaationarvoksisaadaan,
x (1) = x (0) + y (0) =
2.260870, 1.391304, 0.695652, 0.695652
.
Saatu tulos voidaan sijoittaa uudelleen yhtälöön(19)
J(x (1) )y (1) = −f (x (1) )
ja toisen approksimaationarvoksi saadaan
x (2) = x (1) + y (1) = (2.525094, 1.787640, 2.413108, 0.893820).
Tätä voidaantoistaa yhä uudelleen, mutta jo neljännessä iteraatiossa saatu tulos
x (4) = (2.55, 1.83, 2.58, 0.91)
, onlähtöarvojen tarkkuuksienmukainen.
Luvussa 3.2.2 Newtonin menetelmää käytettiin epälineaaristen yhtälöryhmien
rat-kaisussa. Yhtälöryhmien ratkaisussa tarvittiin Jaobinmatriisia,jokavoitiinlaskea
epälineaarisesta yhtälöryhmästä. Piirin linearisointi vastaa Newtonin menetelmää
lähes täysin, mutta piirin linearisoinnissa Jaobian matriisia ei lasketa
epälineaa-risesta yhtälöryhmästä, vaan se muodostetaan linearisoidusta piiristä. Menetelmä
lähtee liikkeelle Newtoninmenetelmäntavoinalkuarvauspisteestäja piiri
linearisoi-daan kyseisessä pisteessä. Esimerkiksi jos tarkastellaan kuvan 8 mukaisesta piiriä
ja sen ainoata epälineaarista komponenttia, virtariippuvaista virtalähdettä, jonka
virtaa
i 2 3 kuvaava yhtälö voidaan linearisoida yhtälön (12) mukaisesti. Tulokseksi
saatu tangenttiyhtälö g(x) = 2x 0 (x − x 2 0 ) + x 0 kuvaa virtalähteen käyttäytymistä
pisteen x 0 = i (0) 3 läheisyydessä. Luvun 3.2.2 mukaisessa esimerkissäalkuarvaus
ase-tettiin kyseisen arvon kohdalla arvoon i (0) 3 = 0
. Asettamalla nyt sama alkuarvaus
saadaantangenttiyhtälöksig(x) = 0
,elipisteessä i (0) 3 = 0
linearisoitupiirionkuvan
9 mukainen.
x 0 = i (0) 3 läheisyydessä. Luvun 3.2.2 mukaisessa esimerkissäalkuarvaus
ase-tettiin kyseisen arvon kohdalla arvoon i (0) 3 = 0
. Asettamalla nyt sama alkuarvaus
saadaantangenttiyhtälöksig(x) = 0
,elipisteessä i (0) 3 = 0
linearisoitupiirionkuvan
9 mukainen.
Kuva9: Kuvan8 mukainen piirilinearisoitunapisteessä
i (0) 3 = 0
Piirinlinearisoinnintuloksenasaadusta lineaarisestapiiristävoidaanmuodostaa
f (v 1 , v 2 , v 3 , i 3 ) =
v 2 − v 1
1 + v 2 1 − 2 = 0
v 2 − v 3
4 + v 2 − 1 v 1 + v 2 2 = 0
v 3 − v 2
4 + v 4 3 = 0
v 2
2 − i 3 = 0
,jostavoidaanhavaita,että sevastaatäysinluvussa 3.2.2esitetynesimerkin
ensim-mäisen approksimaatiovaiheen mukaista yhtälöryhmää. Yhtälöryhmän ratkaisusta
saadaan ensimmäisen iteraation arvo
i (1) 3 ja piiri voidaan linearisoida saadulla ar-vollataas uudelleen. Tätä toistetaan yhä uudelleen kuten Newtonin menetelmässä,
kunnes tulos on riittäväntarkka.
3.2.4 Jyrkän kasvun menetelmä (Steepest Desent method)
Piirin linearisointija Newtonin menetelmä ovat, sekä nopeita, että tarkkoja
mene-telmiäepälineaaristenyhtälöryhmienratkaisussa.Neovatkuitenkintarkkuudestaan
ja nopeudestaan huolimatta toiminnaltaanepävarmoja. Niiden toiminnan varmuus
riippuu hyvin pitkälti alkuarvauksesta ja mitä lähempänä alkuarvaus on ratkaisua,
sitävarmempiane toiminnaltaanovat.Joskus alkuarvausvoiollaliianhuonoratk
ai-sun löytämiseksi ja sen takia ne tarvitsevatkin tuekseen laskentamenetelmän, jota
voidaan käyttää paremman alkuarvauksen tuottamiseen. Tällaiseksi
menetelmäk-si sopii hyvin jyrkän kasvun menetelmä. Jyrkän kasvun menetelmä ei kuitenkaan
ole toiminnaltaan yhtä nopea ja yksinkertainen ratkaisumenetelmä kuin Newtonin
menetelmäon jasen takiaalkuarvausta kannattaakin tarkentaa sillävainparin
ite-raationverran. Nopeankasvunmenetelmälähtee Newtoninmenetelmäntavoin
liik-keellealkuarvauksesta,muttaratkaisuaeilähdetäetsimäänsuoraanyhtälöryhmästä
(14) vaan yhtälöryhmästä johdetusta funktiosta [18℄
g(x 1 , x 2 , ..., x n ) =
n
X
i=0
[f i (x 1 , x 2 , ..., x n )] 2 (20)
, jonka nollakohta on samassa pisteessä kuin yhtälöryhmän (14) ratkaisu.
Nolla-kohdan selvittämiseksi on ensin laskettava suunta, johon funktion (20) arvo lähtee
∇g(x) =
∂g(x)
∂x
1, ∂g(x)
∂x
2, ..., ∂g(x)
∂x
nt
Funktion gradienttikertookuitenkin vasta suurimman muunnoksen suunnan jasen
takia on vielä laskettava kuinka suurella kertoimella
α > 0
alkuarvauksen arvoa kannattaa muuttaa.x (n+1) = x (n) − αz = x (n) − α ∇g(x (n) )
|∇g(x (n) )|
(21)Kyseisen
α
muuttujan arvo voitaisiinlaskea suoraanyhtälöstäh(α) = g
x (n) − α ∇g(x (n) )
|∇g(x (n) )|
(22)
, mutta arvon suoramäärittelydierentiaalin avullaolisikuitenkin todennäköisesti
liian työlästä. Sen takia funktion (20) käyttäytymistä alkuarvauksen läheisyydessä
kannattaa vainapproksimoida.Approksimointionnistuu parhaiten Newtonin
inter-polaation toisenasteen polynomin avulla
P (α) = g(x (n) ) + h 1 α + h 3 α(α − α 2 )
(23), missä
h 1 = g(x (n) − α 2 z) − g(x (n) − α 1 z) α 2 − α 1
h 3 = h 2 − h 1 α 3 − α 1
h 2 = g(x (n) − α 3 z) − g(x (n) − α 2 z) α 3 − α 2
jajokainterpoloifunktion(22)pisteissä
α 1 , α 2jaα 3.Kyseisetkolmefunktion(22)
in-terpolaatiopistettäonvalittavasiten,ettäehdot
α 1 = 0
,h(α 3 ) < h(α 1 )
jaα 2 = α 3 /2
toteutuvat.Näin ollen
α 1 onaina arvoltaan0 ja α 3 onalkuarvaus, jokavalitaan
si-tenettäehtototeutuuh(α 3 ) < h(α 1 )
.Tämänjälkeenvielälopuksiviimeinenkerroin
α 2 sijoitetaanarvojen α 1, sekä α 3 puoliväliinja koska α 1 = 0
niin voidaan suoraan
h(α 3 ) < h(α 1 )
.Tämänjälkeenvielälopuksiviimeinenkerroinα 2 sijoitetaanarvojen α 1, sekä α 3 puoliväliinja koska α 1 = 0
niin voidaan suoraan
α 3 puoliväliinja koska α 1 = 0
niin voidaan suoraan
laskea
α 2 = α 3 /2
. Kyseiset arvot määrittelevätfunktion (23) ja paras yhtälön (21)α α P (α ) = 0 α α
ja
α 3 parempi on se, joka tuo yhtälölle (22) pienemmän arvon. Paremman arvon
määrittelemisenjälkeen parempisijoitetaanyhtälöön(21) jaiteraationseuraava
ar-vo voidaan laskea. Tämän jälkeen lasketaan taas paras
α
:n arvo, sekä sen avullaseuraavaniteraationarvo ja tätä toistetaan kunnes haluttu tarkkuus saavutetaan.
Elektroniikkapiirien käyttäytymistä voidaan analysoida usealla eri tavalla. Näitä
analysointitapoja ovat mm. tasavirta-, vaihtovirta-, transientti-, herkkyys- ja
häi-riöanalyysi. Nimensä mukaisesti jokainen näistä on kehitetty tietyn tilanteen
simu-loimistavarten.Tässätyössä kehitettyohjelmaosaasoveltaatasavirta-,
vaihtovirta-ja transienttianalyysejä.
4.1 Tasavirta-, eli DC-analyysi
Analogistenelektroniikkapiirienkäyttäytymisen simulointialoitetaantavallisesti
ai-natasavirta-analyysistä.Analyysinavullasaadaanselvillepiirinoperaatiopiste.T
asavirta-analyysissä kaikki lähteet on tasavirtaisia, joten piirin jännitteet tai virrat eivät
muutu ajan myötä ja energiaa varaavat komponentit voidaan korvata. Esimerkiksi
kondensaattorinläpikulkevavirtaonriippuvainensen yliolevanjännitteen
muutok-sista
i = C dv
dt
(24)ja koskajännite on aina vakio.
i = C dv
dt = C · 0 = 0
Eli kondensaattorin läpiei kulje koskaan virtaja se voidaan korvata virtalähteellä,
joka ei tuota virtaa ollenkaan, eli
i = 0
A. Induktoria sen sijaan ei voi korvatavirtalähteellä, sillä sen yli oleva jännite on riippuvainen sen läpi kulkevan virran
muutoksista
v = L di
dt
(25)ja koskavirta onaina vakio
v = L di
dt = L · 0 = 0
Eli induktorinyli olevajännite onaina nolla ja se voidaan korvata jännitelähteellä,
yhtälöt. Yhtälötvoidaanmuodostaaesimerkiksisolmupisteanalyysinmukaisesti.
Li-neaarisesta piiristä muodostetut yhtälöt ovat lineaarisia ja niiden ratkaisemiseen
voidaan käyttää sekä suoria, että iteratiivisia menetelmiä.Työssä toteutettu
ohjel-maratkaisee lineaariset yhtälöryhmättavallisesti suoria menetelmiä kuten Gaussin
eliminointia ja LU-hajotelmaa soveltaen, mutta käyttää myös iteratiivisia
menetel-miä, kun ratkaisun nopeus on ratkaisun tarkkuutta merkitsevämpi tekijä.
Epäline-aarisista piireistä muodostetut yhtälöt ratkaistaan sen sijaan vain iteratiivisia
me-netelmiä käyttäen. Ohjelmassa ne yritetään aluksiratkaista Newtonin menetelmän
avulla, mutta jos iteraatioissa saadut tulokset lähtevät hajaantumaan sovelletaan
jyrkän kasvun menetelmää muutaman iteraationverran ja lopuksi arvoa
tarkenne-taan Newtonin menetelmänavulla.
4.2 Vaihtovirta- eli AC-analyysi
Tasavirta-analyysin jälkeen tiedossa on jo piirin operaatiopiste, eli piirin kaikkien
kytkentäpisteidenjännitteettunnetaan.Tämänjälkeenonuseinvieläsaatava
selvil-lepiirintaajuusriippuvuus,elimitenvaihtovirtaisenjavakaansignaalintaajuus
vai-kuttaa piirin käyttäytymiseen. Kyseinen analysointionnistuu vaihtovirta-analyysin
avulla.Vaihtovirta-analyysinsuorittamisenehtonaonkuitenkin,ettäkaikkien
piiris-sä olevien vaihtovirtaisten lähteiden signaalitovat sinusoidaalisiaja niiden taajuus
on sama. Vaihtovirta-analyysi aloitetaan luvussa 4.1 esitellyn tasavirta-analyysin
mukaisesti. Operaatiopisteen laskemisen jälkeen esimerkiksi diodit korvataan
ope-raatiopisteen mukaan lasketuilla sijaiskytkennöillä. Myös taajuusriippuvaiset
kom-ponentitkorvataan kuvan10 mukaisillalinearisoiduillasijaiskytkennöillä.
(a)Kondesaattorinsijaiskytkentä (b)Induktorinsijaiskytkentä
Kuva10: Taajuusriippuvaisten komponenttien sijaiskytkennät
analyysissä. Ainoana erona tavalliseen tasavirta-analyysin voidaan pitää sitä, että
kun tasavirta-analyysissä yhtälöt muodostettiin kokonaan reaalisista arvoista niin
vaihtovirta-analyysissämukana on myös kompleksisia arvoja. Ohjelman toiminnan
laajentaminentasavirta-analyysistävaihtovirta-analyysiineituoohjelman
koodauk-seen kovin suuria muutoksia. Vaihtovirta-analyysin toteuttamiseksi ohjelmaan on
vain lisättävä mahdollisuus piensignaalimallin luomiseen sekä kompleksisten
arvo-jen käsittelyyn.
4.3 Transienttianalyysi
Vaihtovirta- ja tasavirta-analyysissä analysoidaan miten piiri käyttäytyy vakaassa
tilassa. Piiri ei kuitenkaan aina ole vakaassa tilassa. Piirissä voi esiintyä
häiriösig-naaleja,jotkahäiritsevätjamuuttavatpiirinkäyttäytymistä.Vaikkahäiriösignaaleja
ei olisi, niin piiri ei kuitenkaan saavuta vakaata tilaa välittömästi virran
kytkemi-senjälkeen.Piirinsuunnittelussaonotettavahuomioonmyösmahdollisetepävakaat
tilatjatutkittavamitenpiiriniissäkäyttäytyy.Epävakaidentilojensimulointiin
käy-tetään aikakehitys eli transienttianalyysiä, joka tutkii miten piirin käyttäytyminen
muuttuu aikakehityksen myötä. Resistiivisissä piireissä aikakehityksen tutkiminen
on melko helppoa ja tavallisesti niiden aikakehitys voidaan hahmottaa jo nopealla
päättelyllä, sillä niissä kaikki piirin arvot hetkellä
t
ovat suoraan riippuvaisia läh-teiden arvoista hetkellät
. Resistiivisillä piireillä ei kuitenkaan ole kovinkaan laaja sovellettavuus ja sen takia usein käytetään myös energiaavaraavia komponentteja,kutenkondesaattoreitajainduktoreita,joissajännitteenjavirranvälinenriippuvuus
on lineaarisen sijasta dierentiaalinen (24), (25). Kyseiset yhtälöt voidaan esittää
myös integraalisessamuodossa
v(t) = 1 C
ˆ t
−∞
i(t)dt
(26)i(t) = 1 L
ˆ t
−∞
v (t)dt
(27)ja ne osoittavat, että kondensaattorin jännite, sekä induktorin virta hetkellä
t
ont
malla integraalin esimerkiksi väleille
[−∞, t 0 ]
ja[t 0 , t]
voidaan yhtälöt (26) ja (27)Kyseisissä yhtälöissä välin
[−∞, t 0 ]
määrätty integraali laskee esimerkiksi konden-saattorille,mikäjännitekondensaattorissaonhetkellät 0.Elivälin[−∞, t 0 ]
määrätty
integraalivoidaankorvatamuuttujalla
v (t 0 )
,joskyseisen hetken jännitetunnetaan.Sama pätee myös induktorinvirralleja saadaan
v(t) = v (t 0 ) + 1
Hetken
t o arvojakutsutaanalkuarvoiksijatavallisestiohjelmankäyttäjäasettaa ky-seisetarvottaisittenohjelmaasettaanepiirinoperaatiopisteenarvojenmukaan.
Al-kuarvojen laskemisen taiasettamisen jälkeen yhtälöissä (28), (29) onkummassakin
vielä yksi tuntematonarvo, joka onmäärätylläintegraalillamääriteltävä.
Integraa-lintarkkalaskeminen symbolisestionhaastavaaetenkintietokoneellaja usein
muu-tenkin mahdotonta. Tietokoneella määrätyn integraalin arvoa kannattaakin vain
approksimoida mahdollisimman tarkasti. Approksimointi onnistuu numeerisen
in-tegroinnin avulla. Numeeriseen integrointiin on olemassa useita eri menetelmiä ja
niidentarkkuudetvaihtelevatfunktion mukaan. Tärkeätäonkin valitaainakullekin
funktiolleparhaiten sopivaeli tarkin menetelmä.
Transienttianalyysi aloitetaantasavirta-analyysillä,jos ohjelman käyttäjä eiole
asettanutalkuarvoja.Operaatiopisteenlaskemiseksikaikkienergiariippuvaiset
kom-ponentit korvataan tasavirta-analyysin mukaisilla sijaiskytkennöillä.
Operaatiopis-teen laskemisella saadaan selville piirin alkuarvot eli yhtälöiden (28), (29) arvot
v(t 0 ) i(t 0 )
Kuva 12:Eulerin implisiittinenmenetelmä
ponentit korvataan numeerisen integrointimenetelmän mukaisillasijaiskytkennöillä
ja hetken
t 0 + δt
arvojen approksimaatio voidaan laskea. Tämän jälkeen sijaiskyt-kennät suoritetaan ajankohdant 0 + δt
arvojen mukaisesti ja hetkent 0 + 2δt
arvotvoidaan laskea. Näin jatketaan kunnes
t 0 + nδt
on määrätyn integraalin ylärajan mukainen.4.3.1 Eulerin menetelmät
Eulerin menetelmiin perustuvat numeeriset integroinnit ovat yksinkertaisia ja ne
antavat tarkan tuloksen vainvakiofunktioilla.Eulerin menetelmät perustuvat
deri-vaatan perusmääritelmään.
dy(t)
dt = lim
h → 0
y(t + h) − y(t)
h
Muuttamalla raja-arvo
h
nollasta poikkeavaksi voidaan derivaatan perusmääritel-mää approksimoida hiemandy(t)
dt ≈ lim
h → δt
y(t + h) − y(t)
h ≈ y(t + δt) − y(t) δt
ja saadunyhtälön avullafunktion
y(t + δt)
arvoa voidaan approksimoida,kun arvoy(t)
tunnetaan.y(t + δt) ≈ y(t) + δt dy(t)
dt
(30)Menetelmä tunnetaan nimellä Eulerineksplisiittinen menetelmä ja seetenee kuvan
11mukaisesti.Yhtälöllä(30) voidaan siisapproksimoidamyösmäärätynintegraalin
arvoa hetkellä
t + δt
, mutta tällöin derivaattady(t)/dt
on integroitava funktio ja esimerkiksi kondensaattorin jänniteyhtälön (28) arvoa hetkellät + δt
voidaanap-proksimoidayhtälöllä [9℄
v(t + δt) = v(t) + δt i(t)
C
(31), missä
i(t)/C = dv(t)/dt
. Kyseisestä yhtälöstä (31) voidaan päätellä, ettähet-kellä
t + δt
kondensaattori käyttäytyy kuin se olisi jännitelähde, jonka jännite onv(t) + δti(t)/C
. Tämäntakiakondensaattorivoidaan korvata kuvan13b mukaisellajännitelähteellä. Myös induktori voidaan korvata, mutta se korvataan yhtälön (32)
mukaisella ja kuvassa 13d esitetyllä virtalähteellä[9℄.
i(t + δt) ≈ i(t) + δt
L v(t)
(32)Sijaiskytkentöjen jälkeen piirin arvot voidaan laskea ja niistä voidaan johtaa
approksimaationseuraavanvaiheen
t 0 + 2δt
sijaiskytkennät.v (t 0 + 2δt) ≈ v(t 0 + δt) + δt i(t 0 + δt) C i(t 0 + 2δt) ≈ i(t 0 + δt) + δt v(t 0 + δt)
L
Tämänjälkeenpiirinarvotanalysoidaan uudelleenjaniistäasetetaan taasuudet
si-jaiskytkennät.Tätätoistetaan
n
kertaakunnest 0 +nδt = t 1,elimäärätynintegraalin
()Induktori (d)Induktorinsijaiskytkentä
Kuva13:KondensaattorijainduktorisekäniidenEulerineksplisiittisenmenetelmän
sijaiskytkennät
ylärajaon saavutettu.
Eulerin eksplisiittisessä menetelmässäkäytettävätsijaiskytkennät tuottavat
jos-kusongelmiaanalysointiin.Ongelmiasyntyy esimerkiksi,josmontasilmukkaan
kyt-kettyäkondensaattoriakorvataanjännitelähteillä,jolloinjännitelähteetkäytännössä
aiheuttavat oikosulun. Kuvan 12mukaisestieteneväEulerin implisiittinen
menetel-mä tuo tällaisiin tilanteisiin korjauksen, silläimplisiittisessä menetelmässä
approk-simointisuoritetaan yhtälön (30) sijastayhtälöllä
y(t + δt) ≈ y(t) + δt dy(t + δt) dt
, jostavoidaan edelleen johtaa kondensaattorin
v(t + δt) ≈ v(t) + δt i(t + δt) C
ja induktorinsijaiskytkentöjä kuvaavat yhtälöt [9℄.
i(t + δt) ≈ i(t) + δt v (t + δt)
L
Theveninmalli
Kuva 14: Kondensaattori ja sen Eulerin implisiittisen menetelmän mukaiset
sijais-kytkennät
(a)Induktori (b)InduktorinTheveninmalli ()InduktorinNortoninmalli
Kuva15:Eulerin implisiittisenmenetelmänsijaiskytkennät induktorille
saattorinjännite
v(t + δt)
onriippuvainensamanajankohdant +δt
virrastai(t +δt)
,kun taas eksplisiittisessä menetelmässä ne ovat riippuvaisiaeri ajankohdan
arvois-ta.Tämäntakiaimplisiittisessämenetelmässäkondensaattorinsijaiskytkentänä
voi-daan yhden jännitelähteen sijastakäyttääkuvan 14b mukaista kytkentää, missä on
kytkettynä sarjaan, sekäjännitelähde
v(t)
, että vastusδt/C
. Kyseisellekytkennälle onolemassasitävastaava kuvan14 mukainen Nortoninkytkentä.Vastaavatsijais-kytkennät induktorilleovatkuvissa 15b ja 15.
4.3.2 Puolisuunnikassääntö
Eulerin menetelmät ovat yhden pisteen menetelmiä, eli määrätyn integraalin arvo
approksimoidaanjokaisessavaiheessavainyhdenfunktion arvonavulla.
Eksplisiitti-sessä käytettiin arvoa
y(t)
,kun taasimplisiittisessä käytettiin arvoay(t + δt)
.Puo-käytetään arvojen
dy(t)/dt
jady(t + δt)/dt
keskiarvoa [9℄.y(t + δt) ≈ y(t) + δt 2
dy(t) dt + δt
2
dy(t + δt) dt
Kyseisestäyhtälöstä johdetutkuvien17,18mukaisetsijaiskytkennätovatkin
ikään-kuin Eulerin eksplisiittisenja implisiittisenmenetelmän sijaiskytkentöjen
yhdistel-mä. Puolisuunnikassäännön mukainen integrointietenee kuvan16mukaisestija
ku-vasta voidaan havaita, että approksimointimyötäilee hyvin funktiota.
Puolisuunni-kassääntöonkin tarkkamenetelmä jaksollisillefunktioille.
malli
()KondensaattorinNortoninmalli
Kuva17: Kondensaattorija sen puolisuunnikassäännön mukaiset sijaiskytkennät
(a)Induktori (b)InduktorinTheveninmalli
()InduktorinNortoninmalli
Kuva18: Induktori jasen puolisuunnikassäännön mukaiset sijaiskytkennät
Oliokielelläkehitetty ohjelma koostuu nimensämukaisesti oliosta.Oliot ovat
ohjel-man osia, jotkatallentavattietoa ja vuorovaikuttavat keskenään. Ne muodostetaan
useimmiten käytännön käsitteiden mukaan. Piirisimulaatio-ohjelmassa tällaisia
kä-sitteitä ovat mm. kytkentäväli, kytkentäpiste ja komponentti.Tässä luvussa
tutus-tutaankin minkälaisin olioluokin ja algoritmein tässä työssä kehitetty
simulaatio-ohjelma onkehitetty.
5.1 Piirin topologia
Piirinkytkentöjentutkiminenjakäsittelyonohjelmantärkeimpiäaihealueita,koska
sitäsovelletaankaikistaenitenohjelmansuorittamisenaikana.Seonmyös
ohjelman-osa, jokakannattaa kehittääohjelman matemaattisenkoneiston ohella
ensimmäise-nä, silläkaikkimuut ohjelmanosatovatniistäriippuvaisia.Kytkentöjen tutkimiseen
on olemassa lukuisia eri menetelmiä, mutta valtaosa niistä on kuitenkin kehitetty
juurikytkentöjentutkimistajatulkitsemistaeikämuokkaamistavarten.Esimerkiksi
mm. SPICEssäkinkäytetty kytkentämatriisi[10℄onkäytännöllinenmenetelmä,kun
tarkoituksena onmuodostaasolmupisteyhtälöitä. Yksinkertaistusalgoritmeissaseei
kuitenkaan olekovin käytännöllinen, kunpiirin kytkentöjä myös muunnellaan.
Yk-sinkertaistamista varten täytyikin kehittää aivan oma menetelmä, jossa piirin
kyt-kentöjä tulkitaanja muokataanolionavulla.Kyseistä menetelmäävoidaansoveltaa
myös yhtälöidenmuodostamisessa.
5.1.1 Kytkentämatriisi
Tietokoneohjelmissa piirin kytkentöjen tulkitsemiseen käytetään usein ns.
kytken-tämatriisia
M
, jossa on oma rivii
jokaista piirin kytkentäpistettäi
ja omasara-ke
k
jokaista piirin komponenttiae k varten. Matriisin M
arvot M ik määräytyvät
sen mukaanonkokyseessä kytkentäpisteeseensaapuvavaikytkentäpisteestälähtevä
kytkentä [21℄.
+1
,jos kytkentä onpisteeseen saapuva−1 ,
jos kytkentä onpisteestä lähtevä0
,jos kytkentää eiole(33)
Näin ollen piirin jokaisesta kytkennästä on tehtävä päätös mihin pisteeseen se on
saapuva ja mistä seonlähtevä. Passiivisillakomponenteillakytkennän suunnalla ei
olemitäänmerkitystä.Lähteilläsuuntasen sijaankannattaa kuitenkin merkitä
vir-talähteenvirransuunnanjajännitelähteennapojen
− → +
mukaisesti.Käytännössä tämäonnistuuparhaitensuuntakytkentäkaavionavulla,jossaonmääriteltyjokaisenkytkennänsuunta.Esimerkiksikuvan19mukaisestakytkentäkaaviostamuodostettu
suunnattu kytkentäkaavio voisiollakuvan20mukaisen suunnatunkytkentäkaavion
mukainen, jostamuodostettu kytkentämatriision:
M =
5.1.2 Kytkentäoliot
Luvussa 5.1.1esiteltykytkentämatriisivoidaankorvata oliokielessäolioluokan
avul-la. Tähän soveltuu esimerkiksi kuvan 21a mukainen olioluokka. Kyseinen
olioluok-ka kehitettiin nimenomaan yksinkertaistusta varten ja sen avulla
yksinkertaistus-ta voidaan nopeuttaa huomattavasti. Yksinkertaistus nopeutuu, silläkyseinen olio
ei sisällä nolla-alkioita kuten kytkentämatriisi. Kytkentämatriisin nolla-alkiot ovat
oikeastaan turhia, sillä ne kertovat vain kytkennöistä, joita ei ole olemassa.
Kyt-kentöjä käsitellään olioluokan avulla myös toisin, kun kytkentämatriisi käsittelee
kytkentöjä kytkentäpistein ja komponentein, niinolioluokka Kytkentäpisteet
käsit-telee kytkentöjä pelkästään kytkentäpistein. OlioluokanKytkentäpisteet
attribuut-tiin
viereisetpisteet
merkitään vain kaikki kyseisen kytkentäpisteen viereiset kyt-kentäpisteet ja esimerkiksi kuvan 20 mukaisen suunnatun kytkentäkaavionmaa-doituspisteestä muodostetun olion
viereisetpisteet
muuttuja olisi{1, 3, 4}
. Kuvan21b mukaista olioluokkaa apuna käyttäen kyseisten arvojen avulla voidaan viitata
kytkentäväli-olioista muodostettuuntaulukkoonja tutkia esimerkiksi kytkentävälin
[0, 1]
tai[3, 0]
ominaisuuksia. Vaikka kyseinen olioluokka on kehitettyyksinkertais-tusta varten, voidaan sitä käyttää apuna myös solmupisteanalyysin mukaisia
yhtä-löitämuodostettaessa.EsimerkiksiKCL-yhtälöidenmuodostaminenonnistuuhyvin
yksinkertaisesti ja samankaltaisesti kuin käytännössä. Yhtälöiden
muodostamises-sa tarvitsee vain tutkia KCL-pisteiden attribuuttia viereisetpisteet, jonka arvoista
saadaan selville miltäväleiltä kunkin KCL-pisteen yhtälöt muodostetaan.
Kytken-kentäpiste kentäväli
Kuva21: Kytkentöjä käsittelevätolioluokat
lopultaKCL-yhtälöt muodostetaan komponenttien arvojen mukaan.
5.2 Piirin komponentit ja niiden ominaisuudet
Piirin komponentit listataan ohjelmassa kytkentäväleittäin olioluokan
Kytkentävä-li attribuuttiin komponentit. Komponentteja on kuitenkin olemassamonenlaisia ja
ohjelmanonuseinsaatavaselville,mikäkomponenttionkyseessä. Joskusohjelmalle
riittää,ettäsesaaselvilleonkokyseessä aktiivinenvaipassiivinenkomponentti.
Ky-seinen tieto riittääusein esimerkiksi, kunohjelman täytyy saada selvilleonko jokin
väliyksinkertaistettavissa.Tietosiitä,ettäonkokomponenttipassiivinenvai
aktiivi-neneikuitenkaanoleainariittävä,silläesimerkiksi aktiivisiakomponenttejaon
ole-massa monenlaisia. Niitäovatesimerkiksi kaikki lähteet, jotka taas voivattaas olla
riippuvaisia, tasavirtaisia taivaihtovirtaisia. Myös ohjelman komponentteja
kuvaa-vat olioluokat muodostetaan näiden käsitteiden jakautumisen, sekä tarkentumisen
mukaan ja tarkentamista jatketaan niinkauan kunnes käsite ei ole enää abstrakti.
Kuvan22 mukainen periytyvyyskaavio osoittaa mitenohjelman komponenttiluokat
periytyvät.Komponenttiluokistakaikkeinylimpääntallennetaankaikille
komponen-teille ominaisetpiirteetkuten kytkentäväli,niiden yliolevajännite, sekäniiden läpi
kulkevavirta.Tietoa komponentinominaisuuksistatarkennetaansitä mukaan mitä
tarkempi käsite onkyseessä.
5.3 Ohjelman matemaattiset muuttujat
Ohjelmassa käsitellään paljon matemaattisia muuttujia, joita käsitellään joko
nu-onyksinkertaista,silläsiihen riittääkäytetynohjelmointikielenjavan
perusmuuttu-jat. Java eikuitenkaan olekovin matemaattinen kieli,eikäsiinä oleperusmuuttujia
lausekkeiden käsittelyä varten. Tämän takia lausekkeiden symboliseen käsittelyyn
onluotava omat tietorakenteet.
Kuvan 23 mukainen matemaattisten olioluokkien periytyvyys luo
mahdollisuu-denkäsitelläkaikkiaohjelmassatarvittaviamuuttujia.Kyseisenluokkakaavion
olio-luokkien avulla komponenttien arvoja voidaan käsitellä symbolisesti funktioina ja
kyseisetfunktiotvoivatollayksittäisiälineaarisiataiepälineaarisiamuuttujia,mutta
nevoivatollamyösmuuttujistajaoperaattoreistamuodostuviakokonaisia
lausekkei-ta.Mahdollisuuskäsitelläkokonaisialausekkeitasymbolisestihelpottaamm.
symbo-lisenderivaatanlaskemisessa, silläkokonaisenlausekkeen derivointimääräytyy siinä
olevien operaattorien ja muuttujien mukaan.
5.4 Ohjelman matemaattiset algoritmit
5.4.1 Gaussin eliminointialgoritmi
Liitteen A mukainen Gaussin eliminoinnin pohjalta kehitetty algoritmi on
suhteel-lisen tarkka, sillä laskutoimituksen virhe syntyy vain pyöristysvirheistä.
Pyöristys-virheetkin voidaan minimoida käyttäen skaalattua Gaussin eliminointia [5℄. T
ark-kuudestaan huolimattaGaussin eliminoinninpohjaltakehitetty algoritmiei ole,
jo-ka tilanteessase oikealaskentamenetelmä yhtälöryhmänratkaisemiseksi, silläseon
laskentateholtaanmelkovaativa.Algoritmionvaativuudeltaanluokkaa
O(n 3 )
,jotenlaskentatoimituksien määrä kasvaanopeasti muuttujienmääränkasvaessa.
5.4.2 LU-hajotelman algoritmi
Matriisien
L
jaU
alkioiden laskemiseen on olemassa useita eri algoritmeja, kuten Doolittlen, Croutin ja Gaussin algoritmi. Näistä Gaussin algoritmi on useimmitenkäytännöllisin, koska se sallii matriisien täydellisen muokkaamisen hajotelman
las-kemisen edetessä [12℄. LU-hajotelman laskemiseen tarkoitettu Gaussin algoritmin
eduksi voidaan laskea myös se, että sen suorittamiseen tarvitaanvainniitä
algorit-meja,joitakäytetäänmyösGaussineliminointialgoritmissa.Sekäitsehajotelman
te-keminen,ettämyösyhtälöryhmänratkaiseminenonnistuuGaussineliminoinnissa
so-velletuillaeteenpäin eliminointija taaksepäin sijoitusalgoritmeilla.LU-hajotelman
algoritmieisiispaljonpoikkeaGaussineliminoinnissakäytetyistäalgoritmeista.
Niil-läonkuitenkinvaativuuseroja.Vaativuuserojasyntyy,josratkaistavana on
Niil-läonkuitenkinvaativuuseroja.Vaativuuserojasyntyy,josratkaistavana on