www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Quadrocoptermodell


Autor: Christoph Gradl (christoph_gradl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
zuerst mal hoffe ich, dass ich das richtige Forum gepostet habe, da ich 
noch neu bin ihr. Ansonsten ersuche ich einen Moderator dieses bitte zu 
verschieben. Ich möchte in nächster Zeit Schritt für Schritt einen 
Quadrocopter aufbauen. Möchte aber nicht auf einen bestehenden Bausatz 
zurück greifen. Ich weiß, dass ich so vielleicht Gefahr laufe das der 
Quadrocopter nie abheben wird.

Mein erster Schritt wäre gewesen, dass ich mir ein mathematisches Modell 
erstelle mit Hilfe von Mathematica bzw. Maple. Dieses in Matlab/Simulink 
danach implementiere und mal verschiedene Regelungsstrategien 
ausprobieren kann. Angefangen von einem PI bzw. PID Regler bis hin zu 
Modellbasierten Ansätzen. Die weiteren Schritten wären die Auswahl der 
benötigten Hardware (Steuerung, BL-Motoren usw.). Dieses sehe ich aber 
momentan noch zweitrangig, da ich zuerst meinen Copter in Simulink 
„fliegen“ lassen möchte. Erst später sollte dann das „echte Modell“ mit 
dem Simulationsmodell abgeglichen werden.

Zur Herleitung des mathematischen Modells werde /möchte ich die 
Projektionsgleichung bzw. den Formalismus von Lagrange verwenden. Vom 
Aufwand her sind ja beide beinahe gleich.


Hier nun meine Fragen:
Hat vielleicht jemand schon mal einen Quadrocopter modelliert und könnte 
mir dieses Wissen zur Verfügung stellen. Dies würde mir sehr helfen. Da 
ich momentan noch sehr unsicher bin was ich in meine Modellbildung alles 
mitnehmen soll.

Ich habe momentan so begonnen, dass ich 6 DOF angenommen habe. Das heißt 
die Koordinaten x, y und z. Weiteres dann noch 3 Winkelfreiheitsgrade. 
Daher bekomme ich danach ein Modell 12 Ordnung.
Um ein möglichst einfaches Modell zu bekommen, habe ich begonnen den 
Quadrocopter nur als eine Objekt (mit somit einer Masse) zu sehen. 
Schwerpunkt liegt auch näherungsweise zentral in der Mitte (grobe 
Modellannahme). Weiteres lass ich vier Kräfte (sollen die Schubkraft 
darstellen) angreifen, an den jeweiligen Positionen der Rotoren. 
Wiederum handelt es sich um eine grobe Näherung, da ich die 
Zeitkonstanten der Motoren usw. vernachlässige. Jedoch denke ich, dass 
sich die Drehzahl um ein vielfaches schneller einstellt, als sich die 
Lage des Copters aufgrund der Drehzahländerung ändert. Die 
Reaktionsmomente der BL-Motoren füge ich auch direkt in meine 
Gleichungen ein. Hier werde ich eine fixe Abhängigkeit zwischen 
Schubkraft und Reaktionsmoment annehmen.

Das wäre es eigentlich schon gewesen, jedoch komme ich auf ein sehr 
komplexes Modell obwohl ich sehr viele Vereinfachungen getroffen habe. 
Weiß vielleicht noch wer weitere Vereinfachungen bzw. wie man das 
vielleicht etwas geschickter angehen kann. Irgendwie Freiheitsgrade 
reduzieren usw.?
Wäre toll wenn sich wer die Mühe machen würde, und sich mein doch 
relativ lang gewordenen Text durchliest.

Hat vielleicht wär eine gute Literatur dazu bzw. ein fertiges 
Simulationsmodell?

Mfg und Danke für Antworten
Christoph

Autor: Tommi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du solltest die Verschiedenen Freiheitsgrade gleich entkoppelt 
betrachten.
Z.B. Kraft, bzw. Bewegung in Z-Richtung ist nur von Summe der 
Rotorkräfte abhängig. Rotation um Z ist die Summe aller 
Drehgeschwindigkeiten (linksdrehend geht negativ ein). Differenz 
zwischen zwei gegenüberliegenden Rotoren gibt Kippen.

Das sind natürlich Vereinfachungen, da die Auftriebskraft auch vom 
Kippwinkel abhängt.

Wenn du diese Auftrennung nicht machst, wird es sehr schwer!

Autor: Christoph Gradl (christoph_gradl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnelle Antwort!
Das heißt ich soll besser mit Drall- und Impulssätzen arbeiten. Und 
Fliehkräfte + Corioliskräfte nicht mitnehmen.

Wenn ich mir das jetzt so durchüberlege:
Ich kann für jeden Winkelfreiheitsgrad einen Drallsatz ansetzten. Wobei 
in diese die Momente und Schubkräfte eingehen.

Wie komme ich jedoch dann dann zu den den Impulssätzen für die 
Ortsfreiheitsgrade? Da muss ich dann auch wieder schauen wie die Kräfte 
mit den entsprechenden Winkel angreifen.

Somit hätte ich eine Teilweise Entkopplung von den Gleichungen. Und es 
geht im großen und ganzen nicht zu viel Information verlorgen.

Da hier eigentlich dann wirklich nur die Fliekräfte + Corioliskräfte 
fehlen. und für kleine Geschwindigkeiten, liegt ich dann nicht so weit 
daneben.

Das ist zwar jetzt nicht so wie du oben geschrieben hast, jedoch was 
hälst du von so einer Vorgehensweise? Sowas sinnvoll oder denk ich 
wieder zu kompliziert?

mfg, Christoph

Autor: Tommi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So wie du schreibst habe ich es gemeint. Nur reichen dir die Rotationen 
ja nicht aus. In Z-Richtung musst du mit der Kraft(direkt) arbeiten.
Wenn der Heli um Y n° kippt, haßt du eine Kraft in X um sin(n)*F_z.
Eben so in der Art.
Letztlich musst aber du herausfinden, wie du zu den besten Lösungen 
kommst. Es gibt nicht DIE Lösung.

Je mehr du berücksichtigst, desto besser KANN die Lösung werden. Es kann 
aber auch sein, dass es dann nicht mehr lösbar ist.

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt ein passenderes Forum :
http://www.mikrokopter.com/ucwiki/

Autor: Christoph Gradl (christoph_gradl)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier wieder ein kleines Update:
Ich habe mir nun ein Modell erstellt wie oben beschrieben. Diese in 
Matlab implementiert (S-Function).

Jetzt bin ich bei dem Punkt wo es um den Aufbau der Regler geht. Habe 
ein Bild angehängt von meinem Entwurf.

Habe für jede Winkelachse einen eigenen SISO PID-Regler implementiert. 
Einen weiteren SISO PID-Regler habe ich für die Regelung der Höhe 
implementiert. Weiteres verwende ich einen Feed-Forward Anteil zur 
kompensation der Gewichtskräfte.
Regler funktionieren eigentlich sehr gut. Das einzige Problem was ich 
momentan habe ist der Wind-Up bei den I-Anteilen, darum habe ich diese 
noch ausgeschaltet.

Wie soll man die Größen wählen welche man über die Fernbedienung 
vorgibt? Was ist "besonders" gut?

Ist es gut wenn ich die Winkel nehme oder soll ich lieber die 
Winkelgeschwindigkeiten verwenden?
Bei der Höhenregelung werde ich die Steiggeschwindigkeit vorgeben, da 
ich so den Copter besser schweben lassen könnte.

Wäre auch für weitere Hinweise bzw. Verbesserungsvorschläge bei der Wahl 
der Reglerstruktur dankbar. Den Modellbasierten Ansatz werd ich jetzt 
noch nicht weiterverfolgen. Diesen möchte ich erst verfolgen, wenn ich 
das Modell dann aufgebaut habe, und die PID Reglung einwandfrei 
funktioniert.

Im Internet finde ich leider nichts über Reglerstrukturen usw. von 
Quadrocopter.

Lg,
christoph

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Im Internet finde ich leider nichts über Reglerstrukturen usw. von
Quadrocopter.


Etwas kurzsichtig ? Dann lass es besser sein.
Sogar in deutsch :
http://forum.mikrokopter.de/
http://www.mikrokopter.de/ucwiki/

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.