RCT Jeti VarioMeter released

  • AchimP
  • AchimP's Avatar
  • Offline
  • Elite Member
  • Elite Member
  • Posts: 166
  • Thank you received: 38

TPL_KUNENA_MESSAGE_REPLIED_NEW RCT Jeti VarioMeter released

11 Feb 2018 18:02
#67
Hallo,
ist es eigentlich möglich die Nzeige bezeichnungen durch deutsche Begriffe zu ersetzen, also z.B. altitude durch Höhe?
Gruß
Achim

Please Log in or Create an account to join the conversation.

  • VOBO
  • VOBO's Avatar
  • Offline
  • Platinum Member
  • Platinum Member
  • Posts: 537
  • Thank you received: 135

TPL_KUNENA_MESSAGE_REPLIED_NEW RCT Jeti VarioMeter released

11 Feb 2018 18:51
#68
Ja.
Es gilt dann aber noch einiges zu beachten.
Kannst mich ja mal anrufen.

Gruß Volker

Please Log in or Create an account to join the conversation.

  • tangokilo
  • tangokilo's Avatar
  • Offline
  • Senior Member
  • Senior Member
  • The sky is the limit
  • Posts: 79
  • Thank you received: 19

TPL_KUNENA_MESSAGE_REPLIED_NEW RCT Jeti VarioMeter released

13 Feb 2018 13:53
#69
Hallo zusammen,

ich beziehe mich auf den Post #58 von Michael.
Dass RCT Vario habe ich erfolgreich gebaut (mein erster Jeti-Sensor).
Nun habe ich aber 2 Fragen:
1. Nachdem ich die Parameter X und Y nach der o.a. Vorgabe geändert habe, sieht das Ergebnis schon bedeutend besser aus (Trockenübung).
Nun möchte ich, wie vorgeschlagen, Feintuning betreiben. Dies möchte ich aber nicht einfach "blind" tun, mich interessiert schon,
was die Änderung der Parameter X und Y eigentlich bewirkt, bzw. wofür diese konkret stehen. Das würde die Tests sinnvoller ausführbar
machen.
2. Ich wollte die Parameter über die Jeti-Box in meiner DS 24 vornehmen. Dort komme ich aber nicht auf den Sensor. Mit einer
"Hardware" Jeti-Box war das kein Problem. Hat da jemand eine Ahnung?

Vielen Dank, wenn sich jemand die Mühe macht, mit da weiterzuhelfen. Sorry, wenn das simple Fragen sind, aber ich bin blutiger Laie...
Gruß
Thomas

Please Log in or Create an account to join the conversation.

  • Pulsar07
  • Pulsar07's Avatar
  • Offline
  • Senior Member
  • Senior Member
  • Posts: 57
  • Thank you received: 52

TPL_KUNENA_MESSAGE_REPLIED_NEW RCT Jeti VarioMeter released

13 Feb 2018 21:50
#70
Habe das Vario von nightflyer ( github.com/nightflyer88/Jeti_VarioGPS-Sensor ), der auf dem Code von www.rc-thoughts.com/jeti-variometer/ basiert, nachgebaut und den Code analysiert, um weitere Vario-Features zu testen.
Der Code bzgl. der von dir angesprochenen beiden Filter-Parameter X und Y ist in beiden Code-Quellen identisch, aber aus meiner Sicht in beiden nicht ganz korrekt.

Der Code implementiert einen digitalen Low-Pass-Filter einen sogenannten IIR (infinite impulse response) Filter, der eigentlich recht simpel, den letzten realen Messwert mit einem Faktor (Y) gewichtet und den letzten "geglätteten" Wert mit einem Faktor (X) gewichtet und daraus einen neuen "geglätteten" Wert berechnet.
Nun sind aber die beiden Glättungsfaktoren X und Y nicht wie in den beiden oben genannten Implementierungen des IIR - Filters realisiert, unabhängig voneinander, sondern sie müssen in der Relation Y = (1-X) zueinander stehen, oder anders ausgedrückt: X + Y muss 1 ergeben.
Siehe hierzu:
en.wikipedia.org/wiki/Low-pass_filter#Si...ulse_response_filter

So, was heißt das praktisch (immer unter der Bedingung X+Y=1) :
Je kleiner Y, desto mehr wird der Messwert geglättet und desto mehr werden die vergangenen Messwerte in den neuen geglätteten Wert gewichtet, aber auch desto träger wirkt sich eine aktuelle Wertänderung aus.
Der Wert X=0.12 (Y=0.88) glättet hochfrequente Schwankungen schon sehr stark, aber man hat noch einigermaßen ein zeitnahes Ansprechen des Varios.
Der Bosch-Sensor BMP280 rauscht sehr stark. Du kannst das einfach mal ausprobieren und Y=1 und X=0 ausprobieren, da hüpft der einzelne Messwert extrem. Je kleiner man Y wählt (und damit X automatisch größer wird), desto mehr wird der geglättete Wert über die Werte der Vergangenheit gewichtet und desto träger wird deine Anzeige.

Ich hoffe, es war nicht zu theoretisch und du kannst damit was anfangen ;-))

Wenn jemand an einer korrekten Implementierung Interesse hat, und diese in seinen Code patchen will, kann sich hier gerne nochmals melden, dann schicke ich noch das gefixte Codefragment. In diesem Code benötigt man nur noch einen "Smoothing-Factor", da der andere ja berechnet werden kann.

Gruß

Rainer
The following user(s) said Thank You: ThLehmann

Please Log in or Create an account to join the conversation.

  • VOBO
  • VOBO's Avatar
  • Offline
  • Platinum Member
  • Platinum Member
  • Posts: 537
  • Thank you received: 135

TPL_KUNENA_MESSAGE_REPLIED_NEW RCT Jeti VarioMeter released

14 Feb 2018 07:53
#71
Hallo Rainer,

Ist dein geänderter Code ansonsten der Gleiche, wie ihn auch nightflyer88 verwendet hat und du hast nur einen der beiden Parameter berechnet, anstatt beide zu bedienen?
Wenn es auch noch weitere Unterschiede gibt, hätte ich Interesse an deiner Änderung.

Gruß Volker

Please Log in or Create an account to join the conversation.

  • Pulsar07
  • Pulsar07's Avatar
  • Offline
  • Senior Member
  • Senior Member
  • Posts: 57
  • Thank you received: 52

TPL_KUNENA_MESSAGE_REPLIED_NEW RCT Jeti VarioMeter released

14 Feb 2018 10:19
#72
Ursprünglicher Code:
Code:
// Vario Filter float fX; float fY = uVario; fX = pressureSensor.filterX * lastVariofilter; fY = pressureSensor.filterY * fY; lastVariofilter = fX + fY; uVario = lastVariofilter;

Verbesserter Code:
Code:
// Vario Filter // IIR Low Pass Filter // y[i] := α * x[i] + (1-α) * y[i-1] // := y[i-1] + α * (x[i] - y[i-1]) // see: https://en.wikipedia.org/wiki/Low-pass_filter#Simple_infinite_impulse_response_filter uVario = lastVariofilter + pressureSensor.filterY * (uVario - lastVariofilter); lastVariofilter = uVario;

Die Berechnung ist exakt dieselbe wie im ursprünglichen Code, nur mathematisch einmal umgeformt, und dass man eben den Dämpfungsfaktor/die Dämpfungsfaktoren nicht falsch einstellen kann.
Sobald die Faktoren Bedingung X+Y=1 nicht eingehalten wird, verfälscht der Tiefpass eben das Ergebnis. Je größer die Abweichung von der Bedingung, desto größer wird der Fehler.
Wenn man die Bedingung im ursprünglichen Code manuell einhält, ist der alte Code ebenso korrekt, wie der neue.

Gruß Rainer
The following user(s) said Thank You: nightflyer88

Please Log in or Create an account to join the conversation.

Time to create page: 0.314 seconds
Powered by Kunena Forum