Hallo Willa,
ich würde bei der Winkelgeschwindigkeit den Mittelwert über 10 Werte bilden und daraus dann einen Messwert machen. Dann bist Du auch bei 50 Hz und nicht mehr so verrauscht.
Gruß Socke
Hi Meckpommer,
im moment flieg ich nur mit P, das Ziel ist ein PD regler. Den I Anteil kann ich nicht so ohne weiteres verwenden. Jedenfalls sind das die Infos die ich bisher aufgeschnappt habe. Gyros haben einen nicht unerheblichen Drift, die Integration des P anteils liefert also keine zuverlässigen Werte für die absolute Lage im Raum. Wertet man zusätzlich einen Beschleunigungssensor aus (der weiß fast immer wo unten ist) und verrechnet die Signale irgendwie (das Stichwort Kalman-Filter taucht hier vermehrt auf) kann man angeblich einen I Anteil realisieren. Das ist für mich aber noch Zukunftsmusik...
Viele Grüße, William
-> http://william.thielicke.org/
Hallo Willa,
ich würde bei der Winkelgeschwindigkeit den Mittelwert über 10 Werte bilden und daraus dann einen Messwert machen. Dann bist Du auch bei 50 Hz und nicht mehr so verrauscht.
Gruß Socke
@Socke: wenn die verrauschten Messungen nur alle 10 Auswertungen vom Gyro aktualisiert werden, dann wird es mit dem Mittelwert nicht besser, oder? Das Rauschen entsteht ja in der Erfassung im Gyro selbst und nicht in der Übertragung des Signals zum µC.
@Willa: deine Informationen sind sooo nicht ganz richtig. Das mit der Drift ist Tatsache, da hast du recht, und der Kalman-Filter ist der neue Heilige Gral der Quadflieger, aber:
Bis vor einiger Zeit sind die Kopter alle mit normalen PID-Reglern geflogen und grade der I-Anteil macht die Flieger erst steuerbar. Du kannst dir, was den Drift angeht, damit behelfen, das du den I-Anteil immer ganz wenig gegen Null führst. Damit kannst du deinen Flieger zwar nicht stundenlang in der Waagerechten halten, aber Hauptzweck des Reglers ist ja grade das schnelle Korrigieren kleiner Abweichungen und das wirst du ohne I-Anteil nicht hinbekommen. Im Gegenteil: D-Anteil ohne I-Anteil wird dir deinen Kopter noch unfliegbarer machen weil er dann leichter ins Schwanken kommt.
Das du das Teil ohne I-Anteil überhaupt in die Luft bekommst, ist nur deiner Erfahrung als Helipilot zu verdanken, dafür höchsten fliegerischen Respekt! Mit I-Anteil kann das sogar meine Omi neben Stricken und Musikantenstadl
Versuchs einfach mal mit dem I-Anteil, du wirst positiv überrascht sein.
Gruß MeckPommER
Mein Hexapod im Detail auf www.vreal.de
Hallo Meckpommer,
ich beschäftige mich erst seit sehr kurzem mit Regelungstechnik, mein Wissen stamm fast ausschließlich von hier:
https://www.roboternetz.de/wissen/in...e_Regelstrecke
Ich dachte, dass das I-Glied nur zur Korrektur der bleibenden Regelabweichung dient. Das D-Glied dient m.M. nach dem schnellen Gegensteuern, quasi schon bevor sich eine Abweichung einstellt. Den I-Anteil würde ich - so dachte ich mir - als Pilot einfach selbst in die Hand nehmen. Ich werde das ganze aber mal versuchen. Grad der Trick mit dem "gegen null führen" sollte die Problematik entschärfen.aber Hauptzweck des Reglers ist ja grade das schnelle Korrigieren kleiner Abweichungen und das wirst du ohne I-Anteil nicht hinbekommen
Viele Grüße, William
-> http://william.thielicke.org/
Der P-Anteil bist du mit deiner Steuerung.
Der I-Anteil ist die summierte Abweichung, also der zentrale Teil deiner Stabilisierung mit hoher Gewichtung. Warum, wieso und weshalb und wohin ausgeglichen werden soll, macht die Steuerung am I-Anteil fest.
Der D-Anteil soll "nur" die Regelungsgeschwindigkeit erhöhen. Er verstärkt das Gyrosignal mathematisch um den gemächlichen I-Anteil etwas auf die Sprünge zu helfen. Hier gilt es, wirklich vorsichtig den Regelungsanteil zu erhöhen. Kopter mit zu hohem D-Anteil findet man zumeist platt an der Wand
Wenn du bisher nur mit P-Anteil geflogen bist, hättest du deine Gyros auch ausbauen können
Mein Wissen über Regelungstechnik ist ... öhm ... sehr fundiert *hüstel* und besteht aus jahrelangem Studium irgendwann in den letzten beiden Wochen ^^ Mein Kopter von vor 2 Jahren war zwar selbstgebaut, aber die Elektronik war nicht von mir erdacht und programmiert. Hatte nur da Gelegenheit mich mit den Reglerwerten und deren Auswirkungen experimentell zu befassen.
Gruß MeckPommER
Mein Hexapod im Detail auf www.vreal.de
hi,
also der io-anteil it schon hauptsächlich gegen die bleibende regelabweichung. allrdings denke ich, dass du da was mit drift und i-anteil durcheinender bringst. der drift ist dann ein problem, wenn du die winkelgeschwindigkeit aufintegrierst, um die winkellage zu erhalten. beim i-anteil integrierst du aber den reglefehler auf, und nicht den gyro messwert.
noch was zur abtastung. wenn dein sensor nur 50hz kann, ist es nicht sinnvoll ihn mit 500hz abzutasten, auch nicht dann den mittelwert zu bilden. eine möglichkeit wäre mit 50hz ab zutasten, und den messwert trotzdem filtern. z.b. gleitender mittelwert.
mfg jeffrey
Jetzt bin ich ziemlich verwirrt.... Ich dachte eigentlich ich hätte das nötige verstanden.
Ich schreibe jetzt hier mal meinen Wissensstand auf. Bitte korrigiert mich:
(Zitate aus dem RN-Wiki Regelungstechnik)
Sollwert: Winkelgeschw. = 0P-Glied: Der proportionalwirkende Regler multipliziert die Regelabweichung mit seinem Verstärkungsfaktor Kp und gibt das Ergebnis unverzögert weiter.
Istwert: Direktes Gyrosignal
Regelabweichung= Direktes Gyrosignal - 0
Sollwert: Winkel = 0I-Glied: Der integralwirkende Regler summiert die Regelabweichung über der Zeit auf und multipliziert die Summe (d.h. das Integral) mit dem Faktor Ki
Istwert: Summe aller bisherigen Gyrosignale
Regelabweichung= Summe aller bisherigen Gyrosignale - 0
Sollwert: Winkelbeschleunigung = 0D-Glied: Der D-Anteil bewertet die Änderung einer Regelabweichung (er differenziert) und berechnet so deren Änderungsgeschwindigkeit.
Istwert: Gyrosignal(t=n) - Gyrosignal(t=n-1)
Regelabweichung = Istwert - 0
Wer liegt nun falsch...?
edit: Ich habe nochmal weiter recherchiert, auch das engl. Wikipedia versteht das so wie ich (oder ich verstehe beides falsch :-D ):
Code:previous_error = 0 integral = 0 start: error = setpoint - actual_position integral = integral + error*dt derivative = (error - previous_error)/dt output = Kp*error + Ki*integral + Kd*derivative previous_error = error wait(dt) goto start
Viele Grüße, William
-> http://william.thielicke.org/
hoi,
ich weiß jetzt gerade gar nicht, was du auf 0 regeln willst, den winkel, oder die winkelgeschwindigkeit. und der sollwert ist ja nicht immer 0.
mfg jeffrey
Ich möchte gerne die Winkelgeschwindigkeit, die Winkelbeschleunigung und den Winkel auf 0 regeln. Im Idealfall also Schweben auf einer Stelle (das wird kaum klappen, ist aber erstrebenswert).
Viele Grüße, William
-> http://william.thielicke.org/
moin,
ich glaube, ich habe mich etwas schlecht ausgedrückt. Über den P-Anteil nimmst du den direktesten Einflus auf das Regelungsergebnis.
Es gibt so Sachverhalte, über die man sich am mit viel Papier, Bleistift und Bier unterhält
Achso ... hier kurz nachgeschoben, meine "3. Achse": http://www.youtube.com/watch?v=2o7_eyq9nG8
Der D-Anteil ist ausgeschaltet um nicht zu hektisch zu werden. Die dadurch bedingte langsamere Einregelung ist beabsichtigt.
Mein Hexapod im Detail auf www.vreal.de
Lesezeichen