MIO400 s integrovaným variem. Jak funguje vario a jeho software?

Navazuje na článek část 1. hardware pro vario.

Co se děje uvnitř variometru?

Se změnou výšky dochází ke změně tlaku (geometrickou řadou zhruba na každých 5,5 km klesne tlak o polovinu). Tento základní fyzikální princip je základem funkce všech variometrů pracujících s tlakovým čidlem. Pro určení stoupání či klesání musí být přístroj schopen dostatečně přesně změřit aktuální tlak. K tomu slouží baročidlo.

Baročidla v digitálních variometrech měří tlak s přesností na tisíciny milibaru. Mnou použité baročidlo MS5611 je schopné rozlišit změnu o 0,012 mbar což odpovídá zhruba 10cm. Čidlo má vzorkovací frekvencí snímání 80 krát za vteřinu.


V klasických variometrech, které se používají například ve větroních jsou variometry mechanické. (nejčastěji křidélkové či membránové) Mechanická odchylka membrány či křidélka při změně tlaku je vnitřním mechanismem přenášena  na ručičku, která na stupnici zobrazuje stoupání či klesání. Více se o konstrukci variometrů můžete dozvědět například zde: http://en.wikipedia.org/wiki/Variometer

Jak se vypadá výpočetní algoritmus variometru?

Takto v jednoduchosti vypadá výpočetní algoritmus:
  1. měření tlaku (například 30 krát za vteřinu) 
  2. tlak je přepočítán na výšku 
  3. z údajů změřených za časový interval (řádově vteřinu) se určí hodnota stoupání (například: na počátku intervalu naměříme výšku 100 m, po sekundě 101 m, z těchto hodnot můžeme určit stoupání, které bylo 1 m/s)
  4. pokud stoupání překročilo určitou prahovou hranici, je provedena zvuková signalizace


Fig 1. Příklad amproximace změřených hodnot přímkou

Získané hodnoty výšky nejsou lineární (neleží na přímce protože většinou nestoupáme rovnoměrně). Počítat stoupání z hodnoty na začátku intervalu a na jeho konci by bylo velmi nepřesné. Je proto lepší využít k výpočtu všechny změřené hodnoty za interval. Tyto hodnoty aproximujeme přímkou (Fig. 1) ve smyslu minimální odchylky (např. pomocí jednoduché metody   minimálních čtverců). Rychlost stoupání hodnot výšky na přímce je přímo úměrná rychlosti našeho stoupání a výsledný výpočet stoupání je velmi jednoduchý. Stačí jej normalizovat, aby hodnota udávala stoupání v metrech za sekundu. Vario určuje stoupání po každém měření, tedy několikrát za vteřinu a teprve na základě těchto průběžných hodnot podává akustickou signalizaci. Samotná signalizace je pak volena a parametrizována v závislosti na rychlosti stoupání. (vyšší tónina zvuku, zkrácená perioda pípání atd.)

Vzorkovací frekvence ( rychlost snímání čidla ) má na funkci varia zásadní vliv:

  1. můžeme průměrovat více hodnot za interval a tím je měření zpřesněno
  2. průměrování více hodnot odstraňuje přirozený šum, který vzniká na senzoru
Je tedy důležité, aby tlakové čidlo bylo schopno poskytnout dostatečnou vzorkovací frekvenci (to byl  částečně problém u čidla BMP085).

Eliminace chyb a šumu

Problém při konstrukci varia byl šum zanesený do měření barometru. Ten se projevuje například tak, že ponecháme-li barometr ležet na stole, teoreticky by měla být hodnota výšky konstantní. (variometr by neměl vydávat zvukovou signalizaci a ukazovat by měl ustálenou hodnotu stoupání rovnou nule)

V praxi tomu tak není a hodnota osciluje okolo skutečné výšky. Chyba a míra oscilace je závislá na podmínkách, odrušení a kvalitě barometrického čidla. V přechodových stavech (při změnách výšky) pak tento šum ještě narůstá. Program si samozřejmě s tímto šumem musí nějak poradit.

Fig 2. měření baročidla BMP085
modře - syrové hodnoty z baročidla
červeně - hodnoty vyhlazené IIR filtrem
Lineární aproximace, kterou jsme použili pro samotný výpočet hodnoty tento šum částečně eliminuje, přesto je vhodné problematiku řešit ještě jiným způsobem - i s ohledem na "chyby", které se v měření mohou vyskytnout (například hodnota, která se výrazně/skokově odchyluje od dosavadního průběhu vlivem buzení senzoru rušením). K eliminaci takových výchylek se používají algoritmy filtrace.

Filtrování v algoritmu varia

K nejjednodušším metodám filtrace patří použití klouzavých průměrů (např. průměrujeme vždy posledních 10 naměřených hodnot). K pokročilým metodám patří například Kalmánův filtr (jedná se o filtr používající predikační mechanismu. Bez tohoto typu algoritmu se dnes neobejde žádné GPS zařízení) Kalmánův filtr použil autor amatérského varia BlueFly. Vzhledem k charakteru problému (parametry šumu a chyb) je tento postup jen zanedbatelně účinnější než využití jednoduchého průměrovacího filtru. To i autor na ve svém článku potvrzuje. Naopak při použití jednoduchého IIR filtru nenarůstá výpočetní náročnost a to je výhodné pro vario algoritmus, který musí být spočten v řádech jednotek milisekund.

Filtr který jsou použil funguje tak, že používá pouze X% změny z nově změřené hodnoty. To sice zanáší do systému dopravní zpoždění a zvyšuje dobu náběhu. Ovšem také velmi efektivně vyhlazuje získaná data a eliminuje skokové změny. Tak jak to můžete vidět z obrázku.(Fig. 2) (jde mi zde o nastínění principu, proto jsem použil graf přímo ze stránek BlueFly, který chování filtru dostatečně jasně ukazuje) Doba náběhu k ustálené hodnotě je při dobrém nastavení v řádech milisekund, tudíž nijak znatelně  neovlivňuje funkci a odezvu varia. Výrazně ale přispívá k plynulosti projevu zvukové signalizace.

Chování varia a jeho odlazení


Mým cílem bylo mít dostatečně citlivé vario, které ovšem bude "tupé" vůči kyvům a pohybům ke kterým dochází za letu na paraglidingovém křídle.

Citlivost varia není totiž vše a naopak je-li extrémní může to být kontraproduktivní. Obecně neplatí že čím citlivější vario, tím lépe. V praxi dnes nenaleznete variometr, který by svojí odezvu uměle nezpomaloval. Nalazení konstant filtrace a časového úseku okna pro výpočet je stěžejní pro charakteristiku přístroje. Tyto parametry zásadně ovlivňují výsledné chování při indikaci. V každém rozumném přístroji existuje parametr s nastavením, který umožňuje nastavit potlačení citlivosti. Například u varií digifly jde o hodnota RVAR, která sice neznecitlivuje výpočet, ale znecitlivuje akustickou signalizaci. (vario začne zvukově indikovat stoupání pokud trvá déle než 0,5 vteřiny). Vario Flymaster má obdobně nastavitelný parametr (myslím že jde o parametr dumping)


Někteří piloti zavrhují přístroje, které například "nepípají" při testování již při malém pohybu ruky. Velkou roli v tomto hraje také zvyk pilota na určité chování přístroje. Piloti větroňů létají na trojnásobcích naší rychlosti (ustředěná rychlost stoupání cca 85km/h) a varia v letadlech mají prodlevu 2-3 vteřiny. Vyžadovat zpoždění v řádech desítek milisekund na variu je podle mě nesmysl, pg křídlo letící malou rychlostí za takovou dobu stoupání neztratí ani z něj nevyletí.

Vario v MIO jsem nejprve ladil ve výtahu, kde jsem zkoušel různé kombinace nastavení a měřil doby náběhu na ustálenou hodnotu atd. Vario a jeho signalizaci jsem zároveň porovnával s mým Digifly Leonardo, na který jsem z létání zvyklý. Po odzkoušení došlo na praktické testy za letu. Ty jsem prováděl v jarní termice na Rané. Při točení termiky, během něhož jsem měl zapnutá obě varia abych mohl funkci porovnat jsem si připadal jako na kolotoči. Vario v MIO ale fungovalo velmi dobře a tak jsem později přestal kontrolní přístroj používat.

Po praktických testech jen došel k závěru že použité čidlo MS5611 bylo výbornou volbou. Dokonce jsem mohl zvýšit hodnotu útlumu na filtru a použít delší průměr. Vzhledem k rychlostí vzorkování má vario konzistentnější chování a nemá neduhy v podobě nesmyslného pípání při každém pohybu či zavrtění se v sedačce.

Buzzer alá Flymaster

Do algoritmu varia jsem implementoval po vzoru varia flymaster B1 funkci buzzer - tedy zvukovou signalizaci pro točení nulových stoupáků a míst s nižším opadáním. Musím říct, že i přes velký hype mě funkce nepřijde moc využitelná. Když jsem létal raději jsem se soustředil na změny proudění a  místo kam mě nulka driftuje, než na hledání místa s nejnižším padáním. Přesto je možná tato funkce pro některé piloty šikovná, jen se s ní naučit, mě nesedla a nakonec jsem ji vypnul a létám bez ní.

Implementace

Celý systém je zatím naprogramován pro desku Arduino. Program je vytvořen v jazyku C, s možností aplikovat část mechanizmů z C++. (ořezaná objektová struktura atd). Celý software je tedy otevřen například pro vytvoření nových zvukových profilů, interface pro nastavení přímo z MIO400 či jiné navigace atd. V současné době pracujeme na implementaci na vlastní desku a další vychytávky.

Přetrvávající problémy

Problémem, který mne zatím trápí je ovlivnění teplotního čidla teplem uvnitř přístroje MIO. Přístroj se za běhu zahřívá a bude nutné sehnat teploměr se záznamem pro vytvoření kompenzačního mechanismu.

Dalším neduhem, kterým ovšem netrpí pouze toto vario je reakce na zaklíčování do vysílačky. S tímto chováním jsem se setkal už u svého "profi" přístroje Digifly, který prostě zapípá vysílám-li do vysílačky. Stejně tak se chová moje vario v MIO. V software nyní řeším jak také tyto špičky odstranit, není ovšem jisté zda se to dokonale povede. Dost pomůže neleží-li vysílačka na pultíku hned vedle přístroje. Také by nejspíše pomohlo uzemnit všechny vývody na chipu varia. Na to jsem ale zatím nenašel čas.


Dá se to použít? ANO!

S variem létám prakticky od začátku sezóny. Moje Digifly Leonardo Plus od té doby leží v zásuvce. V nejbližší době si asi najde nového majitele, protože od té doby co mám MIO s variem jej nepoužívám.
Pultík neověšený elektronikou. Nádhera!

Točení stoupáků je díky klasickému zvukovému profilu stejné jako u ostatních varií. Tlačítkem na přístroji mohu snadno zvuk vypnout. Vario funguje také nezávisle, tzn. MIO nemusí běžet a nemusím mít spuštěné LK8000. A jako bonus: vario posílá data přímo do MIO, takže LK8000 dostane údaje několikrát za vteřinu a přímo je zobrazuje na displeji.

Aplikace do MIO400  je jednoduché a elegantní řešení. V takto integrovaných přístrojích vidím budoucnost i pro naše létání, po čase se totiž stane starost o 3-4 přístroje, jejich baterie a ovládání celkem otravnou záležitostí. Na trhu takovéto přístroje již najdete, jejich finanční dostupnost je zhruba desetinásobná oproti tomuto řešení.

Poznámka k čitelnosti displeje MIO400

Co se viditelnosti MIO400 týče neměl jsem s ní žádné větší problémy. Bohužel velká část pilotů naráží na umístění pultíku. Ten mají často umístěný tak, že není kolmo, ale hodně jim leží. Při takovém způsobu použití nemůžete čekat od přístroje za 1500Kč s malým zorným úhlem v kombinaci s přímým svitem mnoho. Moje rada: nastavte si pultík tak ať se na přístroj díváte přímo. Pokud to nejde, musíte si vytvořit držák na MIO ve tvaru klínu, pomocí kterého si přístroj přikloníte směrem na sebe. To je účinější než různá stínítka a jiné výmysly.

Okomentovat