TU München Bericht der Ingenieurpraxis Design und Evaluation von ” Propeller-Motor-Systemen für Mini-Quadrocopter“ Fachprüfungsordnung: B.Sc. ab WS08/09 (neue FPO) Betreuender Professor: Prof. Dr. sc.nat. Jörg Conradt Fachgebiet für Neurowissenschaftliche Systemtheorie (NST) Student: Florian Groß Matrikelnummer: 3602431 Zeitraum: 14. März - 13. Mai 2011 (9 Wochen) Abgabe des Berichts: 21. Juli 2011 1 Eingereichter Arbeitsplan In der Ingenieurpraxis mit dem Thema Design und Evaluation von Propeller-Motor” Systemen für Mini-Quadrocopter“ soll für Quadrocopter eine optimale Kombination von Propeller und Motor gefunden werden. Quadrocopter sind kleine, hubschrauberähnliche Fluggeräte mit vier Rotoren, welche paarweise gegenläufig rotieren. Da sie in ihrer Flug– und Schwebestabilität einfachen Hubschraubern überlegen sind eignen sich Quadrocopter gut für Aufgaben, in denen Langsamflug und verlässliche Positionierung gefordert sind. Die vorhandenen Quadrocopter bieten eine Breite von 160mm, Ziel ist es allerdings, diese auf unter 100mm schrumpfen zu lassen. In dieser Ingenieurpraxis geht es dabei um die Miniaturisierung der Propeller sowie der Motoren. Hierbei ist das Ziel d ≤ 50mm für die Propeller, d ≤ 5mm für die Motoren. Durch diese Größe wird es möglich sein, kompakte Schwärme zu bilden und die Quadrocopter in beengten Verhältnissen einzusetzen. Erste Aufgabe wird es sein, den Bestand an vorhandenen Bauteilen zu erfassen und ggf. systematisch zu ergänzen. Anschließend wird der Student einen Testaufbau entwerfen, der die stationäre Messung folgender Größen erlaubt: • Stromstärke I [A] • Spannung U [V] • Auftriebskraft FL [N] • Rotationsfrequenz f [U/min] Die Messungen werden elektronisch erfasst und mit Hilfe geeigneter Tools (z.B. MATLAB) visualisiert. Anhand dieser Daten soll im Anschluss der beste Arbeitspunkt für den Motor gefunden werden (erforderliche Leistung P [W] minimieren, Auftrieb FL maximieren) und mit anderen Propeller-Motor-Kombinationen verglichen werden. Die beste Kombination zeichnet sich durch möglichst • geringen Preis • starken Auftrieb • gutes Ansprechverhalten • geringe Größe/Gewicht aus. Im Anschluss daran werden die Eigenschaften dieser Kombination auf ein kleineres Propellermodell übertragen und ein adäquater Fertigungsprozess für Propeller dieser Größe ermittelt. Die selbst hergestellten Propeller werden dann wieder mit Hilfe des Testaufbaus analysiert und die Güte evaluiert. 2 2 Beschreibung der durchgeführten Aufgaben 2.1 Inventur In der ersten Woche wurde primär die vorhandene Ausrüstung erfasst und Möglichkeiten gesucht, die einzelnen Aufgaben der Ingenieurpraxis durchzuführen. Prof. Conradt hat bereits im Vorfeld diverse Propeller und Motoren beschafft, die ihm vielversprechend erschienen, diese wurden nun alle mit Hilfe von Excel-Tabellen und Bildern erfasst. Die Datensätze umfassten dabei: • Bei Propellern – Durchmesser Welle [mm] – Id-Nummer (P[00-36]) – Durchmesser Gehäuse [mm] – Beschriftung/Modellname – Höhe Korpus [mm] – Entfernung der beiden Rotorspitzen [mm] – Höhe Welle [mm] – Gewicht [g] – Durchmesser der Nabe [mm] – Oberflächenbeschaffenheit – Max. Breite des Rotorblattes [mm] – Form (Zylinder/Blimp) – Gewicht [g] – Brushless? (ja/nein) – Oberflächenbeschaffenheit (glatt/rau) – Vorhandene Anzahl – Vorhandene Anzahl – Max. Strom bei Nennspannung [mA] – Nennspannung [V] – Material (Kunststoff/Carbon) – Gradient (falls in Produktbeschreibung vorhanden) [mm] – Widerstand [Ω] – n0 [U/min] – Bemerkungen – Bemerkungen – Bilder von oben und schräg oben – Zusätzliche Dateien, in die das Gewicht der Motoren geschrieben wurde (Mxx.txt), um sie später automatisch in Messberichte einzufügen und eine Leistungskennzahl zu errechnen • Bei Motoren: – Id-Nummer (M[00-35]) – Beschriftung/Modellname – Motoraufdruck 3 2.2 Mess-Software Die Hauptaufgabe der Ingenieurpraxis bestand darin, einen Messstand zu entwerfen, an dem die erforderlichen Parameter (Stromstärke, Spannung, Auftriebskraft, Rotationsfrequenz) gemessen werden können. Die Messaufgaben wurden von der NI DAQCard 6026E von National Instruments übernommen. Da am Lehrstuhl keine Lizenz von LabView vorhanden war und die Anschaffung dieser für die simplen Messaufgaben nicht lohnen würde, erkundete der Student Möglichkeiten, die Messdaten softwaregestützt auszulesen. Die erste Möglichkeit bestand in der Verwendung der mitgelieferten Libraries in reinem C/C#. Diese waren gut dokumentiert und gut zu programmieren, allerdings fehlte es an erweiterten Möglichkeiten zur Darstellung und Verarbeitung der gemessenen Daten. So fiel die Wahl letzendlich auf MATLAB und die Einbindung der C-Libraries über Wrapper-Funktionen (loadlibrary, unloadlibrary, calllib, libpointer)1 2 . Um die Funktionen der Library schneller und weniger aufwendig nutzen zu können, wurden diverse MATLAB-Scripts angepasst und neu geschrieben. Ein erheblicher Teil der aufgewendeten Zeit fließ in die selbstgeschriebene Funktion ”MESSUNG”, die sämtliche Messaufgaben vereinte und die Messung selber durchführt, im Folgenden eine Kurzbeschreibung der einzelnen Abschnitte: 1 2 3 4 5 6 7 8 9 10 % SETUP l i v e p l o t = 0 ; % Deaktivierung des L i v e p l o t s %% Data A c q u i s i t i o n l a u f z e i t s e c = l a u f z e i t ; % L a u f z e i t in sec . SampRate = 5 0 0 ; % s a m p l i n g r a t e i n Hz N = l a u f z e i t s e c ∗SampRate ; % Zu e r w a r t e n d e Samples fmin = 1 0 ; fmax = 5 0 0 ; Vmin = −10; Vmax = 1 0 ; Imin = 0 . 0 1 ; Imax = 2 . 0 ; % [...] In diesem Abschnitt werden diverse Parameter aus dem Funktionsaufruf in die jeweiligen Variablen geschrieben und der Wertebereich festgelegt. Der Übersichtlichkeit halber wurde nur der erste Block exemplarisch dargelegt. 11 12 13 14 delete ( i n s t r f i n d a l l ) ; s e r i a l P o r t = ’COM1 ’ ; s e r i a l O b j e c t = s e r i a l ( s e r i a l P o r t , ’ BaudRate ’ , 9 6 0 0 ) ; fopen ( s e r i a l O b j e c t ) ; Anschließend wird der COM1-Port (Waage) geöffnet und für den Lesevorgang vorbereitet. 1 2 http://www.mathworks.com/matlabcentral/fileexchange/27609-daqmx-examples http://www.jr-worldwi.de/work/matlab/index.html 4 15 16 17 18 19 20 21 22 23 t a s k h .FREQ = DAQmxCreateTask ( l i b ) ; t a s k h . AI = DAQmxCreateAIVoltageChan ( l i b , ’ /Dev1/ a i 0 ’ , . . . Vmin , Vmax, DAQmx Val Diff ) ; t a s k h . AI = DAQmxCreateAICurrentChan ( l i b , t a s k h . AI , . . . ’ /Dev1/ a i 2 ’ , Imin , Imax , 0 . 1 ) ; t a s k h .PWM = DAQmxCreateCOPulseChanFreq ( l i b , ’ /Dev1/ c t r 0 ’ , . . . DAQmx Val Low , 0 , CtrFreq , 0 . 8 , 1 0 0 ) ; t a s k h .FREQ = DAQmxCreateCIFreqChan ( l i b , t a s k h .FREQ , . . . ’ /Dev1/ c t r 1 ’ , fmin , fmax ) ; Mit DAQmxCreateTask wird ein Task erstellt (Basis für eine Messaufgabe), mit DAQmxCreateAIVoltageChan, DAQmxCreateAICurrentChan, DAQmxCreateCOPulseChanFreq und DAQmxCreateCIFreqChan jeweils Kanäle, die Spannung (AIVoltage) oder Strom (AICurrent) einlesen können, ein PWM-Signal erzeugen können (COPulseChanFreq) oder Frequenz messen (CIFreq). Die Funktion DAQmxCreateCIFreqChan erstellt selber keinen Task, daher muss man das davor manuell erledigen. Im Folgenden werden Timing-Parameter festgelegt und Buffer-Größen definiert, das ist aber programmiertechnisch wenig interessant. 24 25 26 27 28 29 30 31 32 33 34 bi npat h = s t r c a t ( ’C: / M e s s s o f t w a r e / S c r i p t s / e r g e b n i s s e /M’ , . . . num2str ( motornummer ) , ’P ’ , . . . num2str ( propellernummer ) , ’ f ’ , . . . num2str (PWMrate ) , ’ Hz− ’ , . . . num2str ( l a u f z e i t ) , ’ s / ’ ) ; mkdir ( binpath ) ; dt = [ ] ; f i r s t a i = [ ] ; f i r s t t h r u s t = [ ] ; f i r s t f r e q = [ ] ; f r e q f i l e = fopen ( s t r c a t ( binpath , num2str ( DutyCycle ∗ 1 0 0 ) , [ . . . ] A I f i l e = fopen ( s t r c a t ( binpath , num2str ( DutyCycle ∗ 1 0 0 ) , [ . . . ] t h r u s t f i l e = fopen ( s t r c a t ( binpath , num2str ( DutyCycle ∗ 1 0 0 ) , [ . . . ] d u t y f i l e = fopen ( s t r c a t ( binpath , num2str ( DutyCycle ∗ 1 0 0 ) , [ . . . ] Um die Messdaten speichern (und später auch plotten) zu können, wird für jede MotorPropeller-Kombination ein Verzeichnis angelegt und jede Messung wird in vier Binärdateien geschrieben. 35 36 37 38 39 40 while toc ( t 1 ) <= s t a r t t i m e+l a u f z e i t s e c i f ( isempty ( f i r s t a i ) ) f i r s t a i = toc ( t 1 ) ; end aitmp = DAQmxReadAnalogF64 ( l i b , t a s k h . AI , numsampleAI , [ . . . ] fwrite ( A I f i l e , aitmp , ’ double ’ ) ; 41 42 43 44 i f (mean( aitmp ( 2 , : ) ) > 1 . 3 ) disp ( ’ c u r r e n t > 1 . 3 A! ’ ) break 5 45 end Nun folgt die eigentliche Schleife, in der für die Dauer von laufzeitsec Werte erhoben werden. firstai kennzeichnet die Zeit, an dem der erste analoge Wert (Spannung + Strom ) erfasst wurde, dies benötigt MATLAB für einen sauberen Plot. Mit DAQmxReadAnalogF64 werden die eigentlichen Werte der zwei Kanäle, Spannung und Strom, als 64-bit Fließkommazahl in die Variable aitmp geschrieben und in der Binärdatei gespeichert. Sollte der Mittelwert des gemessenen Stromes 1.3 A überschreiten, so wird die Messung abgebrochen (Transistor verträgt max. cont. 1.3A). 46 47 48 49 50 51 freqtmp = DAQmxReadCounterScalarF64 ( l i b , t a s k h .FREQ, timeout ) / 2 ; while ( freqtmp < fmin | | freqtmp > fmax ) freqtmp = DAQmxReadCounterScalarF64 ( l i b , t a s k h .FREQ , . . . timeout ) / 2 ; end fwrite ( f r e q f i l e , [ toc ( t 1 ) freqtmp ] , ’ double ’ ) ; Hier wird ein (gültiger!) Messwert der Frequenzmessung eingelesen und durch die Anzahl der Propellerblätter geteilt (meistens zwei). Da die Frequenzmessung häufig falsche Werte ausgibt, müssen diese später noch einmal separat gefiltert werden. 52 53 54 55 56 57 58 59 60 61 while ( s e r i a l O b j e c t . b y t e s A v a i l a b l e ) out = f s c a n f ( s e r i a l O b j e c t , ’%c ’ ) ; end i f ( length ( out ) == 18 ) fwrite ( t h r u s t f i l e , [ toc ( t 1 ) 0 . 0 0 9 8 1 ∗ . . . ( s t r 2 d o u b l e ( out ( : , 7 : 1 2 ) ) − t h r u s t c o r r e c t i o n ) ] , ’ double ’ ) ; end fwrite ( d u t y f i l e , [ toc ( t 1 ) CtrDutyCycle ( c u r r e n t d t y ) ] , . . . ’ do uble ’ ) ; end Die RS232-Schnittstelle arbeitet auch nicht immer zuverlässig, es kann sein dass sie unvollständige Telegramme ausliest und somit manche Stellen verschoben sind. Daher wird nur bei korrekter Länge des Telegramms der Vorschub ausgelesen und in Newton umgerechnet. Nach Schließen der Schleife werden noch alle Dateien mit fclose geschlossen und alle Tasks gestoppt und gelöscht. Anschließend werden die Daten dieser einzelnen Messung geplottet. 2.3 Transistorschaltung Da die DAQCard auf den Counter-Ausgängen nur maximal ca. 60mA bei 5V ausgeben konnte, musste ein Weg gefunden werden, die Karte möglichst wenig zu belasten und den Motor gleichzeitig durch eine frei wählbare und einstellbare Quelle zu versorgen. Der beste Weg, dies zu erreichen, ist der Aufbau einer Schaltung mit einem Transistor, an dessen BE-Strecke die Messkarte anliegt, während die CE-Strecke den Motor versorgt. Für ein Schaltbild siehe Abbildung 2.1(a). 6 (a) Schaltplan (b) Foto Abbildung 2.1: Emitterschaltung zur Verstärkung des PWM-Signals Zusätzlich wurde parallel zum Motor eine Schottky-Diode geschaltet, damit die induktiven Ausschaltströme nicht den Motor selbst schädigen. Ebenso wurde parallel zur gesamten Messchaltung ein 1 µF-Kondensator geschaltet, um den Strom zu glätten. 2.4 Mechanischer Testaufbau Um die (geringen) Kräfte des Motors messen zu können, wurde ein leichter KunststoffHebel entworfen. Die Anforderungen an diesen waren: • Geringes Gewicht (bzw. geringe Trägheit) • 1:1 Kraftübertragung zwischen Hebelpunkten • Mit Laser-Cutter schneidbar • Steckbar, ohne Klebeverbindungen Nachdem eine geeignete Form gefunden war, wurden die erforderlichen Bauteilzeichnungen in CAD mit Hilfe von SolidWorks erstellt (2.4) und anschließend aus den POMPlatten ausgeschnitten. Da die Motoren die verschiedensten Formen und Durchmesser hatten, wurde ebenso eine Motorhalterung für jeden einzelnen Typ entworfen und gefertigt (2.2(c)). 2.5 Sonstiges Um das erworbene Wissen über die DAQCard auch anderen Mitarbeitern des Lehrstuhls zur Verfügung zu stellen, wurde ein Eintrag im Lehrstuhl-eigenen Wiki verfasst3 . 3 https://wiki.lsr.ei.tum.de/nst/equipmentdoc/electronictools#ni_data_acquisition_ card_ni_daqcard_6036e 7 (a) Basis+Stütze (b) Hebel Abbildung 2.2: CAD-Zeichnungen des Aufbaus 8 (c) Motorhalterung 3 Ergebnisse 3.1 Vergleich der Daten Um Vergleichbarkeit zwischen den einzelnen Messungen zu schaffen und einen schnell T ablesbaren Qualitätsfaktor zu erhalten, wurde die Größe Q = mPF+m eingeführt, wobei M FT den gemessenen Vortrieb darstellt und mP und mM die Massen des Propellers und des Motors. Folglich ist der Motor mit dem höheren Q der leistungsmäßig bessere (der Preis, die Größe und das Ansprechverhalten werden dabei nicht berücksichtigt). Um für Abbildung 3.1: Beispiel-Plot (Motor 18, Propeller 14, PWM-freq. 500kHz, Laufzeit 10 s) jede einzelne Messung einen Eindruck von dem zeitlichen Verlauf (und der Messqualität) 9 der Größen zu erhalten, wurde nach jeder Messung von MATLAB ein Plot ausgegeben, der sämtliche Messdaten veranschaulicht (3.1, ebenso Anlage). Für einen Vergleich zwischen Motor- oder Propellertypen war dieser Plot allerdings ungeeignet. Deshalb wurde ein Datenblatt entworfen, das in zwei Plots jeweils den Zusammenhang zwischen DutyCycle und Auftrieb und Stromverbraucht bzw. konsumierte el. Leistung veranschaulicht und den Qualitätsfaktor Q (jeweils bei einem Duty-Cycle von 0.6 erhoben) abbildet. Nach jeder abgeschlossenen Messung (Duty-Cycle von 0.2 bis 0.9 in 0.1-Schritten) konnte so ein Datenblatt ausgedruckt und eingeheftet werden. Um die Anzahl der zu messenden Motor-Propeller-Paare möglichst effizient zu halten, wurden Vortests mit drei Motoren und einer großen Auswahl an Propellern durchgeführt. Mit Hilfe der Annahme, dass sich Propeller an allen Motoren innerhalb eines gewissen Bereiches ähnlich zueinander verhalten, wurden anschließend wenig vielversprechende Propeller aussortiert und die Messungen mit fünf Propellern an weiteren Motoren durchgeführt. (a) Motor Nr. 28 (b) Motor Nr. 30 (c) Motor Nr. 17 Abbildung 3.2: Gegenüberstellung von Schub und Strom der Motoren 28, 30 und 17 10 3.2 Schlussfolgerung Abbildung 3.3: Vergleich von fünf Motoren und fünf Propellern Im Allgemeinen verfestigte sich die Beobachtung, dass sich Propeller nicht beliebig miniaturisieren lassen, da ab einer gewissen Kompaktheit das Verhältnis von aerodynamisch zu vernachlässigenden Bereichen (Nabe, nabennaher Teil des Propellerblattes) zu aerodynamisch gewichtigen Bereichen (Äußerste zwei Drittel des Propellerblattes) ungünstig ist. So schnitten die kleinsten Propeller durchweg schlecht ab. Besonders gute Ergebnisse brachten der Propeller Nr. 10 (grau, tschechischer Herkunft), 8 (orange/schwarz, GWS-EP2508) und 23 (gelb, unbekannter Herkunft). Die Reihenfolge der Propeller innerhalb der einzelnen Motorvergleiche ist fast immer gleich, was die in 3.1 getroffene Annahme bestätigt. Bei der Leistung der Motoren sind die Motoren Nr. 17 (Didel MK07-3.3), 28 (Didel MK07-1.7) und 30(micron rc plantraco 7mm type 3.3 ohm) hervorzuheben. Die absolute Leistung der Motoren mit Blimp-Bauart war oft akzeptabel, allerdings waren die Motoren selber zu schwer, teilweise hätten diese Kombinationen Schwierigkeiten, überhaupt abzuheben. Alle drei Motoren sind ”coreless”, d.h. sie besitzen keinen Eisenkern als Rotor und Magneten außen als Stator, sondern der äußere Magnet (meistens in Form einer Spule) ist der eigentliche Rotor. Dies macht die Gleichstrommotoren weniger träge und leichter. Allerdings kommt man auch hier schnell zu dem Schluss, dass die Motoren von Didel und micron rc diese Bauart bereits ausreizen und man dort wenig Modelle finden wird, die besser sind und gleichzeit wenig mehr kosten. Auf der Suche nach alternativen Bauformen fand man die ”brushless dc motors”, sprich Gleichstrommotoren, die keine rotierenden Kupferspulen mehr besitzen, sondern die Kommutierung/Rotation elektrisch, nicht mechanisch vornehmen. Die Vorteile dieser Variante liegen in der höheren Effizienz und höheren Lebensdauer durch Beseitigung des sogenannten Bürstenfeuers (Funken, die beim entlangstreichen der Kontakte entstehen). 11 Abbildung 3.4: Vergleich von fünf Motoren und fünf Propellern Zu einer Untersuchung dieser Bauart reichte allerdings die Zeit der Ingenieurpraxis nicht mehr, da u.a. ein Mikrocontroller zwischen PWM-Signal und Motor geschaltet werden muss. Anlage Beiliegend finden Sie eine Zip-Datei mit allen während der Ingenieurpraxis produzierten Messplots im Format MxxPyy.jpg, wobei xx für die Id des Motors steht, yy für die Id des Propellers 12