Laborversuch Gyroskop mit DS1104: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(92 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 zunächst durch eine Einstellung in der Motorsteuerung realisiert, sollte diese Funktionsweise nicht standhalten wird auf eine Geschwindigkeitsmessung<br>
dem Gyroskop und einer Referenzmessung. Diese Referenzmessung wird durch einen Hall Sensor am Motor realisiert.<br>
mithilfe einer Drehachse und Lochscheibe z.B Speedsensor LM393 zurückgegriffen. Die berechneten Ergebnisse vom Gyroskop und der Referenzmessung werden auf einem Display angezeigt.
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
| Die wahre Geschwindigkeit (Referenz) wird mit einem Drehencoder auf ±0,1&thinsp;°/s bestimmt.
| NFR
| Prof. Schneider
| 10.10.2023
|
|
|-
| 5
| Als Messwerterfassungskarte kommt eine dSpace DS1104 R&D Controller Board zum Einsatz.
| FR
| Prof. Schneider
| 10.10.2023
|
|
|-
| 6
| Mit der Messwerterfassungskarte werden die Gierrate des Gyro und des Referenzsystems erfasst.
| FR
| Prof. Schneider
| 10.10.2023
|
|
|-
| 7
| 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
|-
|-
| 8
| 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
|-
|-
| 9
| 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
|-
|-
| 10
| 7
| Die Anzeige der Mess- und Referenzdaten erfolgt in dSpace ControlDesk.
| NFR
| Prof. Schneider
| 10.10.2023
|
|
|-
| 11
| 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
|-
|-
| 12
| 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
|-
|-
| 13
| 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
|-
|-
| 14
| 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
| xx
| 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.  
Es wird von dem Nutzer ein Sollwert über einen Drehknopf(Potentiometer) eingestellt. Dieser Sollwert wird dann an den Motortreiber weitergegeben, welcher den Motor antreibt.  
Die Regelung wird hier in den Skizzen auf 2-Arduinos und 2-Programme aufgeteilt, da ansonsten das Programm nicht über einen Controller nicht funktioniert.
Der angetriebene Motor beginnt somit sich zu drehen, was dafür sorgt, dass das Gyroskop Werte bezüglich der Geschwindigkeit zurückgibt. Über diese Messung, wird das Signal Rückgekoppelt, um die Differenz des Soll- und Istwerts zu bestimmen und um den Motor zu Regeln.
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 widths="450" heights="300">
<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 LE SB.png|Abb. 4 Technischer Systementwurf Verkablung
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. 4 Projektplan
  Datei:Projektplan zum Gyroskop-Projekt WS23-24.jpg| Abb. 6 Projektplan


</gallery>
</gallery>
Zeile 279: Zeile 314:


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.
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 ===
=== Potentiometer ===
Zeile 296: 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|250px|thumb|right|Absatz|Abbildung 5: Programm-Ablauf-Plan]]
[[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.
Zu beachten dabei sind folgende Abfragen


* Ist ein Offset bei dem Gyroskop zu erkennen?
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.
** Ja -> Das Offset muss korrigiert werden
 
** Nein -> Motor kann in Betrieb genommen werden
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.
* Entspricht die derzeitige Geschwindigkeit der Soll-Geschwindigkeit? (Gemessen am Motor)
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.
** Nein -> dann wird die Drehgeschwindigkeit angepasst
 
** Ja -> Es kann die Referenzmessung mit dem Gyroskop genommen werden
Das Programm läuft dann so lange, bis der Benutzer das Programm beendet.
* Stimmen die Geschwindigkeiten überein? (Gyroskop gemessen und Motor eingestellt)
 
** Nein -> Der Motor muss geregelt werden
** Ja -> Der Motor läuft wie eingestellt weiter


<br clear = all>
<br clear = all>


=== Software ===
=== Software ===
[[Datei:Software Abbildung Ohne Kalibrierung.pdf|1200px|thumb|Abbildung 6: Software-Umsetzung]]
 
[[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 7: Sollwertbestimmung]]
[[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 330: Zeile 377:
<br clear = all>
<br clear = all>


==== Rückkopplung ====
==== Messung der Drehgeschwindigkeit an dem Motor====
[[Datei:Rückkopplung.png|400px|thumb|right|Absatz|Abbildung 8: Rückkopplung]]
[[Datei:Rückkopplung.png|400px|thumb|right|Absatz|Abbildung 11: Messen der Drehgeschwindigkeit an dem Motor]]
Die Rückkopplung besteht in diesem Fall aus nichts anderem als dem Output des Gyroskops. Der in diesem Projekt aufgestellte Regelkreis hat hervorgesehen, dass die Regelung der Drehgeschwindigkeit mit dem Gyroskop überprüft und angepasst wird. Somit wird von dem Sollwert der Istwert aus dem Gyroskop abgezogen und an die Regelung weitergegeben.
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 [[https://www.youtube.com/watch?v=M_LM1jdlPMQ&t=75s]]
<br clear = all>
<br clear = all>


==== Regelung ====
==== Regler Auslegung ====
[[Datei:Regelung.png|400px|thumb|right|Absatz|Abbildung 9: Regelung]]
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>
 
==== Ansteuerung des Motors====
[[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 343: Zeile 418:


==== Bestimmen der Drehrichtung ====
==== Bestimmen der Drehrichtung ====
[[Datei:Richtungsvorgabe.png|400px|thumb|right|Absatz|Abbildung 10: Richtungsvorgabe]]
[[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.
<br clear = all>
<br clear = all>
==== Eliminierung des Offsets beim Gyroskops und messen der Rotationsgeschwindigkeit ====
[[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.
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.
<br clear = all>
=== Hardware ===
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  
* die Potentiometer
* das Potentiometer
* der Motor
* der Motor
* das Motor Messsystem
* das Gyroskop
* das Gyroskop


===Potentiometer===
===Potentiometer===
[[Datei:Komponententest Potentiometer.png|thumb|left|1100px| Abbildung 22: Komponententest Potentiometer]]
<gallery widths=200 >


<gallery mode ="packed" >
Datei:Komponententest Potentiometer.png| Abbildung 11: Komponententest Potentiometer
Datei:Potentiometer Funktionalität.png| Abbildung 12: Potentiometer Funktionalität


Datei:Potentiometer Funktionalität.png| Abbildung 23: Potentiometer Funktionalität
Datei:Potentiometer Angeschlossen.jpg|Abbildung 24: Angeschlossenes Potentiometer
</gallery>
</gallery>


Zeile 366: Zeile 464:


===Motor===
===Motor===
<gallery mode="packed">
[[Datei:Testbericht Motor Motorsteuerung.png|thumb|left|1100px|Abbildung 25: Testbericht_Motor_Motorsteuerung]]
Datei:Testbericht Motor Motorsteuerung.png|Testbericht_Motor_Motorsteuerung
Datei:Verkablung Motorsteuerung.png| Abbildung schießmichtot Pinbelegung Motorsteuerung
Datei:Verkablung Arduino Motorsteuerung.png| Abbildung interessiertmichnicht Verkablung Test:Arduino-Motorsteuerung




<gallery widths=200>
Datei:Verkablung Motorsteuerung.png| Abbildung 26: Pinbelegung Motorsteuerung
Datei:Verkablung Arduino Motorsteuerung.png| Abbildung 27: Verkablung Test:Arduino-Motorsteuerung
</gallery>
<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 ===
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 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>
</gallery>


<br clear = all>
<br clear = all>


===Gyroskop===
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.
[[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 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.
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 ==
== Projektunterlagen ==
=== Projektplan ===
 
=== 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>


== YouTube Video ==
Nachfolgend wird der erstellte Ressourcenplan dargestellt:
[[Datei:Ressourcenplanung.jpg|1000px|thumb|left| Abb. 36: Ressourcenplanung]]
<br clear = all>


== Weblinks ==
=== ZIP-Archiv===
Hier finden sie alle Projektdaten hinterlegt in einem ZIP-Archiv: [[Datei:Laborversuch Gyroskop mit DS1104.zip|mini]]


== Literatur ==
== 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


Aufbau des Laborversuchs


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

Tabelle 1: Funktionale Anforderungen an der Gyroskop-Projekt
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
Bill of materials (BOM)
Teile Nr. Anzahl Komponente Preis Link
1 1 Arduino Uno 3 TBD https://funduinoshop.com/elektronische-module/sonstige/mikrocontroller/funduino-uno-r3-mikrocontroller-arduino-kompatibel
2 1 12V DC-Motor mit Encoder TBD https://www.amazon.de/dp/B09LGZ291M?ref=ppx_yo2ov_dt_b_product_details&th=1
3 1 Motor Treiber L298N TBD https://www.roboter-bausatz.de/p/l298n-motortreiber-mit-doppelter-h-bruecke
4 1 Gyroskop GY-35-RC TBD https://www.christians-shop.de/GY-35-RC-einachsiges-Gyroskop-analog-ENC-03RC
5 1 Potentiometer TBD https://www.amazon.de/dp/B073PQ2G82?psc=1&ref=ppx_yo2ov_dt_b_product_details
6 1 Holzleiste TBD https://www.hornbach.de/p/furnierschichtholz-woodpro-35x35x2400-mm/5506216/
7 1 Holzplatte TBD https://www.hornbach.de/p/fixmass-sperrholz-pappel-1200x600x8-mm/5216016/
8 10 Einschlagmuttern M5 TBD https://www.hornbach.de/p/stahl-einschlagmutter-mit-gewinde-m5-7-mm-200-stueck/8673668/?searchTerm=Stahl-Einschlagmutter+mit+Gewinde+M5
9 1 12 V Netzteil TBD https://www.amazon.de/HOUHUI-Netzteil-100-240V-Stromversorgung-Funkger%C3%A4t/dp/B0BWXCQ67J/ref=sr_1_2?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=3BGGKPEHBCDX5&keywords=12+V+6a&qid=1703671142&sprefix=12+v+6a%2Caps%2C125&sr=8-2
10 1 6 Kanal Schleifring TBD 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

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.

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.

Projektplan

Nachfolgend wird der erstellte Projektplan anhand eines Gantt-Charts dargestellt.

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

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 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

Abbildung 8: Software-Umsetzung-Motor
Abbildung 9: Software-Umsetzung-Gyroskop


Sollwert einstellen

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 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

Abbildung 11: Messen 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.

Abbildung 12: Messeinrichtung-Verhalten
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.


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

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. 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

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. 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

Abbildung 16: Gyroskop-Offset-Drehgeschwindigkeit-Winkel
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. 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.

Komponententest

Die zu testenden Komponenten sind

  • das Potentiometer
  • der Motor
  • das Motor Messsystem
  • das Gyroskop

Potentiometer

Abbildung 22: Komponententest Potentiometer


Motor

Abbildung 25: Testbericht_Motor_Motorsteuerung



Motor-Messsystem

Abbildung 28: Testbericht_Motor-Messsystem
Abbildung 29: Soll-Istgeschwindigkeitsvergleich

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.

Abbildung 30: Testbericht Gyroskop-GY-25-RC
Abbildung 31: Messung Gyroskop-GY-25-RC


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.

Abbildung 32: Testbericht Gyroskop-MPU-6050
Abbildung 33: Messung Gyroskop-MPU-6050


Ergebnis

Abbildung 34: Anforderungsüberprüfung

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.

Abb. 35: Zeitplan zur Projektdurchführung


Nachfolgend wird der erstellte Ressourcenplan dargestellt:

Abb. 36: Ressourcenplanung


ZIP-Archiv

Hier finden sie alle Projektdaten hinterlegt in einem ZIP-Archiv: Datei:Laborversuch Gyroskop mit DS1104.zip

YouTube Video

Video vom Projekt: Laborversuch Gyroskop mit DS1104




→ zurück zur Übersicht: WS 23/24: Angewandte Elektrotechnik (BSE)