PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Software Hochpass



Che Guevara
04.06.2011, 18:41
Hallo,

um meine Gyros zu filtern (bzw. das Integral davon) bin ich auf der Suche nach einer Software Implementation eines Hochpasses! Jedoch habe ich bis jetzt noch nichts brauchbares gefunden :( Mir würde auch schon ein (leicht verständlicher) C-Code oder Pseudocode genügen! In einem anderen Thread ( https://www.roboternetz.de/community/showthread.php?40898-Tiefpass-ungef%E4hre-Dimensionierung-der-Bauteile ) hat Besserwessi folgendes geschrieben:


Ein typischer Hochpassfilter wäre so:
drift = 0.999 * drift + ADC
adc = adc - drift
Allerdings weiß ich nicht, wie ich meine Werte da einsetzen soll, bzw. Anfangs dachte ich, ich muss einfach nur adc durch integral ersetzen und die Var. drift bleibt gleich....


Drift = Drift * 999
Drift = Drift / 1000
Drift = Drift + _integral
_integral = _integral - Drift

Jedoch ist dem nicht so oder ich bin einfach zu blöd dafür!
Integral ist bei mir der integrierte Wert des Roll-Gyros (WM+).
Kann mir jemand bei meinem Problem helfen?

Gruß
Chris

Ceos
05.06.2011, 13:22
wie wäre es mit einem gleitenden Mittelwert? Leg eine Anfangs-Nullage und eine Abweichung fest, jeden Wert der innerhalb der Abweichung liegt verwendest du um ihn auf deinen gleitenden Mittelwert aufzuaddieren. Mit diesem Mittelwert normalisierst du alle eintreffenden Werte! Problematisch ist nur dass du die Abweichung gering genug wählen musst, da du sonst ungewollt mit geringen Steuerausschlägen den Mittelwert verzerrst und bei zu großem Rauschen die Mittelwertbildung versagt.

Mir kam grad noch die Idee die Abweichung Anfangs groß zu wählen und dann je nach Häufigkeit zu reduzieren, aber dann würde sich ja auch die Abweichung bei anhaltender Lageänderung unnötig vergrößern und im schlimmsten Falle würdest du damit dann die Steuerung stark dämpfen!

Che Guevara
05.06.2011, 13:50
Hallo,

die Idee ist nicht schlecht, nur leider war mein Posting auf einen Komplementär-Filter bezogen, welchen ich umsetzen möchte! Da ich bis jetzt keinen einzigen Code für solch einen Filter gefunden habe, dachte ich, ich programmiers einfach selber, da lernt man dann auch noch mehr! Der Hochpass ansich funktioniert ja, nur ich weiß nicht, wie ich das Integral richtig einsetze!? Angelehnt ist meine Frage an diese HP (also bezogen auf die schematische Darstellung des Komplementär-Filters): http://www.electronics-control.info/gyro_acc.htm
Der Tiefpass stellt für mich kein Problem dar, lediglich der Hochpass.
Mich würde aber trotzdem interresieren, wie du dir diese "Normalisierung der eintreffenden Werte" vorstellst? Durch simple Addition?
Wenn ich das richtig verstanden habe, meinst du, ich soll einen starken Tiefpass-Filter nehmen und mit diesem immer wieder die Nulllage der Integration bestimmen!?
Ansich wäre das bestimmt keine schlechte Idee, aber um den Hochpass komm ich leider trotzdem nicht rum!

Gruß
Chris