Simpel Vario mit Druckanschluss

  • FuniCapi
  • FuniCapi's Avatar
  • Offline
  • Platinum Member
  • Platinum Member
  • Posts: 1889
  • Thank you received: 930

TPL_KUNENA_MESSAGE_REPLIED_NEW Simpel Vario mit Druckanschluss

09 Aug 2018 21:03
#13
Jep, ist mir auch schon aufgefallen.
Sobald man den Thread über den Titellink öffnet ist er wieder da.

Gruss Lukas

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

  • nichtgedacht
  • nichtgedacht's Avatar Topic Author
  • New Member
  • New Member
  • Thank you received: 0

TPL_KUNENA_MESSAGE_REPLIED_NEW Simpel Vario mit Druckanschluss

16 Aug 2018 17:11
#14
Hi,

ich lasse inzwischen die Programmschleife frei laufen und messe mit dem
Oszilloskop 23 - 24ms Wiederholzeit. Die Zeit schwankt um ca. 1ms durch
Ausführen der Kommunikation Richtung Empfänger. Die Schwankung ist für
den Zweck unerheblich.

ich hab' noch mal ein bischen einfache Theorie wie der Filter funktioniert

Ermitteln der Steigung eines verrauschten Signals als Differenz der Ausgangssignale zweier paralleler Tiefpassfilter

Ein Tiefpass mit einer konstanten Rampe als Eingangssignal liefert am Ausgang
nach einer "Einschwingzeit" dieselbe Rampe aber um eine konstante Zeit versetzt.
Dieser Versatz ist Tau, hier T genannt. Bei einem analogen passiven RC-Tiefpass ist
T = R * C

Aus der Zeichnung kann unmittelbar die Steigung entnommen werden als

1.) dx / (T2 - T1)

Die bekannte digitale Formel für ein sogenanntes Exponentialfilter ist:

2.) output[n] = output[n-1] - alpha * (output[n-1] - input)

Dieser Algorithmus bildet als IIR Filter ein einfaches RC-Glied nach.

Für dieses digitale Äquivalent zum RC Glied gilt folgender Zusammenhang:

3.) alpha = dt / (RC + dt)

mit dt als Abtastintervall

3a.) RC = dt / alpha - dt = Tau

Die Steigung des Eingangssignals ( 1., 3.) ist also:

4.) dx / (dt / alpha2 - dt - ( dt / alpha1 - dt ) )
= dx / ( dt / alpha2 - dt / alpha1 )

Während dx einfach die Differenz der Ausgänge und poportional zur Steigung ist,
gibt der Teiler in diesem Bruch die Verstärkung resp. Abschwächung an.

Wählt man die alphas mit 0.15 und 0.05 und ist dt 24ms ergibt sich
für den Teiler:

24ms / 0.05 - 24ms / 0.15 = 0,32

Man muß also einfach die Differenz der Ausgänge mit 1 / 0,32 multiplizieren
um die Steigung des Signals am Eingang zu erhalten.

Ergebnisalgorithmus:

r_altitude0 = r_altitude0 - 0.15 * (r_altitude0 - relativeAltitude);
r_altitude1 = r_altitude1 - 0.05 * (r_altitude1 - relativeAltitude);

climb = (r_altitude0 - r_altitude1) * 3,125;

Attachment P8163201.JPG not found



Hier mal ein Bild aus LTSpice. Die Zeitkonstanten sind frei erfunden, zeigen aber wie schnell
der Filter ist wenn man ein bischen Rauschen zulässt.

Attachment Spectacle.PE5948.png not found



Gruß
Dieter

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

  • FuniCapi
  • FuniCapi's Avatar
  • Offline
  • Platinum Member
  • Platinum Member
  • Posts: 1889
  • Thank you received: 930

TPL_KUNENA_MESSAGE_REPLIED_NEW Simpel Vario mit Druckanschluss

16 Aug 2018 17:38 - 16 Aug 2018 17:39
#15
Du gehst bei deiner Simulation von einem Steigen aus das deutlich über dem Messrauschen liegt.

Schlussendlich bleibt nur testen im realen Flug übrig. Ich werden deinen Code mal testen, bzw. zu meinem dazu fügen. So kann ich durch umschalten im Flug vergleichen. Zudem habe ich dadurch einen Log der beide Steigraten beinhaltet. Dann kann man das Rauschen und die Ansprechzeit der beiden Messwerte gut vergleichen. Ich bin sehr gespannt wie gut deine Filtermethode ist.

Gruss Lukas
Last edit: 16 Aug 2018 17:39 by FuniCapi.

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

  • nichtgedacht
  • nichtgedacht's Avatar Topic Author
  • New Member
  • New Member
  • Thank you received: 0

TPL_KUNENA_MESSAGE_REPLIED_NEW Simpel Vario mit Druckanschluss

12 Oct 2018 16:00
#16
Hi,

an diesem verlängerten Flug mit meinem DLG kann man schön den stimmigen Phasenbezug zwischen der
angezeigten Höhe und dem angezeigten Steigen erkennen. Natürlich hat auch die angezeigte Höhe einen
kleinen time lag aber das Vario scheint mir recht spontan zu sein und hat sich schon bei vielen Flügen als
sehr nützlich erwiesen.
Die Höhe lasse ich inzwischen mit Dezimeter Auflösung ausgeben. Sonst werden unschöne Treppchen dargestellt.

Gruß
Dieter

Attachment Screenshot_20181012_174739.png not found

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

  • nichtgedacht
  • nichtgedacht's Avatar Topic Author
  • New Member
  • New Member
  • Thank you received: 0

TPL_KUNENA_MESSAGE_REPLIED_NEW Simpel Vario mit Druckanschluss

07 Dec 2018 16:11
#17
Hallo zusammen,

es gibt jetzt auch ein LUA Script für das Mini-Vario.
Eine Version mit fest eingestelltem Sensor "mini_vario" und eine Version
mit frei wählbarem Sensor und Parametern

www.jetiforum.de/index.php/lua-fuer-die-...t-hoehen-graph#94274

Gruß
Dieter

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

  • nichtgedacht
  • nichtgedacht's Avatar Topic Author
  • New Member
  • New Member
  • Thank you received: 0

TPL_KUNENA_MESSAGE_REPLIED_NEW Simpel Vario mit Druckanschluss

18 Dec 2018 22:30
#18
Hallo zusammen,

ich habe jetzt die Library github.com/jarzebski/Arduino-MS5611 gecloned
und umgebaut. Das Original setzt das Datenblatt vom MS5611 sehr schön um.
Leider sind dort zwischen dem Absetzen der AD Conversion Kommandos für
Temperatur und Druck und dem Auslesen des jeweiligen Ergebnisregisters delays
eingebaut. Bei höchster Auflösung der Wandlung jeweils 10ms delay.
Man muss laut Datenblatt maximal 9,04 ms warten bis die Wandlung abgeschlossen ist.

Ich habe das nun auf interruptgesteuert umgebaut und gewinne so praktisch 20ms pro kompletter
Abfrage (Temperatur, Luftdruck) um einen aufwändigeren Filter berechnen zu können. Außerdem
wird ein Flag von der ISR gesetzt (data_ready) das in der Programmschleife zum präzisen Timing
benutzt werden kann und beim Lesen des Luftdrucks automatisch wieder zurück gesetzt wird.

github.com/nichtgedacht/Arduino-MS5611-Interrupt

Gruß
Dieter

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

Time to create page: 0.355 seconds
Powered by Kunena Forum