-
-
Erfahrener Benutzer
Roboter Genie
hier, gefunden:
Meine Filter sind Hardware und Software. Aber evtl. reicht es den Hoch- und den Tiefpass nur als Hardware auszuführen (Kondensator + Widerstand). Die Cutoff Frequenz könnte z.B. beim ACC 1-5Hz sein, beim Gyro 0,04 - 0,08 Hz oder etwas in der Größenordnung.
Die Mathematik ist im prinzip ziemlich einfach:
Als erstes mal misst du was dein Gyro in Ruhe als Pegel ausgibt. Diesen Wert nennen wir mal "Gyro_init". Den Wert ziehst du jetzt immer von deinem Gyro ab, so dass es null ausgibt wenn es in Ruhe ist, positive Werte bei linksdrehung und negative bei rechtsdrehung (oder andersrum). Dieser Wert geht als P-Anteil in deine Regelung ein.
Nun bildest du von dem Wert das Integral. Das heisst einfach dass du bei jedem Programmdurchlauf den Gyrowert addierst. Wenn sich nix bewegt, dann bleibt das null, wenn du es nach links drehst wird der Wert immer größer (summiert sich eben auf). Stoppst du nun die Drehung bleibt der Wert hoch. Erst wenn du es wieder zurück drehst geht es wieder auf null. Leider sind Gyros driftbehaftet, d.h. das Integral wird dir auch wenn du das Gyro nicht bewegst irgendwann (meist ziemlich schnell) abhauen, dein Integral rast ins "unendliche". Daran kannst du es hindern mit folgender einfachen Gleichung:
x_gyro_i ist das gyrointegral
Xacc ist der Wert direkt aus deinem Acc (wahrscheinlich musst du den hochskalieren damit er ungefähr zum gyrointegral passt, d.h. wenn der ACC 90° gekippt ist sollte er ungefähr einen Wert ausgeben der so groß ist wie das integral vom 90° gekippten gyro.) Das Ergebnis nennt sich dann "Komplementärfilter" (ein fieses Wort für eine einfache Sache), das funktioniert angeblich ähnlich gut wie ein Kalmanfilter (auch bei diesem Wort erstarrt man vor Ehrfurcht). Nur die richtigen Parameter zu finden ist bei ersterem wohl schwieriger.
'Driftkorrektur mit Hilfe des ACCs:
do
blablabla
If X_gyro_i > Xacc Then
X_gyro_i = X_gyro_i - 3
End If
If X_gyro_i < Xacc Then
X_gyro_i = X_gyro_i + 3
End If
blablabla
loop
So wird der integral-wert ständig dem acc nachgeführt. Man erhält die Absolutgenauigkeit eines ACCs gepaart mit der schnellen Reaktion eines Gyros. Die Werte richtig einzustellen ist ein bisschen Fummelei.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen