HeQuCopter V2

 {autotoc}

1 Motivation

 Quadrocopter und andere Multicopter erfreuen sich in den letzten Jahren immer größerer Beliebtheit im Hobbybereich. Dies mag zum einen daran liegen, dass es mit der Arduino-Programmierumgebung heute für Einsteiger so einfach wie nie zuvor ist einen Mikrocontroller zu programmieren. Zum anderen tragen Open Source Bewegungen, die sowohl dem erfahrenen Modellbauer als auch dem Unerfahrenen, eine funktionierende Software gratis zur Verfügung stellen – welche nur noch an die jeweiligen Anforderungen angepasst werden muss – einen großen Anteil bei.

 Ein großes Problem der Multicopter stellt allerdings die geringe Flugdauer und daraus resultierend eine stark limitierte Reichweite dar. Angesichts des heutigen Stands der Wissenschaft auf dem Gebiet der Energiespeichertechnik liegt die Flugdauer abhängig von der Größe des Fluggeräts zwischen einigen wenigen Minuten bis zu maximal ca. 30 Minuten. Ein weiteres Problem, welches insbesondere bei Tricoptern und Quadrocoptern auftritt, stellt die Sicherheit dar. Aufgrund fehlender Tragflächen führt der Verlust eines Rotors oder ein Motorausfall unweigerlich zu einem Absturz des Fluggeräts, da es dadurch nicht mehr steuerbar ist.

 Hier soll ein Lösungsvorschlag für eben diese Probleme vorgestellt werden. Dazu wird ein Quadrocopter entwickelt, in dem ein mit Helium gefüllter Auftriebskörper integriert ist. Dieser Auftriebskörper soll das effektive Gewicht des Quadrocopters reduzieren und dadurch eine längere Flugzeit erlauben. Die Auswirkungen dieses Auftriebskörpers sind noch zu untersuchen.

2 Aufbau der Rahmenstruktur

 Die Rahmenstruktur besteht im wesentlichen aus drei Teilen. Der oberen Hemisphere und der unteren Hemisphere an welcher die Gondel befestigt ist. Zusammen mit dem Carbonring geben sie dem Auftriebskörper halt. Der Carbonring dient zusätzlich noch als Befestigungsmöglichkeit für die vier Motorhalter.

 Für den Aufbau wird benötigt:

  • 3 x CFK Rundprofile (Länge: 1000 mm; Durchmesser: 1,5 mm)
  • 3 x CFK Rechteckprofile (1000 mm x 3,0 mm x 0,8 mm)
  • 4 x Motoren
  • 4 x Motorhalter (aus 3D-Drucker)
  • Gondel und Plattform (aus 3D-Drucker)
  • 3 x Verbindungsteile (aus 3D-Drucker)
  • Y-förmiges Verbindungsstück
  • Heliumballon (Durchmesser: 700 mm, Höhe: 350 mm)

b

 

 Zuerst werden die drei Rechteckprofile aneinander gereiht (ca. 3 cm überlappend) und verklebt. Anschließend wird daraus ein Ring mit ca. 70 cm Durchmesser geform - überschüssiges CFK abgesägt - und verklebt. Die vier Motoren werden in die Motorhalter geklebt. Sind der CFK Ring und die Motorhalter getrocknet, werden diese an den Ring geklebt. Die drei identischen Verbindungsstücke werden ebenfalls am Ring befestigt.

 

 Nun wird die Gondel auf die Plattform geklebt. Ist der Kleber trocken, werden die drei CFK Rundprofile halbiert und je drei der 50 cm langen Carbonstangen an die Plattform bzw. das Y-förmige Verbindungsstück geklebt. Man erhält dadurch folgende zwei Teile, die obere und die untere Hemisphere:


  Die obere und die untere Hemisphere können nun in die Verbindungstücke gesteckt werden. Mit etwas Klebeband können diese fixiert werden, um ein herausrutschen zu verhindern. Zum Einlegen des Ballons siehe Kapitel 5.2 Schritt 2.

3 Aufbau der Elektronik

 Neben der Rahmenstruktur muss auch die Elektronik des Heliumquadrocopters einigen Ansprüchen genügen. Die Elektronik des HeQuCopters sollte wie die Rahmenstruktur besonders leicht sein und darüber hinaus effizient arbeiten um die maximal mögliche Flugdauer nicht zu sehr einzuschränken. Eine mögliche Realisierung wird hier beschrieben.

 Die Elektronik des HeQuCopters besteht aus Mikrocontroller, Sensorplattform, Empfänger-modul, Spannungsversorgung, Motortreiber und den vier Motoren. Als Mikrocontroller wird ein Arduino Pro Mini (Atmel, ATmega328) verwendet, da dieser besonders leicht ist (ca. 2 g) und von der MultiWii Software unterstützt wird. Für die Sensorik wird ein Drotek IMU 10DOF Board verwendet. Dieses ist ausgestattet mit der MPU6050 (Motion Processing Unit von Invensense), einem Magnetsensor (Honeywell HMC5883) und einem Drucksensor (MEAS MS5611). Die MPU6050 beinhaltet einen 3-Achsen Beschleunigungssensor und ein 3-Achsen Gyroskop. Beide Sensoren sind nach MEMS Bauweise (microelectromechanical system) gefertigt. Als R/C Empfängermodul wird aufgrund seiner geringen Größe (ca. 35 mm x 18 mm x 9 mm) und Gewichts (ca. 4,7 g) das Graupner HoTT GR-12 Modul verwendet. Die Spannungsversorgung des Mikrocontrollers, der Sensorik, der vier Motoren samt Motortreiber und des R/C Empfängermoduls übernimmt ein einzelliger Lithium-Polymer-Akkumulator in prismatischer Bauweise mit einem Ladungsspeichervermögen von 250mAh und einer Nennspannung von 3,7 V. Wegen der hohen Energiedichte von Lithium-Polymer-Akkumulatoren, seiner kleinen Größe (ca. 31 mm x 21 mm x 7 mm) und des daraus resultierenden geringen Gewichts (ca. 7,7 g) eignet sich dieses Modell besonders für den Einsatz in dem entworfenen Heliumquadrocopter.

 Zum Ansteuern der vier Gleichstrommotoren wurde eigens eine Motortreiberplatine entwickelt. Ziel war eine leichte, kleine Platine die ein effizientes Ansteuern aller Motoren erlaubt. Aufgrund der Gewichtsproblematik wurde eine einfach zu realisierende, mit wenigen Bauteilen auskommende Schaltung angestrebt. Aus diesen Gründen und der Tatsache, dass jeder Motor entweder im Uhrzeigersinn oder im Gegenuhrzeigersinn betrieben werden muss und eine Änderung der Drehrichtung daher nicht nötig ist, wurde für jeden der vier Motoren ein Gleichstromsteller im 1-Quadranten-Betrieb realisiert.

 

    

 

 Eine einfache und sehr effiziente Methode der Drehzahlsteuerung, mit einem Wirkungsgrad nahe 100%, kann mit einem Gleichstromsteller erreicht werden. Beim Gleichstromsteller werden durch ein Stellglied, hier Feldeffekttransistor, rasch nacheinander Spannungsimpulse mit variablen Ein- und Ausschaltzeiten (Pulsweitenmodulation) an den Anker des Gleichstrommotors gegeben. Je nach Länge der spannungslosen Pause stellt sich die Motorspannung, der Ankerstrom und daraus resultierend die Motordrehzahl ein:

                         Motorspannung = Betriebsspannung x Tastverhältnis.

 Da es sich bei einem Motor um eine ohmsch-induktive Last handelt und dieser mittels Pulsweitenmodulation betrieben wird, muss die Schaltung durch eine sogenannte Freilaufdiode vor selbstinduzierten Strömen, welche während der Ausschaltzeiten auftreten, geschützt werden. Die Freilaufdiode muss dazu parallel zum Motor angebracht werden. Dadurch treibt der induzierte Strom iV den Motor während der Ausschaltzeiten an. Über die gesamte Zeit betrachtet, liegt der daraus resultierende, leicht gewellte Strom id an. Als Freilaufdiode sollte aufgrund der hohen Frequenz eine schnell schaltende Schottkydiode verwendet werden.

 Der anfangs genannte hohe Wirkungsgrad kann folgendermaßen erklärt werden. Nach der Definition der Verlustleistung gilt:

                          PVerlust = U  I = Uein  Iein + Uaus  Iaus.

Während der Einschaltzeit fällt an der Diode eine Spannung Uein ab, die nahe Null Volt liegt und während der Ausschaltzeit beträgt Iaus gleich Null. Über die gesamte Periodendauer gilt daher PVerlust ≈ 0W. Betrieb im 1-Quadranten-Betrieb bedeutet, dass die Gleichstrommaschine entweder im Generator- oder im Motorbetrieb gefahren werden kann, jedoch ein Wechsel aufgrund des Platinenlayouts nicht möglich ist. Das Schaltungsdesign legt auch die Drehrichtung der Gleichstrommaschine fest. Alle vier Motoren des Fluggeräts liegen daher im I. Quadranten (die beiden rechtsdrehenden), oder im III. Quadranten (die beiden linksdrehenden) eines U-I-Diagramms. Die vier Widerstände R1, R2, R3 und R4 dienen dem Schutz der Ausgänge des Mikrocontrollers. Die Kapazitäten C1, C2, C3 und C4 wirken als Entstörkondensatoren. Die Kapazität C5 glättet auftretende Spannungseinbrüche beim Beschleunigen des Motors.

 Aus Gewichtsgründen wurde die komplette Schaltung in SMD-Bauweise auf einer 0,6 mm starken Platine gefertigt. Es werden zwei IRF 7301 ICs – von denen jeder zwei n-Kanal Feldeffekttransistoren beinhaltet – als Schalttransistoren verwendet. Die vier Motoren werden – parallel zu den Entstörkondensatoren und den Schottkydioden – an die vier Drainanschlüsse der MOSFETs angeschlossen. Die vier verwendeten PWM-Ausgänge des Arduinos werden über je einen SMD-Widerstand mit den Gateanschlüssen der Transistoren verbunden. Zum Glätten von Spannungseinbrüchen wird ein Elektrolytkondensator verwendet. Um auf der Platine Platz und somit Gewicht zu sparen, werden die Entstörkondensatoren nicht neben den vier Schottkydioden, sondern darüber platziert.

 

4 Software

 Als Grundlage für die Steuerungs- und Regelungssoftware wird die MultiWii Version 2.2 verwendet. MultiWii ist eine im Hobbybereich häufig verwendete Software zum Steuern von Fluggeräten und unterstützt neben Quadrocoptern auch Tri-, Hexa- und Octocopter. Darüber hinaus werden auch Modellflugzeuge und Helikopter unterstützt. Dies hat zur Folge, dass viele Softwareteile für diese Arbeit überflüssig sind und diese Stellen im Code darum angepasst, gekürzt oder entfernt wurden.

4.1 MultiWii 2.2

 Es wurde versucht viele der nicht benötigten Code-Passagen zu entfernen, um den Programmcode übersichtlicher zu gestalten. Die Datei Alarms.ino wird für den HeQuCopter nicht benötigt, da dieser weder Signal-LEDs noch einen Summer besitzt. Aufgrund der Tatsache, dass der HeQuCopter für den Indoorgebrauch gedacht ist und außerdem ein angebrachtes GPS-Modul das Gewichtslimit überschreiten würde, werden die beiden Dateien GPS.ino und tinygps.h nicht benötigt. Ebenfall würde das Anbringen eines Liquid Crystal Displays (LCD) am HeQuCopter den Gewichtsrahmen sprengen, weshalb auch auf LCD.ino verzichtet werden kann. Durch den Wegfall dieser Dateien, konnten def.h, EEPROM.ino, Sensors.ino und Serial.ino gekürzt werden. Infolgedessen wurde der gesamte Code kürzer und übersichtlicher.

4.1.1 Konfigurationsdatei „config.h“

 In der config.h wird der Code an das jeweilige Fluggerät angepasst. Die config.h
unterteilt sich dazu in sieben Kategorien:

  •  Section 1 – Basic Setup
  •  Section 2 – Copter Type Specific Options
  •  Section 3 – RC System Setup
  •  Section 4 – Alternate CPUs & Boards
  •  Section 5 – Alternate Setup
  •  Section 6 – Optional Features
  •  Section 7 – Tuning & Developer

In Section 1 – Basic Setup müssen folgende Einstellungen vorgenommen werden:

#define QUADX              // Zeile 34
#define MINTHROTTLE 1050   // Zeile 39
#define MAXTHROTTLE 2000   // Zeile 44
#define MINCOMMAND 1000    // Zeile 67
#define I2C_SPEED 100000L  // Zeile 70
#define DROTEK_10DOF_MPU   // Zeile 115

 Wobei #define MINCOMMAND 1000 und #define I2C_SPEED 100000L standardmäßig bereits voreingestellt sind. Durch #define MINCOMMAND 1000 wird das Signal an die Motortreiber im not armed-Modus festgelegt. Dieser Wert ist ebenfalls standardmäßig voreingestellt und muss nicht verändert werden. Da der HeQuCopter in der X-Konfiguration betrieben werden soll, muss in Zeile 34 #define QUADX ausgewählt werden. Mit #define MINTHROTTLE 1050 und #define MAXTHROTTLE 2000 wird der Signalbereich im armed-Modus festgelegt. Zeile 115 muss gewählt werden um das ausgewählte Sensorboard (Drotek IMU 10 DOF) in den Code einzubinden. Ansonsten müssen in dieser Sektion und den folgenden Sektionen keine weiteren Einstellungen mehr vorgenommen werden.

4.1.2 Anpassen der Dateien „Output.ino“und „MultiWii.ino“

 Zunächst wurden in der Output.ino nicht verwendete Stellen im Code entfernt. Anschließend
wurde der Code der – in Output.ino enthaltene – Funktion void writeMotors()
durch folgende Codezeilen ersetzt:

void writeMotors(){
 #if defined (MEGA)
  for(uint8_t i=0; i<NUMBER_MOTOR; i++)
   analogWrite(PWM_PIN[i], (motor[i]-1000)>>2);
 #else
  for(uint8_t i=0; i<min(NUMBER_MOTOR, 4); i++)
   analogWrite(PWM_PIN[i], (motor[i]-1000)>>2);
 #endif
}

Dies erlaubt das Ansteuern der Gleichstrommotoren mittels eines PWM-Signals.

 In der Datei MultiWii.ino wurden ebenfalls unnötige Codezeilen entfernt. Aufgrund der geringen Größe der Gleichstrommotoren und der daraus resultierenden geringen Leistung geht von den rotierenden Propellern keine Gefahr aus. Dies erlaubt das Einfügen der folgenden zwei Codezeilen am Ende des Setups:

void setup (){
 ...
 f. ARMED = 1; // auto disarm
 headFreeModeHold = heading ;
}


 Diese beiden Codezeilen bewirken ein automatisches Aktivieren der Motoren und sollten bei größeren Modellen aus Sicherheitsgründen nicht eingefügt werden.

4.2 Regelparameter

 Die Regelung des Quadrocopters erfolgt für jede der drei Achsen (pitch, roll, yaw) durch
einen in die Software integrierten PID-Regler.  Zum Einstellen der Regelparameter eines PID-Reglers gibt es zahlreiche Lösungsansätze, wie beispielsweise die Einstellregeln nach Ziegler/Nichols, Chien/Hrones/Reswick oder die T-Summen-Regel, jedoch keine universell gültigen Einstellregeln. Da in der Software bereits Regelparameter hinterlegt sind, wird auf das Anwenden genannter Einstellregeln verzichtet. Stattdessen werden durch systematisches Probieren die für die Regelaufgabe optimalen P-, I- und D-Anteile bestimmt. Mit Hilfe einer graphischen Oberfläche können die Regelparameter des HeQuCopters angepasst werden.

 Der P-Anteil ist wesentlich für ein stabiles Flugverhalten verantwortlich. Erst eine geeignete Wahl dieses Parameters ermöglicht ein kontrolliertes Fliegen. Er bestimmt mit welcher Kraft das Fluggerät in seine Ausgangsposition zurück will. Je höher (niedriger) der P-Anteil gewählt wird, desto größer (kleiner) ist die Kraft mit der dieses erfolgt. Das heißt, ein gutmütiges Flugverhalten wird durch einen eher niedrigeren P-Anteil erreicht. Dagegen ermöglicht ein hoher P-Anteil ein schnelleres, stärker vom Piloten beeinflusstes Fliegen, wie es im Kunstflug erwünscht ist. Ist der Wert allerdings zu hoch oder zu niedrig gerät der Quadrocopter außer Kontrolle.

 Der I-Anteil ist für ein stabiles Flugverhalten von geringerer Bedeutung als die P- und D-Anteile. Er gibt an in welchem Zeitraum die Winkeländerung abgetastet wird. Je kleiner dieser Wert wird desto schneller reagiert der Quadrocopter auf Abweichungen vom Sollwert.

 Ebenso wichtig wie der P-Anteil ist der D-Anteil. Dieser gibt an mit welcher Geschwindigkeit der Quadrocopter in seine Ausgangsposition zurückkehrt und steht daher in starker Verbindung mit dem P-Anteil. Ein gutmütiges Verhalten kann durch Erhöhen des D-Anteils erreicht werden. Wird jedoch ein zu hoher Wert gewählt schwingt sich der Quadrocopter auf.


 Durch systematisches Ausprobieren wurden die einzelnen Anteile nacheinander solange verändert bis der HeQuCopter das gewünscht Flugverhalten gezeigt hat. Da es sich beim HeQuCopter um ein träges Fluggerät handelt, welches sich schnell aufschwingt und nicht für den Kunstflug gedacht ist, wurde versucht ein gutmütiges Flugverhalten einzustellen. Dies wird durch Verringern des P-Anteils und Erhöhen des D-Anteils erreicht. Die ermittelten Werte können folgender Tabelle entnommen werden. Im Vergleich zu den Standardwerten konnte diese Hypothese bestätigt werden.

Regelparameter des PID-Reglers
  default HeQuCopter
P-Anteil I-Anteil D-Anteil P-Anteil I-Anteil D-Anteil
Roll 3,3 0,030 23 2,5 0,020 25
Pitch 3,3 0,030 23 2,5 0,020 25
Yaw 6,8 0,045 0 6,4 0,045 4


 Neben den Einstellmöglichkeiten für die PID-Regler der drei Achsen ermöglicht die Software außerdem ein Einstellen der beiden Werte RC-Rate und RC-Expo. Mit diesen beiden Werten wird festgelegt wie sich das Fluggerät bei Bewegungen des Pitch/Roll Steuerknüppels verhält. Die RC-Rate gibt an, wie sensibel der HeQuCopter auf Bewegungen des Pitch/Roll Steuerknüppels der Fernsteuerung reagiert. Da es sich beim HeQuCopter um ein träges Fluggerät handelt, welches bei einem schnellen Richtungswechsel rasch ins Schwingen kommt und abzudriften beginnt, ist ein kleiner RC-Expo-Wert von Vorteil. Dies ermöglicht bei kleinen Knüppelbewegungen eine sehr präzise Steuerung um die Pitch- und Rollachse. In folgender Tabelle sind günstige Werte für diese zwei Variablen festgehalten.

RC-Rate und RC-Expo
default HeQuCopter
RC-Rate RC-Expo RC-Rate RC-Expo
0,90 0,65 0,50 1,00

4.3 Empfängermodul

 Das R/C Empfängermodul HoTT GR-12 hat einen werksmäßig eingestellten Unterspannungsalarm, bei Unterschreiten von 3,8 V. Da der Quadrocopter allerdings mit einem 3,7 V LiPo-Akku betrieben wird ist diese Einstellung deutlich zu hoch. Wird die 3,8 V Schwelle unterschritten, erzeugt das Empfängermodul das in Abbildung... dargestellte Signal (gelb), welches vom Motortreiber wiedergegeben wird (blau). Das führt zu einem unkontrollierbaren Verhalten des Heliumquadrocopters. Er steigt periodisch für ca. 2 s und fällt anschließend wieder zu Boden. Durch dieses Signal erzeugen bürstenlose Motoren ein hörbares Piepsen um den Piloten auf die niedrige Spannung aufmerksam zu machen. Gleichstrommotoren können dieses Piepsen nicht generieren, stattdessen tritt das beschriebene Verhalten auf. Mit Hilfe einer Software des Herstellers kann die Schwelle für den Alarm gesenkt werden.


 Dazu muss das Empfängermodul an der Telemetrie-Schnittstelle (mit einem „T “ gekennzeichnet) mit dem zweipoligen Adapterkabel verbunden werden. Dieses wird über eine USB-Schnittstelle mit dem PC verbunden. Als nächstes muss der richtige COM-Port gewählt und die Schaltfläche „Connect “ betätigt werden. Während das Programm nun lädt, muss das Empfängermodul zügig an eine externe Spannungsquelle angeschlossen werden, gleichzeitig die „SET “ Taste am Empfängermodul gedrückt und gehalten werden. War dies erfolgreich, werden nun im Konfigurationsprogramm die eingestellten Werte angezeigt. Jetzt können die gewünschten Änderungen vorgenommen werden. Der Wert für den Unterspannungsalarm wurde auf 3,0 V gesenkt. Durch ein abschließendes Betätigen der „Write “ und „Disconnect “ Schaltfläche werden die Änderungen übernommen und das Empfängermodul kann abgesteckt werden.

5 Inbetriebnahme

5.1 Ausbau des Auftriebskörpers:

Zum Ausbau des Auftriebskörpers sind folgende Schritte notwendig:

  1. Lösen eines Carbon-Rundprofils der oberen Rahmenhälfte vom Carbonring
  2. Entnehmen des Auftriebskörpers
  3. Befestigen des gelösten Carbon-Rundprofils am Carbonring

5.2 Inbetriebnahme des HeQuCopters

Zur Inbetriebnahme des HeQuCopters sind folgende Schritte notwendig:

  1. Auffüllen des Auftriebskörpers mit Helium
  2. Einbau des Auftriebskörpers:
    1. Lösen eines Carbon-Rundprofils der oberen Rahmenhälfte vom Carbonring
    2. Einlegen des Auftriebskörpers
    3. Befestigen des gelösten Carbon-Rundprofils am Carbonring
    4. Zurechtrücken der Rahmenstruktur. Die Naht des Auftribskörpers soll dabei knapp unter dem Carbonring liegen.
    5. Fixieren der sechs Carbon-Rundprofile der oberen und unteren Hälfte mit etwas Klebeband
    6. Austarieren
  3. Überprüfen der Steckverbindungen am Arduino Pro Mini, Empfängermodul, IMU, Motortreiber, den vier Motoren und der Spannungsversorgungsschiene
  4. Inbetriebnahme der Fernbedienung
  5. Anschließen des Akkus
  6. Fliegen
  7. Abstecken des Akkus
  8. Ausschalten der Fernbedienung