- fchao-Sinus-Wechselrichter AliExpress         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 24

Thema: Quadkopter stabilisieren

  1. #11
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    44
    Beiträge
    1.273
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo!
    An dieser Stelle hinzugehen und in jedem Durchlauf einen konstanten Wert abzuziehen, bzw. hinzuzufügen, sollte theoretisch eher schädlich sein.
    Praktiisch schadet es vermutlich nicht, weil man damit in der Nähe vom Nullpunkt den konstanten Wert in einen Durchlauf dazu addiert, das Integral dann das Vorzeichen wechselt und dadurch schon im nächsten Durchlauf derselbe Wert wieder abgezogen wird.
    D.h wenn die Regelung schnell genug ist, kommt die ganze Aktion gar nicht bei den Motoren an und schadet daher nicht.
    Bei den Motoren kommen diese kleinen Schwankungen gar nicht an. Denn man addiert/ subtrahiert z.B. den Wert "5". Der Faktor K_i ist bei mir 0.003 und die Motoren bekommen am Ende einen Wert zwischen 0 (aus) und 255 (Vollgas). Die Integralschwankungen sind also so klein, dass die Auflösung der Motoren bei Weitem nicht reicht um eine Drehzahländerung zu bewirken.
    Nach deiner Beschreibung weiter oben hast du ihn mit Ki=0.003 ja schon so klein gemacht, dass ich mich aus dem Bauch heraus eh wundere, wie der noch was bewirkt.
    Meine Gyros messen Werte zwischen 0 und 1024. Wenn das Ganze mit 500Hz läuft und man den Wert aufintegriert, kannst du dir ausrechnen wie extrem hoch die Integralwerte während einer minimalen Drehung des Copters werden können. Daher der sehr kleine K_i Faktor.
    Das stimmt so glaube ich nicht.
    Dem Datenblatt nach misst dein Gyro-Sensor die Winkel-Geschwindigkeit (Angular Rate).
    Das Integral aus der Winkelgeschwindigkeit müsste demnach der Winkel sein.
    Ja, aber wenn du das Integral der Gyroskope direkt auf die Motoren gibst (vereinfacht ausgedrückt), dann steuert das Integral die Winkelgeschwindigkeit. Das ist aber auch sehr Missverständlich mit diesen ganzen Integralen....
    Mit deiner Addition, bzw. Subtraktion oben, die ja auch 40 mal pro Sekunde durchgeführt wird, stellst du das Integral kontinuierlich Richtung Null zurück.
    D.h. der Winkel den das Integral angibt ist eigentlich nach kürzester Zeit immer wieder Null Grad, selbst wenn der Copter auf dem Kopf steht.
    Erstmal kurz um Missverständnisse vorzubeugen: Ich mache das nicht mit der Subtraktion/ Addition. Das habe ich nur kurz mal ausprobiert als mein ACC kaputt war. Man kann dann ca. 10 Sekunden den Knüppel loslassen, danach sollte man den Copter manuell wieder gerade stellen.
    Das ist etwas schwer zu erklären warum das trotzdem sehr gut funktioniert... Ich müsste dir mal meinen Copter zeigen und die Messwerte die da raus kommen. Diese Addition/Subtraktion wirkt im Prinzip wie ein Hochpass. Schnelle Änderungen bewirkungen extrem große Änderungen des Gyropegels + Integrals, daher kommen sie (nahezu) unverändert durch und stabilisieren den Copter. Die schnellen Änderungen sind das, was einen Copter instabil fliegen lässt, auf diesen liegt also der Fokus bei der Regelung. Langsame Änderungen (Drift der Gyros, aber auch eine sehr langsame Drehung des Copters) werden durch das +/- herausgefiltert. Die sind aber so langsam, dass ein Mensch die sehr leicht aussteuern kann.
    Das stimmt auf jedenfall insofern, dass ich deine Sprache verstehe, die Formelsprache der theoretischen Regelungstechniker eher nicht
    Meine Sprache ist aber mangels Fachwissen nicht präzise genug um Missverständnisse vorzubeugen.... Um das zu verhindern müsste ich mich entweder mehr mit der Regelungstechnik auseinandersetzen (da habe ich aber wirklich besseres zu tun...!), oder das ganze an einem Anschauungsobjekt demonstrieren...
    Auf jeden Fall eine interessante Diskussion :-D
    Ausserdem hast du das überzeugende Argument, dass dein Copter fliegt, das was du machst also funktioniert.
    Das stimmt wohl, er fliegt ja auch komplett von alleine. Zusammen mit dem ACC erledigt sich das Driftproblem (mit besseren Gyros (MEMS) kann ich aber so oder so praktisch keinen Drift feststellen)
    Viele Grüße, William
    -> http://william.thielicke.org/

  2. #12
    Benutzer Stammmitglied
    Registriert seit
    12.02.2008
    Beiträge
    61
    Hi,
    Schnelle Änderungen bewirkungen extrem große Änderungen des Gyropegels + Integrals, daher kommen sie (nahezu) unverändert durch und stabilisieren den Copter.
    Das kann ich mir nicht vorstellen. Eigentlich sollte das Integral doch ein langsames Wegdrehen(rollen oder nicken) also die bleibende Regelabweichung kompensieren.
    Schnellen Aenderungen sollte eigentlich ein differenzierender Anteil entgegenwirken.

    Mein Problem ist das der Kopter stark schwingt und wenn ich die Regelverstaerkung so weit runter drehe das das schwingen weg ist wird die Stuerung zu indirekt.
    Meiner Meinung nach sollte der D anteil dafuer sorgen das ich den P Anteil staerker machen kann ohne das der Kopter anfaengt zu schwingen.

    Ich werd das ganze jetzt mal ganz ander angehen:
    Als erstes nehm ich eine Sprungantwort auf und dann werd ich versuchen mit MatLab die Regelstrecke zu identifieren. Idealisiert vermute ich eine IT2 Strecke. Wenn das klappt sollte ich eigentlich einen wirklich guten Regler bauen koennen.

  3. #13
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    44
    Beiträge
    1.273
    Das kann ich mir nicht vorstellen. Eigentlich sollte das Integral doch ein langsames Wegdrehen(rollen oder nicken) also die bleibende Regelabweichung kompensieren.
    Damit wir uns nicht missverstehen: Das Integral von dem ich in diesem Moment spreche ist der Wert den man erhält wenn man den Pegel des Sensors über die Zeit integriert.
    "Langsames Wegdrehen" ist relativ... Wenn man den Gyropegel direkt und unverändert (nur etwas skaliert) auf den Motor gibt, dann können dadurch extrem schnelle Winkelgeschwindigkeitsabweichungen kompensiert werden. Das Integral ist etwas langsamer, ja, aber es ist immer noch sehr schnell, schneller als ein Mensch steuern kann. Daher ist das Integral in meiner Anwendung bei meinem Copter sehr essentiell.
    Ich würde an deiner Stelle eher noch mal versuchen was passiert wenn du die Mittelwertbildung im µC rausnimmst. Nach meiner Erfahrung ist nicht die Regelfrequenz ausschlaggebend für eine gute Regelung, sondern nur die Zeit die vom Erfassen der Ist-Position bis zur Änderung der Motordrehzahl verstreicht. Ein Kollege hat - das habe ich irgendwo schonmal erwähnt - einen sehrsehr kleinen Copter gebaut, der mit nur 50 Hz (!!!) Regelfrequenz perfekt fliegt. Entgegen aller Vorhersagen von Regelungstechnikexperten. Sein Trick: Direkt nach dem Erfassen der Sensorwerte werden die neuen Sollwerte an die Motoren gesendet (per PPM). Höchstwahrscheinlich können die Motoren ihren Schub eh nicht schneller ändern als mit 50 Hz (Beschleunigung + aerodynamische Effekte spielen hier rein). Eines Tages werde ich das noch mal testen. Wir haben an der Hochschule relativ empfindliche Waagen mit einer zeitlichen Auflösung von 9600Hz. Wenn ich nun ein Triggersignal erzeuge, was gleichzeitig die Waage steuert und die Motordrehzahl erhöht, könnte ich diesen Effekt eigentlich messen. Fehlt nur ein bisschen Zeit im Moment.
    Viele Grüße, William
    -> http://william.thielicke.org/

  4. #14
    Benutzer Stammmitglied
    Registriert seit
    12.02.2008
    Beiträge
    61
    Damit wir uns nicht missverstehen: Das Integral von dem ich in diesem Moment spreche ist der Wert den man erhält wenn man den Pegel des Sensors über die Zeit integriert.
    ja so hab ichs auch verstanden. offensichtlich funktioniert das bei dir ja - ich hab jetzt jedenfalls vorerst aufgegeben einen Verstärkung für I zu finden die mir mein Regelverhalten verbessert.

    Nach meiner Erfahrung ist nicht die Regelfrequenz ausschlaggebend für eine gute Regelung, sondern nur die Zeit die vom Erfassen der Ist-Position bis zur Änderung der Motordrehzahl verstreicht.
    Also es ist nicht so das ich mit 500Hz meinen ADC auslese und 16 werte aus den letzten 8ms mittle.
    Mein ADC spuckt mir etwa alle 6µs einen neuen wert aus. D.h. der PID regler bekommt durchschnittswerte die aus ADC Werten aus einem Zeitraum von etwa 100µs berechnet wurden.

  5. #15
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Zitat:
    Damit wir uns nicht missverstehen: Das Integral von dem ich in diesem Moment spreche ist der Wert den man erhält wenn man den Pegel des Sensors über die Zeit integriert.
    ja so hab ichs auch verstanden. offensichtlich funktioniert das bei dir ja - ich hab jetzt jedenfalls vorerst aufgegeben einen Verstärkung für I zu finden die mir mein Regelverhalten verbessert
    Ich glaube bei Willa gibt es da einen sehr wesentlichen Unterschied.
    Der Gyro selber misst die Winkelgeschwindigkeit und kann niemals eigenständig den Winkel berechnen.
    Der Winkel kommt vom ACC und der Gyro den nur sehr kurzfristig halten, bis die Integration so fehlerbehaftet wird, dass der ACC wieder hinzugezogen werden muss.

    Du hast keinen ACC musst den Winkel also als Pilot komplett selber halten.
    D.h. du bist selber der alleinige P-Anteil deines PID-Reglers.
    Wenn du den Masswert des Gyros direkt auswertest, ist das die Winkelgeschwindigkeit, also kein zusätzlicher P-Anteil, sondern der D-Anteil deines PID Reglers.
    Die Integration des Messwertes ergibt zwar den Winkel, behält aber alle Eigenschaften einer Integration.
    a) Eine Integration ohne bekannten Anfangswert kann niemals den tatsächlichen Winkel ergeben.
    b) Durch die Integration werden Messfehler, Digitalisierungsfehler usw. addiert und der Wert den das Integral annimmt läuft immer weiter vom tatsächlichen Winkel weg.

    Beides zusammen bedeutet, dass du das Integral immer wieder Richtung Null zurück drücken musst und den Winkel selber halten musst.

    Dahjer kann eigentlich nur dass passieren was du beobachtest. Je stärker das Integral in deine Regelung eingeht, desto träger reagiert der Copter auf deine Steuerung als Pilot.
    Über den Ki-Faktor lässt sich das glaube ich auch nur sehr schwer dosieren.
    Dummerweise ist das Integral ja nur bei kleinen Werten richtig. Dass es gross wird liegt hauptsächlich an den Mess-, und Digitaliesierungsfehlern.

    Mit dem Ki-Faktor erreichst du, dass das Integral wenig Wirkung hat solange es den richtigen Winkel wiedergibt und viel wenn es den völlig falschen Winkel wiedergibt. Eigentlich genau das Gegenteil von dem was man braucht.

    Versuch mal mit den Werten zu speilen mit denen du das Integral zurück gegen Null drückst.

    Sprich wenn du Willas obengenannte Routine nutzt, spiel mit dem X beim addieren der Messwerte:
    SummeMesswerte = SummeMesswerte + (Messwert-x)
    Oder probiere halt dochmal:
    SummeGyro = SummeGyro + Gyro
    If SummeGyro > X then SummeGyro = 0
    If SummeGyro < -X then SummeGyro = 0

    und spiel hier mit den X-Werten.

  6. #16
    Benutzer Stammmitglied
    Registriert seit
    12.02.2008
    Beiträge
    61
    Hi,

    meine Versuch mit MatLab und einer Sprungantwort die Regelstrecke zu identifizieren war zwar nicht erfolgreich hat mich aber auf den richtigen Weg gebracht. - und gezeigt das willa immer recht hatte.. =D>
    Ich hatte immer angenommen das die Rotoren etwa im schwerpunkt den Copter anheben, sicher der Copter also frei drehen kann und deshalb die Strecke integrierend ist.
    Aber:
    Bei mir zumindest liegt der Schwerpunkt deutlich unter den Propellern. Dadurch ist die Strecke (solange man keine Loopings/Rolle fliegt) eher eine DT2 Strecke.
    Weil:
    Auf einen Sprung von z.B. Roll(klein genug das der Kopter keine Rolle macht) stellt sich eine schraeglage ein so das ein Gleichgewicht von Rueckstellkraft durch den niedrigen Schwerpunkt und erhoete bzw. verringerte Drehzahl am linken und rechten Rotor ein. Weil die Regelgroesse die Geschwindigkeit ist geht die Sprungantwort also gegen Null. -> D Verhalten und weils schwingungsfaehig ist mindestens 2 fach verzoegernd.

    --> man kommt tatsaechlich gut ohne D-Anteil aus ->PI-Regler (Willa hats ja immer gesagt )

  7. #17
    Neuer Benutzer Öfters hier
    Registriert seit
    29.01.2010
    Beiträge
    8
    Hi Kounst,

    könntest du mal beschreiben wie du es nun gelöst hast? oder etwas Code posten?

    Bye

  8. #18
    Benutzer Stammmitglied
    Registriert seit
    12.02.2008
    Beiträge
    61
    Hi,

    tja mit dem PI Regler bin ich auch nicht wirklich weiter gekommen.
    Die Sensoren von Murata hab ich zwischenzeitlich durch einen 2achs Sensor von ST ersetzt. Mit denen hatte ich dann probleme mit Resonanzen..

    Mich haben also einige Zeit andere Dinge von der Lösung des Regelungsproblems abgelenkt. Außerdem schreib ich grad meine Diplomarbeit..

    Ich plane allerdings einen neuen Anlauf zu wagen- diesmal mit Sensoren von Invensense (ITG-3200). Die sehen vielversprechend aus!

    Du kannst mir gern konkrete Fragen stellen -zu was auch immer dich hier speziel interessiert. Nur das Problem hab ich nicht gelöst. Momentan fliege ich immernoch mit einem reinen P Regler. Geht mit etwas übung erstaunlich gut.

  9. #19
    Neuer Benutzer Öfters hier
    Registriert seit
    29.01.2010
    Beiträge
    8
    Hi. Zum ersten würde mich interessieren wie du nun das Integral berechnest und was du gegen den Drift machst.

    Danke

  10. #20
    Benutzer Stammmitglied
    Registriert seit
    12.02.2008
    Beiträge
    61
    Für meinen reinen P Regler hab ich natürlich kein integral. Der Drift scheint bei diesem primitiven Regler auch kein Problem zu sein.

    Alles was die Regelung momentan tut ist folgendes:

    Messen der Drehgeschwindigkeiten mit den Gyros
    Vergleich der Drehgeschwindigkeiten mit dem Sollwert von der Fernsteuerung
    neuer Stellwert ist Kp * (Soll - Ist)

    Der Drift sorgt nur dafür das die Drehgeschwindigkeit 0 nicht mehr in der Mitte auf dem Knüppel liegt. Der Effekt ist aber so gering das ich das noch nicht beobachten konnte.

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen