Představujeme: Makro Rays - simulace optiky a procházejících paprsků
Publikováno: 30. října 2015 | Zobrazeno: 3757x
Většina konstruktérů se při své práci setkává s nějakým druhem simulace, pomocí které si může ověřit správnost svého návrhu. Nejčastěji využívanou simulací je bezesporu FEM analýza, ale v jiných případech se počítá např. působení elektrického pole, akustika nebo optika. A právě simulace optiky byla impulsem pro vytvoření makra, které tu dnes představíme. Makro je zároveň názornou ukázkou, kam až se dá posunout automatizace.
Zadání znělo: Vymyslet postup, který usnadní konstruktérům prvotní návrh optického členu osvětlovacího prvku. Zákazník, pro kterého bylo makro vyvinuto, má k dispozici specializovaný výpočetní software pro simulaci optiky, ale ten je vhodné použít až ve chvíli, kdy je optický člen už "nějak" navržený, aby se jen doladily detaily. První návrh vždy probíhá pouze v CAD, kdy konstruktér na základě zkušeností namodeluje čočku se všemi rozptylnými a odrazovými ploškami. Poté vytvoří několik paprsků, nechá jen projít čočkou, a zjistí, zda a jestli vůbec dopadnou na osvětlovanou plochu. Paprsek se na rozhraní láme, a může se i odrážet, proto se musí do paprsku namodelovat všechny jeho interakce, kterých může u složitější optiky být klidně pět a více.
Vytvoření paprsku není z pohledu modelování nic složitého (několik průsečíků s optikou a úseček), časově je to ale poměrně náročné. Vytvoření jednoho paprsku, který se např. dvakrát láme a třikrát odráží, trvá přibližně 5 minut (na jednom z obrázků je vidět celý strom s geometrií paprsku). Pokud bychom chtěli mít simulaci s rastrem paprsků 20x20 (400 paprsků), bude jejich vytvoření trvat 2000 minut, což je skoro den a půl. Pak zjistíme, že čočka je navržená špatně, a můžeme dělat vše znovu. Ve skutečnosti si modelujeme jen ty paprsky, které nás zajímají nejvíce, ale i tak by to zabralo hodně času.
Když si ušetříme práci a necháme si každý návrh nasimulovat ve specializovaném softwaru, zbytečně zatěžujeme výpočtáře. Navíc se data musí pokaždé převádět přes nějaký univerzální formát, poté definovat samotná úloha, a nakonec si výsledky musíme nechat předvést a zpětně podle nich upravit model. Když pro první návrh použijeme makro, bude to analogie k FEM simulacím prvních konstrukčních návrhů, kdy má konstruktér k dispozici jednodušší simulační program, který mu umožní verifikovat jeho prvotní návrh, a zbytečně "neotravuje" skutečné výpočtáře.
Podrobný postup zde nebudu popisovat. O tvorbu paprsku se stará jeden poměrně zdlouhavý, ale ne příliš složitý algoritmus, který paprsek vyšle ze zdroje, postupně jej "prohání" přes zadaná rozhraní, kde se láme či odráží, a průběžně kontroluje, zda již nedopadá na reflektor (dopadovou plochu). Ve výsledku k výpočtu stačila matematika střední školy - sinus, kosinus a absolutní hodnota. Zbytek analytické geometrie zastala sama CATIA - v tomto ohledu ji musím opravdu vyzdvihnout.
Zdroj světla je reprezentován axis systémem. Osa Z určuje směr vyzařování. Jednotlivá rozhraní i plocha reflektoru jsou vytvořeny z ploch, jako dopadová plocha pak může být vybrána i rovina.
Volitelně lze ještě vybrat clonu, tj. plochy objektu, které jsou mezi zdrojem a dopadovou plochou a můžou paprsky stínit. Stíněné paprsky se pak zobrazují jinou barvou (včetně dopadových bodů), takže stíněná oblast jde snadno poznat.
V dialogu lze nastavit i barevnou škálu pro výpočet intenzity. Ten je však pouze orientační, skutečné hodnoty už jsou opravdu úlohou pro specializovaný software.
Na prvním obrázku je simulace v celém vyzařovacím úhlu. Dobře je vidět dva paprsky, které jsou cloněny.
Na druhém obrázku je výsledek simulace s jinak nastavenou roztečí paprsků. Vytváří se paprsky ležící pouze v jedné rovině a je tak dobře patrné jejich rozložení. Větší detail lomu a odrazů paprsků je pak na dalším obrázku.
Třetí obrázek ukazuje detail průchodu paprsků složitější optikou. Na první pohled je patrné, že levé modré paprsky se neodrazí a uniknou (nebudou osvětlovat místo které požadujeme). Žluté paprsky se odráží správně, modré paprsky vpravo pak jen prochází. Pokud by nás zajímala jen jedna konkrétní odrazová ploška, lze natočit axis systém osou Z přímo na plošku, zmenšit rozteč paprsků a omezit vyzařovací úhel. Pak bude celý svazek nasměrován jen na tuto plošku.
Pro názornost ještě strom s geometrií jednoho paprsku s několika lomy a odrazy. Když si spočítáte počet features, musí vám být jasné, kolik času zabere paprsek vytvořit. K tomu přidejte měření úhlů paprsku vůči normále a výpočet (několikrát) úhlu lomu od normály.
Poznámka: Geometrie je sice parametrická, ale úhly lomu a odrazů nejsou řízené pomocí formulí. Jakákoliv změna na geometrii optiky se tedy promítne do paprsků, ale výsledek pak už nebude odpovídat zákonům optiky. A při větší změně spousta paprsků "popadá", protože jednoduše změní směr a už např. neprotnou reflektor.
Jan Cinert - CATIA fórum (vývojář)
+420 734 762 843
jan.cinert@catia-forum.cz
Připravíme pro Vás testovací balíček, se kterým si makro budete moci zcela nezávazně vyzkoušet po dobu jednoho měsíce.
Líbí se vám makro, ale chcete některou z funkcí změnit nebo přidat funkci navíc? Ani to není problém, makro pro Vás rádi upravíme či rozšíříme.
Poznámka: Makro bylo vyvinuto exkluzivně pro společnost WITTE AUTOMOTIVE, která si tím vyhrazuje právo na jeho poskytnutí jiným subjektům
Autor článku: Jan Cinert
Co vedlo ke vzniku
Zadání znělo: Vymyslet postup, který usnadní konstruktérům prvotní návrh optického členu osvětlovacího prvku. Zákazník, pro kterého bylo makro vyvinuto, má k dispozici specializovaný výpočetní software pro simulaci optiky, ale ten je vhodné použít až ve chvíli, kdy je optický člen už "nějak" navržený, aby se jen doladily detaily. První návrh vždy probíhá pouze v CAD, kdy konstruktér na základě zkušeností namodeluje čočku se všemi rozptylnými a odrazovými ploškami. Poté vytvoří několik paprsků, nechá jen projít čočkou, a zjistí, zda a jestli vůbec dopadnou na osvětlovanou plochu. Paprsek se na rozhraní láme, a může se i odrážet, proto se musí do paprsku namodelovat všechny jeho interakce, kterých může u složitější optiky být klidně pět a více.
Vytvoření paprsku není z pohledu modelování nic složitého (několik průsečíků s optikou a úseček), časově je to ale poměrně náročné. Vytvoření jednoho paprsku, který se např. dvakrát láme a třikrát odráží, trvá přibližně 5 minut (na jednom z obrázků je vidět celý strom s geometrií paprsku). Pokud bychom chtěli mít simulaci s rastrem paprsků 20x20 (400 paprsků), bude jejich vytvoření trvat 2000 minut, což je skoro den a půl. Pak zjistíme, že čočka je navržená špatně, a můžeme dělat vše znovu. Ve skutečnosti si modelujeme jen ty paprsky, které nás zajímají nejvíce, ale i tak by to zabralo hodně času.
Když si ušetříme práci a necháme si každý návrh nasimulovat ve specializovaném softwaru, zbytečně zatěžujeme výpočtáře. Navíc se data musí pokaždé převádět přes nějaký univerzální formát, poté definovat samotná úloha, a nakonec si výsledky musíme nechat předvést a zpětně podle nich upravit model. Když pro první návrh použijeme makro, bude to analogie k FEM simulacím prvních konstrukčních návrhů, kdy má konstruktér k dispozici jednodušší simulační program, který mu umožní verifikovat jeho prvotní návrh, a zbytečně "neotravuje" skutečné výpočtáře.
Modelování paprsku
Prvním úkolem bylo ověřit, zda je možné vytvořit takový postup pro vymodelování paprsku, aby se dal později využít v makru. U některých funkcí CATIA se může vytvořit několik různých výsledků, kdy ten požadovaný vybírá uživatel na základě toho co vidí, tj. vybere si to, co potřebuje. U makra je to ale vždy problém, protože dopředu nevíme, který výsledek se zrovna vytvoří. Je proto třeba u každého možného výsledku např. měřením, či jiným způsobem ověřit, zda výsledek vyhovuje. Pokud ne, otočí se směr, zvolí se jiný kvadrant apod.Podrobný postup zde nebudu popisovat. O tvorbu paprsku se stará jeden poměrně zdlouhavý, ale ne příliš složitý algoritmus, který paprsek vyšle ze zdroje, postupně jej "prohání" přes zadaná rozhraní, kde se láme či odráží, a průběžně kontroluje, zda již nedopadá na reflektor (dopadovou plochu). Ve výsledku k výpočtu stačila matematika střední školy - sinus, kosinus a absolutní hodnota. Zbytek analytické geometrie zastala sama CATIA - v tomto ohledu ji musím opravdu vyzdvihnout.
Jak to funguje
Aby zadání bylo co nejjednodušší, je algoritmus zabalený do jednoduchého uživatelského rozhraní. Uživatel postupně definuje zdroj světla (bod vyzařování, velikost, směr, intenzitu), dále vybere geometrii optického členu (všechny myslitelné plochy na čočce, kterými může paprsek procházet nebo se na nich odrážet). U optického členu lze zvolit index lomu a volitelně i propustnost, pokud chceme alespoň orientačně spočítat intenzitu paprsku při dopadu. Nakonec se vybere dopadová plocha, kde se paprsek ukončí - pokud plochu protne.Zdroj světla je reprezentován axis systémem. Osa Z určuje směr vyzařování. Jednotlivá rozhraní i plocha reflektoru jsou vytvořeny z ploch, jako dopadová plocha pak může být vybrána i rovina.
Volitelně lze ještě vybrat clonu, tj. plochy objektu, které jsou mezi zdrojem a dopadovou plochou a můžou paprsky stínit. Stíněné paprsky se pak zobrazují jinou barvou (včetně dopadových bodů), takže stíněná oblast jde snadno poznat.
V dialogu lze nastavit i barevnou škálu pro výpočet intenzity. Ten je však pouze orientační, skutečné hodnoty už jsou opravdu úlohou pro specializovaný software.
Ukázky simulace
Na následujících obrázcích jsou výsledky simulace jednoduché optiky s jedním členem.Na prvním obrázku je simulace v celém vyzařovacím úhlu. Dobře je vidět dva paprsky, které jsou cloněny.
Na druhém obrázku je výsledek simulace s jinak nastavenou roztečí paprsků. Vytváří se paprsky ležící pouze v jedné rovině a je tak dobře patrné jejich rozložení. Větší detail lomu a odrazů paprsků je pak na dalším obrázku.
Třetí obrázek ukazuje detail průchodu paprsků složitější optikou. Na první pohled je patrné, že levé modré paprsky se neodrazí a uniknou (nebudou osvětlovat místo které požadujeme). Žluté paprsky se odráží správně, modré paprsky vpravo pak jen prochází. Pokud by nás zajímala jen jedna konkrétní odrazová ploška, lze natočit axis systém osou Z přímo na plošku, zmenšit rozteč paprsků a omezit vyzařovací úhel. Pak bude celý svazek nasměrován jen na tuto plošku.
Pro názornost ještě strom s geometrií jednoho paprsku s několika lomy a odrazy. Když si spočítáte počet features, musí vám být jasné, kolik času zabere paprsek vytvořit. K tomu přidejte měření úhlů paprsku vůči normále a výpočet (několikrát) úhlu lomu od normály.
Hierarchický strom paprsku. Jsou použity funkce Intersection a Line s typem angle. Úhly na rozhraní jsou vypočteny podle indexu lomu.
Poznámka: Geometrie je sice parametrická, ale úhly lomu a odrazů nejsou řízené pomocí formulí. Jakákoliv změna na geometrii optiky se tedy promítne do paprsků, ale výsledek pak už nebude odpovídat zákonům optiky. A při větší změně spousta paprsků "popadá", protože jednoduše změní směr a už např. neprotnou reflektor.
Videoukázka
V následujícím videu je zachycen průběh simulace jednoduché optiky.Kontakt
Pokud Vás makro zaujalo a chcete si ho vyzkoušet, pište nebo volejte na:Jan Cinert - CATIA fórum (vývojář)
+420 734 762 843
jan.cinert@catia-forum.cz
Připravíme pro Vás testovací balíček, se kterým si makro budete moci zcela nezávazně vyzkoušet po dobu jednoho měsíce.
Líbí se vám makro, ale chcete některou z funkcí změnit nebo přidat funkci navíc? Ani to není problém, makro pro Vás rádi upravíme či rozšíříme.
Poznámka: Makro bylo vyvinuto exkluzivně pro společnost WITTE AUTOMOTIVE, která si tím vyhrazuje právo na jeho poskytnutí jiným subjektům
Autor článku: Jan Cinert