Magnetische Schwebung

Mein Projekt bezieht sich auf das schweben lassen eines Objektes, mithilfe eines steuerbaren Magnetfeldes. Diese Technik wird meist bei Magnetschwebebahnen verwendet. Um allerdings ein kleines anschauliches Projekt zu entwickeln, bin ich im Spielzeugmaßstab geblieben.

 

Das Modul besteht aus vier Dauermagneten und vier Elektromagneten (Spulen). Diese versuchen einen Magneten, auch Schwimmer genannt, schweben zu lassen. Die Dauermagneten erzeugen ein rundes Magnetfeld und ziehen den Schwimmer an (unterschiedliche Pole ziehen sich an). Die Elektromagneten wiederum stoßen ihn ab. Dabei bringen sie ihn Balance.  Die Spulen (Elektromagneten) steuert man mithilfe eines Arduinos, welcher mit einem Hallsensor verbunden ist. Dieser wiederum misst die Position des Schwimmers, gibt dieses Signal an den Arduino weiter, welcher dann die Elektromagneten so ansteuert, dass der schwebende Magnet in „Balance“ kommt.

 

Um die Elektromagneten anzusteuern, benötigt man eine zusätzliche PID-Reglung (Proportional-Integral-Differential-Regler). Die Reglung vergleicht den gemessenen Ist-Wert vom Hall-Sensor (die jetzige Position des Magnetes) mit dem gespeicherten Soll-Wert im Arduino, welcher die Position des Magneten, wenn dieser in Balance ist, darstellt. Dieser errechnete „Fehler-Wert“ versucht die Reglung dann zu minimieren. 


Die PID-Reglung

Einen Großteil meines Projektes macht die PID-Reglung aus. Daher ein kleiner Einblick in das Thema. 

Eine PID-Reglung benutzt man dann, wenn man ein Objekt z.B. einen Magneten sehr schnell in eine spezielle Zielposition bringen möchte. Der PID-Regler berechnet einen Fehlerwert (error value) aus der Differenz zwischen dem gemessenen Ist-Wert und dem gewünschten Soll-Wert. Der Regler versucht dann, diesen Fehlerwert zu minimieren, indem er die im Programm vorgenommenen Schritte durchführt. PID-Reglung setzt sich aus den proportionalen (P), integralen (I) und differenzialen (D) Anteilen zusammen.

Dabei spielt jeder Anteil der Reglung einen wichtigen Teil um bestmöglich den Sollwert zu erreichen. Im Programm bekommen die jeweiligen Regler bestimmte Werte zugewiesen. Diese zeigen an, wie ausgeprägt der jeweilige Anteil in der Reglung vorhanden sein soll.  Der P-Anteil sorgt für eine schnelle Reaktion bzw. für eine schnelle Fehlerminimierung. Er ist daher nur für das "Grobe" zuständig. Bei dem P- Anteil bleibt immer ein Restfehler. 

Der I-Anteil kann diesen Restfehler vollständig ausregeln bzw. eliminieren. Das geschieht aber über eine bestimmte Zeit, was die Reglung verlangsamt. Daher muss der Anteil für P so gewählt werden, dass der Restfehler möglichst klein ist und der I- Anteil die Schaltung nicht unnötig verlangsamt. 

Der jetzt noch hinzukommende D-Anteil ermöglicht eine schnelle Nachregelung bei plötzlich eingreifenden Störeinflüssen. Er reagiert blitz schnell und beugt damit Veränderungen vor, macht die Schaltung aber schnell instabile. Die Kunst ist es, die richtigen Werte für die PID-Anteile herauszufinden.  

Ergebnis

Leider bringt die Reglung den Magneten nicht richtig in Balance, sodass dieser „schweben“ könnte. Der Schwimmer wird immer auf eine Seite hingezogen und trifft, wenn man ihn loslässt, auf die festgeschraubten Neodym Magnete. Man spürt aber klar eine Reglung. Je nachdem wie man den Schwimmer über den Hallsensor hält, drücken und ziehen die Spulen den Magneten in eine Richtung. Ebenfalls ist ein lautes Brummen zu hören, welches durch das Fließenden des Stromes durch die Spulen erzeugt wird.

Was funktioniert, ist dass die Reglung erst dann einsetzt sobald der Schwimmer sich in der Nähe der Hallsensors befindet. Die Schaltung bezieht dann die gegebenen 2 Ampere in Abhängigkeit in welche Position man den Schwimmer drückt. Ebenso setzt das Brummen ein. Leider werden die Spulen dann sehr schnell heiß, was aber bei 2 Ampere nicht sehr verwunderlich ist. 

Projektbericht und Programmcode