česky english Vítejte, dnes je čtvrtek 28. březen 2024

LTspice v praxi − 5. díl: Worst-case, WAV a PWL

DPS 1/2020 | Články
Autor: Ing. Jan Vavrouš

Předchozím dílem jsme zakončili blok článků zabývajících se součástkami ve Spice. Toto pokračování minisérie o LTspice bude již poslední. Velmi jsem se na ně těšil, a jak již bylo předesláno, čekají nás jen samé „libůstky“.

Monte Carlo

Kolegové „simulanti“ budou jistě vědět, že se nejedná o velkou cenu Formule 1, ale spíše o metodu používanou ve „worst-case“ analýze. V LTspice lze provádět i jiné druhy analýzy, např. též „tvrdou“ worst-case analýzu, při které budou testovány všechny kombinace součástek s ohledem na minimální a maximální hodnotu. Tato metoda je u pěti součástek stále dobře použitelná. Pokud jich ale bude třeba dvacet, už si chvíli počkáte, protože ve Spice bude nutné odsimulovat 220 běhů simulace. Pěkný příklad použití můžete najít v [1].

Obr. 1, 2

Budeme se tedy věnovat metodě Monte Carlo, která vede velmi rychle k výsledku. Hodnota je generována náhodně z intervalu zadaného jako parametr funkce „MC“, přičemž rozdělení náhodných hodnot je v rámci intervalu rovnoměrné. Obdobných výsledků pak dosáhneme použitím funkce „FLAT“, rozdíl je pouze ve formátu vstupů. Funkci „MC“ definujeme parametry mc (hodnota, tolerance). Využití si nyní ukážeme na jednoduchém odporovém děliči dle obr. 1. Simulace se spustí pokaždé s jinými, náhodně generovanými hodnotami. Opakované spouštění zajistíme například funkcí „step“, a pokud zvolíme dostatečně velký počet opakování, výsledek konverguje k worst-case. V případě našeho odporového děliče si limitní hodnoty můžeme snadno ověřit.

Funkci „MC“ lze zapsat přímo jako atribut rezistoru nebo můžeme hodnotu definovat pomocí direktivy „.param“. To pak s sebou nese jednu velkou výhodu. Budeme tak totiž schopni zpětně určit, jaké hodnoty parametr nabýval pro konkrétní běh. Pro připomenutí hledejte v hlavním menu: View -> SPICE Error log. Oba příklady použití funkce „MC“ zachycuje obr. 1.

Funkce WAVE, Janis Joplin a LTspice

Vše, o čem jsme si doposud povídali, bylo pouze virtuální, pečlivě oddělené od reality všedního dne. LTspice vám ale umožňuje hranice překročit!

Zúčastnil jsem se jednoho ze seminářů Mika Engelhardta, kde tuto funkci sám prezentoval. Popisoval přitom zapojení elektronkového zesilovače. Jako vstup signálu zde použil zdroj napětí definovaný souborem wav, výstup simulace uložil také jako wav a přehrál ho na počítači. Říkal, že si tak může ověřit zvuk svého zesilovače ještě před tím, než ho vůbec postaví, a dodal, že v případě Janis Joplin je to vzhledem k povaze jejího hlasu stejně jedno. Ačkoli mám Janis Joplin velmi rád, Mikův vtip mě docela pobavil.

Použití souboru wav pro vstup a výstup simulace je patrný z obr. 2. Funkce „.WAVE“ umožňuje nastavit počet kanálů, rozlišení a bit-rate. Napěťový rozsah zde činí ±1 V. Pokud budeme chtít soubor později přehrát na počítači, je nutné vybrat standardní rychlost (11 025 Hz, 22 050 Hz nebo 44 100 Hz). Rozlišení zvolme 8 nebo 16 bitů. Kanál 0 přehrávač obvykle považuje za levý, zatímco kanál 1 za pravý. Vstupní soubor je umístěn ve stejném adresáři jako soubor simulace: *.asc. Cestu k souboru lze samozřejmě definovat také absolutně. Pro export souboru z obvodových veličin použijeme funkci „.wave“. Pro import souboru wav pak stačí změnit atribut u zdroje napětí, doplníme tedy atribut value definicí „wavefile“. Oba případy jsou patrné z obr. 2.

Mezi klávesnicí a židlí je osciloskop. Nikoli chyba

Používáte-li digitální osciloskop, máte zároveň další rozhraní mezi reálným světem a simulací. Princip je shodný se souborem wav, pouze s tím rozdílem, že zde bude sloužit jako vstup textový soubor. Tento soubor pak bude vstupem funkce PWL. Zdroj definujeme velmi jednoduše. V kontextové nabídce nad symbolem zdroje zvolíme „PWL FILE“ a do okénka doplníme název našeho „zdrojového“ souboru.

Většina osciloskopů umožňuje exportovat akvizici jako soubor CSV. Můj osciloskop bohužel do souboru *.csv nezaznamenává časovou osu, ta je definována v hlavičce souboru jako „Increment 1.00E-07“, tedy 100 ns na vzorek. Data jsem proto importoval do tabulkového procesoru a časovou osu doplnil. Správný formát dat pro funkci PWL získáme zkopírováním obou sloupců do textového souboru. První sloupec však musí odpovídat časové ose, data poté kopírujeme bez hlavičky. Schéma a výstup ze Spice můžete vidět na obr. 3. Jedná se o volnou vazbu laciného LED svítidla na sondu osciloskopu, přesně tak, jak jsem ji v daný okamžik zachytil.

Obr. 3

Slovo na závěr

Přestože je internet nepřeberná studnice informací, těch o LTspice nevyjímaje, není nad chvíle, kdy si člověk doma v křesle udělá pohodlí a otevře třeba odborný časopis. V pěti dílech jsem se pokusil LTspice blíže představit – základními úkony počínaje a různými „vychytávkami“ konče. Vše, co jsem zde publikoval, mi v praxi skutečně pomohlo. Doufám proto, že si tento miniseriál našel své příznivce a publikované informace byly užitečné i pro vás.