Kann ich die Kombination eines Arduino Mega + MPU-6050 Kreisel- / Beschleunigermoduls anstelle eines Flugreglers verwenden? Wird noch etwas benötigt?
Es wird gesagt, dass der Kreisel / die Beschleunigung verwendet werden kann, um das Gleichgewicht des fliegenden Fahrzeugs aufrechtzuerhalten. Wie wird das erreicht?
Ist es ein Muss, dass ein Kreisel- / Beschleunigungsmodul mit einer höheren Rate gelesen wird, fast wie kontinuierlich?
Antworten:
Gut,
Es klingt ein bisschen begrenzt.
Ich gehe davon aus, dass ein Flugregler eine Dead Reckoning durch doppelte Integration der gemessenen Beschleunigungen durchführt. Und weil diese Berechnung relativ und nicht absolut ist, werden Fehler zusammengefasst und Sie haben eine Drift. Sie müssen also alle Fehlerquellen reduzieren. Eines davon ist das Quantisierungsrauschen aufgrund der Festkomma-Mathematik. Natürlich können Sie hochpräzise Gleitkomma-Mathematik verwenden. Wenn Sie jedoch an die Anzahl der erforderlichen Berechnungen und die Tatsache denken, dass der ATMega keine Gleitkomma-Unterstützung bietet, sieht es schwierig aus. Und wenn Sie ein GPS hinzufügen und einige Kalman-Filter für die Sensorfusion implementieren möchten, ist dies für diese MCU definitiv zu anspruchsvoll.
Um genauer zu sein:
Um das Gleichgewicht eines fliegenden Fahrzeugs aufrechtzuerhalten, müssen Sie die relativen Winkel Ihres Fahrzeugs bestimmen. Dies kann nicht durch einfaches Ablesen eines Beschleunigungsmesserausgangs erreicht werden, da der Beschleunigungsmesser den Schwerkraftvektor UND die Beschleunigungen Ihres Fahrzeugs misst. In realen Systemen werden hochpräzise Gyroskope verwendet. Aber es ist teuer, sperrig und nicht praktisch. Ein billigerer Weg, dies zu tun, ist die Verwendung eines Kreiselsensors. Es ist klein, einfach zu bedienen und billig. Der Ausgang eines Geschwindigkeitskreisels ist ein Signal, das proportional zur vom Chip gemessenen Winkelgeschwindigkeit ist. Wenn Sie dieses Signal (Summe) integrieren, haben Sie die Winkelposition des Chips. Es klingt schön. Aber das Problem ist die Drift. Sie müssen kontinuierlich Messwerte hinzufügen. In realen Systemen wird der gemessene Wert jedoch definiert durch:
Und ja, Sie müssen die Rate-Gyro-Ausgabe kontinuierlich lesen und den gelesenen Wert summieren. Aber kontinuierliche Dinge existieren in einer diskreten Welt nicht ... Also muss man es mit einer hohen Geschwindigkeit tun. Ich habe Werte wie 100Hz oder 1kHz im Sinn. Dies muss überprüft werden.
Zur Steuerung des Fahrzeugs selbst: Sobald Sie die Fluglage gemessen haben, können Sie die Standard-PID-Regelung anwenden. Aber es ist nicht einfach, weil die Achse nicht unabhängig ist ...
quelle