Lineární obvody a systémy (LOS)

Využití programu MATHCAD - Chamout Jakub


Tato práce je míněna pouze jako příklad pro vlastní efektivní řešení s možností poučit se a vyvarovat se chyb, kterými jsem já prošel. Rozhodně toto není obecně funkční vzorek pro výpočet PP.

Následuje doplňující komentář k souborům sem01b.mcd, sem01c.mcd a sem01k.mcd. Tyto tři programy byly navrženy především pro řešení konkrétního zadání (v tomto případě číslo 9) s případnou možností jejich širšího využití. Pro toto využití nebyly optimalizovány a odladěny, proto v této podobě, ačkoliv počítají správně, se může objevit několik nepřesností až i chyb. Zde jsou vyjmenována hlavní úskalí.

Soubor sem01b.mcd - Butterworthova aproximace

  1. Pro tento program jsou vstupními parametry jednotlivé kmitočty pásmové propusti a dovolené chyby v propustném a nepropustném pásu. Tímto se omezuje řešení na PP, neboť tu jsem řešil. Rozšíření na HP,DP je snadné, ale není vytvořené, NDP se dá realizovat také, protože výpočet je tímto směrem veden.
  2. Již v samotném ověření symetrie filtru a následném rozhodnutí, který požadavek je přísnější a má se zvolit není obecné a proto je nutné zkontrolovat zda byl vybrán správně.
  3. Dále se zde počítají celkem zbytečné záležitosti (póly H(s)) pomocí vztahů ze skript. Tyto lze snadno získat přímo funkcí což jsem z počátku nevěděl.
  4. Asi největší problém nastane při realizaci pomocí rozkladu v řetězový zlomek, zde jsem také nepoužil nejoptimálnější řešení a při výpočtu již druhé konstanty pro jiné zadání může program vypočítat nesmysl (hodnota součástky rovna nule). Toto je způsobeno použitím algoritmu ze skript, které je samozřejmě správné, ale odčítání nekonečných desetinných čísel je u všech matematických programů s konečnou délkou desetinného čísla problém. Tento problém jsem o něco lépe vyřešil ale až pro další aproximace a pro Butterworthovu jsem nechal tento neštastný způsob.
  5. Poslední poznámka k souboru zadani9_butter.mcd je, že díky této nešťastné volbě štípání je toto navřeno pouze pro stupeň aproximace 3.

Soubor sem01c.mcd - Čebyševova aproximace

Zde jsou obdobné úskalí, neboť jsou si obě aproximace velmi podobné. Hlavním rozdílem je řešení onoho problému štěpení v řetězový zlomek. Zde jsem použil o něco lepší způsob nicméně stále ještě ne ideální. Výhoda je v tom, že místo odčítání nejvyššího koeficientu a následného zaokrouhlování jednotlivý polynom derivuji čímž získám příslušné konstanty a následně zase násobím, ale bez nejvyšší mocniny, čímž zajistím s maximální možnou přesností následné zpracování. I tato metoda je velmi neohrabaná a vytvořil jsem ji zase pouze pro stupeň filtru 3, ale testoval ji i na stupeň filtru 4 v souboru což je realizace řešeného příkladu 6.2 a 7.4 ze skript. Naneštěstí mě lepší řešení napadlo až při realizaci z kaskádní matice.

Soubor sem01k.mcd - realizace kaskádní syntézou

Zde jsem se již jako zkušený „Mathcadař“ pokusil o co nejsnazší řešení. Nicméně návrh je zpracován pouze pro stupeň filtru NDP 3 PP 6 a Qp v rozmezí 0,5-5, neboť zde jsem si opravdu nemyslel, že tato práce bude dále využita. Pouze k do okomentování problematiky odčítání koeficientů uvedu podle mně nejlepší a mnou naposled použitý způsob. Jedná o možnost využití přímo funkce coeffs v tomto programu. Tato funkce vrací hodnoty koeficientů daného polynomu do matice (n+1)x1 kde n je řád polynomu. Podobně je zde názorně ukázána funkce solve, která vrací hodnoty kořenů daného polynomu.

Zde je tento soubor + uváděné soubory dat pro program MATHCAD v komprimované podobě jako .zip soubor.



©Chamout Jakub