Go Down

Topic: Grundlegende Frage zu neuem Projektvorhaben: "schwebender Körper" (Read 1 time) previous topic - next topic

Tobias93

Hallo,

ich bin gerade dabei mit einem neuen Projekt zu beginnen und wollte mir einfach mal vorab ein Paar Feedbacks holen was ihr denkt ob das Projekt mit einem Arduino realisiert werden kann/könnte. Ich erklär erstmal worum es geht. Ich möchte ein Gerät bauen was einen Körper "schweben" lässt. Ich habe Beispiele für solche Geräte bereits im Internet gefunden, z.B.:

Quote
http://www.bis0uhr.de/
in der Rubrik own Projects auf den Pfeil nach rechts klicken bis Levitron angezeigt wird.

So, nach diesem Funktionsprinzip möchte ich mein Projekt auch aufbauen. Kurz und knapp erklärt funktioniert es so:

An einem Gestell ist oben ein Elektromagnet angebracht. Genau unter ihm ist ein Hall Sensor angebracht. Als schwebender Körper wird ein Neodymmagnet verwendet. Das magnetische Feld von diesem Magnet wird vom Hall Sensor in eine Spannung umgewandelt. Der Spannungswert wird über einen Analogeingang an einen Arduino übergeben. Je nachdem wie nahe der Neodymmagnet am Hallsensor und somit auch an dem Elektromagneten ist, wird der Elektromagnet vom Arduino angesteuert. Das bedeutet man stellt eine bestimmten Wert ein den der Hallsensor liefern muss. Ist dieser Wert nicht erreicht bekommt der Elektromagnet das "go" zum Anziehen. Durch das Anziehen wird der Neodymmagnet auch näher an den Hallsensor angezogen, dessen Wert ändert sich stetig. Ist der eingestellte Wert erreicht, wird dem Magnet die Spannung genommen und er zieht nicht mehr an, der Wert sinkt und das ganze beginnt von neuem.

Ich weiß das das Projekt mit viel Tüftelei zutun hat, das macht ja auch gerade den Spaß, aber meine Hauptfrage die ich mir stelle ist:

Denkt ihr das der Arduino  die Geschwindigkeit mit der dieser "Regelungsprozess" laufen muss bieten kann, bzw. denkt ihr allgemein das man dieses Projekt mit einem Arduino umsetzen kann oder denkt ihr das sowas nur analog mit OP´s realisiert werden kann?

Gruß,
Tobi
Nobody is perfect but - impossible is nothing

volvodani

Das wird der Arduino locker hin bekommen. Es ist ein bisschen Tüftelei weil du einen wirklich guten Regler brauchst, also sehr gut abgestimmter Regler. Wenn du etwas erfahrung mit Reglern hast ist das von der Programmseiter her gut machbar.
Schönes Projekt bin gespannt auf mehr.
Gruß
Der Dani
So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

Tobias93

hey,
danke für die Rückmeldung. Blöde Frage, was meinst du mit 
Quote
Es ist ein bisschen Tüftelei weil du einen wirklich guten Regler brauchst, also sehr gut abgestimmter Regler.
??  Meinst du man benötigt einen externen Regler? Ich dachte eigentlich die Regelung des Elektromagneten
in Abhängigkeit vom gemessenen Spannungswert, des Hallsensors, am Analogeingang des Arduinos zu realisieren. Also so in der Art:
Die Spannung xxx,xx V am Analogeingang des Arduino entspricht der gewünschten Entfernung vom Körper zum Magnet. Jetzt gibt es drei Fälle:

1. Fall: Die Spannung ist kleiner wie die festgelegten xxx,xx V   --> somit wird der Elektromagnet über...PWM... oder irgendwas in der Art (allerdings mit Verstärkungsschaltung wegen dem hohen Strom) angesteuert und zum "Anziehen" aufgefordert.

2. Fall: Die Spannung ist größer wie die festgelegten xxx,xx V    --> der Elektromagnet wird nicht mit Spannung versorgt, der Körper sinkt.

Den dritten Fall schließe ich einfach mal aus, da ich denke das ich keine stabile Lage hinbekommen werde, der Wert wird immer eine Abweichung vom Soll haben, und wenn die Abweichung nur sehr gering ist aber ich denke sie wird immer da sein.

Das wäre das Schema was ich mir vorgestellt habe. Meinst du das mit Regler oder wie meinst du das?

Gruß,
Tobi
Nobody is perfect but - impossible is nothing

volvodani

#3
Jan 04, 2013, 05:29 pm Last Edit: Jan 04, 2013, 05:40 pm by volvodani Reason: 1
Ich meine den Regler den du Proramieren musst. Du musst die änderung Pro Zeit auch als einfluss haben sonst wird dein System extrem Schwingen und dann evtl kolabieren. Hast du zu kleine Einflüsse von deiner "Soll-Ist-Abweichung" dann kannst du zu große Änderungen nicht ausgleichen.
Die Sache kannst du Perfekt mit einem PID Regler machen. P+D Anteile sollen die änderungen Reglen und mit dem I-Anteil kannst du dann den "Restabweichung" Soll-Ist ausregelen, wenn du die optimalen Einstellungen gefunden hast wirst du das Objekt ohne Probleme (einflüsse von aussen) perfket in der Schwebe halten. Mit Tüffteln meinte ich die Richtigen Werte.  
Du bist ja schon auf dem richtigen weg.
Ich würde jetzt erstmal die Hardware aufbauen dann kann man viel hin und her Probieren. Bei so einem Projekt ist es am besten alles Step by Step. Da war ich schon wieder zu schnell die Regelung ist halt erst zum "Schluss" dran.
Der Ardu ist auf jeden Fall schnell genug um dieses System in den "Griff" zu bekommen.

Erst Hardware dann Software (vergess ich auch immer wieder), da es ja auch in der Hardware schon zu Eigenarten kommen kann die man dann noch nicht in der Software berücksichtigen kann. z.B. Taktfrequenz des Magneten damit der nicht zu warm wird oder ähnliches.


Gruß
Der Dani.

So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

fckw

Ich kenne ein ähnliches Projekt, allerdings noch Analog mit Operationsverstärkern, Widerständen und Kondensatoren, ohne µC aufgebaut. Ist eigentlich aber auch kein Problem, wenn mann sich in Regelungstechnik ein bischen (bischen mehr) eingelesen hast.
Es war ein Rahmen aus ALu in dem ein mit Metallspäne gefüllter Tischtennisball schwebte. Der Ball wurde von einem E-Magneten im oberen Teil angezogen, links davon war ein Halogenstrahler eingelassen der Richtung Ball strahlte und auf der Rechten Seite einen Schatten vom Ball auf eine Solarzelle warf.
So konnten alle erforderlichen Größen für eine Regelung erfasst werden.
Im Prinzip musst du den Soll- und Istwert erfassen, diese miteinander Vergleichen, den differenzanteil mit evtl. auftretende Störgrößen verrechnen. Daraus bildest du eine Stellgröße, in deinem Fall wäre das der Magnet.
Ein PID Regler ist im Prinzip so aufgebaut dass der P-Anteil den Proportonialbeitrag, der I-Anteil das Integral und der D-Anteil das Differenzial zu deiner Stellgröße bildet.
Wenn du ein bischen googlest findest du auf jedenfall Codebsp und vorallem Erklärungen zur Regelungstechnik, was es bestimmt um einiges erleichtert zum Ziel zu kommen.

Edit: Der Arduino ist auf jedenfall schnell genug. Deine Regelstrecke ist zwar ziemlich kurz und die Regelung muss schnell reagieren (PID- Regler, der D- Anteil machts möglich), aber du kannst es so gut hinbekommen das du eine auf- und ab bewegung deines Schwebekörpers nichtmehr wahrnimmst.

Go Up