Hallo zusammen, ich merke gerade mal wieder, dass Physik nicht so einfach ist... Es geht um das Verhalten eines Schrittmotors (den ich simulieren möchte). Dieser hat - laut Datenblatt - eine Radialbeschleunigung von 167 rad/s^2. Im ersten Schritt geht es darum auszurechnen, wie lange der Schrittmotor für einen Schritt von 7,5 ° braucht. Also die Formel Winkel = 1/2 x Radialbeschleunigung x Zeit^2 nach der Zeit aufgelöst und ausgerechnet, dass der Motor dafür ca. 40 ms brauchen sollte. Das Problem ist, dass es ein Stück Software gibt (das in der Praxis seit Jahren problemlos funktioniert!), das an eben diesen Motor alle 1,8 ms das nächste Schrittmuster anlegt. Und der Motor folgt brav diesen Schritten. Jetzt stellt sich mir die Frage, wie das möglich ist, wenn er doch für einen Schritt 40 ms braucht. Ich würde auf eine Zeitdauer von 1,6 ms pro Schritt kommen, wenn ich aus oben stehender Formel ein Winkel = 1/2 x Radialbeschleunigung x Zeit (ohne ^2!) machen würde. Aber woher kommt diese Formel - die auch von den Einheiten her nicht stimmt? Und wie könnte ich eine Anfangsgeschwindigkeit berücksichtigen? Meinem Verständnis nach eben durch die Formel Winkel = 1/2 x Radialbeschleunigung x Zeit^2 + Anfangsgeschwindigkeit x Zeit Wenn aber schon die Formel oben falsch ist wird die hier bestimmt auch nicht richtiger... Bitte entschuldigt die ausgeschriebenen Formeln, aber ich kann keine Latex-Syntax und wüsste nicht, wie ich sonst griechische Buchstaben hier setzen sollte... Danke vorab für eine Erklärung und viele Grüße
Michael Klose schrieb: > möchte). Dieser hat - laut Datenblatt - eine Radialbeschleunigung von > 167 rad/s^2. Eine Menge Holz > Im ersten Schritt geht es darum auszurechnen, wie lange der Schrittmotor > für einen Schritt von 7,5 ° braucht. > Also die Formel Winkel = 1/2 x Radialbeschleunigung x Zeit^2 nach der > Zeit aufgelöst und ausgerechnet, dass der Motor dafür ca. 40 ms brauchen > sollte. Hast du auch die Winkel-Einheiten richtig berücksichtigt? Das eine sind rad, das andere Grad 360 Grad entsprechen 2*PI rad Ausserdem wird das so nicht stimmen. Der Motor kann ja nicht endlos mit dieser Winkelbeschleunigung beschleunigen. Irgendwann wird er nicht mehr schneller. Und abbremsen zur nächsten Position muss er ja auch. Dann kommt noch dazu, dass ein Motor ja selten Selbstzweck ist, sondern etwas antreibt. Da hast du ein Trägheitsmoment, Lagerreibung etc. Fazit: Bei Simulationen muss man immer bedenken wo die Grenzen liegen. Ansonsten simuliert man etwas, was mit der Realität nichts zu tun hat aber einfach nur extrem aufwändig ist. Wenn du weißt, dass der Motor mit einer bestimmten Schrittfrequenz gefahren werden kann, dann nimm das als Obergrenze und gut ists. Wenn du das alles physikalisch exakt machen willst, wirds sehr aufwändig. Da würde ich noch eher den Ansatz gehen, dass eine Wicklung durch den Stromfluss ein Feld aufbaut, welches in der Entfernung des Rotors welche Kraft erzeugt. Durch diese Kraft wird der Rotor in Richtung der Wicklung beschleunigt und es entsteht ein Drehmoment, wobei Reibung und Luftwiderstand (als Gegenmomente) eingerechnet werden. Das ganze diskret aufgebaut, also für alle paar ns erneut durchgerechnet und eine neue Kraft/Moment bestimmt. Dann Kraft ist Masse mal Beschleunigung. Geschwindigkeit ist das Integral über die Beschleunigung. Weg ist das Integral über die Geschwindigkeit. Und damit weißt du wo der Rotor ein paar ns später steht und welche Winkelgeschwindigkeit er dann gerade hat. Natürlich unter der Annahme, dass in Diskretisierungsintervall eine gleichförmige Bewegung vorliegt. Das stimmt zwar nicht exakt aber bei kleinen Berechnungsintervallen wird sich der Fehler in Grenzen halten. Die normale Kette der klassischen Newtonschen Physik, in deinem Fall dann eben auf eine Kreisbewegung angewandt. Damit hast du dann auch den Fall abgedeckt, dass der Rotor ja durch Trägheit weiter als bis zur nächsten Schrittposition weiterlaufen will, woduch der Rotor wieder gebremst wird oder auch nicht, je nachdem wann genau die Umschaltung der Wicklungen auf die nächste Schrittposition in Bezug auf die momentane Drehzahl erfolgt. Im Grunde das, was Partikel-Systeme simulieren wenn die einzelnen Partikel nicht unabhängig voneinander sind, nur eben angewendet auf einen Schrittmotor.
Hallo Karl-Heinz, danke für die Antwort. Ich habe nochmal mit dem Verantwortlichen für die Ansteuerung des Motors gesprochen und der hat mir die 'ganze Wahrheit' erklärt. Das Ganze ist noch deutlich komplexer, als ich bisher angenommen hatte... Es wird wohl darauf hinauslaufen, dass ich mir für die Bewegung eine Loop-Up-Table erstelle(n lasse) und diese dann entsprechend abfahre. Der Motor wird auf jeden Fall so angesteuert, damit er seine eigentliche Geschwindigkeit um ein vielfaches überschreitet. Viele Grüße
Michael Klose schrieb: > Hallo Karl-Heinz, > > danke für die Antwort. > Ich habe nochmal mit dem Verantwortlichen für die Ansteuerung des Motors > gesprochen und der hat mir die 'ganze Wahrheit' erklärt. Das Ganze ist > noch deutlich komplexer, als ich bisher angenommen hatte... > Es wird wohl darauf hinauslaufen, dass ich mir für die Bewegung eine > Loop-Up-Table erstelle(n lasse) und diese dann entsprechend abfahre. > Der Motor wird auf jeden Fall so angesteuert, damit er seine eigentliche > Geschwindigkeit um ein vielfaches überschreitet. Der wichtigste Punkt dürfte sein: Worauf wird in der Simulation das Augenmerk gelegt? Welche Effekte müssen simuliert werden? Mach auch nicht den Fehler, dass du Effekte in das System hineinprogrammieren musst. Es kann durchaus sein, dass sich bestimmte Effekt von ganz alleine ergeben. Beispiel: Du kennst doch sicherlich das System: Spiralfeder mit einer Masse unten dran Wenn man die Feder am anderen Ende zyklisch auf/ab bewegt gibt es irgendwo eine ganz bestimmte Frequenz, bei der sich das System aufschaukelt und die sog. Resonanz entsteht. Natürlich kann man da jetzt mit Formeln nur so um sich schmeissen, aber zb bei einer ganz simplen Partikelsimulation des Systems (also einfach nur Kräfte auusrechnen und die nach Newton bis zur Wegänderung) aufintegrieren, ergibt sich das Resonanzverhalten ganz von alleine. Das Simulationsprogramm weiß nichts davon und trotzdem erzeugt es den Effekt. Anderes Beispiel: 2 Körper Gravitationsproblem. 2 Massen auf einer Ebene ziehen sich an. Kraft->Beschleunigung->Geschwindigkeit->Positionsänderung Dieses Beispiel simuliert ohne irgendwelche sonstigen Zutaten die 3 Kepler Gesetze zur Planetenbewegung ohne davon etwas zu wissen. Anderes Beispiel: Ich habe mal eine Stoffsimulation gemacht, indem ich den Stoff in lauter kleine 4-Ecke zerteilt habe, an die Ecken der Stoffpatches kleine Partikel gesetzt habe und diesen ein Verhalten eingebleut habe: Jedes Partikel versucht den Abstand zum Nachbar zu halten, ist der Abstand falsch resultiert daraus eine Kraft die versucht beide Partikel zurechtzuschieben. Dazu noch Gravitation und eine Windkraft die davon abhängt wie der Stoffpatch im Wind steht. Dann wieder: Kraft->Beschleunigung->Geschwindigkeit->Weg. Was soll ich sagen: Der Vorhang hat wunderbar im Wind geflattert. Worauf ich hinaus will. Ein ganz simples Simulationsmodell kann erstaunlich komplexe Effekte simulieren ohne davon etwas zu wissen oder das diese explizit in das Simulationsmodell einprogrammiert wurden. Sie ergeben sich einfach. Und je weiter 'unten' man mit der Physik ansetzt, so scheint es, desto reichhaltiger wird die Simulation. Auch sollte man sich darüber Gedanken machen, wie genau die Simulation sein soll. Welche Werte erwartet man sich, welcher Fehler ist erlaubt.
naja, die 40ms sind ja vom Stehezustand (0 Winkelgeschwindigkeit) aus notwendig. Ich glaube nicht, dass vom Schritt n zum Schritt n+1 der Motor auf 0 Winkelgeschwindigkeit abbremst. Das heisst, die Anfangsbedingungen im Schritt n+1 sind anders. w ist dann grösser. 7.5°^/1.8ms => 11.57 Umdrehungen per Sekunde und das, auch wenn ich nie mit Schrittmotoren etwas gemacht habe, fühlt sich für mich durchaus niedrig an.
Da sind von vornherein noch ein paar Kleinigkeiten im Argen: Michael Klose schrieb: > ich merke gerade mal wieder, dass Physik nicht so einfach ist... Siehste, sind wir schon zwei :-> > Dieser hat - laut Datenblatt - eine Radialbeschleunigung von > 167 rad/s^2. Sicher? Die Radialbeschleunigung trägt nämlich nicht zur Änderung der Winkelgeschwindigkeit (oder Drehzal) bei! Ich denk, da is ein formaler Fehler passiert. > Im ersten Schritt geht es darum auszurechnen, wie lange der Schrittmotor > für einen Schritt von 7,5 ° braucht. > Also die Formel Winkel = 1/2 x Radialbeschleunigung x Zeit^2 nach der > Zeit aufgelöst und ausgerechnet, dass der Motor dafür ca. 40 ms brauchen > sollte. Die würde er auch brauchen, wenn er den Schritt aus dem Stillstand heraus mit konstanter Beschleunigung tätigte. Aber ich denke, du kannst dir sehr gut ausmalen, die Beschleunigung anfänglich mehr Ruck als konstant ist, vorallem aber, dass der Motor im Betrieb nach jedem Schritt nicht wieder aus dem Stillstand heraus beschleunigt! Wenn man den Motor entsprechend ansteuert, so eilt die Kraftfront dem Rotor ein winziges Stücken voraus und zieht ihn sicher im Kreis. Wenn du die Takte allerdings derart langsam anlegst, dass der Rotor bei jedem Schritt im Magnetfeld des Taktes rastet, so wirste auch bald einen Moment Schlupf haben, wenn du weiterhin mit 1,8ms weiterziehst.
Guten Morgen, erstmal vielen Dank für Eure Antworten. Karl heinz Buchegger schrieb: > Worauf ich hinaus will. > Ein ganz simples Simulationsmodell kann erstaunlich komplexe Effekte > simulieren ohne davon etwas zu wissen oder das diese explizit in das > Simulationsmodell einprogrammiert wurden. Sie ergeben sich einfach. Und > je weiter 'unten' man mit der Physik ansetzt, so scheint es, desto > reichhaltiger wird die Simulation. Danke für den Beitrag. Ich denke ich werde mich noch 'etwas' in die Physik einarbeiten müssen und dann mal sehen, wo es mit meiner Simulation hingeht. Ich war erstmal eben sehr erstaunt über die funktionierende Ansteuerung, aber nachdem mir dann die Hintergründe etwas erläutert wurden sehe ich jetzt auch ein, dass das Ganze funktionieren kann :-) Viele Grüße und einen guten Wochenstart
Ich spiel gerade mit einer Schrittmotorsimulation :-) Das eine Ende des Rotors wird von den eingeschalteten Spulen am Rand angezogen (quadratische Abnahme). Die Summe aller Kräfte wird auf die Tangente am Rotorende projeziert. Danach das übliche: Summe der Kräfte gibt die Beschleunigung, Beschleuigung zur Geschwindigkeit aufintegriert, Geschwindigkeit sorgt für eine Verdrehung. Der Rotor hat Trägheit und Lagerreibung, wird also ohne Beschleunigung langsamer. Lässt man den Motor zu schnell beschleunigen, kommt der Rotor nicht mehr mit und zappelt nur noch rum. Und ja ich weiß: Es gibt keine magnetische Monopole :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.