Stejnosměrná analýza
Uvázka stejnosměrné alanýzy velmi jednoduchého lineárního modelu (odporový dělič).
Zadání obvodu. Jak bylo uvedeno výše je syntaxe zadání obvodu velmi podobná syntaxi v programu Spice. První řádek se neuvažuje a bere se vždy jako komentářový. Vlastní komoentář je pak na zvláštním řádku uvozen znakem * (přechod na další řádek např. pomocí Shift-Enter).
> | delic:="odporový dělič V 1 0 1 *komentář: nezávislý zdroj napětí V orientován od uzlu 1 do uzlu 2 o velikosti 1V R1 1 2 50 R2 2 0 100 .end": |
Symbolické řešení obvodu bez ohledu na zadané hodnoty součástek. Příkaz PraCAn vrací standardně vztahy pro uzlová napětí a proudy napěťovými zdroji, kapacitory a induktory.
> | napeti_sym:=PraCAn(delic, dc, symbolic); |
Výběr vztahu pro napětí v uzlu "2" a jeho přiřazení do proměnné vystup. Uzly se značí identifikátorem typu string, aby bylo možné pro uzly používat i výrazy typu "in", atd.
> | vystup:=subs(napeti_sym,v("2")); |
Následuje ukázka početní řešení se zadanými hodnotami součástek. Pokud někrerá součástka nemá zadanou číselnou hodnotu, vezme se jako hodnota její identifikátor. Místo hodnoty může být zadán i výraz, jak bude zřejmé dále.
> | napeti_num:=PraCAn(delic, dc); |
Paramerem SAVE lze řídit, jaké veličiny má příkaz PraCAn vrátit. Pomocí množiny lze navíc požadavky kombinovat.
> | PraCAn(delic, dc, SAVE=v("2")); |
> | PraCAn(delic, dc, SAVE=nodes); |
> | PraCAn(delic, dc, SAVE=branches); |
> | PraCAn(delic, dc, SAVE=currents); |
> | PraCAn(delic, dc, SAVE=all); |
> | PraCAn(delic, dc, SAVE={v("2"),currents}); |
> |
Příkald použití ostatních příkazů knihovny PraCAn (při prvním čtení lze přeskočit)
Analýza invertujícího zesilovače s ideálním operačním zesilovačem.
> | circ_oz:="invertující zesilovač s OZ V in 0 1 R1 in inv 1k R2 inv out 10k A1 out 0 inv 0 .end": |
Symbolické i numerické řešení. Proud i("A1") je výstupním proudem OZ (orientace odpovídá orientaci výstupních svorek!). Číselné řešení je provedeno ac analýzou, která musí v tomto případě dávat samozřejmě stejné výsledky.
> | reseni:=PraCAn(circ_oz, dc, symbolic); |
> | reseni:=PraCAn(circ_oz, ac, SAVE=nodes); |