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