rot_Pendel
ArchivLaTeXLinksLiteraturMechanikNewsSoftware

inv_Pendel 
rot_Pendel 
ewiges Pendel 
Links 
PID Ball 
Magnet 
Wetter1 
Wetter2 
WLAN 
Solar 
[Home][Mechanik][rot_Pendel]

Aufbau eines rotierenden inversen Pendels

 

Analog zum inversen Pendel mit Linearführung geht es hier um das Balancieren eines Pendels in der senkrechten Lage. Das Pendel befindet sich am Ende eines rotierenden Arms. Über die Drehbewegung des Arms wird die Ausgleichsbewegung erzeugt. Dieser Aufbau des Pendels ist sehr beliebt und mechanisch einfacher zu realisieren, da die Linearführung mit dem Zahnriemenantrieb entfällt. Auf YouTube findet man unter den Suchworten rotary inverted pendulum oder Furuta Pendulum diverse Aufbauvarianten z.B.

http://build-its-inprogress.blogspot.de/search/label/Pendulum

https://www.youtube.com/watch?v=pbvmbebFZoY

Als elektronische Steuerung wird ein Arduino Megaboard benutzt. Ein paar Grundkenntnisse in der Programmierung des Arduino werden vorausgesetzt. Die Kosten der Einzelteile liegen in Summe je nach Aufbauvariante bei 70€ ...130 €. Als Antrieb für den Rotor wird ein NEMA 17 Schrittmotor mit Microsteppsteuerung verwendet. Wer ein größeres Modell bauen möchte, sollte besser einen NEMA 23 Motor einsetzen.  Der Pendelwinkel wird mit einem Winkelgeber (Fabrikat Omron E6B2-CWZ6C , 2000 Impulse je Umdrehung) erfasst. Der Winkel vom Rotorarm kann direkt über die Anzahl der Schritte des Schrittmotors berechnet werden, so dass ein weiterer Encoder entfällt. Alternativ könnte ein 12V DC Motor mit hoher Untersetzung (30 rpm...60 rpm) als Antrieb für den Rotorarm zum Einsatz kommen. Beim Aufbau wurden folgende Prämissen gesetzt:

  • es werden keine Spezialmaschinen wie CNC-Fräse, Drehbank oder 3D-Drucker benötigt,
  • der mechanische Aufbau ist einfach und stabil und setzt keine Spezialkenntnisse voraus,
  •  alle verwendeten Teile sind handelsüblich und können über das Internet bestellt werden
  • für den PID Controller, den Schrittmotor und die Auswertung der Encodersignale werden fertige Arduino Bibliotheken genutzt (GitHub)

Der mechanische Aufbau

Das Grundgerüst besteht aus einer Aluminiumplatte 270x200x2.5mm. Auf der Platte werden mittig zwei ALU Profile 30x30x300mm 30 B-Typ Nut 8 senkrecht befestigt. Diese werden oben mit einem Profil (100x30x30mm) quer verbunden. Am Querverbinder ist der Motorhalter befestigt. Auf der Motorwelle wird ein 60mm Zahnrad befestigt, dass als Befestigung für den Rotorarm dient. Alternativ kann die in der Tabelle aufgeführte Winwill® 1Pc 5mm Flanschkupplung benutzt werden (bei NEMA 23 Schrittmotor 6,25mm Bohrung!) Der Rotor besteht aus einem ALU Profilstab 200x20x20mm. Am Ende des Rotors wird mit einem NEMA 17 Motorwinkel der Winkelgeber befestigt. Die Entfernung zwischen Motorwelle und Winkelgeber sollte ca. 100mm betragen, d.h. der 200mm Rotorstab wird etwa mittig an der Motorwelle befestigt. Auf der Welle des Winkelgebers ist mittels Kupplungsstutzen der Pendelstab verschraubt (maker beam profil 10x10x300mm oder 10x10x200mm).

ALU Profile  30 B-Typ Nut 8

ALU Profile  30 B-Typ Nut 8 Fa. Dold Mechatronic


Grundgerüst mit Motorhalterung

Laboraufbau des inversen Pendels

Encoder mit Pendelstab

Rotorstab mit 60mm Zahnrad als Kupplungl


Dateien

Erfahrungsbericht Erfahrungsbericht_rot.pdf
Stückliste Antrieb mit  Schrittmotor Stückliste_Schrittmotor.pdf
Stromlaufplan Arduino mit Schrittmotor circuit3.png
Arduino Mega Programmcode PID_stepp5.ino
Programmbibliothek Enoder

Encoder.h

Programmbibliothek BasicStepDriver

BasicStepperDriver.h

Programmbiblithek PID control

PID_v1.h

Stromlaufplan mit Schrittmotor und Mircostepdriver LM542

Bilder und Links zu den Einzelteilen

Quimat Nema 17 Schrittmotor

SainSmart CNC-Mikroschrittschrittmotor Treiber 2M542

NEMA 17 Schrittmotor Halterung

OMRON Rotary Encoder E6B2-CWZ6C 2000P/R 5V-24V

Schaltnetzteil 24V 6,5A ; MeanWell, RS-150-24

 

Maker Beam ALU Profil 10x10x300 als Pendelstab

Zahnrad 40 Zähne als Pendelgewicht

Zahnrad 60 Zähne als Kupplung

Winwill® 1Pc 6mm Starre Flanschkupplung Motorführung Wellenkoppler Motoranschluss

 

 

MagiDeal Aluminium Schrittmotor Flexible Wellenkupplung


Inbetriebnahme des Pendels

Nach dem Laden des Programms und einschalten der 24V Stromversorgung für den Schrittmotor, muss das Pendel absolut ruhig und senkrecht nach unten hängen. Jetzt wird kurz die rote Resettaste auf dem Arduino Bord betätigt. Damit wird der Encodercounter mit dem Referenzwert -4000 geladen (eine volle Umdrehung sind 8000 Impulse, da die Endcoderbilbliothek die 2000 Impulse vervierfacht (Auswertung der steigenden und fallenden Signalflanken).  

Danach bringt man das Pendel im Uhrzeigersinn in die aufrechte Position. Der Regler beginnt zu arbeiten und sollte das Pendel jetzt aufrecht halten. Sollte der Rotararm stets in die falsche Richtung steuern, müssen die Schrittmotoranschlüsse am Drivermodul getauscht werden. Weiterhin müssen die PI Reglerparameter Kp und Ki abgeglichen werden (leicht absenken oder erhöhen). Der Rotor sollte um einen kleinen Drehhwinkel von +/- 15  Grad hin- und herschwingen. Eventuell muss die Grundplatte des Pendels waagerecht ausgerichtet werden, falls das Pendel immer nach einer bestimmten Seite hin abdriftet. Zur Kontrolle der Reglerausgabe wird der serielle Plotter in der Arduino Box am PC geöffnet. Das Signal sollte innerhalb von +/- 40 verbleiben (siehe Graphik). Ist der Kp Wert zu hoch eingestellt, schwingt sich der Regler auf und die Stellgröße schwankt innerhalb der Grenzen von +/- 180.

Kp und Ki sind korrekt eingestellt

 

Kp und Ki sind zu hoch gewählt, das Pendel schaukelt sich langsam auf

Aufbauvariante II mit 12 V DC Motor

An Stelle des Schrittmotors kann ein DC Motor mit entsprechender Drehzahl- untersetzung (60rpm ... 30rpm = rotation per minute) gewählt werden. Diese Motoren gibt es in zahlreicher Ausfertigung. Im Beispiel wurde ein Modell 12V/50 rpm benutzt. In der untenstehenden Tabelle ist ein passender Befestigungswinkel gezeigt. Als Treiberplatine für den Motor wurde die H-Brücke IBT_2 verwendet zusammen mit einem 12 V  Schaltnetzteil (dieses kann gleichzeitig den Arduino speisen - siehe Stromlaufplan.).

Gegenüber dem Schrittmotor (mit Micosteppsteuerung) ergibt sich ein unruhiger Lauf, da das Motorgetriebe ein zu großes Spiel aufweist. Dieses Spiel führt zu einer Totzeit in der Regelstrecke. Die Stellgröße baut sich unnötig groß auf, so dass die Ausgleichsbewegung stets ruckartig stattfindet. Der Motor versucht gegenzusteuern aber die Bewegung (Gegenkraft) kommt erst verspätet am Rotorarm an. Mit Hilfe einer Vorsteuerung könnte man versuchen die Totzeit zu kompensieren. Andereseits demonstriert dieser Aufbau ein Problem das in der Praxis  häufig in Regelkreisen auftritt (z.B. Heizungsregler). An Stelle des Encoders mit 2000 p/r genügt auch das preiswerte Modell HN38-06-600N mit 600 Impulsen je Umdrehung. Zusammen mit dem DC Motor ist dieser Pendelaufbau dann für ca. 70€ deutlich preiswerter als die Schrittmotor-variante.

Programmcode: PID_rotDC.ino

Stromlaufplan mit 12V DC Motor

Stückliste für den Antrieb

37mm DC Getriebemotor Montagehalterung

12V DC Motor 50rpm

H-Brücke IBT_2

230V AC - 12V DC Schaltnetzeil

Inkrementaler Drehgeber 600 p/r  

(Modell HN38-06-600N 8,30€ bei ebay)

 

 

 

[Home][Archiv][LaTeX][Links][Literatur][Mechanik][News][Software]

Copyright (c) 2004, Ingmar Rubin, Alle Rechte vorbehalten.

loesung@matheraetsel.de