Už minule jsem zveřejnil záznamy z osciloskopu, jak probíhá napětí na svorkách H-Můstku, který se na okamžik vypne aby se mohlo změřit napětí na motoru, který se v tom kratičkém okamžiku točí setrvačností a generuje napětí jako dynamo.
Zde Je první záznam - ˇčervená stopa je jedna strana můstku, ta která je připojena k baterce, žlutá stopa je druhá strana můstku, která je, pro daný směr otáčení připojená na zem.
Kde došlo k vypnutí můstku je myslím jasné. Motor v tom případě funguje jako cívka, ve které se zanikající magnetické pole snaží ještě chvíli udržet proud - což vede k tomu že na tuto chvíli se nám napětí na svorkách motoru obrátí z +12 na -12 voltů. Když se podíváte na žlutou stopu - je to myslím jasné. Stejně tak, když se podíváte na červenou stopu je jasné, že "hrot" červeného spajku mířícího dolů ukazuje, kde je na osciloskopu 0V. (žlutá stopa má 2x větší citlivost a jinou nulovou linii).
Pak vidíte na červené stopě ještě nějaké zákmity a pak vidíte, že se napětí ustálilo "někde mezi" 0V (označuje hrot červeného spajku) a 12V (označeno původní linií než jsme můstek vypnuli). To je ono vysněné BackEMF napětí přímo úměrné otáčkám, které měřím a dále používám.
Aby to nebylo všecno tak idealistické tak se podívejte na žlutou stopu - po odeznění žlutého "spajku" jde napětí na "nulové svorce" motoru dokonce 0,5V "pod zem"
Proč tomu tak je ? - minule jsem psal, že motor je za 4 vypnutými tranzistory a 4 zavřenými diodami - galvanicky "téměř" oddělen od elektroniky robota. Taky jsem psal, že svorky motoru si v takové situaci napěťově "plavou kde samy chtějí" a proto se musí měřit rozdíl mezi nimi. Zároveň jsem taky psal, že pokud by si svorky "plavaly" nad napětím baterie, nebo pod 0V tak se příslušná ochranná dioda v můstku otevře a motor si připojí k danému napětí.
Tedy patrně se talo právě to - patrně motoru nejvíce vyhovuje, když při generování BackEMF napěrí se jednou svorkou "opře" o napětí země a nepatrným proudem drží spodní diodu mírně pootevřenou.
Je to problém ? Je a není - napětí pod 0V AD převodník vidí jako 0V a hotovo - takže hnidopiši mezi vámi už jistě křičí - co když robot jede pomalu a negeneruje napětí vyšší než 0,5V ? Pak se dostáváme do oblasti kde měření BakcEMF nebude příliš lineární - s klesajícím napětí na motoru klesá i ten maličký proud, který drží spodní diodu otevřenou, takže napětí na "žluté" svorce motoru se bude postupně přibližovat 0V. AD převodník ovšem na žluté svorce uvidí pořád jen 0. Na druhé straně pokud je na žluté svorce více než -0,5 V tak i napětí na červené svorce bude vyšší a přece jenom "nějaké napěti" se naměří.
Co s tím dělat ?
- dá se to ignorovat - ať si s rím PID regulace poradí
- dá se k naměřenému rozdílu naslepo připočítávat 0,5 V
- dá se otevřít spodní tranzistor a úbytek na diodě který je 500 mV nahradit úbytkem na MOSFETU, který pro tak malý proud bude skoro nulový.
Osobně jsem zvolil čtvrté řešení - vyhýbat se oblasti kdy BackEMF je menší než 1V jako čert kříži. Důvod je v tom, že moje můstky neumí "sólo" zapnout spodní tranzistor a naslepo připočítávat 0,5 v se mi jeví jako větší zdroj chyb než jet "nad jeden Volt".
Hnidopiši zase křičí - říkal, že BakcEMF můstek nemá problémy s malými rychlostmi a teď toto. Odpovídám ANO - v malých rychostech není odezva na rychlost lineární, ale alespoň je spojitá - na rozdíl od enkodérů naměřim pokaždé nenulovou rychlost - takže tendence PID algoritmu k cukání je mnohem menší.
Opět mám pocit, že už je výklad trochu únavný, takže už končím a dodávám jenom tradiční radu pro blondýny: Jestli chcete do světa vykřičet, že jste lenivá špindíra a chystáte se to udělat tradiční formou, kterou používá spodina - to jest křiklavě barevnými a divoce zakřivenými umělými nehty - zvažte že 5 cm zahnuté "pazoury" značně komplikují klikání na displej iPhonu a hrotem nehtu na kapacitní displej klikat nejde (viděno na vlastní oči - na zapáchající blondýně v černé teplákovce v pražském metru).