Diplomová práce
Transkript
České vysoké učení technické v Praze Fakulta elektrotechnická Katedra teorie obvodů Návrh a optimalizace filtru OTA-C s využitím evolučních algoritmů Diplomová práce 2007 Diplomant: Bc. Dalibor Barri Vedoucí práce: Doc. Ing. Pravoslav Martinek, CSc. Zadání (Originál v originálu diplomové práce, oboustranná kopie v kopii diplomové práce) ii Poděkování Na tomto místě bych rád vyjádřil svou vděčnost osobám, které mi pomohly úspěšně realizovat mojí diplomovou práci. V první řadě bych rád poděkoval panu doc. Ing. Pravoslavu Martinkovi, CSc., jako vedoucímu mojí diplomové práce, za přínosné konzultace a cenné připomínky k mojí činnosti. Dále děkuji své mamince a babičce za podporu ve studiu. Dík patří též Richardovi Starému za cenné připomínky ke konceptu této práce. Čestné prohlášení Prohlašuji, že jsem zadanou diplomovou práci Návrh a optimalizace filtru OTA-C s využitím evolučních algoritmů zpracoval sám s přispěním vedoucího práce a používal jsem pouze literaturu uvedenou v závěru této práce. Dále prohlašuji, že nemám námitek proti půjčování nebo zveřejňování mé diplomové práce nebo její části ve smyslu § 60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). Dne 11. 1. 2007 ........................ Dalibor Barri, v. r. Anotace (Annotation) Anotace Tato diplomová práce se zabývá ověřením možnosti využití stochastických algoritmů pro návrh a optimalizaci aktivních filtrů OTA-C. Na základě zkoumání a porovnání stochastických algoritmů byl k realizaci optimalizačního algoritmu vybrán diferenční evoluční algoritmus. Tento algoritmus byl doplněn o simplexovou metodu, v důsledku čehož tak vznikl nový progresivní optimalizační algoritmus DESA. Klíčová slova: diferenční evoluce, simplexová metoda, dynamická optimalizace, filtr OTA-C Annotation The presented thesis deals with verification of possible utilization of stochastic algorithms for design and optimization of active OTA-C filters. Based on the research and comparison of stochastic algorithms differential evolution algorithm was used for realization of optimization algorithm. This algorithm was supplemented by simplex method establishing thus new progressive DESA optimization algorithm. Keywords: differential evolution algorithm, simplex method, dynamic optimization, filter OTA-C v Obsah Seznam použitých symbolů ix 1 Úvod 1 2 Uvedení do současné problematiky 3 2.1 Oblasti využití numerických optimalizačních metod . . . . . . . . . . 2.1.1 Stručný přehled optimalizačních metod . . . . . . . . . . . . . 3 4 2.2 Přehled a historie heuristických algoritmů . . . . . . . . . . . . . . . 5 2.3 Genetický algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3.1 2.3.2 Populace jedinců . . . . . . . . . . . . . . . . . . . . . . . . . Reprodukce, křížení a mutace . . . . . . . . . . . . . . . . . . 7 7 2.3.3 Shrnutí genetických algoritmů . . . . . . . . . . . . . . . . . . 8 Diferenční evoluční algoritmus . . . . . . . . . . . . . . . . . . . . . . 9 2.4 2.5 2.4.1 Matematický popis základního DE algoritmu . . . . . . . . . . 10 2.4.2 2.4.3 Metody a modifikace diferenční evoluce . . . . . . . . . . . . . 13 Grafické zobrazení základního DE algoritmu . . . . . . . . . . 15 2.4.4 Shrnutí DE algoritmů . . . . . . . . . . . . . . . . . . . . . . . 15 Simplexová metoda . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.5.1 Základní popis simplexové metody . . . . . . . . . . . . . . . 18 2.5.2 Matematická interpretace simplexové metody . . . . . . . . . 19 2.5.3 Shrnutí vlastností simplexové metody . . . . . . . . . . . . . . 21 3 Cíle diplomové práce 22 4 Metody zpracování 23 4.1 Výběr optimalizačního algoritmu . . . . . . . . . . . . . . . . . . . . 23 4.2 Programy použité k implementaci algoritmu a verifikaci výsledku . . 24 5 Popis užitého DESA algoritmu 25 5.1 Evoluční část DESA algoritmu . . . . . . . . . . . . . . . . . . . . . . 25 vi Obsah 5.2 Integrace simplexové metody do DESA algoritmu . . . . . . . . . . . 27 5.2.1 Modifikace simplexové metody . . . . . . . . . . . . . . . . . . 28 5.3 Řídící konstanty DESA algoritmu . . . . . . . . . . . . . . . . . . . . 29 5.4 Řešení stagnace DESA algoritmu . . . . . . . . . . . . . . . . . . . . 30 5.5 Účelová funkce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 6 Příklad řešení konkrétní aplikace 33 6.1 Úvod do problematiky . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.2 Zadání požadavků . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 6.3 Řešení aproximační úlohy . . . . . . . . . . . . . . . . . . . . . . . . 35 6.4 Ideální realizace struktury navrhovaného filtru OTA-C . . . . . . . . 37 6.5 Vliv reálných vlastností obvodových prvků na navržený filtr . . . . . 40 6.5.1 Vliv reálného OTA na vlastnosti navrženého obvodu . . . . . 40 6.5.2 Realizace makromodelu OTA LM13700 . . . . . . . . . . . . . 42 6.5.3 Vliv reálných vlastností kondenzátorů na přenosovou funkci . 44 6.6 6.7 Optimalizace reálného obvodového zapojení filtru OTA-C . . . . . . . 45 Výsledky návrhu a optimalizace filtru OTA-C . . . . . . . . . . . . . 50 6.8 Zhodnocení výsledku řešeného filtru OTA-C . . . . . . . . . . . . . . 52 7 Závěr 53 7.1 Shrnutí diplomové práce . . . . . . . . . . . . . . . . . . . . . . . . . 53 7.2 Přínos diplomové práce . . . . . . . . . . . . . . . . . . . . . . . . . . 54 7.3 Možné směry dalšího vývoje . . . . . . . . . . . . . . . . . . . . . . . 54 Literatura 55 Seznam obrázků 60 Seznam tabulek 61 Přílohy I A Dodatek ke genetickým algoritmům . . . . . . . . . . . . . . . . . . . B C Reálné vlastnosti užitého OTA LM13700 . . . . . . . . . . . . . . . . III Výpis zdrojového kódu užitého makromodelu . . . . . . . . . . . . . . IV D Dostupný rozsah transkonduktance gm . . . . . . . . . . . . . . . . . IV E Srovnání makromodelů . . . . . . . . . . . . . . . . . . . . . . . . . . F G Vliv parazitní polohy pólu OTA na reálný filtr OTA-C . . . . . . . . VI Reálné vlastnosti kondenzátorů . . . . . . . . . . . . . . . . . . . . . VII H Srovnání dynamiky filtru před a po optimalizaci . . . . . . . . . . . . IX vii I V Obsah I Grafický přehled citlivosti přenosové funkce |H(p)| na změny hodnot obvodových prvků . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IX J Obsah přiloženého CD . . . . . . . . . . . . . . . . . . . . . . . . . . XII viii Seznam použitých symbolů a zkratek Seznam použitých symbolů a zkratek a ap as A C CI CR D DE DP DPS DS ESL ESR f fp fs F gm go G GA |H(jΩ)| iout IABC K1 (δ), K2 (i, δ) NP P P GIP ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... OTA ......... OTA-C OZ PG Q r1 , r2 , r3 , r4 R SY,x SxY U, u, v W 1 , W2 ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... útlum [dB] útlum v propustném pásmu [dB] útlum v nepropustném pásmu [dB] zesílení kapacitor [F] integrační kapacitor [F] faktor křížení v DE a DESA počet dimenzí vektorů (jedinců) v populaci Differential Evolution – diferenční evoluce dolní propust deska plošných spojů Downhill Simplex – simplexová metoda Equivalent Series Inductance [H] Equivalent Series Resistance [Ω] kmitočet [Hz] mez propustného pásma [Hz] mez nepropustného pásma [Hz] váhovací konstanta v DE a DESA transkonduktance [µA/V] výstupní vodivost [S] udává aktuální počet generací Genetic Algorithm – genetický algoritmus modulová charakteristika výstupní proud [A] klidový proud OTA (Amplifier Bias Current) [A] účelové funkce DESA algoritmu počet jedinců v jedné populaci (Number of Population) Percent Part of Gen from Intermediate Population (procentuální část genů vzata z přechodné populace) Operation Transconductance Amplifier (transkonduktanční operační zesilovač) obvodová struktura složená z kapacitorů a OTA operační zesilovač populace v G-té generaci činitel tvaru [–] náhodná celá čísla v DE v intervalu rx ∈ (1, 2, ..., N P ) rezistor [Ω] absolutní citlivost veličiny Y na parametr x relativní citlivost veličiny Y na parametr x [–] elektrické napětí [V] váhovací koeficienty účelových funkcí K1 (δ) a K2 (i, δ) ix Seznam použitých symbolů a zkratek α β γ λ τi ω Ω Ωx , Ω0 ......... ......... ......... ......... ......... ......... ......... ......... koeficient reflexe DS koeficient kontrakce DS koeficient expanze DS přídavný váhovací koeficient DE integrační konstanta [s] kruhový kmitočet [rad/s] normovaný kruhový kmitočet [−] normovaný kruhový kmitočet pólu, nuly [−] x Kapitola 1 Úvod Současná výpočetní technika přináší spolu s novými výpočetními postupy i nové numerické optimalizační metody. Tyto metody se v dnešní době považují za účinný prostředek k nalezení řešení optimálního návrhu lineárních obvodů s respektováním různých návrhových kritérií a omezení. Další kladené požadavky mohou být i ekonomického či jiného charakteru. Výpočetní výkon stávajících počítačů spolu s dostupnými matematickými softwarovými produkty umožňují v dnešní době řešit složité optimalizační úlohy využívající doposud nepříliš používané stochastické numerické metody. Mezi tyto metody řadíme tzv. evoluční a genetické algoritmy. Přednostmi daných algoritmů je jejich snadná aplikace spolu s možností efektivně řešit multikriteriální úlohy s větším počtem nezávisle proměnných. Nevýhodou těchto algoritmů je jejich časová náročnost, způsobená velkým rozsahem výpočetních kroků potřebných k nalezení optimálního řešení. Na druhou stranu proces optimalizace probíhá cíleně a při správném nastavení optimalizačních parametrů nalezneme řešení poměrně rychle. Aplikace daných metod k řešení lineárních obvodů se jeví jako směr správnou cestou, jelikož nám umožňuje řešit takové úlohy, v nichž standardní metody selhávají, nebo jejich výsledek neodpovídá globálnímu minimu či nesplňuje všechna kritéria zadaná návrhářem. Studie aplikace daných algoritmů je v dnešní době velmi aktuální a to především díky neustále se zvyšujícím nárokům na navrhované elektronické obvody. Cílem této diplomové práce je ověření možnosti použití nekonvenčních numerických optimalizačních metod k návrhu a optimalizaci filtru OTA-C. V práci je popsán jednak jejich teoretický princip, a jednak je zde demonstrována i praktická ukázka na konkrétním příkladě. Celá práce je rozdělena do sedmi kapitol. Po úvodní kapitole následuje kapitola s názvem Uvedení do současné problematiky, kde jsou popsány základy evolučních a genetických algoritmů spolu s deterministickou metodou. Tou je simplexová me- 1 Diplomová práce Úvod toda. Dále jsou v kapitole popsány základní pojmy stochastických algoritmů, kterými jsou například: generace, populace, mutace atd. Následující dvě kapitoly pak popisují cíle diplomové práce a metody jejího zpracování. Zde je řečeno, jaký ze stochastických algoritmů jsem si k realizaci optimalizačního algoritmu vybral a v jakém matematickém programu bude algoritmus implementován. Dále je zde uveden soupis softwarových produktů použitých k verifikaci dosažených výsledků. V páté kapitole se dočteme o novém algoritmu DESA, jenž je užitý v diplomové práci. Je zde uvedena jeho vlastní interpretace a jaké výhody nám tento algoritmus přináší ve srovnání s klasickými stochastickými metodami. Dále je v této kapitole řešena otázka stagnace a vysvětlen pojem účelová funkce. Kapitola šestá se věnuje konkrétnímu příkladu aplikace využití DESA algoritmu, k návrhu a optimalizaci nestandardního filtru OTA-C s multikriteriálními požadavky. Kapitola se zabývá návrhem filtru od samotného počátku, tj. od zadaní, až po finální reálnou obvodovou strukturu. V závěru této kapitoly je uvedeno zhodnocení dosažených výsledků řešeného filtru OTA-C. V poslední kapitole jsou shrnuty závěry získané při vypracovávání této diplomové práce s uvedením možných směrů dalšího vývoje. 2 Kapitola 2 Uvedení do současné problematiky Protože hlavním cílem je právě optimalizace filtru OTA-C, budu se v uvedení do současné problematiky zabývat přehledem moderních optimalizačních metod, které mohou být použity pro tyto účely. Kapitola je pro svou rozmanitost členěna do pěti základních částí: • Oblasti využití numerických optimalizačních metod • Přehled a historie heuristických algoritmů • Genetický algoritmus • Diferenční evoluční algoritmus • Simplexová metoda 2.1 Oblasti využití numerických optimalizačních metod Využití klasických numerických metod v syntéze lineárních obvodů přineslo v minulosti velký zlom. Pomocí klasických numerických metod dokážeme optimalizovat dílčí části obvodu, jako je např. optimalizace přenosové funkce filtru s ohledem na jakost jejích pólů. Avšak ne vždy vedly tyto numerické metody k uspokojivému výsledku. Jednou z hlavních nevýhod klasických optimalizačních metod je optimalizace pouze na jeden parametr, tj. nelze provádět syntézu obvodů respektující vícekriteriální požadavky. Jako příklad takových požadavků lze uvést optimalizaci obvodu s ohledem na reálné vlastnosti použitých prvků, s omezením maximálního povoleného zvlnění přenosové funkce v propustném pásmu, s respektování dynamických poměrů a definovaným rozsahem hodnot použitých prvků. 3 Diplomová práce 2.1 Oblasti využití numerických optimalizačních metod Jak již víme na vícekriteriální úlohy nelze uplatnit klasické numerické metody, ale lze na ně s úspěchem použít evoluční či genetické algoritmy. Tyto algoritmy pracují se skupinou jedinců (tzv. populací), na kterou se aplikuje evoluční popř. genetický algoritmus. Každá populace jedinců se během algoritmu vyvíjí v tzv. generacích. Každý jedinec dané generace představuje vektor proměnných, který je tvořen například hodnotami parametrů navrhovaného nebo optimalizovaného obvodu. Takto získaný vektor je následně ohodnocen tzv. účelovou funkcí, která vyjadřuje míru odchylky od zadaných požadavků. Toto ohodnocení pak řídí proces prohledávání možných řešení v daném prostoru. 2.1.1 Stručný přehled optimalizačních metod Ať již mluvíme o jakékoli úloze, vždy se algoritmus implementovaný do systému snaží odhadnout nejoptimálnější řešení. Při odhadu parametrů algoritmus vychází z účelové funkce, kterou se snaží minimalizovat. Jedná se vlastně o hledání minima na N -rozměrném chybovém povrchu. Tento N -rozměrný povrch lze popsat fitness funkcí K o N proměnných. Hledání minima funkce K je hledání bodu, kde je gradient funkce K nulový. Z této podmínky dostaneme, derivací funkce K, soustavu N rovnic. Pro klasické úlohy se tato soustava nazývá Wiener-Hopfova, respektive Yule-Walkerova rovnice. Soustavu o N rovnicích můžeme řešit dvěma různými způsoby: a) přímými metodami, b) iteračními metodami. Přímé metody jsou metody vedoucí k výsledku v konečném počtu kroků. Jsou to například: Gaussova eliminační metoda (GEM), výpočet inverzní matice nebo metoda LU rozkladu. Přímé metody se dají použít pouze pro lineární rovnice. Výhodou je předem známý počet kroků. Problém může nastat s výpočetní náročností pro velká N . Iterační metody jsou metody založené na zpřesňování výsledku v každém následujícím kroku. Přesnost výsledku závisí na počtu iterací a nelze přesně říci kolik kroků bude k dosažení výsledku potřeba. Mezi tyto metody patří například: metoda prosté iterace, Newtonova metoda či gradientní metoda. Pro lineární metody lze použít i Jacobiovu metodu, Gauss-Seidelovu metodu či relaxační metodu SOR. Výhodou těchto metod je možnost řešení nelineárních rovnic. Nevýhodou je neznámý počet kroků vedoucích k výsledku. Výše zmiňovaným metodám se věnuje literatura [1], která je k dostání i v on-line verzi [2]. J. Daňek na internetových stránkách [3] uvádí jak jejich matematické interpretace, tak i grafické zobrazení. 4 Diplomová práce 2.2 Přehled a historie heuristických algoritmů Při optimalizaci může nastat problém ve chvíli, kdy funkce K nemá pouze jedno minimum, ale má několik dalších lokálních minim. Iterační metody pak mohou „uvíznoutÿ v lokálním minimu a globálního minima nikdy nedosáhnout. Problém nalezení globálního minima libovolné funkce bez zadání okrajových podmínek není dosud uspokojivě vyřešen. K řešení tohoto problému se používají nelineární iterační metody, které můžeme rozdělit do dvou kategorií: a) využívající derivací, b) prohledávající. Metody využívající derivací, jako je gradientní metoda, nemohou řešit problémy, kdy se nedá určit derivace funkce K. Pro takové problémy nám zbývají metody prohledávající: genetické (heuristické) či Powllova metoda. Tyto metody se většinou používají v kombinaci s okrajovými podmínkami, kdy je zadána množina, na které se má minimum hledat. Gradientní metody se chovají lépe v okolí minima a podávají přesnější výsledky. Mají však tendenci uvíznout v lokálním minimu. Prohledávající metody jsou, naopak, odolnější vůči „zablouděníÿ, ale jejich konvergence v okolí minima je horší. Proto se v praxi používá kombinace prohledávajících metod s metodami gradientními. V prvním kroku se pomocí prohledávajících metod lokalizuje přibližně poloha minima a v druhém kroku se toto minimum nalezne přesně pomocí gradientních metod. Tento postup bývá, jak již bylo uvedeno, doplněn okrajovými podmínkami – tedy množinou vymezující prohledávanou oblast. 2.2 Přehled a historie heuristických algoritmů Začátkem 60. let minulého století vzniká nový směr v rozvoji informatiky, tzv. genetické algoritmy (GA). Tyto algoritmy vycházejí z Darwinovy teorie o vývoji druhů, a úspěšně se začaly používat k řešení optimalizačních problémů, kde dosahují dobrých výsledků. Od dob, kdy jeden ze zakladatelů této problematiky – John Henry Holland – popsal v roce 1975 ve své knize Adaptation in Natural and Artificial Systems [4] základní vlastnosti těchto algoritmů, prošla tato disciplína dlouholetým vývojem a v dnešní době se uplatňuje v mnoha optimalizačních algoritmech. Další vývoj, kterým optimalizační algoritmy prošly nastal, v 90. letech minulého století vynalezením evolučního algoritmu (EA). Průkopníkem této problematiky se stal Kenneth Price, který se proslavil pokusem vyřešit Čebyševův polynom užitím evolučního algoritmu typu diferenční evoluce (DE) a Rainerem Stormem, který jej doplnil. Kritický zlom v evolučních algoritmech nastal v době, kdy Kenneth Price přišel s ideou využití rozdílového vektoru, tj. vektoru, jenž vznikne rozdílem dvou 5 Diplomová práce 2.3 Genetický algoritmus jiných vektorů, k sestavení již zmiňovaného DE algoritmu. Tato původní idea vedla mezi Kennethem a Rainerem k rušným diskusím, nekonečným bádáním, počítání a simulacím, dokud nedosáhli lepších výsledků. Na základě jejich snahy jsou v současnosti diferenční evoluce univerzálním, robustním a efektivním nástrojem pro řešení optimalizačních problémů. O jednotlivých variantách a základních pravidlech návrhu DE algoritmu píše R. Storn v článku On the Usage of Differential Evolution for Function Optimization [5]. Za rychlý vývoj DE můžeme poděkovat tvůrcům tohoto algoritmu, jelikož si tento algoritmus nikdy nenechali patentovat a mohli se tak na něm podílet vědci z celého světa. Vědci a uživatelé DE se sdružují v tzv. „DE spolkuÿ, který se začal rozrůstat v letech 1994–1996. Vznik tohoto spolku byl velkým přáním Kennetha a Rainera, a to především z toho důvodu, aby byl DE stále vyvíjen, zlepšován a zdokonalován pro mnohé aplikace denních i profesionálních uživatelů. V následujících dvou kapitolách se věnuji podrobnějšímu rozboru genetických a diferenčních evolučních algoritmů. Po jejich přečtení by měl mít čtenář jasnou představu o realizaci výše zmiňovaných algoritmů a být schopen popsat rozdíl mezi těmito dvěma revolučními algoritmy. 2.3 Genetický algoritmus V biologii jsme se seznámili se způsobem, jakým živé organismy předávají své genetické informace svým potomkům. Tyto informace jsou uloženy v chromozómech jednotlivých organismů (jedinců). Obsah chromozómů lze chápat jako jistý „kódÿ informace o jedinci. Podle teorie Charlese Darwina1 v přírodě přežívají silnější jedinci a ti pak mají šanci předat svoji genetickou informaci do další generace. Důležité přitom je, že každý organismus je potomkem dvou rodičů, nebo-li informace uložené v jeho chromozómech jsou zčásti převzaty od jednoho rodiče a zčásti od druhého. Na základě těchto principů pracuje i genetický algoritmus. Algoritmus tedy pracuje s jistými jedinci, kteří jsou sdružováni v tzv. populaci jedinců a jejichž vlastnosti jsou reprezentovány v určité struktuře, která je připodobněním chromozómu tohoto organismu (binární kódování). Jedna populace, nebo-li generace nám poskytuje v jednom okamžiku několik možných řešení, která jsou s rostoucím počtem generací stále lepší a lepší, dokud není v ideálním případě nalezen ten nejlepší jedinec. V opačném pří1 Charles Robert Darwin (12. 2. 1809 – 19. 4. 1882), nebyl první, kdo s myšlenou evoluce přišel – spíše bychom mohli říci, že ji „zdědilÿ po svém dědečkovi Erasmu Darwinovi (1713–1802). Ten už v 18. století vyslovil odvážnou hypotézu, že veškerý život na Zemi vznikl z jediného „kořeneÿ, stvořeného Bohem, a postupně se rozrostl a rozvětvil do košatého stromu. Jednou z větví tohoto stromu je i člověk. 6 Diplomová práce 2.3 Genetický algoritmus padě může nastat situace, kdy nám GA „uvízneÿ v lokálním minimu a nejlepšího jedince tak nikdy nenajdeme. Jedním z řešení, jak částečně zabránit uvíznutí v lokálním minimu je zvětšení počtu jedinců, díky čemuž pak algoritmus pracuje v jedné generaci s větším počtem možných řešení. Jedná se o tzv. paralelismus v GA [6], který nám značně zefektivňuje tuto metodu. Účelem organismu je vytvářet v populaci jedinců stále silnější jedince. Tato vlastnost předurčuje algoritmus k použití při optimalizaci problémů, kdy hledáme nejlepší z možných řešení. 2.3.1 Populace jedinců Algoritmus pracuje s generacemi určitých jedinců, tzv. populací jedinců. Tato populace je tvořena jedinci, kteří jsou reprezentovány „chromozómyÿ, nebo-li řetězcem jedniček a nul (jak uvádí J. R. Koza v Genetic Programming [7, kapitola 3]), přičemž všechny „chromozómyÿ jsou stejně dlouhé. Chromozóm tedy může vypadat například takto: 11010001 (jedinec délky 8). Délka jedince je pro optimalizaci návrhu velmi důležitá, jelikož při genetickém algoritmu pracujeme v předem určeném intervalu, který prozkoumáváme na pozicích daných délkou jedince. V našem případě s délkou jedince rovnou osmi prohledáváme 1 . s přesností 218 = 256 = 0,0039. Kdybychom chtěli zvětšit přesnost našeho algoritmu, zvětšili bychom délku jedinců (např.: délka jedince = 10, pak bychom pracovali . 1 = 0,00098). Tzn. při zakódování dochází k diskretizaci prohles přesností 2110 = 1024 dávaného prostoru. Tímto efektem se můžeme dopouštět chyb, nepřímo úměrných délce jedince. Cílem algoritmu je vyvíjet generace tak, aby se neustále zlepšovaly. To znamená, aby v ní vítězili silnější jedinci nad slabšími. Nabízí se nám otázka, kdo rozhodne o tom, jak je daný jedinec silný či slabý, nebo-li jak je kvalitní. Toto rozhodování není součástí genetického algoritmu. Algoritmus se na kvalitu (fitness) jedince pouze „zeptáÿ. 2.3.2 Reprodukce, křížení a mutace Genetický algoritmus pracuje s populací jedinců, a proto před spuštěním celého algoritmu musíme již nějakou generaci mít. Tuto tzv. „nultouÿ, nebo též inicializační generaci vytvoříme náhodným vygenerováním. Naším cílem je, abychom na základě znalosti kvality řetězců vytvořili novou generaci, na jejímž složení se budou podílet silnější jedinci. Celý mechanismus tvorby nové generace (obrázek 2.1) se děje v třech hlavních krocích: reprodukce, křížení a mutace (blíže příloha A), a velmi dobře je 7 Diplomová práce 2.3 Genetický algoritmus popsán autory Randy L. Haupt a Sue E. Haupt v knize Practical Genetic Algorithm [8, kapitola 2 a 3], kde se autoři zabývají nejen diskrétní bitovou reprezentací, ale i spojitou (realizace reálnými čísly). V 5. kapitole pak shrnují pro a proti jednotlivých provedení GA. Obrázek 2.1: Schéma reprezentující genetický algoritmus 2.3.3 Shrnutí genetických algoritmů V této kapitole jsme se seznámili se základní verzí genetického algoritmu. Řekli jsme si výhody tohoto algoritmu, mezi něž patří prohledávání prostoru ve více místech najednou s tím, že dochází k výměně informací mezi prohledávanými body. Další 8 Diplomová práce 2.4 Diferenční evoluční algoritmus výhodou je nalézání lepších řešení bez znalostí struktury řešeného problému. Algoritmus při řešení problému pracuje s řetězci jedniček a nul a kvalitou těchto řetězců. O kvalitě rozhoduje tzv. ohodnocovací funkce, která není obecně definována. Záleží na uživateli, jak si tuto ohodnocovací funkci definuje. Tato funkce je jediným prostředníkem mezi řešeným problémem a algoritmem, a proto je velmi důležité tuto funkci co nejlépe nadefinovat, abychom byli schopni v co nejkratším čase nalézt optimální řešení. Celý algoritmus je velmi jednoduchý. Skládá se ze tří operátorů – reprodukce, křížení a mutace. Každý z těchto operátorů používá náhodný výběr (tzn. nejedná se o deterministickou metodu). Výše popsaný algoritmus je základní verzí, která je dále modifikována a vylepšována samotnými uživateli. V mnoha aplikacích nám postačí základní verze tj. bez doplňků a vylepšení, jelikož i s ní lze dosáhnout velmi dobrých výsledků. Nevýhodou této metody je omezená přesnost hledaného řešení (příklad realizace GA je v uveden na CD v souboru 00 priklad realizace GA.mw ), jelikož se s ní pohybujeme v diskretizovaném prostoru možných řešení. Přesnost je tedy omezena velikostí použitého jedince, tj. velikostí bitové reprezentace. Ačkoli dle [8] lze realizovat GA i s reálnými čísly, nemusí přinést tato varianta výrazné zlepšení. Proto jsem při výběru vhodné metody k návrhu a optimalizaci filtru OTA-C pomocí heuristických algoritmů zvolil jinou variantu, a tou je diferenční evoluční algoritmus, který eliminuje tuto nepřesnost výsledného řešení. Blíže o této metodě pojednává následující podkapitola. 2.4 Diferenční evoluční algoritmus Poprvé byl tento algoritmus prezentován v roce 1995 R. Stornem a K. V. Pricem v Technical Report [9]. Rok poté byl na First International Contest on Evolutionary Computation – 1stICEO (První mezinárodní soutěž vývojových výpočtů) konající se v Nagoye ohodnocen 3. místem a ukázal se tak být nejlepším genetickým algoritmem pro řešení reálných hodnot testovaných funkcí. První dvě místa získaly non-GA algoritmy, které nebyly univerzální, nicméně zoptimalizovaly testované funkce rychleji než-li DE. Diferenční evoluční algoritmus (DE) je velmi snadný, jednoduchý a přímočarý algoritmus poskytující populaci možných řešení založených na minimalizaci reálné ohodnocovací nebo též účelové funkce. Jak později uvidíme, vhodné formulování této funkce je velmi důležitý krok pro správnou a rychlou konvergenci ke konečnému řešení. Rychlost konvergence u DE algoritmů je v porovnání s klasickými algoritmy znatelně menší, a proto je této problematice věnována velká odborná 9 Diplomová práce 2.4 Diferenční evoluční algoritmus pozornost. Jak se tedy dalo očekávat, další vývoj těchto algoritmů byl poznamenán snahou o zvýšení jejich účinnosti a to zejména již zmiňované rychlosti konvergence, která je hlavním nedostatkem této metody. Na toto téma bylo zpracováno mnoho teorií, z nichž se jako vhodná cesta ukazuje doplnění DE algoritmu o klasickou negradientní metodu optimalizace. T. Rogalsky spolu s R. W. Derksenem napsali v roce 2000 na toto téma článek [10], ve kterém je popsána kombinace DE algoritmu s metodou Downhill Simplex. Optimalizační metoda, která takto vznikla byla tvůrci pojmenována jako HDE (Hybridized Differential Evolution) algoritmus. Dle autorů tak lze dosáhnout až 50% zlepšení DE algoritmu. Avšak první zmínky o užití simplexové metody spolu s nedeterministickou metodou byly již v roce 1995, kdy J. Yen a J. C. Liao v článku [11] popisují použití kombinace simplexové metody a genetického algoritmu. V článku je provedena analýza na procentuální zastoupení simplexové metody v GA-simplex Hybrid Algorithm (jak autoři tento algoritmus pojmenovali), která má nezanedbatelný vliv na dosažení lepších výsledků. Vlastnostmi užité negradientní simplexové metody se zabývali J. C. Lagarias, J. A. Reeds, M. H. Wright a P. E. Wright v článku [12] na jedné iteraci NM (Nelder–Mead) algoritmu – tvůrci simplexové metody. Cílem tohoto algoritmu, obdobně jako u genetického algoritmu, je nalezení nejsilnějšího jedince z široké nabídky populace pomocí tzv. ohodnocovací funkce (fitness function). Pro reálnou představu o realizaci DE algoritmu, se budu v následující kapitole důkladně věnovat jejímu matematickému popisu, který je mimo jiné publikován například v [9], [13] a [14]. 2.4.1 Matematický popis základního DE algoritmu Algoritmus pracuje s generacemi jedinců, kteří nejsou reprezentovány „chromozómyÿ, tak jak tomu bylo u genetického algoritmu, ale náhodnou „nebitovouÿ hodnotou. Skutečnost, že jedinci nejsou reprezentovány chromozómy, nám ve své podstatě zvětšuje přesnost výpočtu, jelikož nejsme omezeni bitovou přesností. Stejně jako genetický algoritmus, tak i DE algoritmus pracuje s členy populace, a proto je prvním krokem před samotným spuštěním algoritmu nezbytně důležité vygenerování náhodné inicializační populace PG=0 o N P D-dimenzionálních vektorů (jedinců) xi,j,G : PG = {~x1,G , ~x2,G , ..., ~xj,G , ..., ~xN P,G } , ~xj,G = xi,j,G (lo) (hi) (lo) xi,j,G=0 = xi + randi [0, 1]· xi − xi j = 1, 2, ..., N P, (lo) kde xi (hi) je spodní a xi N P ≥ 4, i = 1, 2, ..., D, horní mez povolených hodnot. 10 (2.1) Diplomová práce 2.4 Diferenční evoluční algoritmus Jak si můžeme ve vztahu (2.1) povšimnout, velikost parametrů jedinců je ohra(lo) ničena zdola xi (hi) a shora xi . Je to z toho důvodu, abychom dostali řešení v námi definovaném rozmezí. Dolní index i určuje, že nové náhodné číslo je generováno pro každou hodnotu i. Jestliže dolní index je j, pak je náhodné číslo generováno jen jedenkrát pro každého jedince. Výraz randi [0, 1] reprezentuje rovnoměrně distribuovanou náhodnou proměnnou v rozsahu od 0 do 1. Po této formulaci dostáváme podmínku: (lo) xi (hi) ≤ xi ≤ xi , i = 1, ..., D. (2.2) Po inicializaci je populace podrobena opakování generací, G = 1, 2, ..., Gmax s využitím mutace, rekombinace a selekce. DE algoritmus využívá jak mutace tak i rekombinace k vytvoření jednoho „potomkaÿ, nebo-li trial vektoru ui,j,G+1 , z každého „rodičovskéhoÿ vektoru ~xj,G , jak je ukázáno na následujícím příkladu (2.3): r1 , r2 , r3 ∈ {1, 2, ..., N P }, (náhodný výběr, kromě: r1 6= r2 6= r3 6= j) irand = int(randj [0, 1]·D) + 1 for (i = 1; i ≤ D; i = i + 1) { if (randi [0, 1] < CR ∨ i = irand ) ui,j,G+1 = vi,j,G+1 = xi,r3 ,G + F ·(xi,r1 ,G − xi,r2 ,G ) else ui,j,G+1 = xi,j,G } (2.3) Indexy r1 , r2 a r3 jsou tři náhodně vybrané vektory (jedinci) z populace ve stejné generaci tak, že se navzájem liší a zároveň jsou odlišné od j, který určuje vektor současného „rodičeÿ. Na základě této formulace musí být splněna podmínka ze vztahu (2.1), tj. inicializační populace N P musí být větší jak tři. Mezi dvěma takto vybranými jedinci provedeme tzv. diferenci, nebo-li uskutečníme vzájemný rozdíl hodnot jejich vektorů. Získáme tak rozdílový vektor, který budeme váhovat (přenásobovat) násobnou konstantou F. Povšimněme si, že pokud randi [0, 1] je menší než CR či jestliže i = irand , pak je potomek lineární kombinací tří náhodně zvolených vektorů; v opačném případě vznikne potomek přímým dědictvím od svých rodičů. Podmínka ”∨ i = irand ” je vložena proto, aby se zajistila rozdílnost potomka alespoň v jedné proměnné vektoru. F a CR jsou uživatelem specifikované direktivní (řídící) proměnné. F – mutation amplification – je váhovací faktor určený reálnou hodnotou typicky v intervalu (0; 1i, která nám zvětšuje či zmenšuje všechny parametry rozdílového vektoru. Následujícím krokem je tzv. mutace, která spočívá v sumaci (součtu) výše 11 Diplomová práce 2.4 Diferenční evoluční algoritmus získaného váhovaného vektoru s třetím náhodně vybraným jedincem. Tímto po→ s jehož pomocí budeme stupem získáme tzv. šumivý vektor (noisy vector (− nv)), vykonávat další kroky v etapě křížení (CR). CR – crossover faktor – je faktor křížení charakterizovaný reálnou hodnotou v rozsahu h0; 1i udávající pravděpodobnost, že gen našeho výše získaného noisy vektoru (xi,r3 ,G + F · (xi,r1 ,G − xi,r2 ,G )) se bude moci zkřížit s genem porovnávaného jedince xi,j,G , nebo-li křížení samotných genů je opět náhodný proces. Po fázi křížení obdržíme testovací vektor (trial vector). Obecně platí, že hodnoty F a CR zásadně ovlivňují rychlost konvergence a robustnost celého procesu. Hledání jejich optimálních hodnost závisí jak na cílové (hledané) funkci, tak i na velikosti populace NP (Number of Population). Zpravidla se vhodné hodnoty pro F, CR a NP hledají metodou pokus – omyl. Neexistují totiž žádná pravidla, která by nám poskytovala takové informace, že při určité kombinaci hodnot F a CR, dostaneme přesný počet populací NP, pro který by evoluční algoritmus musel vždy najít řešení. Nicméně existují jistá doporučení, která uvádím v kapitole 5.3. Nyní jsme v etapě, kdy jsme získali testovací vektor (testovacího jedince, nebo-li jedno možné řešení). Tento testovací vektor je ohodnocen tzv. účelovou (ohodnocovací) funkcí K – fitness function – tj. funkcí, která každému potomku přiřadí reálnou hodnotu odpovídající odchylce od zadaných požadavků. Získaná hodnota účelové funkce je pak porovnána s hodnotou průběžného vektoru (rodiče). Jestliže ohodnocený zkušební vektor bude mít lepší nebo rovné výsledky účelové funkce, než-li je tomu u průběžného vektoru, tak pozici průběžného vektoru v následující generaci, obsadí náš nový a lepší jedinec; v opačném případě je rodič ponechán i do další generace. Tato část evoluce se nazývá selekce. Postup testovaného vektoru do další generace je popsán následujícím jednoduchým procesem: ~xj,G+1 = ~uj,G+1 ~xj,G pokud K(~uj,G+1 ) ≤ K(~xj,G ) , jinak . (2.4) S takto vybranými vektory pak vstupujeme do další generace a evoluční cyklus DE algoritmu se opakuje tak dlouho dokud: a) není úloha vyřešena, b) všechny vektory nekonvergují k jednomu bodu, nebo c) není viditelné zlepšení ani po mnoha generacích. 12 Diplomová práce 2.4 Diferenční evoluční algoritmus Sjednocením rovnic (2.1) až (2.4) do jednoho celku získáváme následující verzi základního DE algoritmu; v literatuře označován jako DE/rand/1/bin: (lo) (hi) Vstup: D, Gmax , N P ≥ 4, F ∈ (0, 1i, CR ∈ [0, 1] a počáteční omezení: xi , xi . ( (lo) (hi) (lo) ∀j ≤ N P ∧ ∀i ≤ D : xi,j,G=0 = xi + randi [0, 1]· xi − xi Inicializace : j = {1, 2, .., N P }, i = {1, 2, ..., D}, G = 0, randi [0, 1] ∈ [0, 1] (2.5) Gmax While G < Mutace a rekombinace: r1 , r2 , r3 ∈ {1, 2, ..., N P }, náhodný výběr, kromě r1 6= r2 6= r3 6= j irand = {1, 2, ..., D}, náhodný výběr pro každé j xi,r3 ,G + F ·(xi,r1 ,G − xi,r2 ,G ) if(randi [0, 1] < CR ∨ i = irand ) ∀j ≤ N P ∀i ≤ D, ui,j,G+1 = xi,j,G jinak Výběr: ~uj,G+1 if K (~uj,G+1 ) ≤ K (~xj,G ) ~xj,G+1 = ~xj,G jinak G=G+1 2.4.2 Metody a modifikace diferenční evoluce Doposavad jsme se zabývali základním DE algoritmem pojmenovaným označením DE/rand/1/bin. Nyní si objasníme, co dané označení znamená a jaké stupně volnosti nám nabízí, nebo-li kolik různých variant DE algoritmu můžeme získat. Dále si ukážeme dvoudimenzionální příklad ilustrující postup optimalizace, abychom tak získali úplnou představu o funkci DE algoritmu. Nejlépe si celou situaci popíšeme na jednom případu DE. Za tímto účelem bude v následujícím textu předložena základní varianta DE algoritmu – DE/rand/1/bin. V závěru se pak seznámíme s jednotlivými modely DE algoritmů. Schéma DE/rand/1/bin Pro každý vektor ~xj,G , j = 1, 2, ..., N P je sestaven testovací (trial) vektor ~vj,G+1 dle vztahu: ~vj,G+1 = ~xr1 ,G + F ·(~xr2 ,G − ~xr3 ,G ) . (2.6) Označení začíná písmeny DE/..., které představuje zkratku difereční evoluce (DE – Differential Evolution). → získaní mutací se budou Označení .../rand/... značí, že všichni šumoví jedinci − nv skládat z náhodně (rand om) vybraného jedince ~xr1 ,G a váhované diference jedinců, → tj. − nv xr2 ,G − ~xr3 ,G ). Další volby tohoto parametry jsou: best – výše zmiňoG+1 = F ·(~ vaný proces bude probíhat s nejlepším jedincem; current – proces bude aplikován na právě testovaného jedince. 13 Diplomová práce 2.4 Diferenční evoluční algoritmus Označení .../1/... značí kolik páru jedinců se zúčastní mutace. V případě jedničky bude užit jeden pár, nebo-li dva jedinci. Pokud zvolíme na místo jedničky dvojku, k mutaci bude zapotřebí čtyř jedinců (viz vzorová rovnice (2.8)). Poslední specifikací je například .../bin, která představuje užití dvojčlenného rozdělení křížení (binomial distribution). Další varianta nemá žádné specifické označení (parametr vynechán) a značí, že není potřeba konstanty křížení, jelikož CR je implicitně rovno jedné a ke křížení tak nikdy nedochází. Více o jednotlivých možnostech pojednává literatura [15] a [16], kde jsou uvedeny i další možné volby jednotlivých parametrů. Pro úplnost zde uvedu čtyři druhy modifikace DE algoritmu včetně vzorové s dvoudimenzionální ilustrací – obrázek 2.2. DE/rand/1/bin: ~vj,G+1 = ~xr1 ,G + F ·(~xr2 ,G − ~xr3 ,G ) , (2.7) Obrázek 2.2: Dvoudimenzionální příklad účelové funkce ukazující její vrstevnice a proces generace nového jedince ~v pro případ DE/rand/1/bin (F = 1) DE/best/2/bin: ~vj,G+1 = ~xbest,G + F ·(~xr1 ,G + ~xr2 ,G − ~xr3 ,G − ~xr4 ,G ) , (2.8) DE/rand-to-best/1/bin: ~vj,G+1 = ~xj,G + λ·(~xbest,G − ~xj,G ) + F ·(~xr2 ,G − ~xr3 ,G ) , (2.9) DE/current-to-rand/1/bin: ~vj,G+1 = ~xj,G + λ·(~xr3 ,G − ~xj,G ) + F ·(~xr1 ,G − ~xr2 ,G ) . 14 (2.10) Diplomová práce 2.4.3 2.4 Diferenční evoluční algoritmus Grafické zobrazení základního DE algoritmu Jak již bylo uvedeno, diference, mutace, křížení a selekce jsou základními pilíři celého algoritmu. Pozorný čtenář si jistě povšiml jiného pořadí mutace a křížení, než-li je tomu u GA. Pro snadnější pochopení obou algoritmů uvádím na obrázku 2.3 schéma základního DE algoritmu, které můžeme konfrontovat se schématem GA na obrázku 2.1. v podkapitole 2.3.2. Obrázek 2.3: Schéma reprezentující základní diferenční evoluci (DE/rand/1/bin) 2.4.4 Shrnutí DE algoritmů Cílem DE algoritmů, tak jako u GA, je nalezení nejlepšího řešení optimalizované úlohy. Toto řešení získáme na základě ohodnocovací funkce, která rozhoduje o kvalitě možných řešení. Kritickým bodem DE algoritmů je stagnace (uvíznutí) v lokálním minimu. Její pravděpodobnost závisí na: • velikosti populace (N P ), 15 Diplomová práce 2.4 Diferenční evoluční algoritmus • váhovací konstantě (F ), • faktoru křížení (CR), • současné populaci, a • účelové funkci. Pravděpodobnost uvíznutí v lokálním minimu můžeme snížit, budeme-li se držet následujících doporučení: a) s početnější populací snižujeme rizika stagnace, jelikož tím zvětšujeme diverditu mezi jedinci – existuje nepsané pravidlo ohledně velikosti populace, které říká: „velikost populace má být volena desetkrát větší, než-li je počet proměnných v jednom jedinciÿ; b) užití F = 1 se nedoporučuje, jelikož tím dostáváme několikanásobnou situaci identických potencionálních testovaných vektorů, tj. snižujeme tak rozdílnost eventuálních řešení; c) počet možných řešení se rapidně sníží, užijeme-li CR = 1. Příklad vlivu volby řídících konstant nalezneme v literatuře [13]. Přestože i v tomto algoritmu může nastat stagnace, můžeme konstatovat, že se jedná o velmi silný, snadno implementovatelný a robustní optimalizační algoritmus, který prohledává oblast možných řešení paralelním přístupem. Paralelní přístup je velmi efektivní metodou, jelikož nám v jediném cyklu poskytuje hned několik možných řešení. Na základě těchto vlastností se DE jeví jako velmi progresivní optimalizační algoritmus. V této kapitole jsme se seznámili se základními vlastnostmi DE algoritmu, mezi které patří mutace, křížení a selekce. Dále jsme si popsali jeho matematickou interpretaci (rovnice (2.5)), na základě které by neměl být problém daný algoritmus navrhnout a v praxi aplikovat. Kromě matematické interpretace je zde uvedeno i ilustrační schéma na obrázku 2.3, které bylo konfrontováno se schématem genetického algoritmu na obrázku 2.1. Do hlavních rozdílů mezi oběma algoritmy řadíme: a) formu zápisu položek jednotlivých jedinců (binární (GA) vs. dekadická (DE) reprezentace), b) rozdílnou posloupnost užití mutace a křížení v optimalizačním cyklu. DE se jeví být jedním z prvních evolučních algoritmů k řešení „specializované práceÿ, tj. práce, která mohla být v minulosti řešena jen experty v daném oboru. Takovou prací je například návrh aerodynamických křídel v leteckém průmyslu [10]; 16 Diplomová práce 2.5 Simplexová metoda paprskový program, který umožní návrh celého optického systém, pouze se základními znalostmi optického návrhu, jak je zmiňováno v [15, strana 105]; či v neposlední řadě návrh číslicových filtrů publikovaný v [17]. V úvodu podkapitoly byl zmíněn hlavní nedostatek této metody, který spočívá ve velké časové náročnosti při hledání ideálního řešení. Vhodným řešením vedoucím ke zrychlení optimalizace heuristických metod se ukázala kombinace se standardní optimalizační metodou Downhill Simplex [19] od tvůrců J. A. Nelder a R. Mead publikovanou v roce 1995. Za účelem realizace co nejlepšího algoritmu s co nejrychlejší konvergencí k hledanému řešení jsem se vydal cestou kombinace DE algoritmu spolu s Downhill Simplex metodou. Následující podkapitola pojednává o standardní Downhill Simplex metodě (dále jen simplexová metoda), abych tak ucelil přehled veškerých mnou užitých algoritmů. 2.5 Simplexová metoda Downhill Simplex, nebo-li simplexová metoda bývá v publikacích obvykle označována zkratkou DS. Odlišné označení metody je spíše vzácností, ale i přesto se s ním můžeme setkat například v [12], kde autoři zmiňovaného článku vycházeli pro označení simplexové metody z tvůrců tohoto algoritmu, jimiž jsou J. A. Nelder a R. Mead, a podle nich pojmenovali simplexovou metodu jako NM algoritmus. Jak již bylo uvedeno v podkapitole 2.1.1, simplexovou metodu řadíme do skupiny prohledávajících metod, jejichž hlavním cílem je minimalizace libovolné funkce o N proměnných bez použití derivace dané funkce. Simplexová metoda je velmi rychlý lokální optimalizační nástroj. Její přednost spočívá ve velmi vysoké rychlosti. Na druhou stranu, její nevýhodou je již zmiňovaná lokální selekce prohledávaného prostoru, jelikož tím nezaručujeme nalezení globálního minima. V n-dimenzionálním optimalizačním problému je simplex geometrický útvar o (n + 1) vrcholech. Po jeho počáteční definici je modifikován tak, že hladce běží2 k lokálnímu minimu. Při cestě k minimu jsou užity tři základní kroky: reflexe (odraz), expanze (rozpínání), kontrakce (smršťování). V následující části je popsána matematická interpretace DS metody doplněná schematickým popisem. Více se o vlastnostech této metody dozvíme v [18] a [19]. 2 v překladu downhill 17 Diplomová práce 2.5.1 2.5 Simplexová metoda Základní popis simplexové metody Metoda spočívá v posouvání vrcholů simplexu (např. čtyřstěnu v trojdimenzionálním prostoru) podle jistých pravidel směrem k minimu. Pravidla se dají zjednodušeně shrnout do tří základních pohybů: reflexe, expanze a kontrakce. Nejdůležitějším mechanismem DS metody je reflexe. V reflexi jde o myšlené přenesení nejvyššího (a tudíž nejhůře položeného) bodu souměrně k těžišti tělesa. Pokud je tato jeho nová poloha nejnižší ze všech ostatních, dochází k definování nového bodu na místě dvoujnásobné vzdálenosti od těžiště tělesa. Tento pohyb se nazývá expanze. Pokud reflektovaná poloha zůstává stále nejvyšší, dochází ke kontrakci – umístění vrcholu do středu úsečky spojující původní vrchol a těžiště. Pokud je i po kontrakci uvažovaný vrchol nejvyšší, dochází ke smrštění – všechny vrcholy se posunou směrem k nejnižšímu o polovinu původní délky. Průběh celé jedné iterace optimalizace je zobrazen na následujícím obrázku 2.4. Obrázek 2.4: Downhill Simplex: reflexe, expanze a kontrakce pro n = 3 Již víme, že DS metoda se skládá ze tří základních částí, ale ještě přesně neznáme jejich matematický popis. Proto se v následujícím textu budu věnovat jejímu stručnému, avšak plně dostačujícímu popisu. 18 Diplomová práce 2.5.2 2.5 Simplexová metoda Matematická interpretace simplexové metody Na obrázku 2.5 je schéma simplexového algoritmu, ve kterém figurují konstanty α, β a γ, o kterých ještě záměrně nebyla vedena řeč. Nyní je ta pravá chvíle si o těchto veličinách něco říci. Tyto konstanty zásadně ovlivňují rychlost konvergence hledání minima optimalizované funkce. Vliv volby velikostí jednotlivých konstant na rychlost konvergence nalezneme v [19]. Než-li se plně začneme věnovat samotnému matematickému popisu, uvedu význam jednotlivých řídících konstant: α – je reflexní koeficient, β – je expanzní koeficient a γ – je koeficient kontrakce. Obrázek 2.5: Diagram Downhill Simplex metody 19 Diplomová práce 2.5 Simplexová metoda Stále mějme na paměti, že simplexová metoda pracuje s (n+1) body x1 , ..., x(n+1) n-dimenzionálního prostoru, které jsou uspořádány tak, aby pro odpovídající funkční hodnoty účelové funkce y platilo: y1 ≤ y2 ≤ ... ≤ yn+1 . V každé iteraci je pak bod s největší hodnotou účelové funkce x(n+1) zaměněn za vhodnější bod s nižší funkční hodnotou. Iterace začíná zkonstruováním testovacího bodu pomocí operace reflexe, který získáme následujícím vztahem: Reflexe: xr = x + α(x − x(n+1) ) = (1 + α)x − αxh , (2.11) kde xr – bod získaný reflexí, α – volená kladná konstanta (α > 0) označována jako koeficient reflexe, x – těžiště vrcholů: n 1X x= xj , n j=1 j 6= h , x(n+1) – má největší funkční hodnotu, nebo-li jej můžeme označovat xh 3 . Jestliže y leží mezi yh a yl , tak xh je nahrazen xr a následně opakujeme danou iteraci (2.11), avšak již s novým simplexem. Pokud yr < yl tj. reflexe nalezla nové minimum, tak provedeme expanzi z bodu xr do bodu xe relací: Expanze: xe = γxr + (1 − γ)x = x + γ(xr − x) = = x + αγ(x − x(n+1) ) = (1 + αγ)x − αγx(n+1) , (2.12) kde xe – bod získaný expanzí, γ – koeficient expanze, který je volen větší jak jedna (γ > 1). Za předpokladu, že ye < yl nahradíme xh bodem xe a opakujeme iteraci (2.12); pokud však je ye > yl tak expanze selhala a bod xh je nahrazen bodem xr a opět se bude iterace opakovat. Jestliže proces reflexe nalezl k bodu xh takový bod xr , pro který platí yj < yr , ∀j 6= h, tzn. že nahradíme xh bodem xr a tím ponecháme yr v maximu. Pak definujeme nový xh a to buď z původního xh nebo z nového xr . Jakýkoliv bod z těchto dvou maxim vybereme, musíme jej vždy snížit pomocí kontrakce, ve tvaru: 3 h – high (velký) resp. l – low (malý) 20 Diplomová práce 2.5 Simplexová metoda Kontrakce: xc = βxr + (1 − β)x = x + β(xr − x) = = x + αβ(x − x(n+1) ) = (1 + αβ)x − αβx(n+1) , (2.13) kde xc – bod získaný kontrakcí, β – koeficient kontrakce v rozsahu 0 až 1 (0 < β < 1). 2.5.3 Shrnutí vlastností simplexové metody Simplexová metoda pracuje se souborem (n + 1) bodů n-rozměrného prostoru, na které jsou aplikovány tři základní procesy v jednotlivých iteracích: a) reflexe – ke zkonstruování testovacího bodu xr , b) expanze – k roztažení simplexu ve směru poklesu optimalizované funkce, c) kontrakce – ke zmenšení polygonu. Předností DS metody je velmi vysoká rychlost konvergence k nalezení minima v dané oblasti. Z toho plyne její nevýhoda, kterou je skutečnost, že nám tato metoda nezaručuje nalezení globálního minima, nýbrž pouze minima lokálního. Další nežádoucí vlastnost DS metody se projevuje při nelineárním programování, neboť nám tato metoda neřeší problém v ohraničeném prostoru. Tento fakt je dán koeficienty odrazu, expanze a kontrakce, které jsou pevně zadané a při iteracích tak může dojít i k překročení daných mezí. I přes tyto nevýhody je tato metoda dle [10] a [11] nejvhodnější pro kombinaci s heuristickými metodami GA a DE. 21 Kapitola 3 Cíle diplomové práce V současné době jsou kladeny čím dál tím více specifičtější požadavky na realizaci lineárních obvodů. Vzhledem k tomu, že dané požadavky nelze zpravidla realizovat klasickou cestou návrhu, byly stanoveny cíle této diplomové práce do následujících čtyř bodů: 1. Ověřte možnosti využití stochastických algoritmů (genetické a evoluční) pro optimalizovaný návrh integrovaných aktivních filtrů OTA-C. 2. Při vývoji návrhového algoritmu respektujte požadavky na minimalizaci rozptylu hodnot obvodových prvků, dosažení minimálních citlivostí parametrů přenosové funkce na změny hodnot obvodových prvků, dosažení optimálních dynamických poměrů uvnitř struktury a na reálné vlastnosti aktivního prvku. 3. Pro vývoj a testování algoritmu použijte matematický program MAPLE, případně MATLAB. 4. Návrhový algoritmus ověřte na řešení konkrétního filtru podle zadání vedoucího práce. 22 Kapitola 4 Metody zpracování 4.1 Výběr optimalizačního algoritmu Prvním krokem při tvorbě vlastní optimalizační metody byl vhodný výběr základního optimalizačního algoritmu a jeho následné prostudování s co nejnovějšími a nejaktuálnějšími poznatky z dané problematiky. Při návrhu analogových elektrických filtrů můžeme postupovat dvěma zcela odlišnými cestami. První z nich je návrh klasickou numerickou metodou, která je velmi dobře zpracována v publikaci [20] a v mnoha dalších odborných článcích a publikacích. Ve své podstatě se jedná o konvenční přístup, pomocí kterého dokážeme bez sebemenších problémů navrhnout ideální filtr. Nabízí se nám otázka, proč hledat jinou metodu návrhu, když užitím konvenčního přístupu dovedeme navrhnout filtr splňující naše požadavky. Odpověď není nijak obtížná. Ačkoliv tímto přístupem dokážeme velmi dobře a rychle navrhnout ideální filtr, nesmíme opomenout podstatu tohoto přístupu. Tou je skutečnost, že je navržen pro syntézu ideálních filtrů, tj. filtrů, kde nejsou uvažovány reálné parametry obvodových prvků, jako je například vliv ESL a ESR (příloha G) použitých kondenzátorů, konečného zesílení aktivních prvků či jejich frekvenční závislost. Dalším důvodem je skutečnost, jak již bylo v kapitole 3 řečeno, že v dnešní době jsou kladeny čím dál tím více specifičtější požadavky na realizaci filtru. K těmto požadavkům řadíme například omezenou hodnotu skupinového zpoždění, nebo – jak je tomu v případě této diplomové práce – požadavky na dynamickou optimalizaci, minimální rozptyl hodnot užitých obvodových prvků atd. V takovýchto situacích se dostáváme k návrhu filtru s vícekriteriálními požadavky, které lze s úspěchem řešit užitím nekonvenčních metod. Mezi nekonvenční metody řadíme například stochastické algoritmy. Jelikož se v této práci zabývám multikriteriálními požadavky na návrh filtru, připadají v úvahu v odvětví nekonvenčních metod dvě stochastické metody. První z nich jsou genetické algoritmy, kterými jsem se blíže zabýval v kapitole 2.3. Druhou stochastickou meto- 23 Diplomová práce 4.2 Programy užité k implementaci algoritmu a verifikaci výsledku dou jsou evoluční algoritmy, jimž jsem se věnoval v kapitole 2.4. Po otestování obou algoritmů jsem si vybral pro zpracování této diplomové práce diferenční evoluční algoritmus. Přednost zvoleného algoritmu oproti genetickému algoritmu spočívá v dosažení větší přesnosti výsledného nalezeného řešení. 4.2 Programy použité k implementaci algoritmu a verifikaci výsledku Nyní již víme pro jakou nekonvenční metodu jsem se rozhodl, nicméně stále ještě neznáme matematický program, který jsem použil k její implementaci. S ohledem na cíle diplomové práce, spadající do oblasti praktického využití numerických metod, byl pro zpracování řešené problematiky zvolen softwarový produkt Maple 10 od firmy The MaplesoftTM [21], který je považován za standard pro řešení numerickosymbolických úloh. Volba tohoto programu byla z velké části určena požadavky na přesnost a rychlost výpočtu. Mimo tyto skutečnosti se matematický program Maple jevil jako nejvhodnější kandidát k použití i z hlediska dalších dostupných programových vymožeností poskytovaných samotným produktem. K ověření získaných výsledků jsem použil dvou softwarových programů. Prvním byl software OrCAD od společnosti Cadence Design Systems, Inc. [22], který disponuje celou řadou programů, pomocí kterých můžeme provádět návrh a simulace elektronických schémat až po finální návrh odpovídající desky plošných spojů (DPS). Programem používaným k simulacím obvodových struktur v softwarovém produktu OrCAD je PSpice A/D. Jeho velkou předností je možnost simulace obvodů s reálnými prvky resp. s makromodely užitých funkčních bloků. Z těchto důvodů jsem se rozhodl využít tento program k verifikaci reálného chování analyzovaného zapojení. Druhým, pro mojí diplomovou práci neméně důležitým softwarovým produktem, byl program SNAP 2.61 (Symbolic Network Analysis Program), který je volně dostupný na [23] a jehož hlavní předností je možnost vypočtení citlivostních parametrů obvodu, které nelze simulovat v programu PSpice A/D. 24 Kapitola 5 Popis užitého DESA algoritmu Základ mého algoritmu je tvořen paralelní přímo vyhledávací metodou založenou na principu evolučních algoritmů, jenž je rozšířena o simplexovou optimalizační metodu. Blíže o simplexové metodě pojednává podkapitola 2.5, kde je uveden její stručný popis. Doplněním DE algoritmu o simplexovou metodu získáváme velmi silný a rychlý numerický nástroj, kterým lze optimalizovat nejnáročnější úlohy s větším počtem nezávisle proměnných. Vzhledem k tomu, že je mnou vytvořený algoritmus založen na použití kombinace diferenční evoluce a simplexové metody, pojmenoval jsem jej zkratkami těchto algoritmů. Touto cestou vzniká označení DESA (Differential Evolution & Simplex Algorithm) algoritmus. Příklad využití této metody při syntéze elektrických analogových filtrů je uveden v kapitole 6. Jedná se o návrh a optimalizaci aktivního analogového filtru typu dolní propust s optimalizovaným nestandardním průběhem přenosové funkce na předem kladené požadavky. Vlastní popis DESA algoritmu je předložen v následujících pěti podkapitolách. 5.1 Evoluční část DESA algoritmu Samotná evoluční část DESA algoritmu pracuje s populací jedinců, na kterých je simulován proces evoluce. Každý jedinec je zde reprezentován vektorem proměnných, na základě kterých je pak ohodnocen účelovou funkcí. Ohodnocení jedince nám pak dává představu o tom, zda je daný jedinec vhodný pro další použití v algoritmu či nikoliv. Ohodnocení není součástí algoritmu diferenční evoluce a je prováděno samostatně mimo algoritmus fitness funkcí. Fitness funkce tedy zajišťuje toto ohodnocení, které pak řídí prohledávání daného prostoru. Jedincem je v našem případě míněn například vektor nezávislých proměnných, který je tvořen nulami a póly hledané přenosové funkce navrhovaného obvodu. Nalezením minima vhodně navržené účelové funkce je pak získáno řešení aproximační 25 Diplomová práce 5.1 Evoluční část DESA algoritmu úlohy. Algoritmus tedy při prohledávání zadaného prostoru pracuje pouze s funkčními hodnotami účelové funkce, které si vyžádá od externí procedury. Sestavený DESA algoritmus využívá množiny D-dimenzionálních vektorů ~xj,G , přičemž jednotlivé složky vektoru jsou navzájem nezávislé (například nuly a póly přenosové funkce) a to pro každou generaci G. V jedné generaci je pak N P takto definovaných vektorů, na které je aplikován proces evoluce. Počet prvků množiny N P se během minimalizačního procesu nemění. Prvním krokem k realizaci minimalizačního cyklu je inicializace nulté populace, která je vytvořena náhodně v uživatelem omezeném prostoru, který vznikne stanovením přípustných hodnot pro každou proměnnou. Nyní na inicializační algoritmus aplikujeme první krok DE algoritmu, který nám vygeneruje nový noisy vektor dle: ~vj,G+1 = ~xr1 ,G + F ·(~xr2 ,G − ~xr3 ,G ) , (5.1) kde r1 , r2 , r3 jsou náhodně zvolená celá navzájem rozdílná čísla z množiny r1 , r2 , r3 ∈ {1, 2, ..., N P }, F je reálná váhovací konstanta s násobným faktorem v intervalu F ∈ h0, 1i, ~xj,G je vektor současného jedince v G-té generaci. Po provedení první operace dané rovnicí (5.1) následuje náhodný proces křížení, který nám zvětšuje rozmanitost mezi jednotlivými jedinci. Výsledkem je testovací vektor ~uj,G+1 . Idea křížení je ilustrativně zpracována na obrázku 5.1 pro případ, kdy průběh křížení proběhl pro položky i = 3, i = 4 a i = 5. Obrázek 5.1: Ilustrace procesu křížení 26 Diplomová práce 5.2 Integrace simplexové metody do DESA algoritmu Abychom mohli rozhodnout, zda se stane testovací vektor ~uj,G+1 populačním členem generace G + 1, je tento vektor porovnáván se stávajícím vektorem ~xj,G G-té generace. Jestliže testovací vektor ~uj,G+1 vykazuje lepší ohodnocení účelovou funkcí, než-li je tomu u vektoru ~xj,G , je stávající vektor ~xj,G nahrazen tímto testovacím vektorem ~uj,G+1 . V opačném případě si vektor ~xj,G ponechává stejné parametry i do generace G + 1. 5.2 Integrace simplexové metody do DESA algoritmu V předchozí kapitole jsme si vysvětlili evoluční část DESA algoritmu, která nám poskytne v každé generaci N P nových možných řešení. Jelikož se však DESA algoritmus skládá ze dvou optimalizačních metod, kterými je DE algoritmus a simplexový algoritmus, vysvětlím v této kapitole přednosti, které mě vedly k jejich sloučení a vytvoření DESA algoritmu. DESA algoritmus funguje ve dvou fázích. V první fázi proběhne klasický DE algoritmus, který zajišťuje rozmanitost členů populace dané generace. Výsledkem první fáze je potom tzv. mezipopulace. Ve druhé fázi DESA algoritmu je pak na procentuální část mezipopulace (PPGIP – Percent Part of Gen from Intermediate Population) aplikován simplexový algoritmus, který nachází minimum ve svém blízkém okolí. Jak již bylo uvedeno výše, DS zajišťuje rychlejší nalezení lokálních minim, zatímco DE se stará o to, aby DESA neuvízla v některém lokálním minimu, a rozmítá členy generace do prohledávaného prostoru. Při testování rychlosti nalezení optimálního řešení obou algoritmů (DESA a DE) jsem dospěl k závěru, že DESA algoritmus nalezl optimální řešení 8 ÷ 10krát rychleji, než tomu bylo u klasického DE algoritmu užitého v rámci DESA algoritmu. Finální podoba procesu integrace simplexového algoritmu do DESA algoritmu je ilustrativně zobrazena na obrázku 5.2. Jak si můžeme povšimnout, nejedná se o příliš složitý algoritmus, nicméně vykazuje ve srovnání s klasickými DE algoritmy podstatně kratší konvergenční doby. Výše popsaným začleněním simplexové metody do DE algoritmu obdržíme velmi rychlý a robustní optimalizační algoritmus DESA, spojující výhody obou algoritmů. Velkou předností tohoto specifického algoritmu je efektivní řešení multikriteriálních úloh, jakou je například téma této diplomové práce. 27 Diplomová práce 5.2 Integrace simplexové metody do DESA algoritmu Obrázek 5.2: Generace nové populace pomocí DESA algoritmu 5.2.1 Modifikace simplexové metody Základní princip simplexové metody je popsán v podkapitole 2.5, kde jsme se také dočetli o jistých nevýhodách této metody. Jednou z nich je skutečnost, že neřeší problém ohraničeného nelineárního programování. Tento problém je dán tím, že koeficienty odrazu, expanze a kontrakce jsou zvoleny pevně a při iteracích tak může dojít k překročení daných mezí. Jelikož využívám DS metodu přímo dostupnou v matematickém programu Maple, nemohu dané konstanty měnit a zamezit tak překročení hranic oblasti. Velikosti konstant DS metody přednastavené v programu Maple jsou α = 1, β = 12 , γ = 2. Tyto hodnoty konstant nám dle literatury [19] zajišťují nejlepší činnost algoritmu, resp. nalezení minima po nejmenším počtu iterací. Problém omezení prohledávané oblasti, který je pro naší aplikaci nepřehlédnutelný, jsem odstranil zavedením pomocné funkce, která účinně lokalizuje DESA v prohledávaném prostoru. Pokud jsou definované meze překročeny, nabývá hodnota účelové funkce mnohonásobně větších hodnot, než-li je tomu u nejhoršího jedince a to nezávisle na jeho velikosti. Tato část je realizována prostřednictvím pomocné funkce P (x) = A(2 − sign(x − x1 ) + sign(x − x2 )), která je přičtena k ohodnocení účelovou funkcí K (viz podkapitola 5.5). V případě, že dostaneme hodnotu obvodového prvku v mezích, je k účelové funkci přičtena nula, v opačném případě je k účelové funkci přičtena velmi vysoká reálná hodnota A (v ideálním případě A→ ∞). Pro názornost je na obrázku 5.3 zobrazeno jednodimenzionální ohraničení obecného optimalizovaného parametru x. 28 Diplomová práce 5.3 Řídící konstanty DESA algoritmu Obrázek 5.3: Příklad jednodimenzionálního ohraničení obecného optimalizovaného parametru x 5.3 Řídící konstanty DESA algoritmu Jelikož je DESA algoritmus založen na iteracích DE algoritmu, jehož řídícími proměnnými jsou konstanty F , CR a N P , jsou i tyto parametry spolu s parametrem P P GIP řídícími konstantami DESA algoritmu. S jednotlivými konstantami jsme se již seznámili v kapitole 2.4.1, kde jsme si řekli jakých hodnot nabývají a v jaké etapě evoluce se uplatňují. V této kapitole si povíme o funkci jednotlivých řídících konstant a o jejich optimálním nastavení. F – je násobný váhovací faktor mutace uplatňující se při generaci noisy vektoru. Hodnotu parametru doporučuji nastavit na velikost F = 0,5 ÷ 0,8. Menší hodnoty vedou k předčasné konvergenci a větší naopak ke stagnaci populace. CR – je faktor křížení, který nám z velké části zajišťuje diverditu jedinců v populaci a částečně tak zabraňuje stagnaci. Hodnotu parametru doporučuji nastavit na velikost CR = 0,5 ÷ 0,8. Menší hodnoty vedou ke zpomalení nalezení optima a vyšší zvyšují riziko stagnace a rapidně snižují počet možných řešení. NP – je počet jedinců v populaci jedné generace. Hodnota tohoto parametr je v publikacích uváděna jako násobná hodnota nezávisle optimalizovaných proměnných D. V [15] je hodnota tohoto parametru doporučována N P = 20D, jinak je tomu v [5], kde je hodnota tohoto parametru doporučována N P = 10D, což mohu potvrdit za dostačující. Mnou doporučovaná hodnota počtu jedinců v populaci jedné generace je tedy N P = 10D. Větší populace nám sice ještě více snižuje riziko stagnace, ale na druhou stranu se stává algoritmus výpočetně složitějším a nalezení řešení je tak mnohonásobně oddáleno. Nižší počet jedinců v populaci nedoporučuji, jelikož tím snižujeme schopnost nalezení 29 Diplomová práce 5.4 Řešení stagnace DESA algoritmu optima a snáze tak může dojít k předčasné konvergenci k jednomu řešení. Nicméně jsou i aplikace, kde je nižší počet postačující. Volba velikosti populace je tedy individuální záležitostí a závisí na charakteru řešeného případu. PPGIP – je procentuální část genů vzatá z přechodné mezipopulace. Hodnotu parametru doporučuji volit v rozmezí P P GIP = 0,1 ÷ 0,5. Menší či větší hodnoty vedly k pomalejší optimalizaci obvodu. 5.4 Řešení stagnace DESA algoritmu V předchozí kapitole jsme se dočetli o nastavení DESA algoritmu a možnosti vzniku stagnace algoritmu při nesprávném nastavení jednotlivých řídících proměnných. Proto se v této kapitole věnuji rozboru stagnace a jejímu možnému řešení. Typicky se předčasná stagnace u DE algoritmů projevuje v těchto případech: • populace ztratí vzájemnou rozdílnost, • populace konverguje k lokálnímu minimu, • vyhledávací algoritmus postupuje velmi pomalu či vůbec. Prvním případem, při kterém může dojít ke stagnaci je situace, kdy populace ztratí vzájemnou rozdílnost. Tomu lze zabránit zvýšením počtu jedinců populace nad doporučenou hodnotu, což ovšem vede ke zpomalení průběhu optimalizace. Dalším případem je konvergence k lokálnímu minimu, které je v algoritmu DESA častějším úkazem, než-li je tomu u DE algoritmů. Je to určité znevýhodnění, které je způsobeno přítomností DS algoritmu jako vyhledávací metody. Na druhou stranu nám kombinace DE a DS přináší více „proÿ než „protiÿ, a proto považuji DESA za výhodnější i přes tuto optimalizační „daňÿ. Řešení uvíznutí jedinců v lokálním minimu je možné snížením počtu jedinců vybraných do druhé fáze DESA, na něž je aplikován simplexový algoritmus. Posledním případem stagnace je situace, kdy vyhledávací algoritmus postupuje velmi pomalu či vůbec. V tomto případě již s algoritmem nemůžeme příliš manipulovat a proto jsem se rozhodl při tomto typu stagnace k zastavení vývoje a následném spuštěním s pozměněnými řídícími parametry. Vyhodnocení, zda se algoritmus vyvíjí či ne, jsem realizoval vzájemným porovnáním možných řešení. V případě, kdy jsou si řešení velmi podobná nebo stejná, je vývoj zastaven. 30 Diplomová práce 5.5 5.5 Účelová funkce Účelová funkce Jak již bylo v kapitole 5.1 uvedeno, účelová resp. ohodnocovací funkce K (kvalita) není přímo částí DE algoritmu a stejně tak je tomu i v případě DESA. Algoritmus DESA se na ohodnocení jednotlivých jedinců pouze „zeptáÿ. Jedná se tedy o nezávislou funkci, která každému řešení (jedinci) přiřadí určitou hodnotu vypovídající o jeho kvalitě K. Samotná ohodnocovací funkce může nabývat různých podob. Forma, jakou je ohodnocovací funkce nadefinována, záleží pouze na uživateli. V případě DESA algoritmu byly navrženy dvě odlišné ohodnocovací funkce, které jsou aplikovány pro každou specifickou úlohu samostatně (viz kapitola 6). V prvním případě je návrh takové funkce velmi snadný (vztah (5.2)). Vzhledem k tomu, že se snažíme získat průběh modulové charakteristiky splňující toleranční schéma daného filtru, které může být obecně i nestandardního charakteru, postačí nám zvolit si požadovaný útlum v konečné množině bodů {δ1 , δ2 , ..., δn }. Ohodnocení každého jedince, resp. modulové charakteristiky, kterou reprezentují potom provedeme prostým součtem odchylek funkčních hodnot charakteristiky v bodech δi od požadovaných hodnot útlumu v těchto bodech. Matematicky tedy: K1 (δ) = n X |E(δi ) − e(δi )| , (5.2) i=1 kde E(δi ) je hodnota útlumu požadovaného v bodě δi , e(δi ) je hodnota útlumu skutečného průběhu optimalizované charakteristiky v bodě δi , δi značí body, ve kterých se zjišťuje ohodnocení funkcí K1 (δ); v našem případě se jedná o hodnoty normovaného kmitočtu Ω, n značí celkový počet testovaných bodů. Ve druhém zjednodušeném případě má účelová funkce K2 (i, δ) odlišnou podobu (vztah (5.3)) a to z toho důvodu, že je tato funkce použita k ohodnocení jak požadavků na přenosovou funkci H(s), tak i požadavků na dynamické poměry. V tomto případě je tedy kladen požadavek na zachování tvaru přenosové funkce, a proto je volena ohodnocovací funkce následujícím vztahem: K2 (i, δ) = W1 2 k X E1 (i) − e1 (i) i=1 E1 (i) + W2 n X |E2 (δl ) − e2 (δl )| , l=1 kde E1 (i) je požadovaný koeficient přenosové funkce H(s), e1 (i) značí algoritmem navržený koeficient přenosové funkce H(s), 31 (5.3) Diplomová práce 5.5 Účelová funkce k značí celkový počet koeficientů přenosové funkce H(s) E2 (δl ) je hodnota požadovaného průběhu dynamických poměrů optimalizovaného filtru v bodě δl , e2 (δl ) je hodnota skutečných dynamických poměrů filtru v bodě δl , δl značí body, ve kterých se zjišťuje ohodnocení funkcí K2 (i, δ); v našem případě se jedná o hodnoty normovaného kmitočtu Ω, n značí celkový počet testovaných bodů, W1 , W2 jsou váhovací koeficienty. Jak si můžeme povšimnout, v účelové funkci K2 (i, δ) je použito dvou váhovacích koeficientů W1 a W2 . Ty jsou důležitou součástí této funkce, protože jejich velikostmi upřesňujeme, resp. zpřísňujeme požadavky na optimalizované části obvodu. Uveďme si jednoduchý příklad váhování. Uvažujme například, že W1 > 100 W2 . V takto nastaveném DESA algoritmu jsme zadali 100krát větší požadavek na první část účelové funkce K2 (i, δ), nebo-li na přesnost koeficientů přenosové funkce H(s), na úkor dynamických poměrů optimalizovaného a navrhovaného filtru OTA-C. Optimální nastavení vah W1 a W2 není lehkou záležitostí. Pokud se nám však podaří správně nastavit tyto parametry, dosáhneme velmi kvalitních výsledků. Striktní pravidla pro nastavení vah bohužel neexistují. Uživatel se proto musí spolehnout na svou vlastní intuici, popř. zkušenosti, které získal praxí. Ať se jedná o první či druhý případ účelové funkce, vždy je naším cílem její minimalizace. Minimalizací účelové funkce se postupně přibližujeme ke splnění zadaných požadavků. Vhodná, nebo naopak nevhodná volba účelové funkce je velmi kritickým bodem jak u DE tak i u DESA algoritmu. Nevhodnou volbou účelové funkce či vah nemusíme konečného řešení nikdy dosáhnout. Proto musíme být při návrhu ohodnocovací funkce zvláště obezřetní. S ohledem na výše uvedená rizika jsem sestavil dvě odlišné účelové funkce K1 (δ) a K2 (i, δ), které se v DESA algoritmu osvědčily, a mohu je tedy uživateli doporučit. 32 Kapitola 6 Příklad řešení konkrétní aplikace Cílem této diplomové práce je ověření možnosti využití stochastických algoritmů pro návrh a optimalizaci aktivního filtru OTA-C. Za tímto účelem byl pro tuto aplikaci vynalezen a použit algoritmus DESA, jehož funkce je demonstrativně otestována na vzorovém příkladu v této kapitole. 6.1 Úvod do problematiky Standardní návrh filtrů OTA-C uvedený například v [25, kapitola 6] nezahrnuje ve svých návrhových krocích požadavky na dynamické poměry uvnitř struktury filtru, ani na minimalizaci rozptylu hodnot obvodových prvků, či na dosažení minimálních citlivostních parametrů přenosové funkce na změny hodnot obvodových prvků. Standardní návrh filtrů OTA-C dále nerespektuje při syntéze reálné vlastnosti užitých transkonduktančních operačních zesilovačů a do vlastního návrhu zahrnuje reálné vlastnosti pouze v případě návrhu LC filtrů, které jsou respektovány zpřísněním na útlumové a kmitočtové ose s využitím vztahů uvedených v literatuře [25, strany 18 a 19]. Tato problematika vedla k úvahám o tom, zda by pro tyto účely nemohla být užita jiná, nestandardní metoda návrhu filtrů na bázi stochastických algoritmů. Nalezení odpovědi na tuto otázku je cílem této diplomové práce. V dalším bude zpracováno ověření možnosti využití stochastických algoritmů pro návrh a optimalizaci aktivního filtru OTA-C. Návrh filtru je postupně řešen ve třech krocích: 1. Nalezení normované přenosové funkce filtru OTA-C 2. Realizace obvodu s užitím ideálních obvodových prvků 3. Optimalizace obvodu s přihlédnutím na zmíněná omezení 33 Diplomová práce 6.1 Úvod do problematiky Nyní se zabývejme otázkou dynamické optimalizace, a tím proč je pro nás tak důležitá. Připomeňme si, že se jedná o zajištění stavu, kdy maxima výstupních napětí všech aktivních prvků v obvodu nepřekročí stanovené meze. Definice těchto mezí pro účely této práce bude provedeno v kapitole 6.2. V ideálním případě by tato maxima měla být shodná a neměla by být větší, než maximum výstupní napětí. Při dynamické optimalizaci uvnitř filtru porovnáváme tedy maxima napětí na jednotlivých výstupech OTA s maximem výstupního napětí filtru. Informace o těchto maximech získáme analýzou dynamických poměrů již navrženého filtru. Jelikož naší optimalizovanou obvodovou strukturou je zapojení filtru na bázi obvodové struktury OTA-C, nelze takto zapojený filtr (dle literatury [25, strana 183]) dynamicky optimalizovat bez přidání dalších pomocných funkčních bloků. Metodu, ve výše zmiňované literatuře jsem otestoval (blíže podkapitola 6.6) a došel jsem k závěru, že není pro naší aplikaci použitelná, jelikož u dynamicky zoptimalizovaného obvodu se změnila přenosová funkce H(p). Tento důvod spolu s nutností zvýšeného počtu potřebných obvodových prvků k realizaci filtru mě vedly k alternativnímu řešení dynamické optimalizace pomocí DESA algoritmu. Dynamickou optimalizaci obvodu provádíme ze účelem korektního chování užitých zesilovačů, v našem případě transkonduktančního operačního zesilovače. Jedná se především o linearitu zesilovače, která je důležitá z pohledu signálu. V případě nezoptimalizovaného obvodu může totiž dojít ke zkreslení tohoto signálu a tím k jeho nevratné degradaci. Spolu s požadavkem na dosažení optimálních dynamických poměrů uvnitř struktury filtru nás též zajímá citlivost obvodu. Citlivost je definována jako změna funkce (veličiny, přenosu, parametru přenosové funkce) vztažená ke změně parametru (prvku obvodového modelu, parametrů přenosové funkce). Při návrhu filtru pracujeme s citlivostmi na malé změny parametrů, které jsou způsobeny technologickou tolerancí či změnou teploty prostředí, ve kterém je daný filtr použit. Citlivosti mohou být definovány například jako první derivace podle vztahu (6.1). Takto definovaná citlivost se označuje jako absolutní a je vhodná pro vyhodnocení změny obvodové funkce (například při toleranční analýze), ale nelze podle ní objektivně porovnávat vliv různých prvků v zapojení; závisí totiž na jejich velikosti. Proto zpravidla používáme tzv. relativní citlivost definovanou vztahem (6.2). SF,xi = ∂F , ∂xi ∂F SxFi = F , ∂xi xi kde F je funkce, jejíž citlivost počítáme a xi je parametr této funkce. 34 (6.1) (6.2) Diplomová práce 6.2 6.3 Řešení aproximační úlohy Zadání požadavků Pro zpracování vzorového příkladu diplomové práce byl vybrán filtr typu DP s nestandardním průběhem amplitudové charakteristiky funkce přenosu napětí dle obrázku 6.1 s povolenými hodnotami dynamických překmitů v rozmezí 0,7 ÷ 1,19. Na obrázcích 6.1 a 6.2 vidíme již zpřísněné parametry filtru na „útlumovéÿ a „kmitočtovéÿ ose dle [25, strany 18 a 19]. Zpřísněním na útlumové ose respektujeme především vliv ztrát (činitele jakosti prvků) a tolerance součástek, a na kmitočtové ose respektujeme požadavek tolerance časových konstant, které jsou mimo jiné ovlivňovány i teplotou. Obrázek 6.1: Toleranční schéma přenosové charakteristiky filtru v zadaném tvaru 6.3 Obrázek 6.2: Toleranční schéma přenosové charakteristiky filtru v normovaném tvaru Řešení aproximační úlohy S ohledem na optimální řešení aproximační úlohy jsem porovnával parametry dosažené standardní metodou (získané postupem uvedeným v [20]) s parametry dosaženými metodou nestandardní. Kritéria, na základě kterých jsem vybíral standardní či nestandardní metodu k sestavení přenosové funkce jsou následující. V prvním případě musely obě metody splnit útlumové požadavky na filtr, a v druhém případě byl kladen požadavek na vhodnou praktickou realizaci. V tomto kritériu byl uvažován počet potřebných obvodových prvků k sestavení finální struktury reálného filtru OTA-C. Při testování mnou vytvořeného algoritmu k nalezení přenosové funkce, jsem dospěl k závěru, že nestandardní metoda vždy nalezne řešení s lepšími 35 Diplomová práce 6.3 Řešení aproximační úlohy nebo shodnými vlastnostmi navrhovaného filtru. Oproti standardní metodě má nestandardní metoda výhodu v lokalizaci možných řešení nul a pólů v s-rovině. Tato lokalizace je pro nás důležitá, jelikož nám polohy nul a pólů určují velikost činitele tvaru Q. Na základě výše uvedených argumentů jsem se rozhodl použít k nalezení nejoptimálnějšího řešení metodu nestandardní aproximace, tj. využit diferenčního evolučního algoritmu. Zpracování aproximační úlohy bylo z části zkomplikováno skutečností, že není předem znám řád aproximační funkce. Za tímto účelem byl sestaven pomocný algoritmus, v rámci nějž je postupně měněn řád jmenovatele a čitatele normované přenosové funkce (6.3), až do získání vyhovujícího řešení. Řády čitatele a jmenovatele byly měněny nezávisle, nicméně s respektováním podmínky na co nejmenší počet prvků užitých v konečné podobě filtru OTA-C. m m Q Q Ω0 2 s2 + Q (s − s0i ) s + Ω 0 0 i=1 i=1 = h (6.3) H(s) = h Q . n n Q Ωp 2 2 (s − s∞j ) s + Qp s + Ωp j=1 j=1 Vlastní výpočet normované přenosové funkce využíval účelové funkce K1 (δ) uvedené ve zjednodušené podobě v kapitole 5.5. Reálná účelová funkce byla sestavena tak, aby umožnila testování požadavků na přenosovou charakteristiku v 55 bodech, přičemž rozložení bodů nebylo lineární aproximací. V kritických oblastech, jako například v okolí meze propustného pásma, byl krok testovaných bodů kratší, než-li v místech, která nejsou pro průběh amplitudové charakteristiky kritická, jako je například oblast mimo přechodové pásmo. Princip samotného algoritmu je založen na náhodných změnách polohy nul a pólů přenosové funkce H(s) v předem vymezených oblastech tak, aby byly splněny podmínky na stabilní realizaci filtru. Omezení byla stanovena následovně. Pro komplexně sdružené dvojice nulových bodů, byla oblast vymezena body: [0; 1,2j], [0; 3,0j], [0; −1,2j], [0; −3,0j] (na obrázku 6.3 vyznačeno modrou úsečkou) a pro komplexně sdružené dvojice pólů byla přípustná oblast zadána body: [−10−3 ; 1,1j], [−1; 1,1j ], [−10−3 ; −1,1j], [−1; −1,1j ] (na obrázku 6.3 vyznačeno červeným obdélníkem). Minimální hodnota reálné části v případě realizace pólů byla limitována realizovatelným činitelem jakosti Qp . Výsledkem algoritmu je následující přenosová funkce H(s): H(s) = 0,17215s2 + 0,80507 . s4 + 1,96886s3 + 2,57249s2 + 2,23563s + 0,88504 (6.4) Zobrazení jejích nul a pólů v s-rovině je na obrázku 6.3 a průběh přenosové charakteristiky na obrázku 6.4. Shrnutí dosažených výsledků nalezneme v tabulce 6.1. 36 Diplomová práce 6.4 Ideální realizace struktury navrhovaného filtru OTA-C Obrázek 6.3: Rozložení nul a pólů pro nalezenou přenosovou funkci H(s) v s-rovině Obrázek 6.4: Průběh kmitočtové charakteristiky nalezené funkce H(s) K vypracování této úlohy byly použity následující parametry DE algoritmu: N P = 300, F = 0,8 a CR = 0,8. Doba výpočtu byla průměrně 15 minut na testovacím počítači s procesorem Intelr Pentiumr M 1,73 GHz. Optimální řešení bylo nalezeno po 57 generacích. Implementace programu k nalezení přenosové charakteristiky H(s) je uvedena na CD v souboru 01 nalezeni aproximacni prenosove funkce.mw, jehož obsah je uveden v příloze J. Tabulka 6.1: Hodnoty nul a pólů přenosové funkce H(s) nuly a póly přenosu z1,2 p1,2 p3,4 6.4 poloha nul a pólů 0 ± 2,1623j −0,1961 ± 1,0963j −0,7882 ± 0,3034j jakost pólů − 2,8389 0,5357 Ω 2,1625 1,1138 0,8446 Ideální realizace struktury navrhovaného filtru OTA-C Návrh filtru na bázi integrátorových bloků OTA-C vychází z funkční simulace LC prototypu, který je důkladně popsán v [25, kapitola 6.2.4]. Základní myšlenka funkční simulace pasivní LC struktury vychází z popisu příčkové struktury grafem signálových toků a simulací tohoto grafu vhodným elektronickým obvodem (v našem případě pomocí transkonduktančních operačních zesilovačů). 37 Diplomová práce 6.4 Ideální realizace struktury navrhovaného filtru OTA-C Cílem tohoto přístupu je zachovat výhodné citlivostní poměry výchozího LC zapojení ve výsledném obvodu OTA-C a současně přizpůsobit obvodový návrh technologickým požadavkům a podmínkám konkrétní praktické realizace. Jelikož k nalezení přenosové funkce nebyla použita žádná ze standardních aproximací, kterými jsou: Butterworth, Čebyšev, inverzní Čebyšev a Cauer, použil jsem k návrhu LC příčkové struktury metodu odštěpování pólů z imitanční funkce [25, kapitola 3]. Algoritmus k nalezení LC příčkové struktury je uveden na přiloženém CD v souboru 02 realizace LC strutkury.mw. Tato metoda nám poskytuje celou řadu možných řešení. Nicméně, ne každé z nich musí vést k optimálnímu výsledku. Volba nevhodného postupu se při výpočtu projeví vznikem záporného prvku LC realizace. V případě realizace LC prototypu standardní metodou můžeme k realizaci LC struktury využít interaktivní návrhové stránky SYNTFIL [26]. Další z možných alternativ realizace LC struktury je použití knihovny SYNTFIL [27] v programu Maple. V případě této diplomové práce jsem nalezl řešení LC struktury, které uvádím na obrázku 6.5 a jehož přímou realizací pomocí integrátorů OTA-C je obvodové zapojení na obrázku 6.6. Postup přímé realizace OTA-C struktury z LC prototypu je uveden na přiloženém CD v souboru 03 metody vedouci k inicializacnimu reseni OTAC.mw. Výsledky výpočtů obvodových prvků pro jednotlivá zapojení jsou shrnuty v tabulkách 6.2 a 6.3. Obrázek 6.5: LC struktura normované dolní propusti Tabulka 6.2: Normované hodnoty prvků k zapojení na obr. 6.5 r1 = 1,0000 l3 = 1,0590 l1 = 0,5079 c3 = 0,2019 c2 = 1,1948 c4 = 1,3312 Jak si můžeme z výše uvedeného zapojení pasivního LC filtru povšimnout (obrázek 6.5), jedná se o zapojení filtru pracujícího naprázdno. Tato skutečnost byla při návrhu filtru užitím integrátorů OTA-C vyřešena koncovým blokem struktury 38 Diplomová práce 6.4 Ideální realizace struktury navrhovaného filtru OTA-C skládajícím se z operačních transkonduktančních zesilovačů se strmostí gm02 a gm03 . Takto zapojená OTA-C struktura nám ve své podstatě (v ideálním případě) realizuje napěťový zesilovač se zesílením Au = gm02 /gm03 s nekonečně velkým vstupním odporem Rin . Abychom tímto opatřením nezměnili přenosovou funkci původního LC prototypu, musíme volit strmosti koncového bloku gm02 , gm03 stejné. Shodnou velikostí strmostí gm02 a gm03 tedy vlastně realizujeme napěťový sledovač, který vyhovuje našim požadavkům jak na jednotkové napěťové zesílení, tak i na velikost vstupního odporu. Obrázek 6.6: Zapojení ideální NDP filtru s využitím integrátorů OTA-C Tabulka 6.3: Normované hodnoty prvků k zapojení na obr. 6.6 cI1 = 0,2539 cI2 = 2,3896 cI3 = 0,5295 cI4 = 2,6624 cx(3) = 0,4038 gm01 = 0,5 gm02 ÷ gm03 = 1 gm1 ÷ gm4 = 1 Nyní se podívejme na splnění požadavků, které jsou na nás kladeny při návrhu filtru OTA-C. Prvním z nich je požadavek frekvenčního útlumu. Ten je bezpochyby splněn, jelikož se jedná o přímou realizaci OTA-C struktury vycházející z LC prototypu. Důkazem toho je přenosová funkce zobrazená červenou barvou na obrázku 6.7. Druhým požadavkem, který je na nás kladen, je dosažení optimálních dynamických poměrů uvnitř filtru. Jak si je možno z obrázku 6.8 povšimnout, tento požadavek není splněn, jelikož rozptyl dynamických poměrů přesahuje námi zadané povolené meze (podkapitola 6.2). Z toho plyne, že ani přímým odnormováním ideálního filtru bychom nedosáhli optimálního řešení. Pro odlišení jednotlivých dynamických průběhů jsem užil barevného značení. Žluta barva znázorňuje dynamiku na výstupu OTA se strmostí gm1 , modrá barva na výstupu OTA se strmostí gm2 , zelená barva na výstupu OTA se strmostí gm3 a červená barva vyjadřuje přenos filtru, resp. dynamiku na výstupu OTA se strmostí 39 Diplomová práce 6.5 Vliv reálných vlastností obvodových prvků na navržený filtr gm4 , která je shodná s výstupem OTA se strmostí gm03 . Takto značené dynamické poměry, nebude-li řečeno jinak, budou označovány v celé diplomové práci shodně, aby se tak předešlo případným nedorozuměním. Obrázek 6.7: Průběh přenosové charakteristiky ideálního filtru OTA-C (obr. 6.6) s normovanými parametry 6.5 Obrázek 6.8: Dynamické poměry uvnitř ideálního filtru OTA-C (obr. 6.6) s normovanými parametry Vliv reálných vlastností obvodových prvků na navržený filtr Dalším krokem k úspěšné realizaci obvodové struktury filtru OTA-C (obrázek 6.6) je kmitočtové a impedanční odnormování užitých elektronických obvodových prvků. Kmitočtové a impedanční odnormování prvků filtru vychází z mezního kmitočtu propustného pásma ωp = 2πfp a volby skutečné hodnoty transkonduktance gm skut . S ohledem na realizovatelné hodnoty kapacit kondezátorů a cenové dostupnosti OTA, jsem pro diskrétní realizaci filtru uvažoval transkonduktanční operační zesilovač LM13700 od firmy National Semiconductor [28], který nám poskytuje dle [29] skutečnou velikost transkonduktance v rozsahu gm skut = 1,92 ÷ 38 400 µA/V. 6.5.1 Vliv reálného OTA na vlastnosti navrženého obvodu Ideální obvod na obrázku 6.6 nám sice před kmitočtovým a impedančním odnormováním splňoval veškeré útlumové požadavky na filtr, nicméně po odnormování uvedeném v tabulce 6.4 je takovýto obvod v podstatě nepoužitelný, jelikož nesplňuje ani jeden ze zadaných požadavků, počínaje požadavky na útlum (obrázek 6.9, 40 Diplomová práce 6.5 Vliv reálných vlastností obvodových prvků na navržený filtr zobrazen modrou čarou) až po dynamické překmity uvnitř filtru (obrázek 6.10). Na obrázku 6.9 je zobrazena přenosová funkce H(p) červenou křivkou pro ideální případ a modrou křivkou pro případ respektující reálné vlastnosti užitého OTA LM13700. Obrázek 6.10 zobrazuje dynamické poměry ve filtru na obrázku 6.6, které jsou navzájem barevně rozlišeny (viz výše). Navíc je na obrázku 6.8 užito černé barvy, která představuje průběh ideální přenosové funkce H(p). Tabulka 6.4: Odnormované hodnoty prvků k zapojení na obr. 6.6 CI1 = 13,018 pF CI2 = 10,881 pF CI3 = 27,145 pF CI4 = 12,124 pF Cx(3) = 1,8380 pF gm01 = 9,6 µA/V gm02 ÷ gm03 = 19,2 µA/V gm1 ÷ gm4 = 19,2 µA/V Nesplnění požadavků na přenosovou funkci H(p) je zapříčiněno nerespektováním reálných vlastností užitého transkonduktančního operačního zesilovače při návrhu filtru. Jedná se hlavně o zanedbání parazitních kapacit na vstupu a výstupu OTA LM13700 (příloha B). Abychom se vyvarovali takto nevhodného odnormování vedoucí k nepoužitelným hodnotám obvodových prvků, tak jak je tomu v tabulce 6.4, je zapotřebí vytvořit si spolehlivý makromodel použitého transkonduktančního operačního zesilovače. Tento nezbytný krok bude proveden v následující kapitole. Obrázek 6.9: Průběh přenosové charakteristiky navrženého filtru OTA-C s uvažováním reálných vlastností užitého OTA LM13700 Obrázek 6.10: Zobrazení dynamických poměrů navrženého filtru OTA-C s uvažováním reálných vlastností užitého OTA LM13700 41 Diplomová práce 6.5.2 6.5 Vliv reálných vlastností obvodových prvků na navržený filtr Realizace makromodelu OTA LM13700 Jednou z možností jak získat tento makromodel je převzetí firemního makromodelu transkonduktančního operačního zesilovače LM13700, který je volně dostupný na internetových stránkách výrobce [28]. Avšak při použití takto složitého makromodelu dostáváme obvod, který je matematickým programem Maple neřešitelný a optimalizovaná úloha se tak stává nerealizovatelnou. Proto jsem vytvořil vlastní makromodel (viz obrázek 6.11), který plně popisuje požadované vlastnosti a matematický program Maple s ním dosahuje velmi kvalitních výsledků, které jsem ověřil simulacemi navrženého filtru v simulačním programu PSpice A/D od firmy Cadence Design System, Inc. (podkapitola 6.7). Obrázek 6.11: Zjednodušená schematická značka obvodu OTA s makromodelem Výstupní proud OTA podle obrázku 6.11 je dán vztahem: iout = gm uin − go uout . (6.5) Při modelování makromodelu OTA LM13700 musíme být zvláště obezřetní, jelikož veškeré jeho modelové prvky jsou závislé na klidovém proudu IABC (viz příloha B). Z výše uvedené skutečnosti tedy vyplývá, že nelze přesně stanovit velikost jednotlivých elementů makromodelu nezávisle na IABC . Proto jsem musel velikost tohoto proudu respektovat v mnou navrženém makromodelu (viz příloha C). Velkou předností užitého OTA je možnost změn transkonduktance gm v rozsahu několika dekád (příloha D). Blíže se o obvodu LM13700 můžeme dočíst v katalogovém listu [29]. Reálný transkonduktanční zesilovač se od ideálního liší především kmitočtovou závislostí transkonduktance gm = gm (jω) a konečnou hodnotou výstupní impedance. V porovnání s kmitočtovou závislostí zesílení OZ je kmitočtová závislost gm podstatně příznivější a kmitočet dominantního pólu je běžně v oblasti stovek kHz až jednotek MHz. Dokladem toho je průběh frekvenční charakteristiky napěťového přenosu nezatíženého OTA, definovaný vztahem (6.6) v závislosti na velikosti řídícího proudu IABC (obrázek 6.12). V případě našeho transkonduktančního zesilovače LM13700 je 42 Diplomová práce 6.5 Vliv reálných vlastností obvodových prvků na navržený filtr velikost strmosti dána vztahem gm = 19,2IABC . Au = 19,2IABC gm = . go go (6.6) K transkonduktančnímu operačnímu zesilovači LM13700 jsem vytvořil makromodel, jehož průběh frekvenční charakteristiky napěťového přenosu v závislosti na řídícím proudu IABC je uveden v příloze E, kde je spolu s mnou vytvořeným makromodelem zobrazen i přenos v případě užití firemního makromodelu, abychom si tak udělali lepší představu o shodně obou modelů. Obrázek 6.12: Průběh frekvenční charakteristiky napěťového přenosu v závislosti na řídícím proudu IABC Jak jsem již výše uvedl, obvodové prvky v mém makromodelu (uvedeném na obrázku 6.11) jsou závislé na velikosti pracovního proudu IABC . Důkazem toho je simulace průběhu frekvenční charakteristiky napěťového přenosu na obrázku 6.12. Tato skutečnost mě vedla ke zkvalitnění algoritmu, spočívající v nalezení minimálního proudu ke splnění kmitočtových a útlumových požadavků na filtr. Experimentálně jsem zjistil, že aby nedošlo k porušení požadavků na přenosovou funkci filtru, je zapotřebí, aby poloha pólu transkonduktančního operačního zesilovače byla 10krát větší, než-li je požadavek na frekvenční polohu propustného pásma fp daného filtru. Důkaz tohoto přínosu je uveden v příloze F. Odlišný názor na tuto problematiku mají J. R. Angulo a E. S. Sinencio v článku [30], kde uvádějí, že parazitní poloha pólu OTA (tak aby nedošlo ke změně přenosové funkce) má být 50 ÷ 200krát větší, než-li je pracovní frekvence užitého filtru. 43 Diplomová práce 6.5.3 6.5 Vliv reálných vlastností obvodových prvků na navržený filtr Vliv reálných vlastností kondenzátorů na přenosovou funkci Uvažováním reálných vlastností kondenzátorů (ESR – Equivalent Series Resistance a ESL – Equivalent Series Inductance) se více přibližujeme skutečným vlastnostem navrženého filtru. Parazitní parametry ESR a ESL nás velmi zajímají z toho důvodu, protože nám limitují frekvenční rozsah navrženého filtru a ovlivňují průběh modulové charakteristiky (příloha G). Na obrázcích 6.13 až 6.16 je patrný vliv reálných vlastností užitých kondenzátorů (modrou křivkou) oproti ideálnímu průběhu (červená křivka). Můžeme si povšimnout, že se v našem případě nezměnily frekvenční vlastnosti, jelikož je náš filtr navržen pro nižší mezní kmitočet, než-li je rezonanční kmitočet reálného kondenzátoru (obrázek G-2 v příloze G). Dále si můžeme povšimnout snížení maximální hodnoty útlumu v nepropustném pásmu (obrázek 6.15) a poklesu přenosové funkce H(p) v oblasti propustného pásma (obrázek 6.16). Tento pokles H(p) je spolu se snížením maximálního útlumu způsoben parazitním odporem ESR. Čím je hodnota ESR vyšší, tím nám více poklesne H(p) a zároveň dojde ke snížení maximální hodnoty útlumu. V našem případě, jsem uvažoval rozptyl hodnot ESR v intervalu ESR = 1÷2 Ω (blíže příloha G). S respektováním parazitních hodnot kondenzátorů nastal pokles na mezi propustného pásma o 0,44 dB (tj. o 5 %, obrázek 6.16) a maximální hodnota útlumu se snížila z ideální „nulyÿ na a = −54,09 dB (obrázek 6.15). Obrázek 6.13: Vliv reálných parametrů kondenzátorů na přenosovou funkci H(p) Obrázek 6.14: Vliv reálných parametrů kondenzátorů na přenosovou funkci H(p) v propustném pásmu 44 Diplomová práce 6.6 Optimalizace reálného obvodového zapojení filtru OTA-C Obrázek 6.15: Vliv reálných parametrů kondenzátorů na přenosovou funkci H(p) – detail nepropustném pásma 6.6 Obrázek 6.16: Vliv reálných parametrů kondenzátorů na přenosovou funkci H(p) – detail propustném pásma Optimalizace reálného obvodového zapojení filtru OTA-C Z obrázků 6.9 a 6.10 je zřejmé nesplnění požadavku na kmitočtovou charakteristiku přenosové funkce H(p) a dynamiky navrhovaného obvodu. Při tomto návrhu, který nebyl proveden DESA algoritmem, byly respektovány pouze reálné vlastnosti užitého OTA LM13700. Nyní jsem obvod doplnil o reálné vlastnosti kondenzátorů, abych tak respektoval reálné vlastnosti všech užitých obvodových prvků (obrázek 6.17). Na obrázku 6.17 jsou světle vyznačeny parazitní kapacity transkonduktančního operačního zesilovače, abych je tak odlišil od integračních kapacit CI . Hodnoty těchto parazitních kapacit můžeme zakomponovat do velikostí integračních kapacit CI tak, že jejich velikost snížíme o hodnotu příslušných parazitních kapacit. Nedostatek návrhu z kapitoly 6.5.1 rozšířeného o reálné vlastnosti kondenzátorů (obrázek 6.17) jsem úspěšně vyřešil optimalizací obvodu pomocí DESA algoritmu. Optimalizována byla celá struktura najednou, přičemž jednotlivé prvky tvořily nezávislé proměnné v optimalizačním procesu. Pro zadaný filtr byl optimalizačním algoritmem DESA splněn jak požadavek na přenosovou funkci filtru H(p) (obrázek 6.19), tak i na dynamické poměry uvnitř struktury filtru (obrázek 6.21). Porovnání zoptimalizovaného a nezoptimalizovaného filtru je uvedeno v příloze H na obrázcích H-1 a H-2, kde je vidět citelné zlepšení návrhu filtru OTA-C navrženého pomocí DESA algoritmu oproti standardní metodě. 45 Diplomová práce 6.6 Optimalizace reálného obvodového zapojení filtru OTA-C Obrázek 6.17: Uvažování reálných vlastností kondenzátorů v zapojení filtru OTA-C Obrázek 6.18: Znázornění dynamických průběhů nezoptimalizovaného filtru podle obrázku 6.6 Obrázek 6.19: Znázornění dynamických průběhů zoptimalizovaného filtru podle obrázku 6.17 46 Diplomová práce 6.6 Optimalizace reálného obvodového zapojení filtru OTA-C Obrázek 6.20: Znázornění dynamických průběhů nezoptimalizovaného filtru podle obrázku 6.6 Obrázek 6.21: Znázornění dynamických průběhů zoptimalizovaného filtru podle obrázku 6.17 K řešení problému v oblasti dynamické optimalizace jsem přistupoval i jinou alternativní cestou (dle [25, strana 173–178]), která spočívala v přidání dalších obvodových prvků do jednotlivých smyček obvodu (obrázek 6.22). Přidanými obvodovými prvky byly napěťové operační zesilovače (OZ) se zesílením k. Vlastní myšlenka dynamické optimalizace je následující. Předpokládejme, že maximální napětí na výstupu OTA se strmostí gmi (Umaxgmi ) je m-krát větší než maximum výstupního napětí na výstupu OTA se strmostí gm(i+1) (Umaxgm(i+1) ), tj. Umaxgmi = mUmaxgm(i+1) . (6.7) Vyrovnání napěťových maxim je tedy možné m-násobnou změnou přenosu mezi výstupy Umaxgmi a Umaxgm(i+1) . Realizace předchozí úvahy spočívá ve vložení zesilovacího bloku se zesílením ki = m mezi výstupem OTA se strmostí gmi a vstupem OTA se strmostí gm(i+1) . Tím se ovšem změní poměry uvnitř lokální smyčky. Aby nedošlo ke změně přenosu filtru, je nutné upravit zpětnovazební přenos na původní hodnotu. Toho lze dosáhnout zařazením bloku s přenosem 1/ki do druhé větve dílčí zpětnovazební smyčky. Pro konstanty přenosu pomocných bloků platí (obrázek 6.22): ki = Umaxgmi , Umaxgm(i+1) kde i = 1, 2, 3. 47 (6.8) Diplomová práce 6.6 Optimalizace reálného obvodového zapojení filtru OTA-C Obrázek 6.22: Dynamická optimalizace filtru s využitím operačních zesilovačů Výše popsanou metodu jsem otestoval na ideálním filtru (obrázek 6.22) s normovanými parametry obvodu. Výsledné hodnoty zesílení jednotlivých zesilovacích bloků jsou uvedeny v následující tabulce 6.5. Tabulka 6.5: Konstanty přenosu pomocných bloků k1 = 0,8617 1/k1 = 1,1603 k2 = 0,6900 1/k2 = 1,4492 k3 = 1,6816 1/k3 = 0,5946 Přestože touto metodou docílíme dynamicky zoptimalizované struktury s poměry maxim výstupních napětí jednotlivých OTA v dané smyčce o velikostech: Umaxgm1 = 1,000 , Umaxgm2 Umaxgm2 = 0,976 , Umaxgm3 Umaxgm3 = 1,023 , Umaxgm4 (6.9) nevede tato cesta k zdárnému cíli, jelikož s dynamicky zoptimalizovanými poměry uvnitř filtru se změnil i průběh přenosové funkce H(p) (obrázek 6.23). Změna přenosové funkce filtru se projevila jen u filtrů, které obsahovaly rezonanční členy realizující nuly přenosu. Z výše uvedeného důvodu můžeme říci, že jedinou možnou cestou vedoucí k úspěšné dynamické optimalizaci všech typů filtrů je užití nestandardní metody, kterou je například DESA algoritmus. DESA algoritmus nám oproti této metodě s operačními zesilovači navíc poskytuje řešení bez použití dalších obvodových bloků nezbytných pro korektní optimalizaci. Programová implementace obou metod dynamické optimalizace je uvedena na přiloženém CD v souboru 04 metody dynamicke optimalizace.mw, jehož obsah je uveden v příloze J. 48 Diplomová práce 6.6 Optimalizace reálného obvodového zapojení filtru OTA-C Obrázek 6.24: Detailní průběh přenosové charakteristiky H(s) dynamicky zoptimalizované struktury filtru OTA-C pomocí operačních zesilovačů dle obrázku 6.22 Obrázek 6.23: Průběh přenosové charakteristiky H(s) dynamicky zoptimalizované struktury filtru OTA-C pomocí operačních zesilovačů dle obrázku 6.22 DESA algoritmem byl rovněž splněn požadavek na minimalizaci rozptylu hodnot obvodových prvků (výsledková tabulka 6.6) a minimální citlivost parametrů přenosové funkce na změny hodnot obvodových součástek. Typický průběh citlivosti integračního kondenzátoru CI a transkonduktance gm na přenosovou funkci H(p) je uveden na obrázcích 6.25 a 6.26. Ostatní průběhy citlivostí jsou uvedeny v příloze I. Citlivostní analýza filtru byla provedena v již zmiňovaném softwarovém produktu SNAP. Tabulka 6.6: Hodnoty prvků zoptimalizované DP podle zapojení na obrázku 6.17 CI1 CI4 gm2 gm01 = = = = 7,631 nF 7,896 nF 11,382 mA/V 18,881 mA/V CI2 Cx(3) gm3 gm02 = = = = 7,680 nF 1,197 nF 11,488 mA/V 9,600 mA/V CI3 gm1 gm4 gm03 = = = = 13,904 nF 13,267 mA/V 10,704 mA/V 9,600 mA/V Z průběhů jednotlivých citlivostí je patrné, že nejvíce citlivými prvky jsou integrační kondenzátor CI3 , vazební kondenzátor Cx(3) a strmost gm3 . Jedná se o obvodové prvky realizující nulu přenosu a míra jejich citlivosti se pohybuje v rozmezí 5 až 10. Tyto hodnoty lze považovat za velmi dobré, nicméně v případě požadavku na přesnou polohu nuly přenosu je zapotřebí volit tyto elektronické součástky co nejpřesnější, resp. s co nejmenší tolerancí jmenovité hodnoty udávané výrobcem; popř. zajistit jejich doladění u vyrobeného filtru. 49 Diplomová práce 6.7 Výsledky návrhu a optimalizace filtru OTA-C Obrázek 6.25: Průběh relativní citli |H(jω)| vosti SCI1 6.7 Obrázek 6.26: Průběh relativní citli |H(jω)| vosti Sgm1 Výsledky návrhu a optimalizace filtru OTA-C Pro návrh a optimalizaci filtru OTA-C byly použity tyto parametry DESA algoritmu: N P = 60, F = 0,8, CR = 0,8 a P P GIP = 0,4. Optimalizace obvodové struktury trvala 108 minut, přičemž úloha byla spuštěna na PC s procesorem Intelr Pentiumr M 1,73 GHz. Návrhový a optimalizační algoritmus je dostupný na přiloženém CD v souboru 05 aplikace DESA k nalezeni id.filtru OTA-C.mw. Správnost výsledků byla ověřena v programu PSpice A/D pro analýzu elektronických obvodů (implementovaném v softwarovém produktu OrCAD od firmy Cadence Design System, Inc.); viz obrázky 6.27 až 6.30. Na těchto obrázcích jsou zobrazeny tři barevně odlišené průběhy přenosových funkcí. Červeně vyznačený průběh přenosové funkce značí ideální filtr, tj. filtr realizovaný s ideálními obvodovými prvky. Modře je vyznačen skutečný průběh přenosové funkce, tj. filtr je realizován s reálnými prvky. V tomto případě je k simulaci filtru použit firemní makromodel užitého transkonduktančního operačního zesilovače LM13700. A zelenou křivkou je zobrazena přenosová funkce filtru respektující reálné parametry s mnou vytvořeným makromodelem, jenž byl použit v matematickém programu Maple. Výsledné parametry navrženého filtru spolu se vstupními parametry jsou uvedeny v tabulce 6.8. 50 Diplomová práce 6.7 Výsledky návrhu a optimalizace filtru OTA-C Obrázek 6.27: Výsledná přenosová charakteristika H(p) navrženého filtru Obrázek 6.28: Výsledná přenosová charakteristika H(p) navrženého filtru – propustné pásmo Obrázek 6.29: Výsledná přenosová charakteristika H(p) navrženého filtru – detail nepropustného pásma Obrázek 6.30: Výsledná přenosová charakteristika H(p) navrženého filtru – detail propustného pásma Tabulka 6.7: Hodnoty prvků zoptimalizované DP podle zapojení na obrázku 6.17 CI1 = 7,631 nF CI2 = 7,680 nF CI4 = 7,896 nF Cx(3) = 1,197 nF gm1 = 13,267 mA/V gm2 = 11,382 mA/V gm3 = 11,488 mA/V gm4 = 10,704 mA/V gm01 = 18,881 mA/V gm02 = 9,600 mA/V gm03 = 9,600 mA/V 51 CI3 = 13,904 nF Diplomová práce 6.8 Zhodnocení výsledku řešeného filtru OTA-C Tabulka 6.8: Výsledky navrženého a zoptimalizovaného filtru OTA-C Průběh amplitudové charakteristiky filtru frekvence požadovaný zpřísněný dosažený zpřísněný [kHz] útlum [dB] útlum [dB] 0 – 200 3,0 1,19 200 – 280 13,0 13,00 280 → ∞ 40,0 40,00 Velikost dynamických poměrů uvnitř filtru 6.8 poměr napětí před optimalizací po optimalizaci [–] [–] [–] Umaxgm1 /Umaxgm4 2,02 0,70 Umaxgm2 /Umaxgm4 1,16 1,09 Umaxgm3 /Umaxgm4 3,37 1,07 Zhodnocení výsledku řešeného filtru OTA-C Výše představený návrh a optimalizace filtru pomocí DESA algoritmu vede k obvodovému řešení, které není třeba doplňovat o pomocné obvodové prvky, aby bylo dosaženo zadaných požadavků. Jedná se o nekonvenční přístup, který umožňuje řešení obtížných úloh respektujících řadu kritérií, která na nás mohou být kladena. V případě této diplomové práce se jednalo konkrétně o minimalizaci rozptylu hodnot obvodových prvků, dosažení minimálních citlivostí přenosové funkce na změny hodnot obvodových prvků, dosažení optimálních dynamických poměrů uvnitř struktury filtru a respektování reálných vlastností aktivních prvků. Jelikož daný algoritmus nalezne optimální řešení až po 108 minutách, můžeme říci, že částečnou nevýhodou této metody je vyšší časová náročnost. 52 Kapitola 7 Závěr 7.1 Shrnutí diplomové práce Tato diplomová práce se zabývala ověřením možnosti využití stochastických algoritmů pro návrh a optimalizaci aktivních filtrů OTA-C. Byl zde prezentován nový a efektivní algoritmus DESA, který je mimojiné využitelný právě pro optimalizaci filtrů OTA-C. Účinnost tohoto algoritmu byla prokázána při návrhu složitého filtru s nestandardním tolerančním schématem. Konkrétně se jednalo o úspěšný návrh filtru typu dolní propust s požadavkem na minimalizaci rozptylu hodnot obvodových prvků, dosažení minimálních citlivosti přenosové funkce na změny hodnot obvodových prvků, dosažení optimálních dynamických poměrů uvnitř struktury filtru a respektování reálných vlastností aktivních prvků. Při konečném návrhu jsem respektoval i reálné vlastnosti užitých kondenzátorů. Na základě dosažených výsledků mohu konstatovat, že aplikace stochastických algoritmů k návrhu a optimalizaci filtrů OTA-C je možnou cestou vedoucí k úspěšnému řešení. Jistou nevýhodou těchto algoritmů je sice vyšší časová náročnost, kterou lze ovšem částečně eliminovat kombinací s deterministickou optimalizační metodou. Již zmiňovaný DESA algoritmus je toho důkazem. Jedná se o kombinaci diferenční evoluce (DE) se simplexovým algoritmem (SA). Sloučením obou metod tak vznikl nový a robustní DESA algoritmus, který nalezne požadované řešení podstatně rychleji, než-li je tomu u samotného evolučního algoritmu. Dalšího urychlení optimalizačního procesu je možno dosáhnout užitím výkonnější výpočetní techniky. K této práci byl použit PC s procesorem Intelr Pentiumr M 1,73 GHz. 53 Diplomová práce 7.2 7.3 Možné směry dalšího vývoje Přínos diplomové práce Hlavní přínos této diplomové práce spočívá ve vytvoření nového optimalizačního algoritmu DESA. Pro jeho schopnost odolávat lokálním extrémům při vyhledávání globálního minima účelové funkce jej lze řadit do skupiny globálních optimalizačních metod. Dalším přínosem je v práci předložený návod k nalezení přenosové funkce filtru na základě zadaných požadavků za využití diferenční evoluce. Praktickým přínosem je pak ukázka použití DESA algoritmu v případě návrhu a optimalizace filtru OTA-C. Kompletní programová implementace DESA algoritmu v prostředí Maple je uvedena na přiloženém CD. 7.3 Možné směry dalšího vývoje V této práci byl představen nový optimalizační algoritmus DESA, který byl využit k optimalizaci aktivního filtru OTA-C. Další možné směry vývoje a využití daného algoritmu by mohly vést na jiné aplikace v oblastech optimalizovaného návrhu analogových i digitálních elektronických funkčních bloků a sytémů. Potenciální možnosti uplatnění DESA algoritmu mohou být například ve strojírenském, chemickém či jiném vědním oboru. 54 Literatura [1] Press, W. H., Teukolsky, S. A., Vetterling, W. T., Flannery, B. P. Numerical Recipes in C: The Art of Scientific Computing – Second Edition. Cambridge University Press, pp. 36–50, 1992, ISBN 0-521-43108-5 [2] Press, W. H., Teukolsky, S. A., Vetterling, W. T., Flannery, B. P. Numerical Recipes in C: The Art of Scientific Computing – Second Edition. [on-line] Internet: http://www.numerical-recipes.com/, [cit.: 3. 12. 2006] [3] Daněk, J. Soustavy lineárních algebraických rovnic, [on-line], Internet: http://www.cam.zcu.cz, [cit.: 1. 12. 2006] [4] Holland, J. H. Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control, and Artificial Intelligence. First MIT Press Edition, Cambridge, England, 1992, 221 s., ISBN 0-262-58111-6 [5] Storn, R. On the Usage of Differential Evolution for Function Optimalization. NAFIPS, Berkeley, pp. 519–523, 1996 [6] Whitley, D. A Genetic Algorithm Tutorial. Computer Science Department, Colorado State University, 34 s. [7] Koza, J. R. Genetic Programming: On the Programming of Computers by Means of Natural Selection. The MIT Press, Cambridge, England, 813 s., 1996, ISBN 0-262-11170-5 [8] Haupt, R. L., Haupt, S. E. Practical Genetic Algorithms, Second Edition A John Wiley & Sons, Inc., Hoboken, New Jersy, Canada, 253 s., 2004, ISBN 0-471-45565-2 [9] Storn, R., Price, K. Differential Evolution – A Simple and Efficient Adaptive Scheme for Global Optimization over Continuous Spaces. Technical Report TR-95-012, March 1995 [10] Rogalsky, T., Derksen, R. W. Hybridization of Differential Evolution for Aerodynamic Design. Proceedings of the 8th Annual Conference of the Computational Fluid Dynamics Society of Canada, pp. 729–736, Canada, 2000 [11] Yen, J., Liao, J. C. A Hybrid Approach to Modeling Metabolic Systems Using Genetic Algorithm and Simplex Metod. Procedings of the 11th Conference on Artificial Intelligence for Applications (CAIA ’95), pp. 277–282, 1995 [12] Lagarias, J. C., Reeds, J. A., Wright, M. H., Wright, P. E. Convergence Properties of the Nelder–Mead Simplex Method in Low Dimensions. SIAM J. Optim., Vol. 9, No. 1, pp. 112–147, 1998 55 Diplomová práce Literatura [13] Lampient, J., Zelinka, I. On Stagnation of the Differential Evolution Algorithm. Proceedings of MENDEL 2000, 6th International Mendel Conference on Soft Computing, Brno, Czech Republic, June 2000 [14] Cafolla, A. A. A New Schematic Optimisation Strategy for Quantitative Analysis of Core Level Photoemission Data. Surface Science, pp. 561–565, October 1997 [15] Price, K. V. An Introduction to Differential Evolution. McGraw-Hill’s Advanced Topics In Computer Science Series, UK – Maidenhead, Vydavatelství: McGraw-Hill Ltd., pp. 79–108, 1999, ISBN 0-07-709506-5 [16] Šmuc, T. Sensivity of Differential Evolution Algorithm to Values of Control Parameters. Proceedings of the International Conference on Artificial Intelligence IC-AI’02 International Conference, Volume III, Las Vegas, USA, pp. 1 087–1 093, June 2002 [17] Storn, R. Differential Evolution Design of an IIR-filter with Requirements for Magnitude and Group Delay. Technical Reporft TR-95-026, ICSI, June 1995 [18] Krukowski, A., Kale, I. Two Approaches for Fixed-Point Filter Design: ”Bit-Flipping” Algorithm and Constrained Downhill Simplex Method. 5th International Symposium on Signal Processing and its Applications (ISSP A99), Brisbane, Australia, August 22–25th , 1999 [19] Nelder, J. A., Mead, R. A Simplex Method for Function Minimization. Computer Journal, Vol. 7, pp. 308–313, 1965 [20] Davídek, V., Laipert, M., Vlček, M. Analogové a číslicové filtry. Praha: Vydavatelství ČVUT, 2000, 337 s., ISBN 80-01-02178-5 [21] Waterloo Maple, Inc. [on-line], Internet: http://www.maplesoft.com, [cit.: 22. 12. 2006] [22] Cadence Design Systems, Inc. OrCAD., [on-line], Internet: http://www.cadence.com/orcad/, [cit.: 22. 12. 2006] [23] Kolka, Z., Biolek, D. Snap 2.61, [on-line], Internet: http://snap.webpark.cz, [cit.: 22. 12. 2006] [24] Biolek, D. Nová knihovna modelů volně šířitelného programu SNAP 2.6x pro analýzu obvodů (nejen) v proudovém módu, [on-line], Internet: http://www.elektrorevue.cz/clanky/04044/, [cit.: 1. 11. 2004] [25] Martinek, P., Boreš, P., Hospodka, J. Elektrické filtry. Praha: Vydavatelství ČVUT, 2003, 315 s., ISBN 80-01-02765-1 [26] Kobliha, O. Návrhová stránka. [online], Internet: http://obvody.feld.cvut.cz/syntfil/, [cit.: 3. 1. 2007] [27] Boreš, P., Bičák, J., Hospodka, J., Martinek, M. Použití knihovny SYNTFIL programu Maple. Elektrorevue [on-line], č. 11, 2003, ISSN 1213–1539, Internet: http://www.elektrorevue.cz/clanky/03011/, [cit.: 3. 1. 2007] [28] National Semiconductor [on-line], Internet: http://www.national.com, [cit.: 25. 12. 2006] 56 Diplomová práce Literatura [29] National Semiconductor LM13700 – Dual Operational Transconductance Amplifiers with Linearizing Diodes and Buffers. Katalogový list, USA, 2004 [30] Angulo, J. R., Sinencio, E. S. High Frequency Compensated Current-Mode Ladder Filters Using Multiple Output OTAs. IEEE Transactions on Circuits and systems II, Analog and Digital Signal Processing, Vol. 41, No. 9, pp. 581– 586, September 1994 [31] TDK [on-line], Internet: http://www.component.tdk.com, [cit.: 2. 1. 2007] [32] Vishay Vitramon [on-line], Internet: http://www.vishay.com, [cit.: 2. 1. 2007] [33] GM electronic Součástky pro elektroniku 2005. Katalog GM Electronic, 2005, 42–55 s. 57 Seznam obrázků 2.1 Schéma reprezentující genetický algoritmus . . . . . . . . . . . . . . . 2.2 Dvoudimenzionální příklad účelové funkce ukazující její vrstevnice a proces generace nového jedince ~v pro případ DE/rand/1/bin (F = 1) 2.3 Schéma reprezentující základní diferenční evoluci (DE/rand/1/bin) . 2.4 Downhill Simplex: reflexe, expanze a kontrakce pro n = 3 . . . . . . . 2.5 Diagram Downhill Simplex metody . . . . . . . . . . . . . . . . . . . 5.1 5.2 5.3 8 14 15 18 19 Ilustrace procesu křížení . . . . . . . . . . . . . . . . . . . . . . . . . 26 Generace nové populace pomocí DESA algoritmu . . . . . . . . . . . 28 Příklad jednodimenzionálního ohraničení obecného optimalizovaného parametru x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 6.1 Toleranční schéma přenosové charakteristiky filtru v zadaném tvaru . 6.2 Toleranční schéma přenosové charakteristiky filtru v normovaném tvaru 6.3 Rozložení nul a pólů pro nalezenou přenosovou funkci H(s) v s-rovině 6.4 Průběh kmitočtové charakteristiky nalezené funkce H(s) . . . . . . . 6.5 LC struktura normované dolní propusti . . . . . . . . . . . . . . . . . 6.6 Zapojení ideální NDP filtru s využitím integrátorů OTA-C . . . . . . 6.7 Průběh přenosové charakteristiky ideálního filtru OTA-C (obr. 6.6) s normovanými parametry . . . . . . . . . . . . . . . . . . . . . . . . 6.8 Dynamické poměry uvnitř ideálního filtru OTA-C (obr. 6.6) s normovanými parametry . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.9 Průběh přenosové charakteristiky navrženého filtru OTA-C s uvažováním reálných vlastností užitého OTA LM13700 . . . . . . . . . . . 6.10 Zobrazení dynamických poměrů navrženého filtru OTA-C s uvažováním reálných vlastností užitého OTA LM13700 . . . . . . . . . . . . . 6.11 Zjednodušená schematická značka obvodu OTA s makromodelem . . 6.12 Průběh frekvenční charakteristiky napěťového přenosu v závislosti na řídícím proudu IABC . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.13 Vliv reálných parametrů kondenzátorů na přenosovou funkci H(p) . . 6.14 Vliv reálných parametrů kondenzátorů na přenosovou funkci H(p) v propustném pásmu . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.15 Vliv reálných parametrů kondenzátorů na přenosovou funkci H(p) – detail nepropustném pásma . . . . . . . . . . . . . . . . . . . . . . . 6.16 Vliv reálných parametrů kondenzátorů na přenosovou funkci H(p) – detail propustném pásma . . . . . . . . . . . . . . . . . . . . . . . . . 6.17 Uvažování reálných vlastností kondenzátorů v zapojení filtru OTA-C 6.18 Znázornění dynamických průběhů nezoptimalizovaného filtru podle obrázku 6.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.19 Znázornění dynamických průběhů zoptimalizovaného filtru podle obrázku 6.17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.20 Znázornění dynamických průběhů nezoptimalizovaného filtru podle obrázku 6.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 35 35 37 37 38 39 40 40 41 41 42 43 44 44 45 45 46 46 46 47 Diplomová práce Literatura 6.21 Znázornění dynamických průběhů zoptimalizovaného filtru podle obrázku 6.17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.22 Dynamická optimalizace filtru s využitím operačních zesilovačů . . . . 6.23 Průběh přenosové charakteristiky H(s) dynamicky zoptimalizované struktury filtru OTA-C pomocí operačních zesilovačů dle obrázku 6.22 6.24 Detailní průběh přenosové charakteristiky H(s) dynamicky zoptimalizované struktury filtru OTA-C pomocí operačních zesilovačů dle obrázku 6.22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |H(jω)| 6.25 Průběh relativní citlivosti SCI1 . . . . . . . . . . . . . . . . . . . |H(jω)| 6.26 Průběh relativní citlivosti Sgm1 . . . . . . . . . . . . . . . . . . . 6.27 Výsledná přenosová charakteristika H(p) navrženého filtru . . . . . . 6.28 Výsledná přenosová charakteristika H(p) navrženého filtru – propustné pásmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.29 Výsledná přenosová charakteristika H(p) navrženého filtru – detail nepropustného pásma . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.30 Výsledná přenosová charakteristika H(p) navrženého filtru – detail propustného pásma . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1 A-2 B-1 B-2 D-1 E-1 E-2 F-1 F-2 F-3 F-4 G-1 G-2 H-1 H-2 I-1 I-2 I-3 I-4 I-5 I-6 I-7 I-8 47 48 49 49 50 50 51 51 51 51 Schéma křížení na čtvrté pozici „chromozómuÿ . . . . . . . . . . . . . I Schéma mutace na čtvrté a sedmé pozici „chromozómuÿ . . . . . . . II Vstupní Cin a výstupní Cout kapacita užitého OTA LM13700 [29] . . III Výstupní odpor Rout užitého OTA LM13700 [29] . . . . . . . . . . . . III Závislost transkonduktance gm na velikosti klidového proudu IABC [29] IV Průběh frekvenční charakteristiky napěťového přenosu v závislosti na řídícím proud IABC u firemního makromodelu LM13700 . . . . . . . . V Průběh frekvenční charakteristiky napěťového přenosu v závislosti na řídícím proud IABC u mnou vytvořeného makromodelu LM13700 . . . V Průběh přenosové charakteristiky H(p) v závislosti na velikosti proudu IABC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VI Detailní průběh prop. pásma přenosové char. H(p) v závislosti na velikosti proudu IABC . . . . . . . . . . . . . . . . . . . . . . . . . . . VI Průběh nepropustného pásma přenosové charakteristiky H(p) v závislosti na velikosti proudu IABC . . . . . . . . . . . . . . . . . . . . . VI Detailní průběh nepropustného pásma přenosové charakteristiky H(p) v závislosti na velikosti proudu IABC . . . . . . . . . . . . . . . . . . VI Náhradní schéma reálného kondenzátoru . . . . . . . . . . . . . . . . VII Závislost impedance kondenzátoru na pracovní frekvenci [33] . . . . . VIII Znázornění dynamických poměrů ve filtru podle obrázku 6.17 před (přerušovaně) a po (plně) dynamické optimalizaci . . . . . . . . . . . IX Znázornění dynamických poměrů ve filtru podle obrázku 6.17 před (přerušovaně) a po (plně) dynamické optimalizaci . . . . . . . . . . . IX |H(jω)| . . . . . . . . . . . . . . . . . . . . . . . . IX Průběh citlivosti SC1 |H(jω)| . . . . . . . . . . . . . . . . . . . . . . . . IX Průběh citlivosti SC2 |H(jω)| . . . . . . . . . . . . . . . . . . . . . . . . X Průběh citlivosti SC3 |H(jω)| Průběh citlivosti SC(x)3 . . . . . . . . . . . . . . . . . . . . . . . . X |H(jω)| . . . . . . . . . . . . . . . . . . . . . . . . X Průběh citlivosti SC4 |H(jω)| Průběh citlivosti Sgm01 . . . . . . . . . . . . . . . . . . . . . . . . X |H(jω)| Průběh citlivosti Sgm02 . . . . . . . . . . . . . . . . . . . . . . . . XI |H(jω)| Průběh citlivosti Sgm03 . . . . . . . . . . . . . . . . . . . . . . . . XI 59 Diplomová práce I-9 I-10 I-11 I-12 Průběh Průběh Průběh Průběh Seznam obrázků citlivosti citlivosti citlivosti citlivosti |H(jω)| Sgm1 |H(jω)| Sgm2 |H(jω)| Sgm3 |H(jω)| Sgm4 . . . . . . . . . . . . . . . . 60 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XI XI XI XI Seznam tabulek 6.1 Hodnoty nul a pólů přenosové funkce H(s) . . . . . . . . . . . 6.2 Normované hodnoty prvků k zapojení na obr. 6.5 . . . . . . . 6.3 Normované hodnoty prvků k zapojení na obr. 6.6 . . . . . . . 6.4 Odnormované hodnoty prvků k zapojení na obr. 6.6 . . . . . . 6.5 Konstanty přenosu pomocných bloků . . . . . . . . . . . . . . 6.6 Hodnoty prvků zoptimalizované DP podle zapojení na obrázku 6.7 Hodnoty prvků zoptimalizované DP podle zapojení na obrázku 6.8 Výsledky navrženého a zoptimalizovaného filtru OTA-C . . . . 61 . . . . . . . . . . . . . . . 6.17 6.17 . . . . . . . . . . . 37 38 39 41 48 49 51 52 Diplomová práce Příloha A: Dodatek ke genetickým algoritmům Přílohy A Dodatek ke genetickým algoritmům Reprodukce Při reprodukci se do nové generace kopírují jedinci z předešlé generace. Čím je jedinec silnější, tím je větší pravděpodobnost, že bude zastoupen i v nové generaci. Jedním ze základních způsobů, jak je reprodukce prováděna je výběr pomocí tzv. váhovací rulety (obrázek 2.1, bod 1), z níž jsou náhodně vybíráni noví jedinci. Jednotlivé díly rulety přitom odpovídají jedincům předchozí generace a jejich velikost je dána ohodnocením těchto jedinců – čím lepší ohodnocení, tím větší část rulety je danému jedinci přidělena. Tímto způsobem získaná generace nám zajišťuje přežití silných jedinců z předešlé generace, kteří se v nové generaci mohou i několikrát opakovat. Ovšem kdybychom pro vývoj generace používali pouze takto prováděnou reprodukci, došlo by k degeneraci generací, a výsledkem by byl nejsilnější jedinec z nulté generace. Tomu předcházíme aplikací dvou zbývajících operátorů, kterými jsou křížení a mutace. Křížení Tato operace spočívá ve výměně informací mezi jedinci. Celý mechanismus křížení začíná tak, že se z nově vylosované populace náhodně vyberou dva jedinci. Tyto dva jedince lze chápat jako dva rodiče. Jejich potomci budou potom obsahovat části genetických informací svých rodičů. Výše popsaný mechanismus je zobrazen na obrázku A-1. Obrázek A-1: Schéma křížení na čtvrté pozici „chromozómuÿ I Diplomová práce Příloha A: Dodatek ke genetickým algoritmům Přínosem křížení nemusí být pouze vytváření lepších jedinců. Díky křížení může vzniknout jedinec s takovým rozložením vlastností (jedniček a nul), že neexistuje v generaci žádný jemu podobný. Takovýto jedinec se může nacházet v zatím neprozkoumané množině možných řešení. Díky tomuto procesu genetický algoritmus prohledává velkou část definičního oboru. Ke křížení dvou vybraných jedinců však nedochází vždy, ale zpravidla s určitou pravděpodobností. Tento proces je na obrázku 2.1 označen bodem 2. Mutace Posledním krokem ve vytváření nové generace je mutace. Mutace nezasahuje výrazněji do vzhledu nové generace, ale jak si za chvíli vysvětlíme, plní velmi důležitou funkci. Jak tedy tato operace probíhá. Stejně jako ke křížení dochází k mutaci pouze s určitou pravděpodobností. Tato pravděpodobnost je ovšem oproti křížení podstatně menší. Obrázek A-2: Schéma mutace na čtvrté a sedmé pozici „chromozómuÿ Celá operace probíhá následovně. Postupně odebíráme z generace jednoho jedince po druhém. Každého jedince procházíme postupně po jednotlivých pozicích (nulách a jedničkách) a s určitou pravděpodobností buď změníme hodnotu dané pozice nebo ji ponecháme původní (viz obrázek A-2). Jak bylo již řečeno, mutace plní velmi důležitou úlohu. Ukažme si to na následujícím příkladě. Předpokládejme, že víme, že nejlepší jedinec, který může vzniknout, obsahuje na páté pozici jedničku. Náhodným losováním jsme dostali generaci, v níž žádný jedinec neobsahuje na páté pozici jedničku. V tomto okamžiku nemůžeme nikdy získat nejlepšího jedince pouze pomocí reprodukce a křížení. Nejlepší jedinec by mohl vzniknout pouze tak, že by některý jedinec na páté pozici zmutoval a v některém dalším křížení by vhodně předal svoji informaci. Mutace může také pomoci v situaci, kdy jsou si všichni jedinci velmi podobní. Extrémním případem takové situace je například stav, kdy se do „nultéÿ, náhodně vylosované generace dostane jeden velmi silný jedinec a zbytek jedinců bude slabý. II Diplomová práce Příloha B: Reálné vlastnosti užitého OTA LM13700 V takovém případě může nastat situace, kdy se do další generace dostanou pouze exempláře jediného silného jedince. Nastane-li takováto situace, můžeme dostat odlišného jedince pouze tak, že některý z exemplářů zmutuje. Mutace funguje ovšem i v neextrémních případech a pomáhá nám udržet různorodost generace. Mutace je zobrazena na obrázku 2.1 pod bodem 3. B Reálné vlastnosti užitého OTA LM13700 Reálné vlastnosti OTA LM13700 jsou závislé na velikosti stejnosměrného klidového proudu IABC (Amplifier Bias Current). Jedná se o vnější proud OTA, kterým nastavujeme požadovanou velikost transkonduktance gm . Bohužel s nastavením požadované strmosti dochází i ke změnám reálných parametrů OTA. Mezi tyto parametr patří i velikost vstupní a výstupní kapacity (Cin , Cout ) a velikost výstupního odporu Rout (obrázky B-1 a B-2). Obrázek B-1: Vstupní Cin a výstupní Cout kapacita užitého OTA LM13700 [29] Obrázek B-2: Výstupní odpor Rout užitého OTA LM13700 [29] III Diplomová práce C Příloha D: Dostupný rozsah transkonduktance gm Výpis zdrojového kódu užitého makromodelu Pro naší aplikaci lze s úspěchem použít aproximaci vstupní a výstupní kapacity dle níže uvedeného zdrojového kódu makromodelu. Důkazem toho je shodnost průběhů amplitudové charakteristiky uvedené v příloze E. ‘.subckt LM13700 poz neg out‘, ‘ I1 0 out 19.2*Iabc*(v[poz]-v[neg])‘, ‘ Rout out 0 1920/Iabc‘, ‘ Cout out 0 4.5e-12‘, ‘ Cinp poz 0 6e-12‘, ‘ Cinn neg 0 6e-12‘, ‘.ends‘ D Dostupný rozsah transkonduktance gm Obrázek D-1: Závislost transkonduktance gm na velikosti klidového proudu IABC [29] IV Diplomová práce E Příloha E: Srovnání makromodelů Srovnání makromodelů Na obrázcích E-1 a E-2 vidíme průběhy frekvenčních charakteristik napěťového přenosu, které se shodují, resp. vykazují velmi podobné chování v pro nás klíčových parametrech. Těmi je jednak napěťové zesílení Au a jednak poloha dominantního pólu v závislosti na velikosti klidového proudu IABC . V grafu uvedeném na obrázku E-2 je velikost proudu IABC označena shodnými barvami jako je tomu na obrázku E-1. Obrázek E-1: Průběh frekvenční charakteristiky napěťového přenosu v závislosti na řídícím proud IABC u firemního makromodelu LM13700 Obrázek E-2: Průběh frekvenční charakteristiky napěťového přenosu v závislosti na řídícím proud IABC u mnou vytvořeného makromodelu LM13700 V Diplomová práce Příloha F: Vliv parazitní polohy pólu OTA na reálný filtr OTA-C F Vliv parazitní polohy pólu OTA na reálný filtr OTA-C Protože reálná transkonduktance OTA LM13700 má parazitní pól (podkapitola 6.5.2, obrázek 6.12), má poloha tohoto pólu vliv na skutečnou realizaci finálního filtru. Poloha nežádoucího pólu je dána velikostí řídícího proudu IABC . Simulacemi řešeného filtru s firemním makromodelem jsem zjistil, že aby nedošlo ke změně přenosové funkce H(p), je zapotřebí volit parazitní polohu pólu alespoň 10krát větší (IABC = 500 µA), než-li mez propustného pásma daného filtru. Tato skutečnost je graficky zachycena na obrázcích F-1 až F-4. Obrázek F-1: Průběh přenosové charakteristiky H(p) v závislosti na velikosti proudu IABC Obrázek F-2: Detailní průběh prop. pásma přenosové char. H(p) v závislosti na velikosti proudu IABC Obrázek F-3: Průběh nepropustného pásma přenosové charakteristiky H(p) v závislosti na velikosti proudu IABC Obrázek F-4: Detailní průběh nepropustného pásma přenosové charakteristiky H(p) v závislosti na velikosti proudu IABC VI Diplomová práce Příloha G: Reálné vlastnosti kondenzátorů Kromě tohoto poznatku můžeme říci, že mez propustného pásma filtru lze realizovat dokonce i na „polozeÿ parazitního pólu OTA. Tato realizace je však možná jen za předpokladu, že jsme provedli zpřísnění požadavků na realizovaný filtr. V našem konkrétním případě můžeme prohlásit, že tato realizace je možná, jelikož zpřísnění požadavků na filtru bylo uskutečněno (podkapitola 6.2). Důkazem toho je detailní průběh přenosové funkce H(p) na obrázku F-2 a F-4, kde vidíme nežádoucí změnu přenosové funkce H(p) v propustném pásmu pouze o 0,205 dB a v nepropustném o 1,262 dB. Pokud jsme tedy provedli zpřísnění na požadovaná kritéria filtru, splníme tak na nás kladené požadavky i s 10krát menší spotřebou proudu (IABC = 50 µA). G Reálné vlastnosti kondenzátorů U reálného kondenzátoru je zapotřebí respektovat i vliv jeho parazitních prvků. Vycházíme-li z náhradního modelu reálného kondenzátoru uvedeného na obrázku G-1, dostáváme výraz pro jeho impedanci Z jako: Z = |XESL + XC + ESR| , (G-1) kde XESL je impedance ekvivalentního sériového induktoru, XC je impedance kondenzátoru, ESR je hodnotu ekvivalentního sériového odporu. Obrázek G-1: Náhradní schéma reálného kondenzátoru ESR vyjadřuje vnitřní ztráty kondenzátoru, vliv dielektrických ztrát a vliv přechodových odporů kontaktů. Hodnota odporu pájeného kontaktu bývá R ≈ 20 mΩ a hodnota sériového odporu pinu v rozmezí R = 0,1 ÷ 2 Ω. Rp představuje vliv konečné hodnoty izolačního odporu dielektrika. ESL je tzv. zbytková vlastní indukčnost. O kvalitě kondenzátorů vypovídá tzv. ztrátový činitel tgδ (TgD). Ztrátový činitel je dán odporovou a kapacitní složkou kondenzátoru dle vztahu (G-2). Čím je ztrátový činitel nižší, tím je kondenzátor kvalitnější a tím je vhodnější pro práci ve vysokofrekvenčních obvodech. tgδ = 2πf.C.ESR VII (G-2) Diplomová práce Příloha G: Reálné vlastnosti kondenzátorů Podíváme-li se na závislost impedance kondenzátoru na pracovní frekvenci f (viz obrázek G-2), zjistíme, že velikost impedance kondenzátoru není konstantní a mění se v závislosti na pracovním kmitočtu. Můžeme si povšimnout, že se u kondenzátoru při vysokých frekvencích začne více projevovat jeho vlastní parazitní indukčnost. Tento efekt, spolu s ESR, může mít negativní vliv na přenosovou funkci filtru, a proto jsem při návrhu reálného filtru OTA-C doplnil DESA algoritmus i o tyto parazitní prvky. O hodnotách ESR a ESL reálných kondenzátorů se můžeme dočíst v [31], případně v [32]. Ve zmiňovaných literaturách se dočteme, že hodnota ESL či ESR záleží na velikosti kapacity. Při implementaci reálných vlastností kondenzátoru do algoritmu DESA jsem proto postupoval následovně. V případě ESR jsem uvažoval rozptyl hodnot v intervalu ESR = 1 ÷ 2 Ω a v případě ESL jsem sestavil rovnici, která aproximuje parametry z [31], které jsem ještě 2krát zvětšil. Důvodem tohoto zpřísnění je skutečnost, že různé technologie vykazují různé velikosti parazitních prvků a jiný výrobce proto nemusí zajišťovat tytéž hodnoty jako [31]. Hodnoty ESL jsem tedy volil z intervalu (1 ÷ 10 nH). Obrázek G-2: Závislost impedance kondenzátoru na pracovní frekvenci [33] VIII Diplomová práce H Příloha I: Grafický přehled citlivostí Srovnání dynamiky filtru před a po optimalizaci Obrázek H-1: Znázornění dynamických poměrů ve filtru podle obrázku 6.17 před (přerušovaně) a po (plně) dynamické optimalizaci I Obrázek H-2: Znázornění dynamických poměrů ve filtru podle obrázku 6.17 před (přerušovaně) a po (plně) dynamické optimalizaci Grafický přehled citlivosti přenosové funkce |H(p)| na změny hodnot obvodových prvků |H(jω)| Obrázek I-1: Průběh citlivosti SC1 |H(jω)| Obrázek I-2: Průběh citlivosti SC2 IX Diplomová práce Příloha I: Grafický přehled citlivostí |H(jω)| Obrázek I-3: Průběh citlivosti SC3 |H(jω)| Obrázek I-4: Průběh citlivosti SC(x)3 |H(jω)| Obrázek I-5: Průběh citlivosti SC4 |H(jω)| Obrázek I-6: Průběh citlivosti Sgm01 X Diplomová práce Příloha I: Grafický přehled citlivostí |H(jω)| Obrázek I-7: Průběh citlivosti Sgm02 |H(jω)| Obrázek I-8: Průběh citlivosti Sgm03 |H(jω)| Obrázek I-9: Průběh citlivosti Sgm1 |H(jω)| Obrázek I-10: Průběh citlivosti Sgm2 |H(jω)| Obrázek I-11: Průběh citlivosti Sgm3 |H(jω)| Obrázek I-12: Průběh citlivosti Sgm4 XI Diplomová práce J Příloha J: Obsah přiloženého CD Obsah přiloženého CD Přílohu této diplomové práce je CD obsahující: 1. Elektronickou verzi diplomové práce (pdf soubor) 2. Příkladové soubory pro software Maple 10.04 • 00 priklad realizace GA.mw • 01 nalezeni aproximacni prenosove funkce.mw • 02 realizace LC strutkury.mw • 03 metody vedouci k inicializacnimu reseni OTA-C.mw • 04 metody dynamicke optimalizace.mw • 05 aplikace DESA k nalezeni id.filtru OTA-C.mw • 06 realizace realneho filtru OTA-C.mw • 07 slouceni dilcich casti DP.mw 3. Firemní makromodel užitého OTA LM13700 4. Katalogový list užitého OTA LM13700 XII
Podobné dokumenty
Svět BVE - Brno BVE Website
Jaké stránky zde
budou příště?
To je zajímavá otázka a rozhodně ne neopodstatněná. Možná že
si bystřejší čtenáři všimli, že jsme
v této rubrice v poslední době tak
trochu „vařili z vody“. Nebylo di...
Řešení obvodů grafy signálových toků
prakticky aplikovatelné výsledky moderní matematiky a vytvořit předpoklady pro efektivní
výuku inženýrských předmětů. Metodiku výuky matematiky a její atraktivnost pro studenty
chceme zlepšit důraz...
1 - Informatika – definice a základní pojmy 2
sekvenční a přímé. Metodou sekvenční mohou být věty vyhledávány pouze v pořadí, v jakém jsou
uloženy v souboru. U metody přímé mohou být věty zpřístupňovány v libovolném pořadí. Každá věta
je zpřís...
Seite 1 von 2 Praktische Pistolenschützen Brunn 27.02.2005 http
Thomas Hinterberger
Rudolf Schachermayr
Ronald Putz
Robert Wiery
Ralph Trautmann
Guenter Buerger
Wolfgang Habitzl
Michael Hoff
Gerald Karl
Christian Breitler
Dietmar Pfeifer
Christian Prokes
Andrea...
analýza proudového konvejoru CCII01 vs. AD844
3.1 Realizace makromodelu k obvodu AD844 . . . . . . . . . . . . . . . . . . . . .
Velkou naural tit
• Mitchell, M.: Introduction to Genetic Algorithms. MIT
Press, 1996.
• Eiben, A.E and Smith, J.E.: Introduction to Evolutionary
Computing, Springer, 2007.
• Michalewicz Z.: Genetic Algorithms + Dat...