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.

michael_x


Der Arduino ist auf jedenfall schnell genug.

Er hat zwar eine riesige Totzeit durch den ADC und ist somit als einfacher P - Regler ( oder nach Tobi's  erstem Vorschlag als 2-Punkt Regler ) viel schlechter als das  op-amp - Beispiel, sollte aber trotzdem gehen.

Nur warum sollte man einen superteuren und hochkomplexen µC nehmen, für Sachen die man durch einen kleinen op-amp besser hinkriegt?
- Man kann ausser PID-Simulation auch digitale Regelalgorithmen ausprobieren
- Man kann mehr als nur so ruhig wie möglich schweben ( zeitgesteuert,  andere Sensoren )
- Man kann es hier im Forum als Arduino - Projekt vorstellen   
      . . . ( Ich bin gespannt ) 

volvodani

-Man kann daraus eine Uhr machen mit 12 Verschieden Hohen ständen.
-Man kann daraus mehr lernen als in 10 sehr einfachen Projekten.
-Man kann sich der Faszination der Schwer/Magnetkraft hingeben.

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

fckw



Der Arduino ist auf jedenfall schnell genug.

Er hat zwar eine riesige Totzeit durch den ADC und ist somit als einfacher P - Regler ( oder nach Tobi's  erstem Vorschlag als 2-Punkt Regler ) viel schlechter als das  op-amp - Beispiel, sollte aber trotzdem gehen.

Nur warum sollte man einen superteuren und hochkomplexen µC nehmen, für Sachen die man durch einen kleinen op-amp besser hinkriegt?
- Man kann ausser PID-Simulation auch digitale Regelalgorithmen ausprobieren
- Man kann mehr als nur so ruhig wie möglich schweben ( zeitgesteuert,  andere Sensoren )
- Man kann es hier im Forum als Arduino - Projekt vorstellen   
      . . . ( Ich bin gespannt )   

Natürlich ist mein dargestelltes analog aufgebautes bsp. schneller im bezug auf die avr chips bei den Arduinos, aber dennoch ist das bei einem reinen Zweipunktregler, P- oder Pi- Regler irrrelevant weil man solche Regler in diesem Projekt prinzipiell nicht verwenden kann. Gerade hier hätte ja der Arduino am wenigsten zu tun.
Er muss, um es vernünftig zu machens einen PID-Regler aufbauen, was trotz der öden adc wandler möglich und umsetzbar ist. Solche Totzeiten/-Strecken werden ja gerade bei genannten Regelungsverfahren berücksichtigt, deswegen z.B der D-Anteil.

Was hier analoge von digitaler Regelungstechnik unterscheidet ist mir nicht ganz klar was du meinst.
Was ist besser als "so ruhig wie möglich"?

Tobias93

Hallo,

danke für die schnellen und informativen Rückmeldungen. Ich werde mich mal intensiver mit dem Thema Regelungstechnik auseinander setzen um über die Reglerarten Infos zu bekommen. @
Quote
volvodani
Ja da geb ich dir Recht es macht auf jeden Fall Sinn erst die Hardware dann die Software. Ich hatte das auch so vor. Ist ja auch erstmal Quälerei genug den Elektromagnet zu bauen, im Bezug auf, wie viele Wicklungen, wie viel Strom, wie warm wird er dabei, ... Mein Ursprünglicher Gedanke war ja das der Körper der schweben soll so um die 150g wiegen soll - da lag ich wie der aktuelle Stand ist zum Beispiel auch daneben, weil ich die Kraft die ein Magnet braucht um eine solche Last zu heben deutlich unterschätzt habe. Ich werde mich eher mal so im Bereich 20g aufhalten :)

Quote
Nur warum sollte man einen superteuren und hochkomplexen µC nehmen, für Sachen die man durch einen kleinen op-amp besser hinkriegt?

Ich hab ja hier nur erstmal so generell gefragt ob das überhaupt gehen würde und so ... weil ich ja wie nun ja bald alle wissen immer noch´n Anfänger bin  :~
Ich denke auch wenns nur darum ginge etwas schweben zu lassen würde ich wenn ich einen Arduino nehme mit Kanonen auf Spatzen schießen ... oder wie das Sprichwort heißt ;-) Aber wenn das erstmal dann soweit läuft dann würde ich gerne ein TFT Touch anschließen und einen Slidebalken erstellen über den man die Höhe des Körpers verändern kann und noch ein paar andere Spielereien - dazu werd ich den Arduino dann brauchen ;-)

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

Tobias93

noch ein kleiner Anhang,

denkt ihr man sollte den Magnet mit Gleich- oder Wechselspannung betreiben ? Gleichspannung ist nicht so "effektiv" für ein starkes Magnetfeld wäre doch Wechselspannung besser (weil geringere Volt Zahl) aber kann ich dann ja bei Wechselspannung den Elektromagneten nicht über z.B. PWM ansteuern  -  oder liege ich falsch ?

Danke,
Tobi
Nobody is perfect but - impossible is nothing

volvodani

Bei Wechelspannung ist dieses System zu empfehlen
http://de.wikipedia.org/wiki/Schwingungspaketsteuerung
Gruß
Der Dani
So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

michael_x

Quote
Gleichspannung ist nicht so "effektiv" für ein starkes Magnetfeld

Versteh ich nicht, glaub ich nicht.

@fckw:
Quote
Was hier analoge von digitaler Regelungstechnik unterscheidet ist mir nicht ganz klar was du meinst.
Ein digitaler PID Regler simuliert analoges Verhalten durch genügend hohe Abtastraten.
Daneben gibt es Verfahren, die davon ausgehen, dass die Zeit in der digitalen Welt nur in endlich großen Schritten abläuft, was dann zu komplett anderen Regelungsverfahren führen kann.
http://www.rtm.tu-darmstadt.de/rtm_lehre/vorlesungen_3/lehre_rtm_digitale_regelung/index.de.jsp
( Natürlich sind bei digitaler Regelung schnelle Abtastraten besser )

Was ist besser als "so ruhig wie möglich"?

Na, Dani's schwebende Uhr z.B.

Tobias93

Hey,

ok danke für die Info ich seh mir den Link gleich mal an.

schwebende Uhr ??

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

fckw


Quote
Gleichspannung ist nicht so "effektiv" für ein starkes Magnetfeld

Versteh ich nicht, glaub ich nicht.

@fckw:
Quote
Was hier analoge von digitaler Regelungstechnik unterscheidet ist mir nicht ganz klar was du meinst.
Ein digitaler PID Regler simuliert analoges Verhalten durch genügend hohe Abtastraten.
Daneben gibt es Verfahren, die davon ausgehen, dass die Zeit in der digitalen Welt nur in endlich großen Schritten abläuft, was dann zu komplett anderen Regelungsverfahren führen kann.
http://www.rtm.tu-darmstadt.de/rtm_lehre/vorlesungen_3/lehre_rtm_digitale_regelung/index.de.jsp
( Natürlich sind bei digitaler Regelung schnelle Abtastraten besser )

Was ist besser als "so ruhig wie möglich"?

Na, Dani's schwebende Uhr z.B.



Wenn du eine Regelstrecke vernünftig beschreiben willst, benuzt du P-, I-, D-, Anteile sowie PT-Zeitglieder verschiedener Ordnungstufen und einer Totzeit (Eingang zu Ausgang Regler).

PI-, PID-Regler demzufolge sind deshalb nur ein Gebilde aus obigem Anwendungsfall. Dein link behauptet auch nichts anderes. Außerdem schießt er völlig übers Ziel hinaus, weil es hier um Grundlagen geht.

Wie die einzelnen Größen gebildet werden ist bei der Beschreibung doch egal.
Bei obigem Projekt wird eine Regleung naturbedingt immer im Eingriff sein. Trotzdem wird sie sich so einstellen lassen dass eine Bewegung mit dem Auge nicht mehr wahrnehmbar ist. Auch ohne Vorlesungsbesuche an der Uni.

michael_x

Quote
Außerdem schießt er völlig übers Ziel hinaus, weil es hier um Grundlagen geht.

Da hast du recht.
PID-Regler zu optimieren ist schon schwer genug, aber man kann ein Gefühl dafür kriegen, sie halbwegs vernünftig einzustellen.
Mit theoretischen Berechnungen und noch abstrakteren mathematischen Modellen als der "normalen" Regelungstechnik  kommt man nicht wirklich weiter.

Wenn die Kugel aber mal schwebt, würde mich schon interessieren, was ein Prozessor anstelle eines analogen elektrischen Regelkreises an zusätzlichen Möglichkeiten erlauben könnte.

Go Up