Professional Documents
Culture Documents
Univerzitet u Beogradu
Elektrotehnički fakultet
OPTIMIZACIJA MIKROSTRIPA
DIPLOMSKI RAD
Kandidat: Mentor:
Aca Mijalković prof. dr. Antonije Đorđević
Beograd, 2000.
Open
1. UVOD
Cilj ovog diplomskog rada je dizajn softvera koji će na osnovu željenih električnih
karakteristika mikrostripa pronaći njegove fizičke dimenzije. Mikrostrip je struktura za
vođenje mikrotalasa. Sastoji se od dielektrika, pravougaonog poprečnog preseka, uniformnog
duž x ose, i dva provodnika sa dve strane dielektrika kao na sledećoj slici.
Gornji provodnik predstavlja signalni provodnik a donji, koji je na slici označen crnim
slojem, predstavlja referentni provodnik, odnosno masu. Veličina od interesa je
karakteristična impedansa. Ona zavisi od širine gornjeg provodnika, rastojanja od ivica
provodnika do ivica dielektrika, visine i osobina dielektrika. Ovu strukturu možemo uopštiti
uvođenjem više od jednog signalnog provodnika kao na sledećoj slici.
2. NELDER-MID ALGORITAM
2.1. Osnovni pojmovi
1 N +1
- težište t = x
N j =1 j
jk
- tačka refleksije r = (1 + )t − k
- tačka ekspanzije e = (1 + )r − t
- tačka kontrakcije c = (1 − )t + k
1
- tačke redukcije d j = ( x j + m) j = 1,2, N + 1, j m
2
, i su takozvani koeficijenti refleksije, ekspanzije i kontrakcije. Najčešće su konstantni
sa vrednostima =1, =0.5 i =2.
Na početku optimizacije računa se vektor grešaka. Zatim se ulazi u iterativni postupak
gde se u svakoj iteraciji sortiranjem vektora grešaka u neopadajući vektor nalaze najbolja,
najgora i druga najgora tačka. Takođe se određuje tačka težišta. Zatim se ispituje uslov izlaska
iz petlje optimizacije. Postoje tri uslova za okončanje postupka optimizacije:
1 N +1 2
- Kriterijum konvergencije: ( y − ym ) , gde zadaje korisnik u ulaznom
N j =1 j
fajlu. Ovaj kriterijum sprečava nepotrebne iteracije kada se simpleks nađe u okolini gde se
funkcija greške slabo menja.
- Kriterijum minimalne dozvoljene greške. Zadaje se u ulaznom fajlu i prekida optimizaciju
kada se nađe dovoljno dobra tačka.
- Maksimalan broj iteracija. Zadaje se u ulaznom fajlu i prekida optimizaciju posle zadatog
broja iteracija, bez obzira na prethodna dva kriterijuma.
Ako nijedan od ova tri uslova nije ispunjen, ispituju se tačke refleksije, ekspanzije i
kontrakcije. Ako nijedna od ovih tačaka ne ispunjava uslov za ulazak u simpleks, a to je da je
funkcija greške u toj tački manja od vrednosti u najgoroj tački, računa se vrednost funkcije
greške u težištu. Ako ni ona ne zadovoljava uslov za ulazak u simpleks, vrši se redukovanje
simpleksa za polovinu u pravcu najbolje tačke i računaju se vrednosti funkcije greške u novim
tačkama.
Open
acck=(accmax-1)/log(convmax+1)
acc=accmax-acck*log(conv+1)
3. MIKROSTRIP
Ova glava se bavi funkcijom greške. U nju je uključen model spregnutog mikrostripa.
Ulazni argumenti ove funkcije su fizičke dimenzije spregnutog mikrostripa i parametar
tačnosti. Ostale veličine potrebne za izračunavanje karakteristične matrice impedansi, koje se
ne menjaju u procesu optimizacije, definisane su kao globalne promenljive. To su visina
dielektrika, relativna permitivnost dielektrika, tangens ugla gubitaka, radna učestanost i
provodnost provodnika.
[G ]
[C ] = [C] − j ,
c
čiji realni deo predstavlja podužne kapacitivnosti a imaginarni deo podužne provodnosti.
g11 g1N
[G ] =
g N 1 g NN
f
gde je R = površinska otpornost provodnika, a C označava konturu poprečnog
s c
preseka svih provodnika. Treba voditi računa da u slučaju beskonačno tankih provodnika, kao
što je ovde slučaj, postoje dve različite struje sa dve strane provodnika. Njih možemo dobiti
primenom graničnih uslova, čime se dobija:
J = c0 0 E10 n ,
s1
J = c0 − 0E10 n ,
s2 s0
gde je E10 električno polje uz prvu stranu provodnika, a n jedinični vektor normalan na
provodnik.
Gubici u provodniku se opisuju matricom:
r11 r1N
[R ] =
rN 1 rNN
I m = J si li = c0 q0 m
i
Open
d[V ( x)]
= −[R ][I( x)] − j[L ][I( x)], 0 x D,
dx t
d[I( x)]
= −[G ][V ( x)] − j[C][V ( x)], 0 x D,
dx
gde je [V( x)] vektor kompleksnih potencijala provodnika na mestu x duž provodnika, a
[I ( x)] je vektor kompleksnih struja provodnika. D je ukupna dužina spregnutog mikrostripa.
[Y] = [G ] + j[C] ,
pomoću kojih jednačine telegrafičara možemo napisati u formi:
d[V ( x)]
= −[Z][I( x)], 0 x D,
dx
d[I( x)]
= −[Y][V ( x)], 0 x D.
dx
d 2[V ( x)]
= [Z][Y][V ( x)], 0 x D.
dx 2
Open
Uz ove jednačine potrebni su i granični uslovi, odnosno veze između [V(0)] i [I (0)] ,
i [V ( D)] i [I( D)] , koje su određene mrežom na koju je povezan spregnuti mikrostrip.
Jednačine rešavamo tako što pretpostavljamo rešenje u obliku:
[V m ( x)] = [V0m ] exp( m x), m = 1, ..., N ,
[I 0m ] = [Z]−1[V0m ] m .
Modalne vektore napona i struja možemo složiti u kvadratne matrice:
Važi:
[S I ] = [Z]−1[SV ][] ,
gde je [] dijagonalna matrica čiji su elementi na glavnoj dijagonali koeficijenti propagacije.
Pomoću modalnih vektora napona i struje lako dobijamo matricu karakterističnih impedansi:
1 K
V (r ) = st (r' )log r − r' dl ,
2 0 C
gde je r vektor položaja tačke u kojoj tražimo potencijal, r' je vektor položaja tačke u kojoj se
nalaze naelektrisanja,
= +
st s sb
je ukupna gustina naelektrisanja, je gustina slobodnog naelektrisanja, je gustina
s sb
vezanog naelektrisanja, dl je element konture (C) koji može ležati na provodniku ili granici
dva dielektrika, V je potencijal provodnika i K proizvoljna konstanta. Ovakvu jednačinu
pišemo za svaki provodnik i za masu.
Takođe mora biti zadovoljeno i
2 − 1 sp
E1 n = ,
2 0
gde je E1 električno polje u prvom dielektriku na granici sa drugim, a n jedinični vektor
normalan na razdvojnu površ usmeren od drugog prema prvom dielektriku. Električno polje u
prethodnoj jednačini može se izraziti preko potencijala V kao:
E = −gradV ,
( r1 − r2 ) (r − r ' ) n ( + r2 )
V.P. (r ' ) dl + r1 (r ) = 0 ,
2 0 C st r − r'
2
2 0 st
gde V.P. označava glavnu vrednost integrala čime izbegavamo singularitet električnog polja u
tački r = r' (njegov uticaj smo uključili kroz član /( 2 0 ) ).
st
Ovakve jednačine pišemo za svaku razdvojnu površ dva dielektrika.
Open
N
t sti (r − r ' ) n ( + r2 )
( r1 − r2 ) dl + r1 = 0, j = N + 1, ..., N
i = 1 2 0 c r − r ' 2 0 stj c t
2
i
i j
N
t
stili = 0
i =1
N
t sti (r − r ' ) n
stj
E1 (r ) = dl + n
i = 1 2 0 c r − r ' 2 0
2
i
i j
gde j označava segment na kome se nalazi tačka r u kojoj tražimo polje.
Dobijena slobodna naelektrisanja sumiramo po provodnicima da bi dobili ukupna
podužna naelektrisanja na provodnicima, pomoću kojih ćemo odrediti primarne parametre.
qm = si li
i
gde je li širina itog segmenta na provodniku #m.
3.3. Autosegmentacija
Veća tačnost donosi veći broj segmenata po površini čime se dobija bolji model
strukture a time i preciznije rešenje. Na rezultat utiče i veličina šoldera, odnosno razmak
provodnika od leve i desne ivice dielektrika. Program uzima da je šolder jednak pet visina
dielektrika. Na sledećoj slici prikazana je segmentacija mikrostripa sa tri provodnika:
3.4. LU dekompozicija
Nt
− 2 V (r ) = sti B (r ) ,
o i
i =1
− 2 V = L(U + I ) st
o
l11 y1 = V1
l21 y1 + l22 y2 = V2
l N 1 y1 + l N 1 y2 + l N y N = VN
t t t Nt t t
stN = yN
t
t
Open
j −1 i −1 j −1
1 1
lij = bij − lik ukj uij = (bij − lik ukj ) yi = (Vi − lik yk )
k =1 lii k =1 lii k =1
Prvo se fiksira j=1, dok i ide od 1 do Nt dakle, izračunavamo prvu kolonu matrice L. Zatim
fiksiramo i=1, a j ide od 2 do Nt dakle, izračunavamo prvu vrstu matrice U. Postupak
ponavljamo dok ne izračunamo obe matrice i vektor y. Sada sledi povratna zamena:
Nt
sti = yi − u
k = i +1
ik sti
Funkcija greške čini najveći deo programskog koda. Sam tok izračunavanja se može
podeliti u nekoliko logičkih celina. To su: autosegmentacija, formiranje matrice sistema,
rešavanje sistema linearnih jednačina i formiranje matrica [C], [G] i [L], perturbacioni metod
odnosno određivanje matrice [R], određivanje karakteristične matrice impedansi na osnovu
primarnih parametara, i na kraju određivanje optimizacionog funkcionala.
Elementi matrice sistema su vrednosti integrala koji su dati u odeljku 3.2. Element sa
indeksima (i,j) se odnosi na j-ti segment i i-tu tačku podešavanja. Segmenti i tačke
podešavanja nisu uzimani u prirodnom redosledu, u smeru kazaljke na satu ili suprotnom
smeru, već su prvo uzimani oni segmenti i tačke podešavanja koji leže na provodnicima, pa
oni koji leže na masi, i zatim oni koji leže na razdvojnoj površi dva dilektrika. Na taj način
smo omogućili lako rešavanje sistema sa i bez dielektrika (simultano), metodom LU
dekompozicije. Ako podelimo poslednjih Nt-Nc jednačina (one koje proizilaze iz graničnih
2 0
uslova) sa ,
r1 − r 2
svi integrali će imati realne vrednosti. Uticaj gubitaka u dielektriku, koji se ogleda kroz
kompleksnost matrice sistema, biće lociran u donjih Nt-Nc članova glavne dijagonale matrice
sistema, čiji će imaginarni delovi biti različiti od nule. Ti imaginarni delovi su konstantni i
+
iznose r1 r 2 .
r1 − r 2
Open
4. OPIS PROGRAMA
Program je napisan u jeziku Visual C++. Naziv izvršnog fajla je speedy.exe. Program
bi trebalo da bude izvršiv na svim računarima koji imaju MFC klase. Prilikom kompajliranja
odabrana je opcija 386 kompatibilnosti, čime je obezbeđena izvršivost na najvećem broju
računara. Prilikom startovanja programa otvara se dijalog prozor koji sadrži tri dugmeta:
Učitaj, Optimiziraj, Izlaz i pet ispisa: Iteracija, Greška, Konvergencija, Tačnost, Status.
Klikom na dugme Učitaj pokreće se funkcija koja učitava ulazni fajl, proverava
ispravnost unetih podataka, formira početni simpleks, računa funkciju greške u tačkama
simpleksa i vraća se u osnovni dijalog prozor. Program proverava podatke u ulaznom fajlu i
ako postoji neka greška u polju Status ispisuje "Loš fajl", u suprotnom ispisuje "Spreman".
Klikom na dugme Optimiziraj pokreće se Nelder-Mid algoritam, ako su uneti podaci
validni. U svakoj iteraciji korisnik se preko ispisa obaveštava o trenutnom stanju: tekućoj
iteraciji, grešci u najboljoj tački, konvergenciji vektora grešaka i tekućoj tačnosti sa kojom se
ulazi u funkciju greške. U polju Status je ispisano "Optimizacija". Po završetku optimizacije
optimalna tačka se zapisuje u ulazni fajl na mesto početne tačke a na kraj fajla se dodaje
tačnost sa kojom je izračunata funkcija greške u optimalnoj tački, greška u toj tački kao i
kompletna karakteristična matrica impedansi (admitansi) u toj tački. Zatim se vraćamo u
osnovni dijalog prozor. Korisnik prepoznaje kraj optimizacije jer u polju Status sada stoji
"Spreman". Ako opet kliknemo na dugme Optimiziraj, otpočeće nova optimizacija od
poslednjeg stanja simpleksa. Ako uneti podaci nisu validni, ili uopšte nije ni učitan ulazni fajl
program u polju status ispisuje "Nemam početni simpleks".
Klikom na dugme Izlaz prekida se izvršavanje programa (ali samo ako smo u
osnovnom dijalog prozoru, ako je već zadato učitavanje fajla ili optimizacija mora se sačekati
njihov kraj.)
N=2
w1=0.00463403
w2=0.00421053
s1=0.00218694
visina dielektrika=0.002
relativna permitivnost=2.3
tan. ugla gubitaka=0.013
frekvencija=1e+010
provodnost=5.6e+007
impedanse/admitanse=1
real(z(1,1))=59.25
real(z(2,2))=62.59
real(z(1,2))=7.411
pocetni korak simpleksa=1.5
e=0.0001
ec=1e-009
max. broj iteracija=10
tacnost je konstantna/promenljiva=0
**************
tacnost=9.99327
greska=0.00209812
Z(1,1)=58.9861+i0.311115
Z(1,2)=7.40795+i0.0594752
Z(2,1)=7.40728+i0.0594869
Z(2,2)=62.5006+i0.326939
Prvi podatak predstavlja broj provodnika. On određuje sledećih 2N-1 podataka koji
predstavljaju koordinate početne tačke. Wi se odnose na širine provodnika a Si na širine
procepa. Sledećih pet veličina su jasne same po sebi. Zatim ide parametar koji sme da ima
vrednosti 1 ili 0. Ako je 1 računaju se karakteristične matrice impedansi. Ako je 0 računaju se
karakteristične matrice admitansi. Posle toga stoje elementi glavne i sporedne dijagonale
ciljne matrice. Da li je to matrica impedansi ili admitansi, zavisi od prethodnog parametra.
Zatim se unosi početni korak simpleksa koji služi za formiranje početnog simpleksa od
početne tačke. Zatim idu uslovi za kraj optimizacije: maksimalna greška, maksimalna
konvergencija, maksimalan broj iteracija. Na kraju se čita parametar načina rada. Ima dve
moguće vrednosti: 1 za rad sa konstantnom tačnošću i 0 za rad sa promenljivom tačnošću.
Ako je uneto 1 tada se čita i sledeći parametar tačnosti ( niz asteriska se preskače ), ako je
uneto 0 čitanje se završava jer optimizacija počinje sa tačnošču 1.
Preostali podaci se ne čitaju i ne moraju ni biti uneti. Njih u stvari upisuje sam
program kao rezultat optimizacije (to su podaci posle niza asteriska).
Open
5. TESTIRANJE
U prvoj koloni dat je broj provodnika, u drugoj elementi glavne i sporedne dijagonale
karakteristične matrice impedansi koja se traži, u trećoj nađena optimalna tačka, u četvrtoj
greška odnosno odstupanje od ciljne matrice, a u petoj greška u odnosu na vrednost
karakteristične matrice impedansi u optimalnoj tački, koja se dobija primenom programa
LINPAR. Sve optimalne tačke su izračunate sa tačnošću 10, a ta tačnost je korišćena i u
programu LINPAR.
Open
6. ZAKLJUČAK
Rezultati testiranja pokazuju da program dobro radi, kako u pogledu tačnosti rešenja,
tako i u pogledu konvergencije optimizacije. Svi rezultati su provereni u programu LINPAR
sa tačnošću 10, koja garantuje grešku manju od 1%. U svih pet testiranih primera program je
našao rešenje u manje od 200 iteracija. Tačan broj iteracija nije zabeležen jer on svakako
zavisi od početne tačke, kao i od načina rada sa tačnošću.
S druge strane, očigledno je da ima puno prostora za poboljšanje ovog programa, kako
u pogledu optimizacionog postupka, tako i u pogledu izračunavanja funkcije greške. Što se
tiče optimizacionog postupka mogli bi se ispitati drugi metodi sa direktnim pretraživanjem i
uporediti njihova brzina u odnosu na Nelder-Mid algoritam. Takođe mogao bi se modifikovati
način na koji se određuje tačnost kada se koristi način rada sa promenljivom tačnošću. Naime
prilikom testiranja tačnost je vrlo brzo dostizala maksimalnu vrednost, u samo nekoliko
iteracija, tako da efekat ubrzanja nije dolazio do punog izražaja. Što se tiče funkcije greške
razvoj programa bi mogao teći u dva pravca. Prvo, izmenom dela programa za formiranje
matrice sistema mogla bi se umesto spregnutog mikrostripa uključiti bilo kakva struktura za
vođenje mikrotalasa. Drugo, vredelo bi pokušati sa približnim, iterativnim metodima za
rešavanje sistema linearnih jednačina umesto LU dekompozicije. Razlog za ovu ideju je da se
tačke u kojima računamo funkciju greške nalaze blizu jedna drugoj, što znači da rešenje u
prethodnoj tački možemo koristiti kao početno rešenje u iterativnom metodu. Realnije bi ipak
bilo prvo proveriti koliko su tačke blizu, pa ako su dovoljno blizu koristiti iterativnu metodu a
u suprotnom LU dekompoziciju.
Ograničenje od maksimalno osam provodnika lako se može prevazići dinamičkom
alokacijom memorije. Time se postiže teoretski neograničen broj provodnika, mada treba
voditi računa da veliki broj provodnika, čak i pri malim tačnostima, znači veliki broj
segmenata, što produžuje vreme izvršavanja funkcije greške.
Takođe, program nije preterano "user-friendly". Bilo bi pogodnije kada bi se neki
podaci umesto preko ulaznog fajla unosili direktno u dijalog prozorima. Na primer, uslovi za
kraj optimizacije. Program se ne može prekinuti ako teče optimizacija ili računanje početnog
simpleksa, već se mora sačekati njihov kraj i povratak u osnovni dijalog prozor. Ovi nedostaci
su posledica nedovoljnog poznavanja Visual C++ jezika.
Open
7. LITERATURA
3. Mikrotalasna tehnika
Antonije R. Đorđević
Elektrotehnički fakultet u Beogradu, 1990.
SADRŽAJ
1. UVOD ................................................................................................................. 1
3. MIKROSTRIP ................................................................................................... 7
5. TESTIRANJE .................................................................................................. 21
6. ZAKLJUČAK .................................................................................................. 22
7. LITERATURA .................................................................................................. 23
Open