Laborversuch Gyroskop mit DS1104: Unterschied zwischen den Versionen
(60 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 4: | Zeile 4: | ||
'''Autor: Lars Engeln & Sven Brinkmann''' <br/> | '''Autor: Lars Engeln & Sven Brinkmann''' <br/> | ||
'''Betreuer: Prof. Schneider''' <br/> | '''Betreuer: Prof. Schneider''' <br/> | ||
[[Datei:Versuchsaufbau Gyroskop.jpg|thumb|800px|Aufbau des Laborversuchs]] | |||
Zeile 9: | Zeile 12: | ||
In diesen Praktikum wird ein Motor über einen Drehknopf bedient, damit die Drehgeschwindigkeit variabel eingestellt werden kann. Auf dem Motor wird ein Drehteller mit einer Gyroskop Halterung montiert,<br> | In diesen Praktikum wird ein Motor über einen Drehknopf bedient, damit die Drehgeschwindigkeit variabel eingestellt werden kann. Auf dem Motor wird ein Drehteller mit einer Gyroskop Halterung montiert,<br> | ||
sodass das Gyroskop im Stillstand (Ruheposition) kalibriert werden kann. In diesem Versuch wird das Gyroskop (GY-35-RC) verwendet. Die Vorrichtung dient zum Vergleichen der Winkelgeschwindigkeit, zwischen<br> | sodass das Gyroskop im Stillstand (Ruheposition) kalibriert werden kann. In diesem Versuch wird das Gyroskop (GY-35-RC) verwendet. Die Vorrichtung dient zum Vergleichen der Winkelgeschwindigkeit, zwischen<br> | ||
dem Gyroskop und einer Referenzmessung. Diese Referenzmessung wird | dem Gyroskop und einer Referenzmessung. Diese Referenzmessung wird durch einen Hall Sensor am Motor realisiert.<br> | ||
Die Messwerte vom Gyroskop und der Referenzmessung können dann in Matlab bzw. über die D-Space Software ControlDesk angezeigt werden. | |||
== Anforderungen == | == Anforderungen == | ||
Zeile 48: | Zeile 51: | ||
|- | |- | ||
| 4 | | 4 | ||
| Referenzgeschwindigkeit und Messwert werden auf eine Display angezeigt. | | Referenzgeschwindigkeit und Messwert werden auf eine Display angezeigt. | ||
| FR | | FR | ||
Zeile 79: | Zeile 58: | ||
| 11.10.2023 | | 11.10.2023 | ||
|- | |- | ||
| | | 5 | ||
| Der Messaufbau muss für Studentische Praktika robust und langlebig sein. | | Der Messaufbau muss für Studentische Praktika robust und langlebig sein. | ||
| FR | | FR | ||
Zeile 87: | Zeile 66: | ||
| 11.10.2023 | | 11.10.2023 | ||
|- | |- | ||
| | | 6 | ||
| Die digitale Signalverarbeitung erfolgt über MATLAB/Simulink. | | Die digitale Signalverarbeitung erfolgt über MATLAB/Simulink. | ||
| NFR | | NFR | ||
Zeile 95: | Zeile 74: | ||
| 11.10.2023 | | 11.10.2023 | ||
|- | |- | ||
| | | 7 | ||
| Im Stillstand muss der Gyrooffset kalibriert werden. | | Im Stillstand muss der Gyrooffset kalibriert werden. | ||
| FR | | FR | ||
Zeile 111: | Zeile 82: | ||
| 11.10.2023 | | 11.10.2023 | ||
|- | |- | ||
| | | 8 | ||
| Die Messwerte Gierrate und Winkel sind mitsamt Messunsicherheit anzuzeigen. | | Die Messwerte Gierrate und Winkel sind mitsamt Messunsicherheit anzuzeigen. | ||
| FR | | FR | ||
Zeile 119: | Zeile 90: | ||
| 11.10.2023 | | 11.10.2023 | ||
|- | |- | ||
| | | 9 | ||
| Die Spannungsversorgung kann über ein Labornetzteil erfolgen. | | Die Spannungsversorgung kann über ein Labornetzteil erfolgen. | ||
| FR | | FR | ||
Zeile 127: | Zeile 98: | ||
| 11.10.2023 | | 11.10.2023 | ||
|- | |- | ||
| | | 10 | ||
| Der Aufbau muss möglichst kompakt gestaltet werden, damit er platzsparend gelagert werden kann. | | Der Aufbau muss möglichst kompakt gestaltet werden, damit er platzsparend gelagert werden kann. | ||
| FR | | FR | ||
Zeile 160: | Zeile 131: | ||
| 3 | | 3 | ||
| 1 | | 1 | ||
| Motor Treiber | | Motor Treiber L298N | ||
| TBD | | TBD | ||
| https://www.roboter-bausatz.de/p/l298n-motortreiber-mit-doppelter-h-bruecke | | https://www.roboter-bausatz.de/p/l298n-motortreiber-mit-doppelter-h-bruecke | ||
Zeile 192: | Zeile 163: | ||
|- | |- | ||
| 8 | | 8 | ||
| | | 10 | ||
| Einschlagmuttern M5 | | Einschlagmuttern M5 | ||
| TBD | | TBD | ||
Zeile 207: | Zeile 178: | ||
| 10 | | 10 | ||
| 1 | | 1 | ||
| Schleifring | | 6 Kanal Schleifring | ||
| TBD | | TBD | ||
| https://www.amazon.de/dp/B07GCNK2XY?psc=1&ref=ppx_yo2ov_dt_b_product_details | | https://www.amazon.de/dp/B07GCNK2XY?psc=1&ref=ppx_yo2ov_dt_b_product_details | ||
|- | |- | ||
|- | |||
| 11 | |||
| 6 | |||
| Einschlagmuttern M4 | |||
| TBD | |||
| https://www.hornbach.de/p/stahl-einschlagmutter-mit-gewinde-m4-6-mm-200-stueck/8673667/?searchTerm=Stahl-Einschlagmutter+mit+Gewinde+M4 | |||
|- | |||
| 12 | |||
| 6 | |||
| Gewindeschrauben M4x10 | |||
| TBD | |||
| https://www.hornbach.de/p/linsenkopfschraube-4-8-m-kreuzschlitz-din-7985-m4x10-mm-galv-verzinkt-100-stueck/3831264/ | |||
|- | |||
| 13 | |||
| 12 | |||
| Gewindeschrauben M5x50 | |||
| TBD | |||
| https://www.hornbach.de/p/linsenkopfschraube-4-8-m-kreuzschlitz-din-7985-m5x50-mm-galv-verzinkt-100-stueck/3831282/ | |||
|- | |||
|- | |||
| 14 | |||
| 12 | |||
| Bananensteckerbuchsen 4mm | |||
| TBD | |||
| https://www.amazon.de/GTIWUNG-Bananenbuchse-Bananensteckdose-Verst%C3%A4rkeranschluss-Bananenstecker/dp/B07VJXJHHS/ref=pd_ci_mcx_mh_mcx_views_0?pd_rd_w=5HULs&content-id=amzn1.sym.f81e69b0-8d25-4d0a-a0ba-d47e95a31f14%3Aamzn1.symc.ca948091-a64d-450e-86d7-c161ca33337b&pf_rd_p=f81e69b0-8d25-4d0a-a0ba-d47e95a31f14&pf_rd_r=22W75QPDPZWHY44FFKK1&pd_rd_wg=ANzzr&pd_rd_r=f792fbac-6738-4305-853c-1268ab945d0b&pd_rd_i=B07VJXJHHS | |||
|- | |||
|- | |||
| 15 | |||
| 8 | |||
| Kotflügelscheiben 5.3 mm 20 mm | |||
| TBD | |||
| https://www.conrad.de/de/p/kotfluegelscheiben-5-3-mm-20-mm-stahl-verzinkt-100-st-toolcraft-888072-888072.html?hk=SEM&WT.mc_id=google_pla&gad_source=1&gclid=CjwKCAiA-vOsBhAAEiwAIWR0TVnhY3K9TNnC-Hl_bIjtLbcMRmTiCywmWpRyzyCP4Fps43fOWiS-ZRoCu2wQAvD_BwE&refresh=true | |||
|- | |||
|- | |||
| 16 | |||
| div. | |||
| Ringkabelschuh isoliert M4 0,25-1,5 mm² rot | |||
| TBD | |||
| https://www.hornbach.de/p/haupa-blv260256-ringkabelschuh-isoliert-m4-0-25-1-5-mm-rot-25-stueck/6093960/ | |||
|- | |||
|- | |||
| 17 | |||
| 2 | |||
| Stuhlwinkel verzinkt 20x20x15 mm, | |||
| TBD | |||
| https://www.hornbach.de/p/stuhlwinkel-verzinkt-20x20x15-mm-50-st/6827579/ | |||
|- | |||
|- | |||
| 18 | |||
| div. | |||
| Aderendhülsen Isoliert 0,75 mm² | |||
| TBD | |||
| https://www.hornbach.de/p/haupa-270803-aderendhuelsen-isoliert-0-75-mm-grau-100-stueck/6094003/ | |||
|- | |||
|- | |||
| 19 | |||
| 1 | |||
| Ersatz Gyroskop GY-521 MPU-6050 | |||
| TBD | |||
| https://www.christians-shop.de/GY-521-MPU-6050-3-Achsen-Gyroskop-3-Achsen-Beschleunigungssensor-Modul | |||
|- | |||
|} | |} | ||
Zeile 243: | Zeile 274: | ||
Für den technischen Systementwurf ist nun Abb. 3 beschreibend. | Für den technischen Systementwurf ist nun Abb. 3 beschreibend. | ||
Die Regelung wird hier in den Skizzen auf 2-Arduinos und 2-Programme aufgeteilt, da ansonsten das Programm nicht über einen Controller nicht funktioniert. | |||
Auf dem ersten Arduino, wird der Sollgeschwindigkeit für den Motor eingestellt und ausgelesen, als auch die Drehrichtung eingestellt. | |||
Auf dem zweiten Arduino, wird das Gyroskop ausgelesen. | |||
Von dem Nutzer wird über einen Drehknopf die Sollgeschwindigkeit des Motors eingestellt. In Simulink kann die Drehrichtung eingestellt werden. Wenn eine Sollgeschwindigkeit und die Richtung eingestellt wurde, fängt der Motor sich an zu drehen. Es wird eine Geschwindigkeitsmessung von dem Motor entnommen, welche in dem Programm Umgerechnet wird und in die vorherige Schaltung zurück gekoppelt wird. | |||
In dem anderen Programm, lässt sich dann der ausgegebene Wert von dem Gyroskop in Simulink betrachten. | |||
<gallery | <gallery mode=packed> | ||
Datei:Technischer Systementwurf Laborversuch Gyroskop.jpg|Abb. 3 Technischer Systementwurf Regelkreis | Datei:Technischer Systementwurf Laborversuch Gyroskop.jpg|Abb. 3 Technischer Systementwurf Regelkreis | ||
Datei:Systementwurf | Datei:Technischer Systementwurf-1.png| Abb. 4 Technischer Systementwurf 1 Verkablung | ||
Datei:Technischer Systementwurf-2.png| Abb. 5 Technischer Systementwurf 2 Verkablung | |||
</gallery> | </gallery> | ||
Zeile 254: | Zeile 289: | ||
Nachfolgend wird der erstellte Projektplan anhand eines Gantt-Charts dargestellt. | Nachfolgend wird der erstellte Projektplan anhand eines Gantt-Charts dargestellt. | ||
<gallery widths="900" heights="450"> | <gallery widths="900" heights="450"> | ||
Datei:Projektplan zum Gyroskop-Projekt WS23-24.jpg| Abb. | Datei:Projektplan zum Gyroskop-Projekt WS23-24.jpg| Abb. 6 Projektplan | ||
</gallery> | </gallery> | ||
Zeile 281: | Zeile 316: | ||
=== Gyroskop === | === Gyroskop === | ||
Ein Gyroskop ist ein Instrument oder Sensor, das dazu dient, die Orientierung oder Rotationsrate eines Objekts im Raum zu messen. Es basiert auf den Prinzipien der Kreiselstabilität und kann in verschiedenen Formen vorkommen, darunter mechanische Gyroskope, elektronische Gyroskope und optische Gyroskope. Gyroskope werden häufig in Flugzeugen oder Schiffen genutzt. | Ein Gyroskop ist ein Instrument oder Sensor, das dazu dient, die Orientierung oder Rotationsrate eines Objekts im Raum zu messen. Es basiert auf den Prinzipien der Kreiselstabilität und kann in verschiedenen Formen vorkommen, darunter mechanische Gyroskope, elektronische Gyroskope und optische Gyroskope. Gyroskope werden häufig in Flugzeugen oder Schiffen zur Lagebestimmung genutzt. | ||
'''GY-35-RC''' | '''GY-35-RC''' | ||
Zeile 291: | Zeile 326: | ||
'''MPU-6050''' | '''MPU-6050''' | ||
Dieses Gyroskop ist ein digitales Gyroskop. Es kann sowohl die Beschleunigung ausgeben, als auch die Rotationsrate & Temperatur. | Dieses Gyroskop ist ein digitales Gyroskop. Es kann sowohl die Beschleunigung ausgeben, als auch die Rotationsrate & Temperatur. | ||
Die Spannungsversorgung muss zwischen 3,3V und 5V sein und das Gyroskop | Die Spannungsversorgung muss zwischen 3,3V und 5V sein und das Gyroskop hat einen Messbereich, der vom Anwender eingestellt werden kann. Das heißt, dass es möglich ist den Messbereich festzulegen, dabei sind die Messbereiche: ±250°/s, ±500°/s, ±1000°/s, ±2000°/s möglich. | ||
=== Potentiometer === | === Potentiometer === | ||
Zeile 309: | Zeile 344: | ||
== Umsetzung (HW/SW) == | == Umsetzung (HW/SW) == | ||
In der Umsetzung des Projektes wurde zunächst jede einzelne Komponente in Betrieb genommen um zu testen, wie diese tatsächlich funktionieren. Mit dem analogen Gyroskop wurde nicht weitergearbeitet, da dieses bei der Inbetriebnahme keine vernünftigen Werte ausgegeben hat. Somit wurde ein digitales Gyroskop gewählt und getestet. Anschließend wurden die einzelnen Komponenten zusammen in einem Programm getestet, was zu weiteren Problemen geführt hat. Das Gyroskop lässt sich nicht zusammen mit der Motorsteuerung in einem Programm ausführen bzw. es gibt falsche Werte aus und sorgt dafür, dass das Programm nach kurzer Laufzeit abstürzt. Nach dem trennen der Programmen und der Controller wurde das Gyroskop auf einem anderen Laptop in Betrieb genommen und die Ansteuerung des Motors auf dem ursprünglichen. Dort ist aufgefallen, dass das Messen der Motorgeschwindigkeit nicht akkurat war und somit kein Regler anhand das Messsystems ausgelegt werden kann. Das bedeutete auch, dass mit den Messungen keine Rückführung stattfinden konnte, was bedeutet, dass kein Regelkreis zustande gekommen ist. | |||
=== Programm-Ablauf-Plan === | === Programm-Ablauf-Plan === | ||
[[Datei:Gyroskop mit DS1104.png|200px|thumb|right|Absatz|Abbildung | [[Datei:Gyroskop mit DS1104.png|200px|thumb|right|Absatz|Abbildung 7: Programm-Ablauf-Plan]] | ||
In Abbildung 5 ist der Programm-Ablauf-Plan dargestellt. Dieser gibt wieder wie das Programm und damit die Regelung mit unserer Hardware funktionieren soll. | In Abbildung 5 ist der Programm-Ablauf-Plan dargestellt. Dieser gibt wieder wie das Programm und damit die Regelung mit unserer Hardware funktionieren soll. | ||
Zeile 330: | Zeile 364: | ||
=== Software === | === Software === | ||
[[Datei:Software Abbildung Ohne Kalibrierung.pdf|center|thumb| 1200px|Abbildung | [[Datei:Software Abbildung Ohne Kalibrierung.pdf|center|thumb| 1200px|Abbildung 8: Software-Umsetzung-Motor]] | ||
[[Datei:Software Gesamtprogramm2.png|center|thumb| 1200px|Abbildung 9: Software-Umsetzung-Gyroskop]] | |||
<br clear = all> | <br clear = all> | ||
==== Sollwert einstellen ==== | ==== Sollwert einstellen ==== | ||
[[Datei:Sollwertbestimmung.png|500px|thumb|right|Absatz|Abbildung | [[Datei:Sollwertbestimmung.png|500px|thumb|right|Absatz|Abbildung 10: Sollwertbestimmung]] | ||
Der Sollwert wird mittels eines Drehknopf(Potentiometer) eingestellt. Es ist eine Anforderung an das Projekt, dass der Sollwert über einen Drehknopf eingestellt werden muss. Die maximale Umdrehung die der angeschlossene Motor ausgeben kann ist 60 Umdrehungen/min. | Der Sollwert wird mittels eines Drehknopf(Potentiometer) eingestellt. Es ist eine Anforderung an das Projekt, dass der Sollwert über einen Drehknopf eingestellt werden muss. Die maximale Umdrehung die der angeschlossene Motor ausgeben kann ist 60 Umdrehungen/min. | ||
Zeile 343: | Zeile 378: | ||
==== Messung der Drehgeschwindigkeit an dem Motor==== | ==== Messung der Drehgeschwindigkeit an dem Motor==== | ||
[[Datei:Rückkopplung.png|400px|thumb|right|Absatz|Abbildung | [[Datei:Rückkopplung.png|400px|thumb|right|Absatz|Abbildung 11: Messen der Drehgeschwindigkeit an dem Motor]] | ||
Mit dem Programmteil in der Abbildung 8, wird die eingestellte Geschwindigkeit von dem Motor berechnet. | Mit dem Programmteil in der Abbildung 8, wird die eingestellte Geschwindigkeit von dem Motor berechnet. In dieser Berechnung befindet sich ein "Slider Gain". Dieses Slider Gain, muss bei jedem erneuten einstellen der Drehrichtung eingestellt werden. Je nach Drehrichtung bekommt das Programm verschiedene Messwerte übergeben. Dazu kommt, dass nach längerer Laufzeit sich ein Fehler bei den Messwerten einschleicht, was dafür sorgt, dass die Messwerte verfälscht sind. Mit dieser Umrechnung sollte zudem nur eine Sollgeschwindigkeit von 200-360°/s eingestellt werden. Wenn die Drehgeschwindigkeit zu klein wird, zeigt das Messsystem an, dass der Motor sich schneller dreht als er es eigentlich tut. Mit dem verwendeten Motor und Encoder hat die Referenzmessung eine Toleranz von ±5°/s. Tatsächlich ist die Messung über das Gyroskop genauer als mit dieser Messeinrichtung. | ||
Anschließend wird die Geschwindigkeit angezeigt als auch Integriert um den derzeitigen Winkel des Motors zu bestimmen. | Anschließend wird die Geschwindigkeit angezeigt als auch Integriert um den derzeitigen Winkel des Motors zu bestimmen. | ||
Damit kein Winkel über 360° oder unter -360°, wird der "mod"-Block verwendet. | Damit kein Winkel über 360° oder unter -360°, wird der "mod"-Block verwendet. | ||
Quelle für das Messsystem [[https://www.youtube.com/watch?v=M_LM1jdlPMQ&t=75s]] | |||
<br clear = all> | |||
==== Regler Auslegung ==== | |||
Aufgrund der der unsicheren Messergebnisse lässt sich kein vernünftiger Regler auslegen. Die Messergebnisse sind größtenteils Falsch, was dazu führt, dass das Verhalten des Gesamtsystems so nicht akkurat zu Betrachten ist. | |||
Wenn man jedoch, das Verhalten der Strecke anhand des Messsystems anschaut, ist zu erkennen, dass das Messsystem ein PT1-Verhalten vorweist. | |||
[[Datei:PT1-Verhalten.png|right|thumb|400px|Abbildung 12: Messeinrichtung-Verhalten]] | |||
[[Datei:Regelung_des_Gesamtsystems.png|right|thumb|400px|Abbildung 13: Messeinrichtung-Verhalten]] | |||
Wenn man nun einen Regler auslegen würde, ist folgende Rechnung anzuwenden und davon auszugehen, dass die Regelstrecke ein P-Verhalten vorweist. <br> | |||
<math>Gw = \frac{Gs \cdot Gr \cdot Gm}{1+Gs\cdot Gr \cdot Gm}</math><br><br> | |||
Mit <br> <math>Gm = \frac{KS}{Ts+1}</math><br><br> | |||
& <br> <math> Gs = KP </math> <br><br> | |||
=> <math> Gw = \frac{ \frac{KS}{Ts+1}\cdot Gr \cdot KP}{1+\frac{KS}{Ts+1}\cdot Gr \cdot KP}</math> |<math>\cdot \frac{Ts+1}{Ts+1} </math><br><br> | |||
=> <math> Gw = \frac{KS\cdot Gr \cdot KP}{Ts+1+KS\cdot Gr \cdot KP} </math> <br><br> | |||
'''''PI-Regler''''' <br> | |||
<math> Gr = Kp+\frac{Ki}{s} </math> <br> <br> | |||
=> <math> Gw = \frac{KS\cdot (Kp+\frac{Ki}{s}) \cdot KP}{Ts+1+KS\cdot (Kp+\frac{Ki}{s})\cdot KP} </math> |<math>\cdot \frac{s}{s} </math><br><br> | |||
=> <math> Gw = \frac{KS\cdot (Kp\cdot s+Ki)\cdot KP}{T\cdot s^2+s+KS\cdot (Kp\cdot s+Ki)\cdot KP} </math> <br><br> | |||
<math>x_{stat}=\lim_{{s \to 0}} Gw=\frac{KS\cdot (Kp\cdot 0+Ki)\cdot KP}{T\cdot 0^2+0+KS\cdot (Kp\cdot 0+Ki)\cdot KP}=\frac{KS \cdot Ki\cdot KP}{KS \cdot Ki\cdot KP} = 1 </math><br><br> | |||
Trotz der Berechnung des Gesamtsystemverhaltens, kann in dem endgültigen Programm keine Reglung und Rückführung stattfinden, da das Messsystem zu träge und zu ungenau ist. | |||
<br clear = all> | <br clear = all> | ||
==== Ansteuerung des Motors==== | ==== Ansteuerung des Motors==== | ||
[[Datei:Regelung.png|400px|thumb|right|Absatz|Abbildung | [[Datei:Regelung.png|400px|thumb|right|Absatz|Abbildung 14: Ansteuerung des Motors]] | ||
In der Regelung (Abbildung 9) wird die vorher berechnete Drehgeschwindigkeit in eine Pulsweite umgewandelt. Dafür wird zunächst die angegebene Drehgeschwindigkeit in °/min durch 360° geteilt und mit 255 multipliziert. Der Wert muss 255 sein, da die Pulsweite eine Spanne von 0-255 hat, mit der dann das Signal an die Motorsteuerung gegeben wird. | In der Regelung (Abbildung 9) wird die vorher berechnete Drehgeschwindigkeit in eine Pulsweite umgewandelt. Dafür wird zunächst die angegebene Drehgeschwindigkeit in °/min durch 360° geteilt und mit 255 multipliziert. Der Wert muss 255 sein, da die Pulsweite eine Spanne von 0-255 hat, mit der dann das Signal an die Motorsteuerung gegeben wird. | ||
Dazu wird erst ein Signal an die Motorsteuerung gegeben, wenn die Pulsweite größer als 50 ist. Die Spannung die benötigt wird um den Motor zu bewegen ist unter 50 zu niedrig, was von dem Motorsteuergerät abhängig ist. | Dazu wird erst ein Signal an die Motorsteuerung gegeben, wenn die Pulsweite größer als 50 ist. Die Spannung die benötigt wird um den Motor zu bewegen ist unter 50 zu niedrig, was von dem Motorsteuergerät abhängig ist. | ||
Zeile 357: | Zeile 418: | ||
==== Bestimmen der Drehrichtung ==== | ==== Bestimmen der Drehrichtung ==== | ||
[[Datei:Richtungsvorgabe.png|400px|thumb|right|Absatz|Abbildung | [[Datei:Richtungsvorgabe.png|400px|thumb|right|Absatz|Abbildung 15: Richtungsvorgabe]] | ||
Der Motor soll laut den Anforderungen in beide Richtungen drehbar sein. Damit dies realisiert werden kann, muss an die Pins 9 oder 10 ein Signal eingehen. | Der Motor soll laut den Anforderungen in beide Richtungen drehbar sein. Damit dies realisiert werden kann, muss an die Pins 9 oder 10 ein Signal eingehen. | ||
Damit der Motor sich in eine Richtung dreht, muss einer der Pins eine 1 übergeben bekommen und der andere eine 0. Der Motor dreht sich nicht, wenn beide Pins eine 0 oder eine 1 übertragen bekommen. | Damit der Motor sich in eine Richtung dreht, muss einer der Pins eine 1 übergeben bekommen und der andere eine 0. Der Motor dreht sich nicht, wenn beide Pins eine 0 oder eine 1 übertragen bekommen. | ||
Zeile 363: | Zeile 424: | ||
==== Eliminierung des Offsets beim Gyroskops und messen der Rotationsgeschwindigkeit ==== | ==== Eliminierung des Offsets beim Gyroskops und messen der Rotationsgeschwindigkeit ==== | ||
[[Datei:Gyroskop Offset Geschwindigkeit Winkel.png|400px|thumb|right|Absatz|Abbildung | [[Datei:Gyroskop Offset Geschwindigkeit Winkel.png|400px|thumb|right|Absatz|Abbildung 16: Gyroskop-Offset-Drehgeschwindigkeit-Winkel]] | ||
[[Datei:Matlab-Code.png|400px|thumb|right|Absatz|Abbildung 17: Matlab-Code zur Offset-Eliminierung]] | |||
Zuerst muss die richtige Achse des digitalen Gyroskops ausgewählt werden, die davon abhängt, wie das Gyroskop in der Halterung befestigt wurde. Danach darf das Gyroskop nicht bewegt werden und das Simulationsprogramm muss gestartet werden. Dort können ca. 10s lang Messwerte aufgenommen und an den aktuellen Arbeitsbereich gesendet werden. In der Variablen "T" ist dann der Mittelwert der aufgenommenen Messwerte festzuhalten. Bei der nächsten Inbetriebnahme wird dieser Mittelwert von den eingehenden Messwerten subtrahiert. Damit ist der Offset des Gyroskops weitgehend korrigiert. Die Toleranz des Rohmesssignals beträgt nun ±0,05°. Damit nicht nur die Drehzahl ausgegeben wird, werden die Messsignale noch integriert, was dazu führt, dass nun der Drehwinkel berechnet wird. Hierbei ist zu beachten, dass sich ab einer Messdauer von 60s ein Fehler einschleicht. Je länger die Messzeit ist, desto größer wird die Messunsicherheit des angezeigten Winkels. | Zuerst muss die richtige Achse des digitalen Gyroskops ausgewählt werden, die davon abhängt, wie das Gyroskop in der Halterung befestigt wurde. Danach darf das Gyroskop nicht bewegt werden und das Simulationsprogramm muss gestartet werden. Dort können ca. 10s lang Messwerte aufgenommen und an den aktuellen Arbeitsbereich gesendet werden. In der Variablen "T" ist dann der Mittelwert der aufgenommenen Messwerte festzuhalten. Bei der nächsten Inbetriebnahme wird dieser Mittelwert von den eingehenden Messwerten subtrahiert. Damit ist der Offset des Gyroskops weitgehend korrigiert. Die Toleranz des Rohmesssignals beträgt nun ±0,05°. Damit nicht nur die Drehzahl ausgegeben wird, werden die Messsignale noch integriert, was dazu führt, dass nun der Drehwinkel berechnet wird. Hierbei ist zu beachten, dass sich ab einer Messdauer von 60s ein Fehler einschleicht. Je länger die Messzeit ist, desto größer wird die Messunsicherheit des angezeigten Winkels. | ||
Zeile 375: | Zeile 437: | ||
=== Hardware === | === Hardware === | ||
In diesem Abschnitt | In diesem Abschnitt wird die erstellte Hardware Komponente vorgestellt. | ||
<gallery> | |||
Vorderansicht der Messeinrichtung.jpg|Abbildung 18: Vorderansicht der Messeinrichtung | |||
Seitenansicht von links der Messeinrichtung.jpg|Abbildung 19: Seitenansicht von links der Messeinrichtung | |||
Draufsicht der Messeinrichtung.jpg|Abbildung 20: Draufsicht der Messeinrichtung | |||
Ansicht von hinten der Messeinrichtung.jpg|Abbildung 21: Hintere Ansicht der Messeinrichtung | |||
</gallery> | |||
== Komponententest == | == Komponententest == | ||
Die zu testenden Komponenten sind | Die zu testenden Komponenten sind | ||
* | * das Potentiometer | ||
* der Motor | * der Motor | ||
* das Motor Messsystem | |||
* das Gyroskop | * das Gyroskop | ||
===Potentiometer=== | ===Potentiometer=== | ||
[[Datei:Komponententest Potentiometer.png|thumb|left|1100px| Abbildung | [[Datei:Komponententest Potentiometer.png|thumb|left|1100px| Abbildung 22: Komponententest Potentiometer]] | ||
<gallery widths=200 > | <gallery widths=200 > | ||
Datei:Potentiometer Funktionalität.png| Abbildung | Datei:Potentiometer Funktionalität.png| Abbildung 23: Potentiometer Funktionalität | ||
Datei:Potentiometer Angeschlossen.jpg|Abbildung | Datei:Potentiometer Angeschlossen.jpg|Abbildung 24: Angeschlossenes Potentiometer | ||
</gallery> | </gallery> | ||
Zeile 395: | Zeile 464: | ||
===Motor=== | ===Motor=== | ||
[[Datei:Testbericht Motor Motorsteuerung.png|thumb|left|1100px|Testbericht_Motor_Motorsteuerung]] | [[Datei:Testbericht Motor Motorsteuerung.png|thumb|left|1100px|Abbildung 25: Testbericht_Motor_Motorsteuerung]] | ||
<gallery widths=200> | <gallery widths=200> | ||
Datei:Verkablung Motorsteuerung.png| Abbildung | Datei:Verkablung Motorsteuerung.png| Abbildung 26: Pinbelegung Motorsteuerung | ||
Datei:Verkablung Arduino Motorsteuerung.png| Abbildung | Datei:Verkablung Arduino Motorsteuerung.png| Abbildung 27: Verkablung Test:Arduino-Motorsteuerung | ||
</gallery> | </gallery> | ||
<br clear = all> | <br clear = all> | ||
=== Motor-Messsystem === | |||
[[Datei:Testbericht_Motor-Messsystem.png|thumb|left|1100px|Abbildung 28: Testbericht_Motor-Messsystem]] | |||
[[Datei:Testbericht Motor-Messsystem Blöcke.png|thumb|center|600px|Abbildung 29: Soll-Istgeschwindigkeitsvergleich]] | |||
=== Gyroskop GY-35-RC === | === Gyroskop GY-35-RC === | ||
Der Test des analogen Gyroskops (GY-35-RC) hat beim Testen keine brauchbaren Messwerte ausgegeben. Trotz richtigen Anschließens des Gyroskops, wurden keine Werte angezeigt, sobald das Gyroskop gedreht wurde. | Der Test des analogen Gyroskops (GY-35-RC) hat beim Testen keine brauchbaren Messwerte ausgegeben. Trotz richtigen Anschließens des Gyroskops, wurden keine Werte angezeigt, sobald das Gyroskop gedreht wurde. | ||
[[Datei:Testbericht GY-35-RC.png|thumb|left|1100px|Abbildung | |||
[[Datei:Testbericht GY-35-RC.png|thumb|left|1100px|Abbildung 30: Testbericht Gyroskop-GY-25-RC]] | |||
[[Datei:Messung Gyroskop GY-35-RC.jpg|thumb|center|400px|Abbildung 31: Messung Gyroskop-GY-25-RC]] | |||
<gallery widths=200> | <gallery widths=200> | ||
</gallery> | </gallery> | ||
<br clear = all> | <br clear = all> | ||
Die Abbildung 31 zeigt im vorderen Teil die Messung des Gyroskops mit angeschlossener Ref. Spannung hier wird der Drift des Gyroskops eliminiert, jedoch wird bei einer Drehung um die Achse kein Ausschlag angezeigt. Wird der Anschluss, der Ref. Spannung, entfernt schlägt das Signal aus und das Gyroskop zeigt minimale Ausschläge bei einer Drehung um die Achse, jedoch nicht im erwarteten Bereich. Das Signal ohne Ref. Spannung schwingt sich auf (Gyro-Drift) siehe rechter Teil im Bild. | |||
===Gyroskop MPU-6050=== | ===Gyroskop MPU-6050=== | ||
Nach mehrmaligen Versuch mit dem Gyroskop GY-35-RC, sind keine vernünftigen Messwerte erfasst worden. So wurde die Entscheidung getroffen, dass nun ein digitales Gyroskop verwendet wird. Das ausgewählte Gyroskop hat die Modellnummer MPU-6050. | Nach mehrmaligen Versuch mit dem Gyroskop GY-35-RC, sind keine vernünftigen Messwerte erfasst worden. So wurde die Entscheidung getroffen, dass nun ein digitales Gyroskop verwendet wird. Das ausgewählte Gyroskop hat die Modellnummer MPU-6050. | ||
[[Datei:Testbericht MPU-6050.png|thumb|left|1100px|Abbildung | [[Datei:Testbericht MPU-6050.png|thumb|left|1100px|Abbildung 32: Testbericht Gyroskop-MPU-6050]] | ||
[[Datei:Messung MPU6050.jpg|thumb|center|400px|Abbildung 33: Messung Gyroskop-MPU-6050]] | |||
<br clear = all> | <br clear = all> | ||
== Ergebnis == | == Ergebnis == | ||
[[Datei:Anforderungsüberprüfung Gesamtprojekt.png|center|thumb|1100px|Abbildung | [[Datei:Anforderungsüberprüfung Gesamtprojekt.png|center|thumb|1100px|Abbildung 34: Anforderungsüberprüfung]] | ||
== Zusammenfassung == | == Zusammenfassung == | ||
Das bearbeitete Projekt wurde uns auf Anfrage von Prof. Ulrich Schneider zugewiesen. Die Aufgabe in diesem Projekt bestand darin, ein Gestell zu entwerfen, in das ein Gyroskop eingespannt und durch einen Motor gedreht werden kann. Dieser Aufbau sollte so in einem Labor in Betrieb genommen werden können. | |||
Es sollte möglich sein, die Drehgeschwindigkeit des Motors mit einem Drehknopf zu bestimmen. Dies wurde mit Hilfe eines Potentiometers realisiert. | |||
Der Motor erhält dann von der angeschlossenen Motorsteuerung (L298N) einen Impuls und dreht sich. Aus dem Motor kann ein Signal ausgelesen werden, mit dem eine Referenzmessung der Drehzahl durchgeführt werden kann. Diese Referenzmessung dient als Rückkopplung für die Regelung und passt die Drehzahl des Motors an. Diese Referenzmessung ist äußerst ungenau mit einer Toleranz von ±5°/s und funktioniert auch nur in einem Bereich von 200-360°/s. Es muss dazu noch je nach Drehrichtung über ein "Slider Gain"-Block die erfassten Messwerte neu Multipliziert werden. | |||
Bevor der Motor in Betrieb genommen wird, muss das Gyroskop einmal so gemessen werden, dass sich der Offset bei der nächsten Inbetriebnahme beseitigen lässt. Mit den folgenden Messwerten ist es dann möglich, die Drehzahl und den Gierwinkel auszugeben. | |||
Insgesamt konnte der Projektplan für dieses Projekt nicht eingehalten werden, da durch andere Verpflichtungen innerhalb und außerhalb des Studiums zu wenig Zeit zur Verfügung stand. | |||
Für dieses Projekt war die Verwendung eines analogen Gyroskops (GY-35-RC) vorgesehen, jedoch war es im Rahmen dieses Projektes nicht möglich, mit diesem Gyroskop vernünftige Ergebnisse zu erzielen. Aus diesem Grund wurde ein digitales Gyroskop (MPU-6050) verwendet. | |||
Es wurde jedoch ein Rahmen aus Holz gebaut, der auf diese Weise verwendet werden kann, und es wurde ein Programm erstellt, das einen großen Teil der gestellten Anforderungen erfüllt. | |||
Die einzelnen Schritte des Projekts sind sowohl in diesem Artikel als auch im SVN dokumentiert. Zu diesem Zweck befinden sich alle Quelldateien in einer Ordnerstruktur im SVN. <br> | |||
Das Fazit zu diesem Projekt ist, dass es gescheitert ist, da die Aufgabe nicht erfüllt wurde. | |||
=== Lessons Learned === | === Lessons Learned === | ||
Für ein Projekt mit diesem Umfang, ist es notwendig sich dafür mehr Zeit zu nehmen und andere Module auszulassen oder sich so einem Projekt erst widmen, wenn man ein besseres Verständnis von Simulink, Arduino und Regelungstechnik hat. | Für ein Projekt mit diesem Umfang, ist es notwendig sich dafür mehr Zeit zu nehmen und andere Module auszulassen oder sich so einem Projekt erst widmen, wenn man ein besseres Verständnis von Simulink, Arduino und Regelungstechnik hat. | ||
Es wurde nach kürzerer Zeit bereits offensichtlich für uns, dass wir für das Projekt nicht alle Anforderungen erfüllen können, da es uns an Fachwissen fehlt und die Umsetzung zu viel Zeit beanspruchen würde. | Es wurde nach kürzerer Zeit bereits offensichtlich für uns, dass wir für das Projekt nicht alle Anforderungen erfüllen können, da es uns an Fachwissen fehlt und die Umsetzung zu viel Zeit beanspruchen würde. | ||
Dazu kommt, dass ein besseres Verständnis für die Komponentenwahl notwendig ist. | |||
"Mal eben an das Projekt setzen" stellte sich als schwieriger heraus als ursprünglich erwartet, da wir nicht einfach so von dem letzten Punkt weiterarbeiten konnten ohne dass es notwendig war, sich wieder richtig reinzuarbeiten. | "Mal eben an das Projekt setzen" stellte sich als schwieriger heraus als ursprünglich erwartet, da wir nicht einfach so von dem letzten Punkt weiterarbeiten konnten ohne dass es notwendig war, sich wieder richtig reinzuarbeiten. | ||
== Projektunterlagen == | == Projektunterlagen == | ||
=== Projektdurchführung === | === Projektdurchführung === | ||
Aufgrund von Verzögerungen konnte der erstellte Terminplan nicht eingehalten werden, die verzögerungen werden in der nachfolgenden Abbildung dargestellt. | |||
[[Datei:Gantt zur Projektdurchführung.jpg|1000px|thumb|left| Abb. 35: Zeitplan zur Projektdurchführung]] | |||
<br clear = all> | |||
= | Nachfolgend wird der erstellte Ressourcenplan dargestellt: | ||
[[Datei:Ressourcenplanung.jpg|1000px|thumb|left| Abb. 36: Ressourcenplanung]] | |||
<br clear = all> | |||
== | === ZIP-Archiv=== | ||
Hier finden sie alle Projektdaten hinterlegt in einem ZIP-Archiv: [[Datei:Laborversuch Gyroskop mit DS1104.zip|mini]] | |||
== | == YouTube Video == | ||
{{#ev:youtube|https://www.youtube.com/watch?v=dx8qRoDr3nk&ab_channel=Test| 650 |left|'''Video vom Projekt: Laborversuch Gyroskop mit DS1104'''}} | |||
<br clear=all> | |||
Aktuelle Version vom 17. Januar 2024, 16:03 Uhr
Autor: Lars Engeln & Sven Brinkmann
Betreuer: Prof. Schneider
Einleitung
In diesen Praktikum wird ein Motor über einen Drehknopf bedient, damit die Drehgeschwindigkeit variabel eingestellt werden kann. Auf dem Motor wird ein Drehteller mit einer Gyroskop Halterung montiert,
sodass das Gyroskop im Stillstand (Ruheposition) kalibriert werden kann. In diesem Versuch wird das Gyroskop (GY-35-RC) verwendet. Die Vorrichtung dient zum Vergleichen der Winkelgeschwindigkeit, zwischen
dem Gyroskop und einer Referenzmessung. Diese Referenzmessung wird durch einen Hall Sensor am Motor realisiert.
Die Messwerte vom Gyroskop und der Referenzmessung können dann in Matlab bzw. über die D-Space Software ControlDesk angezeigt werden.
Anforderungen
ID | Inhalt | Klasse | Ersteller | Datum | Geprüft von | Datum |
---|---|---|---|---|---|---|
1 | Als Hauptsensor kommt ein analoges Gyroskop (GY-35-RC) zum Einsatz. Darauf verbaut ist ein muRata ENC-03RC Einachsgyro. Dies ist bereits vorhanden. | FR | Prof. Schneider | 10.10.2023 | Lars Engeln | 11.10.2023 |
2 | Ein Motor dreht das Gyroskop mit konstanter Geschwindigkeit im Bereich von ±300 °/s. | FR | Prof. Schneider | 10.10.2023 | Lars Engeln | 11.10.2023 |
3 | Die Drehgeschwindigkeit soll über einen Drehknopf eingestellt werden. | FR | Prof. Schneider | 10.10.2023 | Lars Engeln | 11.10.2023 |
4 | Referenzgeschwindigkeit und Messwert werden auf eine Display angezeigt. | FR | Prof. Schneider | 10.10.2023 | Lars Engeln | 11.10.2023 |
5 | Der Messaufbau muss für Studentische Praktika robust und langlebig sein. | FR | Prof. Schneider | 10.10.2023 | Lars Engeln | 11.10.2023 |
6 | Die digitale Signalverarbeitung erfolgt über MATLAB/Simulink. | NFR | Prof. Schneider | 10.10.2023 | Lars Engeln | 11.10.2023 |
7 | Im Stillstand muss der Gyrooffset kalibriert werden. | FR | Prof. Schneider | 10.10.2023 | Lars Engeln | 11.10.2023 |
8 | Die Messwerte Gierrate und Winkel sind mitsamt Messunsicherheit anzuzeigen. | FR | Prof. Schneider | 10.10.2023 | Lars Engeln | 11.10.2023 |
9 | Die Spannungsversorgung kann über ein Labornetzteil erfolgen. | FR | Prof. Schneider | 10.10.2023 | Lars Engeln | 11.10.2023 |
10 | Der Aufbau muss möglichst kompakt gestaltet werden, damit er platzsparend gelagert werden kann. | FR | Prof. Schneider | 10.10.2023 | Lars Engeln | 11.10.2023 |
Funktionaler Systementwurf/Technischer Systementwurf
Funktionaler Systementwurf
Im funktionalen Systementwurf wurde das System in mehrere Subkomponenten unterteilt, die jeweils für eine spezifische Teilaufgabe zuständig sind. Durch die Zusammensetzung dieser Komponenten wird die Gesamtaufgabe des Laborversuchs erfüllt. Die Unterteilung in spezifische Subkomponenten ermöglicht es, das Gesamtsystem übersichtlich und verständlich zu gestalten und die Entwicklung des Projekts zu strukturieren.
- Arduino: Der Mikrocontroller wertet die Sensordaten aus und stellt Sie dem Anwender zur Verfügung. Mit dem Ergebnis wird das Display angesteuert.
- Display: Das Display visualisiert dem Anwender die Messergebnisse.
- Referenzmessung: Diese Komponente misst die Winkelgeschwindigkeit des Motors.
- Motortreiber & Drehknopf: Der Motortreiber & Drehknopf steuert die Energiezufuhr des Motors und begrenzt somit dessen Leistung.
- Schleifring: Der Schleifring dient zu Energieversorgung und Übertragung der Sensordaten des Gyroskop.
- Mechanik-Baugruppen: Mit den Mechanik Baugruppen wird das gesamte Laborgestell beschrieben, es dient zum fixieren des Gyroskop sowie zum abdämpfen von Schwingungen.
In Abb.1 wird zunächst der funktionale Systementwurf dargestellt.
Bei dem Signalfluss in (Abb.2) werden zunächst ein Arduino und ein LCD-Display verwendet, da auf diese Weise die aktuellen Werte des Gyroskops und des Referenzwertes angezeigt werden können.
-
Abb. 1 Funktionaler Systementwurf
-
Abb.2 Funktionaler Systementwurf Signalfluss
Technischer Systementwurf
Für den technischen Systementwurf ist nun Abb. 3 beschreibend. Die Regelung wird hier in den Skizzen auf 2-Arduinos und 2-Programme aufgeteilt, da ansonsten das Programm nicht über einen Controller nicht funktioniert. Auf dem ersten Arduino, wird der Sollgeschwindigkeit für den Motor eingestellt und ausgelesen, als auch die Drehrichtung eingestellt. Auf dem zweiten Arduino, wird das Gyroskop ausgelesen. Von dem Nutzer wird über einen Drehknopf die Sollgeschwindigkeit des Motors eingestellt. In Simulink kann die Drehrichtung eingestellt werden. Wenn eine Sollgeschwindigkeit und die Richtung eingestellt wurde, fängt der Motor sich an zu drehen. Es wird eine Geschwindigkeitsmessung von dem Motor entnommen, welche in dem Programm Umgerechnet wird und in die vorherige Schaltung zurück gekoppelt wird. In dem anderen Programm, lässt sich dann der ausgegebene Wert von dem Gyroskop in Simulink betrachten.
-
Abb. 3 Technischer Systementwurf Regelkreis
-
Abb. 4 Technischer Systementwurf 1 Verkablung
-
Abb. 5 Technischer Systementwurf 2 Verkablung
Projektplan
Nachfolgend wird der erstellte Projektplan anhand eines Gantt-Charts dargestellt.
-
Abb. 6 Projektplan
Komponentenspezifikation
In diesem Kapitel werden die benötigten Komponenten mit ihren Voraussetzungen beschrieben und Kaufteile definiert.
Eine Liste der Kaufteile befindet sich im oberen Teil des Artikels [BOM].
Microcontroller
Für den Versuch wird ein Microcontroller benötigt, welcher die den Motor antreibt und die ermittelten Messwerte aufnehmen und darstellen kann. In den Anforderungen wurde hierzu die DS1104 definiert, aufgrund der einfacheren Zugänglichkeit beim erstellen, als auch bei der Vorführung auf der Messe wird der Versuchsaufbau mit einem Arduino Uno 3 angefertigt. Die Umstellung auf die DS1104 Karte der Firma DSpace kann anschließend mit einem geringen Aufwand umgesetzt werden.
Motor
Der benötigte Motor zum Projekt wurde über die Anforderungen insoweit definiert, das dieser mit einer Geschwindigkeit im Bereich von ±300 °/s drehen soll. Des Weiteren muss ein Weg gefunden werden, wie die tatsächliche Geschwindigkeit elegant bestimmt werden kann. Die im Internet kaufbaren Motoren werden üblich in der Einheit [RPM] zu deutsch, "Umdrehung pro Minute [U/min] " angegeben. Demnach haben wir die Angabe aus der Anforderungsliste in die Einheit U/min wie folgt umgerechnet:
1. 300 °/s * 60s = 18.000 °/min
2. Nun wird dieser Wert durch 360° geteilt, damit wir auf U/min kommen.
3. Das entspricht 18.000 °/min : 360° = 50 U/min oder [RPM]
Es muss nun ein Motor ausgewählt werden, welcher eine Geschwindigkeit von 50 U/min erreicht und die tatsächliche Geschwindigkeit als Signal ausgeben kann.
Nach einer Recherche konnten Motoren für den Modellbau gefunden werden, mit dem die gegebenen Voraussetzung erfüllt werden. Der Ausgewählte Motor ist ein Getriebemotor, welcher dank seiner Übersetzung auch höhere Drehmomente an der Narbe erzeugen kann. Die Geschwindigkeit des Motors wird durch einen Hall-Sensor ausgegeben. Der Hall-Sensor misst das Geschwindigkeitssignal vom Permanentmagnet-Gleichstrommotor. Wenn sich die Welle dreht, wird eine bestimmte Anzahl von Impulsen erzeugt, die von der Hall-Geräteschaltung ausgegeben werden und zu Zählimpulsen des Rotationszählers werden. Diese Zählimpulse können anschließend in eine U/min umgerechnet werden.
Gyroskop
Ein Gyroskop ist ein Instrument oder Sensor, das dazu dient, die Orientierung oder Rotationsrate eines Objekts im Raum zu messen. Es basiert auf den Prinzipien der Kreiselstabilität und kann in verschiedenen Formen vorkommen, darunter mechanische Gyroskope, elektronische Gyroskope und optische Gyroskope. Gyroskope werden häufig in Flugzeugen oder Schiffen zur Lagebestimmung genutzt.
GY-35-RC Ein einachsiges analoges elektronisches Gyroskop, auch als Rate-Gyroskop oder Gyrosensor bezeichnet, verwendet elektronische Sensoren, um die Rotationsrate um eine bestimmte Achse zu messen. Beim drehen des angeschlossenes Sensors wird über die Corioliskraft die Rotationsrate berechnet.
Das Gyroskop braucht eine Stromversorgung zwischen 3-5V. Dieses Gyroskop kann eine maximale Rotationsrate von ±300°/s ausgeben.
MPU-6050
Dieses Gyroskop ist ein digitales Gyroskop. Es kann sowohl die Beschleunigung ausgeben, als auch die Rotationsrate & Temperatur.
Die Spannungsversorgung muss zwischen 3,3V und 5V sein und das Gyroskop hat einen Messbereich, der vom Anwender eingestellt werden kann. Das heißt, dass es möglich ist den Messbereich festzulegen, dabei sind die Messbereiche: ±250°/s, ±500°/s, ±1000°/s, ±2000°/s möglich.
Potentiometer
Durch das bedienen eines Drehknopfs soll die IST - Geschwindigkeit des Motors eingestellt werden können. Hierzu wird ein lineares Potentiometer. Potentiometer können über lineare oder logarithmische Kegel verfügen. Bei einem linearen Kegel ändert sich die Spannung stets in gleich bleibenden Schritten in Abhängigkeit von der Drehung der Steuereinheit.
Mechanische Baugruppe
Laut der Anforderungsliste muss der Aufbau den Anforderungen studentischer Arbeiten standhalten, des Weiteren soll er möglichst platzsparend aufgebaut sein. Aufgrund der einfachen Zerspanbarkeit, wird Holz als Grundwerkstoff für die mechanischen Komponenten verwendet. Die Komponenten werden dabei mithilfe von Einschlagmuttern und Kreuzschlitzschrauben verbunden. Damit wird eine Abnutzung der Bauteile, durch Montage und Demontage, vorgebeugt. Der fertige Aufbau darf maximal Abmaße von 300x300x300 mm aufweisen, um als platzsparend akzeptiert zu werden.
Schleifring
Die Verkabelung der Meisten Komponenten ist Starr, damit ist gemeint, dass die Kabel keiner Rotation oder Bewegung ausgesetzt sind. Bei der Versorgung des Gyroskop ist eine dynamische Verkabelung bzw. Übertragung notwendig, da hier die Kabel einer Rotation ausgesetzt sind. Ein Schleifring ermöglicht die notwendige Stromversorgung des Gyroskops, des Weiteren können die aufgenommenen Daten an den Microcontroller wiedergegeben werden. Der Schleifring muss genügend Anschlussmöglichkeiten bieten und sollte in seiner Bauweise wenig Platz benötigen.
Umsetzung (HW/SW)
In der Umsetzung des Projektes wurde zunächst jede einzelne Komponente in Betrieb genommen um zu testen, wie diese tatsächlich funktionieren. Mit dem analogen Gyroskop wurde nicht weitergearbeitet, da dieses bei der Inbetriebnahme keine vernünftigen Werte ausgegeben hat. Somit wurde ein digitales Gyroskop gewählt und getestet. Anschließend wurden die einzelnen Komponenten zusammen in einem Programm getestet, was zu weiteren Problemen geführt hat. Das Gyroskop lässt sich nicht zusammen mit der Motorsteuerung in einem Programm ausführen bzw. es gibt falsche Werte aus und sorgt dafür, dass das Programm nach kurzer Laufzeit abstürzt. Nach dem trennen der Programmen und der Controller wurde das Gyroskop auf einem anderen Laptop in Betrieb genommen und die Ansteuerung des Motors auf dem ursprünglichen. Dort ist aufgefallen, dass das Messen der Motorgeschwindigkeit nicht akkurat war und somit kein Regler anhand das Messsystems ausgelegt werden kann. Das bedeutete auch, dass mit den Messungen keine Rückführung stattfinden konnte, was bedeutet, dass kein Regelkreis zustande gekommen ist.
Programm-Ablauf-Plan
In Abbildung 5 ist der Programm-Ablauf-Plan dargestellt. Dieser gibt wieder wie das Programm und damit die Regelung mit unserer Hardware funktionieren soll.
In diesem Programm-Ablauf-Plan läuft das Gyroskop nicht mit in die tatsächliche Regelung ein, sondern es wird nur am Anfang kalibriert um das Offset zu Eliminieren. Dafür muss zunächst Messwerte über das Gyroskop im Stillstand aufgenommen werden und in dem Workspace(MATLAB) der Mittelwert der Messwerte gebildet werden, welcher zukünftig von den fortlaufenden Messwerten abgezogen wird.
Nach diesem Teil des Programms kommt der tatsächliche Regelkreis ins Spiel. Nachdem das Programm Neugestartet wurde, kann nun die Solldrehgeschwindigkeit des Motors über einen Drehknopf(Potentiometer) eingestellt werden. Anschließend muss von dem Benutzer noch die Drehrichtung eingestellt werden, damit der Motor sich tatsächlich dreht. Die eingegebene Solldrehgeschwindigkeit muss dann in eine Pulsweite umgewandelt werden, damit der Motor über eine Motorsteuerung tatsächlich angesteuert werden kann. Dazu muss wird dann noch überprüft, ob die Pulsweite >50 ist, da bei allen Pulsweiten unter 50 der Motor sich nicht dreht oder sehr langsam und sich das Gerät nicht "gesund" anhört. Demnach wurde zum Schutz der Komponente dieser Grenzwert gesetzt. Wenn nun die Pulsweite über 50 liegen sollte, dann dreht sich der Motor in die eingestellte Richtung. Nebenbei wird ein Signal von dem Motor abgegriffen, welches dazu dient die Drehgeschwindigkeit zu messen. Wenn der gemessene Wert und der eingestellte Wert übereinstimmen dreht sich der Motor ganz normal weiter. Wenn jedoch die Messwerte von den Sollwert abweichen, wird der Messwert zurückgeführt und von dem Sollwert abgezogen, wodurch, sich die Drehgeschwindigkeit des Motors ändert.
Das Programm läuft dann so lange, bis der Benutzer das Programm beendet.
Software
Sollwert einstellen
Der Sollwert wird mittels eines Drehknopf(Potentiometer) eingestellt. Es ist eine Anforderung an das Projekt, dass der Sollwert über einen Drehknopf eingestellt werden muss. Die maximale Umdrehung die der angeschlossene Motor ausgeben kann ist 60 Umdrehungen/min.
Der Wert der bei den Potentiometern ausgelesen werden kann beträgt maximal 210-1 und somit 1023. Die eingehenden Signale werden dann immer durch 1023 geteilt um maximal eine 1 auszugeben. Dieser Wert wird mit den oben genannten Umdrehungen multipliziert um die Entsprechenden Umdrehungen die Minute zu bekommen.
Anschließend werden die Ergebnisse der Umrechnung durch 60 Umdrehungen dividiert und mit 360° multipliziert. Die Drehgeschwindigkeit ist damit in °/min eingestellt.
Messung der Drehgeschwindigkeit an dem Motor
Mit dem Programmteil in der Abbildung 8, wird die eingestellte Geschwindigkeit von dem Motor berechnet. In dieser Berechnung befindet sich ein "Slider Gain". Dieses Slider Gain, muss bei jedem erneuten einstellen der Drehrichtung eingestellt werden. Je nach Drehrichtung bekommt das Programm verschiedene Messwerte übergeben. Dazu kommt, dass nach längerer Laufzeit sich ein Fehler bei den Messwerten einschleicht, was dafür sorgt, dass die Messwerte verfälscht sind. Mit dieser Umrechnung sollte zudem nur eine Sollgeschwindigkeit von 200-360°/s eingestellt werden. Wenn die Drehgeschwindigkeit zu klein wird, zeigt das Messsystem an, dass der Motor sich schneller dreht als er es eigentlich tut. Mit dem verwendeten Motor und Encoder hat die Referenzmessung eine Toleranz von ±5°/s. Tatsächlich ist die Messung über das Gyroskop genauer als mit dieser Messeinrichtung. Anschließend wird die Geschwindigkeit angezeigt als auch Integriert um den derzeitigen Winkel des Motors zu bestimmen. Damit kein Winkel über 360° oder unter -360°, wird der "mod"-Block verwendet.
Quelle für das Messsystem [[1]]
Regler Auslegung
Aufgrund der der unsicheren Messergebnisse lässt sich kein vernünftiger Regler auslegen. Die Messergebnisse sind größtenteils Falsch, was dazu führt, dass das Verhalten des Gesamtsystems so nicht akkurat zu Betrachten ist. Wenn man jedoch, das Verhalten der Strecke anhand des Messsystems anschaut, ist zu erkennen, dass das Messsystem ein PT1-Verhalten vorweist.
Wenn man nun einen Regler auslegen würde, ist folgende Rechnung anzuwenden und davon auszugehen, dass die Regelstrecke ein P-Verhalten vorweist.
Mit
&
=> |
=>
PI-Regler
=> |
=>
Trotz der Berechnung des Gesamtsystemverhaltens, kann in dem endgültigen Programm keine Reglung und Rückführung stattfinden, da das Messsystem zu träge und zu ungenau ist.
Ansteuerung des Motors
In der Regelung (Abbildung 9) wird die vorher berechnete Drehgeschwindigkeit in eine Pulsweite umgewandelt. Dafür wird zunächst die angegebene Drehgeschwindigkeit in °/min durch 360° geteilt und mit 255 multipliziert. Der Wert muss 255 sein, da die Pulsweite eine Spanne von 0-255 hat, mit der dann das Signal an die Motorsteuerung gegeben wird.
Dazu wird erst ein Signal an die Motorsteuerung gegeben, wenn die Pulsweite größer als 50 ist. Die Spannung die benötigt wird um den Motor zu bewegen ist unter 50 zu niedrig, was von dem Motorsteuergerät abhängig ist.
Bestimmen der Drehrichtung
Der Motor soll laut den Anforderungen in beide Richtungen drehbar sein. Damit dies realisiert werden kann, muss an die Pins 9 oder 10 ein Signal eingehen.
Damit der Motor sich in eine Richtung dreht, muss einer der Pins eine 1 übergeben bekommen und der andere eine 0. Der Motor dreht sich nicht, wenn beide Pins eine 0 oder eine 1 übertragen bekommen.
Eliminierung des Offsets beim Gyroskops und messen der Rotationsgeschwindigkeit
Zuerst muss die richtige Achse des digitalen Gyroskops ausgewählt werden, die davon abhängt, wie das Gyroskop in der Halterung befestigt wurde. Danach darf das Gyroskop nicht bewegt werden und das Simulationsprogramm muss gestartet werden. Dort können ca. 10s lang Messwerte aufgenommen und an den aktuellen Arbeitsbereich gesendet werden. In der Variablen "T" ist dann der Mittelwert der aufgenommenen Messwerte festzuhalten. Bei der nächsten Inbetriebnahme wird dieser Mittelwert von den eingehenden Messwerten subtrahiert. Damit ist der Offset des Gyroskops weitgehend korrigiert. Die Toleranz des Rohmesssignals beträgt nun ±0,05°. Damit nicht nur die Drehzahl ausgegeben wird, werden die Messsignale noch integriert, was dazu führt, dass nun der Drehwinkel berechnet wird. Hierbei ist zu beachten, dass sich ab einer Messdauer von 60s ein Fehler einschleicht. Je länger die Messzeit ist, desto größer wird die Messunsicherheit des angezeigten Winkels. Wenn nun eine volle Umdrehung vom Gyroskop erfasst wird, soll der Winkel wieder 0 anzeigen. Dazu wird der Block "mod" verwendet, der ein Modulo darstellt.
Hardware
In diesem Abschnitt wird die erstellte Hardware Komponente vorgestellt.
-
Abbildung 18: Vorderansicht der Messeinrichtung
-
Abbildung 19: Seitenansicht von links der Messeinrichtung
-
Abbildung 20: Draufsicht der Messeinrichtung
-
Abbildung 21: Hintere Ansicht der Messeinrichtung
Komponententest
Die zu testenden Komponenten sind
- das Potentiometer
- der Motor
- das Motor Messsystem
- das Gyroskop
Potentiometer
-
Abbildung 23: Potentiometer Funktionalität
-
Abbildung 24: Angeschlossenes Potentiometer
Motor
-
Abbildung 26: Pinbelegung Motorsteuerung
-
Abbildung 27: Verkablung Test:Arduino-Motorsteuerung
Motor-Messsystem
Gyroskop GY-35-RC
Der Test des analogen Gyroskops (GY-35-RC) hat beim Testen keine brauchbaren Messwerte ausgegeben. Trotz richtigen Anschließens des Gyroskops, wurden keine Werte angezeigt, sobald das Gyroskop gedreht wurde.
Die Abbildung 31 zeigt im vorderen Teil die Messung des Gyroskops mit angeschlossener Ref. Spannung hier wird der Drift des Gyroskops eliminiert, jedoch wird bei einer Drehung um die Achse kein Ausschlag angezeigt. Wird der Anschluss, der Ref. Spannung, entfernt schlägt das Signal aus und das Gyroskop zeigt minimale Ausschläge bei einer Drehung um die Achse, jedoch nicht im erwarteten Bereich. Das Signal ohne Ref. Spannung schwingt sich auf (Gyro-Drift) siehe rechter Teil im Bild.
Gyroskop MPU-6050
Nach mehrmaligen Versuch mit dem Gyroskop GY-35-RC, sind keine vernünftigen Messwerte erfasst worden. So wurde die Entscheidung getroffen, dass nun ein digitales Gyroskop verwendet wird. Das ausgewählte Gyroskop hat die Modellnummer MPU-6050.
Ergebnis
Zusammenfassung
Das bearbeitete Projekt wurde uns auf Anfrage von Prof. Ulrich Schneider zugewiesen. Die Aufgabe in diesem Projekt bestand darin, ein Gestell zu entwerfen, in das ein Gyroskop eingespannt und durch einen Motor gedreht werden kann. Dieser Aufbau sollte so in einem Labor in Betrieb genommen werden können.
Es sollte möglich sein, die Drehgeschwindigkeit des Motors mit einem Drehknopf zu bestimmen. Dies wurde mit Hilfe eines Potentiometers realisiert.
Der Motor erhält dann von der angeschlossenen Motorsteuerung (L298N) einen Impuls und dreht sich. Aus dem Motor kann ein Signal ausgelesen werden, mit dem eine Referenzmessung der Drehzahl durchgeführt werden kann. Diese Referenzmessung dient als Rückkopplung für die Regelung und passt die Drehzahl des Motors an. Diese Referenzmessung ist äußerst ungenau mit einer Toleranz von ±5°/s und funktioniert auch nur in einem Bereich von 200-360°/s. Es muss dazu noch je nach Drehrichtung über ein "Slider Gain"-Block die erfassten Messwerte neu Multipliziert werden.
Bevor der Motor in Betrieb genommen wird, muss das Gyroskop einmal so gemessen werden, dass sich der Offset bei der nächsten Inbetriebnahme beseitigen lässt. Mit den folgenden Messwerten ist es dann möglich, die Drehzahl und den Gierwinkel auszugeben.
Insgesamt konnte der Projektplan für dieses Projekt nicht eingehalten werden, da durch andere Verpflichtungen innerhalb und außerhalb des Studiums zu wenig Zeit zur Verfügung stand.
Für dieses Projekt war die Verwendung eines analogen Gyroskops (GY-35-RC) vorgesehen, jedoch war es im Rahmen dieses Projektes nicht möglich, mit diesem Gyroskop vernünftige Ergebnisse zu erzielen. Aus diesem Grund wurde ein digitales Gyroskop (MPU-6050) verwendet.
Es wurde jedoch ein Rahmen aus Holz gebaut, der auf diese Weise verwendet werden kann, und es wurde ein Programm erstellt, das einen großen Teil der gestellten Anforderungen erfüllt.
Die einzelnen Schritte des Projekts sind sowohl in diesem Artikel als auch im SVN dokumentiert. Zu diesem Zweck befinden sich alle Quelldateien in einer Ordnerstruktur im SVN.
Das Fazit zu diesem Projekt ist, dass es gescheitert ist, da die Aufgabe nicht erfüllt wurde.
Lessons Learned
Für ein Projekt mit diesem Umfang, ist es notwendig sich dafür mehr Zeit zu nehmen und andere Module auszulassen oder sich so einem Projekt erst widmen, wenn man ein besseres Verständnis von Simulink, Arduino und Regelungstechnik hat. Es wurde nach kürzerer Zeit bereits offensichtlich für uns, dass wir für das Projekt nicht alle Anforderungen erfüllen können, da es uns an Fachwissen fehlt und die Umsetzung zu viel Zeit beanspruchen würde. Dazu kommt, dass ein besseres Verständnis für die Komponentenwahl notwendig ist. "Mal eben an das Projekt setzen" stellte sich als schwieriger heraus als ursprünglich erwartet, da wir nicht einfach so von dem letzten Punkt weiterarbeiten konnten ohne dass es notwendig war, sich wieder richtig reinzuarbeiten.
Projektunterlagen
Projektdurchführung
Aufgrund von Verzögerungen konnte der erstellte Terminplan nicht eingehalten werden, die verzögerungen werden in der nachfolgenden Abbildung dargestellt.
Nachfolgend wird der erstellte Ressourcenplan dargestellt:
ZIP-Archiv
Hier finden sie alle Projektdaten hinterlegt in einem ZIP-Archiv: Datei:Laborversuch Gyroskop mit DS1104.zip
YouTube Video
→ zurück zur Übersicht: WS 23/24: Angewandte Elektrotechnik (BSE)