Re: Matematický problém
Miroslav Mraz
mrazik na volny.cz
Čtvrtek Červenec 18 17:59:36 CEST 2024
Vracím se k původnímu zadání. Původně mi to připadalo jako blbost,
protože dostatečně jednoduché vzorce pro toto zadání nalézt nejde.
Ale existuje na to algoritmus pomocí řetězového zlomku, který to řeší
postupnými iteracemi poměrně efektivně. Je poněkud neprůhledný, ale
včera se mi povedlo najít zajímavý klon, který neprůhlednost vylepšuje
tím, že složitost zamete do symboliky - všechna ta kouzla, která se s
daty v iteracích používají se vejdou do násobení 2 matic.
Ono to sice nic neřeší, ale je to "hezké". Obojí je v příloze. V C-čku
to bylo lepší napsat rekurzívně, násobení matic je třeba udělat v C++.
A opravdu statistika ukazuje, že je tím možné PWM významně vylepšit.
Střední odchylka od reálné hodnoty se zmenší zhruba o řád, i když jsou
reálná čísla, která aproximaci dost odolávají. Ale vždy je to lepší než
prosté zaokrouhlování. Na druhou stranu je to jen čistě teoretická
metoda, prakticky to počítat v reálném čase na malém procesoru a zároveň
brát v úvahu, že se tím dost mění časy vzorkování signálu je asi blbost.
Ale snad se to může hodit jinde.
Mrazík
On 14. 07. 24 14:02, Martin Záruba wrote:
> Obráceně. Y bude v intervalu 1 - 100. Asi jsem to napsal blbě, Z ~ Y/X.
>
> Jasně, takto cyklem to určitě půjde.
>
> Dělit lze cokoli čímkoli, celočíselně i float.
>
> Já doufal, že by šlo najít vzorce, kde jestliže zadám Z, získám
> odpovídající X a Y, kde jediná podmínka je, že X musí bý 50 .. 100
>
> Jen na vsvětlení, co jsem si to vymyslel: Potřebuji udělat PWM na cca
> 160 kHz na ATMega, kde hodiny jsou na 16MHz. Tím mi vychází na celou
> periodu 100 kroků. Pokud se pohybuji v horní části (pulz je dostatečně
> dlouhý) je krok změny PWM dostatečně jemný. Ale na dolním konci, kdy
> poměr ON-OFF je třeba 1:10 je velký rozdíl mezi 10 a 11. Proto jsem
> hledal řešení, kde například (raději jemněji) 10.5 lze získat jako 84 /
> 8, tedy Y = 84; X = 8;
>
> Martin Záruba
>
>
------------- další část ---------------
A non-text attachment was scrubbed...
Name: aprox.zip
Type: application/zip
Size: 2127 bytes
Desc: [žádný popis není k dispozici]
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20240718/df987f70/attachment.zip>
Další informace o konferenci Hw-list