Quadrokopter Regelung

OP #3212330
Lesenswert?

Ich will mir diesen Sommer einen Quadrokopter bauen. Ich habe mich scho 
ein wenig in das Thema eingelesen, aber keine Website gefunden, auf der 
die Regelung erklärt ist. Als Sensoren möchte ich den L3G4200D und den 
ADXL345 verwenden. Ich habe die beiden Sensoren schon über I2C 
erfolgreich ausgelesen. Das ganze Programm möchte ich selbst schreiven 
und verstehen und nicht einfach ein fertiges aus den uC laden. Als UC 
will ich den PIC18F46k22 verwenden, da ich mich mit diesem schon 
intensiv beschäftigt habe.
Ich habe gelesen, dass meist ein Kalaman oder ein Komplementäfilter 
eingesetzt wird und die Regelung mit einem PID Regler realisiert wird.
Kennt jemand Websites, auf denen die Fusion der Sensordaten und die 
Regelung gut beschrieben sind?
Gast #3213184
Lesenswert?

Naja. etwas probieren gehoert auch dazu. Das Problem hier ist eher die 
Regelung abzugleichen, da man keine Echtzeitdaten bekommt. Dh man 
benoetigt einen Logger an Board, resp eine Aufzeichnungsfunktion, oder 
man macht einen Kommunikation Kanal zum Auslesen der Steuerdaten in 
Echtzeit.
#3213385
Lesenswert?

Ich kann dir diesen Text zum Thema Kalmanfilterung nur empfehlen:

http://www.visual-analytics.net/document.library/statistics/Kalman%20Filter%20fuer%20Dummies.pdf

Gibt eine gut verständliche Einführung in die Grundfunktion des Filters.
Mit dem Filter für deine Sensordaten steht und fällt deine Regelung. Da 
über die Messdaten zweimal Integriert wird, wirken sich die Drifts der 
Sensoren sehr auf dein Messergebnis aus. Am besten probierst du deine 
Filter und Regelung z.B. mit Scilab aus. Den PID kannst du ja zur Not 
immer noch iterativ bestimmen, hab ich bei meinem Quadrokopter auch so 
gemacht ;-). Dafür habe ich mir einen kleinen Teststand aufgebaut, in 
welchem sich der Quadrokopter um eine Achse drehen konnte. Dazu habe ich 
die dazu orthogonale Achse bzw. deren Ausleger mit Kugellagern drehbar 
gelagert. Dann fliegt dir das Ding nicht weg und du kannst die Daten 
einfach per Kabel auslesen (Echtzeit), das hilft ungemein.
#3216006
Lesenswert?

An deiner Stelle würde ich einen anderen Prozi nehmen: Mindestens einen 
16Bit, da du für Regelaufgaben mehr mit 32-Bit Variablen und viel 
Rechenaufwand rechnen musst, wenn du die Regelung einigermassen schlau 
gestallten willst. Ausserdem hast du noch GPS und ein Gyroskop (sollte 
dann aber auch mindestens alle 1ms aktuelle Daten zur Verfügung 
stellen)? Das willst du ja auch noch auslesen.
Im Normalfall aktualisiert du die Stellgrössen etwa alle 1ms, das heisst 
dass du sämltiche Ist-Werte GEFILTERT dann haben musst. Meistens laufen 
Pro Kreis mehrere kaskadierte Regler, welche auch wiederum doppelt so 
schnell sind wie der übergeordnete.
Würd dir eventuell sogar ein Cortex-M0 mit >48MHz empfehlen.

Ich hatte auch einmal ein PIC für eine Regelung einer Schlittenposition 
(eine Achse) verwendet, und ich war da schon knapp drin.
Gast #3216008
Lesenswert?

Nimm nen ATMega32U4 und pflanz nen MPU6050 drann. Zusätzlich nen Kompass 
(typ gerade nicht lesbar) und nen Luftdrucksensor (BMP085?).

Lad dir auf den ATMega nen Arduino Bootloader drauf und du kannst den 
Source von MultiWii verwenden...

Das Board kannst Du designen wie du willst, oder nimmst ne fertige 
Plattform (FlyDuino)
OP #3216017
Lesenswert?

Ich möchte den PIC verwenden, da ich bereits alles zum Programmieren 
habe und ich mich bereits intensiv mit diesem beschäftigt habe. Außerdem 
möchte ich die Software selber schreiben und nicht irgend einen fertigen 
Code verwenden.
Wenn ein Atmega32 das schafft müsste ein PIC18F46k22 das wohl auch 
schaffen.
#3216275
Lesenswert?

M. H. schrieb:
> Wieso? Was fehlt bei diesem Schaltplan?

Naja, wie wärs mit Stützkondensatoren pro IC und noch ein paar für die 
Motoren?

Ich nehme an, dass das ganze über ein Akkupack betrieben wird: Wo ist 
hier die Überwachung, damit du automatisch notlanden könntest?
Oder eine Drehzahlüberwachung der Motoren? Polyfuse/Strombegrenzung 
falls einer blockieren sollte...
Wird dieser PIC noch mit 12V an MCLR gebrannt? Wenn ja (so wie bei den 
alten "High-Voltage"), fehlt dir noch eine Diode.

Da gibts noch viele spielereien, die man drauf machen könnte...
OP #3216306
Lesenswert?

Patrick B. schrieb:
> Naja, wie wärs mit Stützkondensatoren pro IC und noch ein paar für die
> Motoren?

Ich habe nur einen IC auf der Platine, den PIC. Die IMU (GY-80) ist eine 
kleine Platine auf der die Kondensatoren bereits vorhanden sind. Der PIC 
und der Spannungsregler haben die Stützkondensatoren. Die 
Brushless-Regler bekommen von der Platine nur das Signal und werden zur 
Stromversorgung direkt mit dem Akku verbunden

Patrick B. schrieb:
> Wo ist
> hier die Überwachung, damit du automatisch notlanden könntest?

Das habe ich vergessen. Ist es ok wenn ich mit einem Spannungsteiler die 
Ladeschlussspannung des Akkus  auf ca. 4 V teile und dann mit dem ADC 
messe.

Patrick B. schrieb:
> Oder eine Drehzahlüberwachung der Motoren? Polyfuse/Strombegrenzung
> falls einer blockieren sollte...

Jeder Motor hat einen Brushless-Regler, an den der µC nur das Signal 
sendet. Der Regler schaltet ab, wenn der Motor blockiert.

Patrick B. schrieb:
> Wird dieser PIC noch mit 12V an MCLR gebrannt? Wenn ja (so wie bei den
> alten "High-Voltage"), fehlt dir noch eine Diode.

Diese Schaltung zum Programmieren habe ich schon oft verwendet und ich 
hatte noch nie Probleme.
#3216488
Lesenswert?

M. H. schrieb:
> Ist es ok wenn ich mit einem Spannungsteiler die
> Ladeschlussspannung des Akkus  auf ca. 4 V teile und dann mit dem ADC
> messe.

Kommt ganz auf den Akku an (Tiefentladung bei LIPO hättest du mit dieser 
Überwachung auch gleich verhindert). Aber in den meisten Fällen ist das 
IO.

Wenn der ganze Rest schon vorhanden ist, ist es gut.
Ev. noch ein Sensor für die Höhe (Luftdruck oder so) und einer für den 
Bodenabstand im Landeanflug.
OP #3216721
Lesenswert?

Ich verwende diese Sensorplatine: 
http://dx.com/p/gy-80-bmp085-9-axis-magnetic-acceleration-gyroscope-module-for-arduino-145912

Wenn ich mit dem Luftdrucksensor nur die Höhe konstant halten will, sie 
aber nicht absolut messen muss, kann ich dann auf das Rechnen mit den 
Kalibrier Koeffizienten verzichten?
Die absolute Höhe wird mit dem GPS gemessen.

Patrick B. schrieb:
> Ev. noch ein Sensor für die Höhe (Luftdruck oder so) und einer für den
> Bodenabstand im Landeanflug.

Welchen Sensor würdest du da verwenden? Ultraschall?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren