Hej Leute,
ich stehe aktuell etwas vor einer Wissenslücke und hoffe hier guten
Input zu bekommen.
Zum Problem: Ich hab eine Schrittmotor der 400 steps/U im
Halbschrittverfahren macht. Dem ganzen gebe ich ein P-T1 verhalten auf
dem µ-Controller vor. Für die Parameter gilt:
* P = 1
* T1 = 0.1
Nun möchte ich für den Motor die Position regeln unter einem gewünschten
Führungsverhalten. Für die Drehzahlregelung kommt mittels
Polkompensation ein P-I Regler heraus. So weit so gut. Jetzt stehe ich
vor der Frage, ob sich bei der Positionsregelung meine Strecke einfach
nur um einen Integrator erweitert oder wie ich das berücksichtigen muss.
Meine Gedanken dazu:
Für Gr(s) erhalte ich nun einen PD Regler was mich etwas stutzig macht.
Eventuell kann mir ja hier jemand auf die Sprünge helfen.
Und dann würde mich mal mal interessieren wie man die reale T1 bei einem
Schrittmotor erhält ohne dass er aus dem Tritt kommt.
Strommessung ist nicht möglich, da der Stepper nur über eine H-Brücke
angesteuert wird und das Bitmuster hart durchgefahren wird.
Philipp M. schrieb:> Strommessung ist nicht möglich, da der Stepper nur über eine H-Brücke> angesteuert wird und das Bitmuster hart durchgefahren wird.
Das ist der Stand, wie Schrittmotoren in den 80er Jahren des vorigen
Jahrhunderts betrieben wurden. Fast jeder aktuelle Schrittmotor macht
eine Stromregelung.
Hast du schon einmal über eine Aktualisierung deiner Hardware
nachgedacht.
Was benutzt du als Positionssensor, um deinen Istwert für die Regelung
zu bestimmen?
Rainer W. schrieb:> Das ist der Stand, wie Schrittmotoren in den 80er Jahren des vorigen> Jahrhunderts betrieben wurden. Fast jeder aktuelle Schrittmotor macht> eine Stromregelung.> Hast du schon einmal über eine Aktualisierung deiner Hardware> nachgedacht.
Es freut mich wirklich ausgesprochen solche Antworten zu erhalten...
Beantwortet nur leider nicht meine Frage. Und nein die Hardware bleibt
so wie sie ist.
Rainer W. schrieb:> Was benutzt du als Positionssensor, um deinen Istwert für die Regelung> zu bestimmen?
Es wird lediglich zu Beginn die Mittelposition durch zwei Endlagentaster
ermittelt und danach wird per Software die Position ermittelt. Heißt pro
Step 360°/400.
Kann schon sein, dass Du den Kommentar über den Halbschrittbetrieb nicht
magst. Allerdings hat er im Kern recht. Gerade beim unstetigen
Halbschrittbetrieb brauchst Du keinen Regler mehr sondern einen
gemächlichen Zähler, der zur gewünschten Position hinömmelt. Nachdem Du
bei verschiedenen Temperaturen uns sonstigen Einflüssen geprüft hast,
was möglich ist, diese Zeit noch einmal verdoppeln. Oder Du nimmst einen
modernen Microstepping-Treiber und kannst die Verfahrzeiten dann
tatsächlich mit einem Regler vlt. auf das 10-fache optimieren.
Harald A. schrieb:> Gerade beim unstetigen> Halbschrittbetrieb brauchst Du keinen Regler mehr sondern einen> gemächlichen Zähler, der zur gewünschten Position hinömmelt.
Das mag ja alles sein und will ich auch gar nicht abstreiten nur bringt
mir das leider überhaupt nichts. Die Motorregelung ist nur eine
unterlagerte Regelung des Gesamtsystems. Daher benötige auch für den
Stepper im Halbschrittverfahren eine vernünftige Übertragungsfunktion
sowie Positionsregelung. Deshalb seht mir bitte nach, dass eure sicher
gut gemeinten Hinweise nicht zielführend für mich sind. Die Hardware
kann zum derzeitigen Projektstand nicht mehr geändert werden. Dafür
fehlt leider die Zeit. Dass die derzeitige Ausführung nicht Optimal ist,
war auch schon eine persönliche Erkenntnis, die ich vorher hatte. Tut
nur jetzt nichts mehr zu Sache.
Daher nochmal die Bitte, meine Ausgangsfrage wenn zu beantworten. Vielen
Dank.
Harald A. schrieb:> Oder Du nimmst einen> modernen Microstepping-Treiber und kannst die Verfahrzeiten dann> tatsächlich mit einem Regler vlt. auf das 10-fache optimieren.
Ok also bedeudet, dass man dort dann quasi die Sprungantwort aufzeichnet
und anhand dessen die Parameter abliest? Bleibt für mich eigentlich nur
die Frage wie es mit der Positionsregelung aussieht, ob mein Ansatz
richtig ist?
Beim Halbschrittbetrieb sehe ich persönlich keinen P(ID)-Regler. Wenn Du
ganz sicher gehen willst, senkst Du meinetwegen bei Positionsdifferenzen
>5 die „Geschwindigkeit“ auf ein 1/4 des empirisch ermittelten Maximums
zurück.
So ganz verstehe ich, wenn ich ehrlich bin, deine Antwort grade noch
nicht auf meine Frage des Vorgehens zur Reglerauslegung.
Die Position braucht auf alle Fälle eine Regelung.
Evtl. stehe ich auch auf dem Schlauch, Du hast Soll- und Istposition.
Solange Ist<>Soll fährst Du vor- oder rückwärts in ganzen Schritten,
ansonsten einfach Stillstand. Eine Regeldifferenz verbleibt ja nie. Du
hast ein Open-Loop System ohne Rückmeldung, richtig?
Bei einem System, wo Du tatsächlich über einen weiten Bereich
beschleunigen und abbremsen könntest, bräuchtest Du einen Regler, der
bei großen Differenzen das System auf ein Maximum beschleunigt und vor
dem Ziel wieder passend abbremst, passend zum Gesamtsystem.
Bei Halbschrittbetrieb ist die maximale Frequenz doch derart limitiert,
dass man über Beschleunigung und Abbremsung doch garnicht nachdenken
müsste. Sicherheitshalber könnte man kurz vor Erreichen des Ziels
nochmal langsamer werden, sofern überhaupt erforderlich.
Philipp M. schrieb:> Nun möchte ich für den Motor die Position regeln
Bei Schrittmotoren regelt man nicht die Position wie bei einem
Voicecoil-Antrieb oder Servomotor, sondern msn fährt sie einfach an,
dafur ist es ja ein Schrittmotor, der tut was du ihm befiehlst,
klugerweise mit Beschleunigungs- und Bremsrampen.
Insofern ist dein ganzer Regelansatz Kokolores.
Du bekommst einen Sollwert, und fährst du einfach hin, nix Regelung.
Harald A. schrieb:> Du> hast ein Open-Loop System ohne Rückmeldung, richtig?
Nein da die Positionsregelung nur ein unterlagerter Regler ist um die
Gesamtdynamik zu beschleunigen, ist es closed Loop.
Um den äußeren Regler auslegen zu könnnen, benötige ich auch eine
Übertragungsfunktion für die Position und kann nicht wild irgendwelche
Rampen fahren.
Michael B. schrieb:> klugerweise mit Beschleunigungs- und Bremsrampen
Und die Übertragungsfunktion für den Gesamtregelkreis definierst du dann
genau wie? Nochmal, die Positionsregelung ist nur eine unterlagerte
Regelung des Gesamtsystems. Mir ist durchaus klar, dass man auch einfach
wild irgendwelche Positionen anfahren kann, nur bringt mir das für das
Gesamtsystem überhaupt nichts.
Vielleicht hilft es um etwas Klarheit zu schaffen wieso ich eine
Übertragungsfunktion für die Positionsregelung brauchen.
Im Anhang ist das Gesamtsystem.
Unterlagerter Regler, Gesamtdynamik, Übertragungsfunktion, plötzlich
closed Loop…
An dieser Stelle wäre mal eine Übersicht angebracht, was Du vor hast.
Edit: Skizze da, hat sich überschnitten
Edit2: Obwohl, was soll das sein?
Edit3: Ich bin raus
Philipp M. schrieb:> Und die Übertragungsfunktion für den Gesamtregelkreis definierst du dann> genau wie?
Ja, die Stellgeschwindigkeit hat Einfluss auf die Übertragungsstrecke,
und die Rampen bewirken eine nichtlineare Verzögerung bis nach
Sollwertänderung die Position erreicht ist. Aber ähnlich wie ein
Heizstab der einen Boiler aufheizt und dabei der Boiler KEIN Regler ist,
ist der Schrittmotor und dessen Positionsansteuerung auch kein Regler.
> Nochmal, die Positionsregelung ist nur eine unterlagerte> Regelung des Gesamtsystems
Nochmal: die Position wird nicht geregelt, sondern angefahren.
Philipp M. schrieb:> Vielleicht hilft es um etwas Klarheit zu schaffen wieso ich eine> Übertragungsfunktion für die Positionsregelung brauchen.
Du suchst eine Übertragungsfunktion, die es für einen Schrittmotor so
nicht gibt, weil das Verhalten amplitudenabhängig ist. Die Zeitkonstante
hängt von der Sprungamplitude ab.
Harald A. schrieb:> Unterlagerter Regler, Gesamtdynamik, Übertragungsfunktion,> plötzlich closed Loop…> An dieser Stelle wäre mal eine Übersicht angebracht, was Du vor hast.> Edit: Skizze da, hat sich überschnitten> Edit2: Obwohl, was soll das sein?> Edit3: Ich bin raus
Das hatte ich bereits in Teilen auf deinen ersten Beitrag geantwortet…
Dennoch danke für deinen Beitrag.
Michael B. schrieb:> Philipp M. schrieb:>> Und die Übertragungsfunktion für den Gesamtregelkreis definierst du dann>> genau wie?>> Ja, die Stellgeschwindigkeit hat Einfluss auf die Übertragungsstrecke,> und die Rampen bewirken eine nichtlineare Verzögerung bis nach> Sollwertänderung die Position erreicht ist. Aber ähnlich wie ein> Heizstab der einen Boiler aufheizt und dabei der Boiler KEIN Regler ist,> ist der Schrittmotor und dessen Positionsansteuerung auch kein Regler.>> Nochmal, die Positionsregelung ist nur eine unterlagerte>> Regelung des Gesamtsystems>> Nochmal: die Position wird nicht geregelt, sondern angefahren.
Sehr merkwürdiges Beispiel. Der Boiler ist auch mit Sicherheit kein
Stellglied welches geregelt werden kann…
Rainer W. schrieb:> Philipp M. schrieb:>> Vielleicht hilft es um etwas Klarheit zu schaffen wieso ich eine>> Übertragungsfunktion für die Positionsregelung brauchen.>> Du suchst eine Übertragungsfunktion, die es für einen Schrittmotor so> nicht gibt, weil das Verhalten amplitudenabhängig ist. Die Zeitkonstante> hängt von der Sprungamplitude ab.
Hmm ich denke die Übertragungsfunktion habe ich ja prinzipiell mit dem
PT1 Verhalten. Die Motorfrequenz folgt ja prinzipiell dem vorgegebenen
Verhalten. Sei mal dahingestellt ob es sinnvoll oder richtig für einen
Stepper Motor ist. Mich interessiert eigentlich nur ob meine
Herangehensweisen richtig wäre um die Position zu regeln ohne Motorstrom
zu kennen.
Philipp M. schrieb:> Der Boiler ist auch mit Sicherheit kein Stellglied welches geregelt> werden kann…
Der Schrittmotor wird auch nicht geregelt.
Aber die Temperatur des Boilers kann über das Ein- Ausschalten des
Heizelements genau so wie die vom Schrittmotor angefahrene Position (der
ein Ventil, eine Drosselklappe, was weiss ich, der TO verschweigt es ja
beharrlich) dann die Leerlaufdrehzahl oder Durchflussmenge geregelt
werden kann.
Michael B. schrieb:> Philipp M. schrieb:>> Der Boiler ist auch mit Sicherheit kein Stellglied welches geregelt>> werden kann…>> Der Schrittmotor wird auch nicht geregelt.> Aber die Temperatur des Boilers kann über das Ein- Ausschalten des> Heizelements genau so wie die vom Schrittmotor angefahrene Position (der> ein Ventil, eine Drosselklappe, was weiss ich, der TO verschweigt es ja> beharrlich) dann die Leerlaufdrehzahl oder Durchflussmenge geregelt> werden kann.
Ich verschweige es nicht sonder habe es bisher als nicht relevant
betrachtet weil es auch eigentlich nicht meine Frage war. Es geht um den
Versuch Ball on a beam. Dabei muss der Winkel des Motors geregelt werden
um den Winkel der Wippe zu stellen und die Kugel auf eine bestimmte
Position zu bringen.
Und wie kommt die Rückmeldung des Ist Winkel rein? Der SM hat eine
maximale Schrittfrequenz, die steht im Datenblatt. Mit zunehmender
Frequenz nimmt das Drehmoment ab, danach muss man Motor und Frequenz
auswählen. Und die Frequenz darf ungeregelt nicht zu stark springen,
sonst gibt es auch da Schrittverluste. Den Strom bei einer einfachen H
Brücke zu kennen nutzt dabei auch nichts, der steigt nicht mit der Last.
Gute Treiber können über die Messung der Gegen EMK einen Stillstand
erkennen, besser sind aber echte CL mit Encoder. Die können dann mehrere
Schritte nachholen wenn die Ansteuerung zu schnell war.
> Du suchst eine Übertragungsfunktion, die es für einen Schrittmotor so> nicht gibt, weil das Verhalten amplitudenabhängig ist.
Ich verstehe natuerlich was du sagen willst und natuerlich hast
du recht. Aber vermutlich kann man fuer so ziemlich alles im
Leben eine Uebertragungsfunktion angeben, aber fuer so einen
Schrittmotor waere das Verhalten wohl nichtlinear da er zwischen
jedem einzelnem Schritt unterschiedlich beschleunigt. Mit etwas
Abstand betrachtet koennte man auch sagen das er zwischen jedem
einzelnen Schritt einfach springt. Und dieses verhalten
wird dann nochmal nichtlinear multipliziert wenn man viele
Schritte faehrt weil dann der Regler ueblicherweise beschleunigt
und abbremst.
Da stelle ich mir die Frage was man mit der Uebertragungsfunktion
will selbst wenn man sie angeben koennte weil es die weitere
Betrachtung vermutlich SEHR komplex machen wuerde.
Vanye
Philipp M. schrieb:> Mich interessiert eigentlich nur ob meine Herangehensweisen richtig wäre> um die Position zu regeln ohne Motorstrom zu kennen.
Die Position eines Schrittmotors hat mit dem Strom überhaupt nichts zu
tun. Der Strom stellt lediglich sicher, dass der Motor nicht ausrastet,
d.h. dass der Motor dem angelegten Feld folgt, ohne dass der Lastwinkel
über 90° ansteigt.
Um die Schrittmotorposition zu kennen, musst du nur den Schrittzähler
auslesen Wenn der Schrittmotor auf Grund dynamischer oder statischer
Last Schritte verliert, hast du sowieso verloren.
> Um die Schrittmotorposition zu kennen, musst du nur den Schrittzähler> auslesen
Das ist richtig wenn du einen Schrittmotor mit etwas Abstand
betrachtest. Und das machen ja auch alle anderen Menschen so weil dann
ein Schrittmotor keine Regelung sondern eine Steuerung ist. Im Gegensatz
zu deutlich komplexeren Linearmotoren. Aber wenn man nur scharf genug
reinschaut dann wird man irgendwann sehen das ein Schrittmotor zwischen
zwei Schritten beschleunigt und abbremst. Das waere dann natuerlich
Teile einer Funktion.
Vanye
Philipp M. schrieb:> Hmm ich denke die Übertragungsfunktion habe ich ja prinzipiell mit dem> PT1 Verhalten. Die Motorfrequenz folgt ja prinzipiell dem vorgegebenen> Verhalten.
Spätesten bei Betrachtung der Sprungantwort stimmt das nicht mehr, weil
der Schrittmotor eine Beschleunigungsrampe fahren muss, bei höherer
Frequenz nimmt das Drehmoment außerdem kräftig ab, insbesondere wenn der
Motor nicht stromgeregelt betrieben wird.
Hallo, für die Bahnplanung, Rampengenerierung gibt es ganz
unterschiedliche Lösungen, oft ein Aufsummieralgorithmus. Mit einem
Regler geht's vermutlich auch, darauf wär ich nicht gekommen 😉. Der kann
dann aber auch überschwingen und man hat keine Einheiten (m/s, m/s2).
Aber warum nicht, viele Wege führen nach Rom...
Rainer W. schrieb:> bei höherer> Frequenz nimmt das Drehmoment außerdem kräftig ab, insbesondere wenn der> Motor nicht stromgeregelt betrieben wird.
Er will sogar den Worstcase: Halbschrittbetrieb an H-Brücke(?) ohne
Stromregelung (also mit Nennspannung). Man kann sich anhand der
Induktivität ausrechnen, ab welcher Freuquenz der Stromanstieg nicht
mehr ausreicht, vor allem beim unstetigen Halbschrittbetrieb. Der Punkt
kommt SEHR schnell.
Ich denke, da fehlen vor lauter Regelungstheorie ein paar Grundlagen zum
sinnvollen Betrieb eines Schrittmotors.
Philipp M. schrieb:> Es geht um den Versuch Ball on a beam.
Da erscheint mit rin voice coil Antrieb des Balkens klüger, wie ein
Leerlaufregelventil meines alten Autos, ein DC Motor der sich nur um 90
Grad dreht.
Oder wenigstens ein DC Servomotor.
Aber ein Schrittmotor ? Bedeutet doch positionsdiskrete Ansteuerung. Na
ja, auch nicht anders als ein Boiler dessen Heizstab nur Stufen kann,
und mit dem man trotzdem alle möglichen Endtemperaturen erreichen will.
Wie regelst du da die Heizleistung ? Gar nicht, der Temperaturregler
wählt die passende Stufe, der Boiler macht dann schon.
Die maximale Geschwindigkeit und Beschleunigung kann das System
eventuell selber ausmessen: immer schnellere Pendelbewegungen machen und
dabei kontrollieren ob die Referenz noch an der richtigen gezählten
Position kommt. Darauf muss der Regelausgang dann limitiert werden.
Hört sich ja sehr nach Übungsaufgabe an wenn die HW gegeben ist.
Rainer W. schrieb:> Spätesten bei Betrachtung der Sprungantwort stimmt das nicht mehr, weil> der Schrittmotor eine Beschleunigungsrampe fahren muss, bei höherer> Frequenz nimmt das Drehmoment außerdem kräftig ab, insbesondere wenn der> Motor nicht stromgeregelt betrieben wird.
Was soll bei der Sprungantwort nicht mehr stimmen, wenn die
Zielkreisfrequenz durch bloßes PT1 Verhalten nachgebildet wird. PT1
verhält sich zu Beginn ja auch wie eine Rampe und nimmt dann
exponentiell ab. Daher verstehe ich diesen Einspruch nicht.
Dazu mal eine Messung des Motors. Gelb die theoretische Sprungantwort
und orange die Drehzahl des realen Steppers. Stimmt exakt überein. Daher
erkläre mir gerne was nicht mehr übereinstimmt?
Rainer W. schrieb:> Wenn der Schrittmotor auf Grund dynamischer oder statischer> Last Schritte verliert, hast du sowieso verloren.
Das ist klar, daher wurde empirisch ermittelt bis zu welcher Frequenz
dies nicht der Fall ist und das Stellglied in seiner Frequenz und Winkel
begrenzt.
Harald A. schrieb:> Ich denke, da fehlen vor lauter Regelungstheorie ein paar Grundlagen zum> sinnvollen Betrieb eines Schrittmotors.
Würde ich auch gar nicht abstreiten, nur ist das doch vollkommen
unrelevant für meine Frage... Es geht doch rein ums Verständnis. Ob der
Stepper nun mit einer Rampe bis zur Position hart angefahren wird oder
PT1 Verhalten für seine Beschleunigung hat mit nem geschlossenen
Regelkreis für die Position, wo ist da der Unterschied?
J. S. schrieb:> Hört sich ja sehr nach Übungsaufgabe an wenn die HW gegeben ist.
Jaein, ich entwickle diesen Versuch im Rahmen meine Bachelorarbeit und
unter anbetracht der verbleibenden Zeit lässt sich die Hardware leider
nicht mehr austauschen. Rückblickend würde ich heute auch einen anderen
Motor wählen beziehungsweise einen anderen Treiber als eine simple
H-Brücke. Dafür ist nur leider jetzt nicht mehr genügend Zeit. Daher
bringen eure ganzen Änderungsvorschläge zur Hardware auch nur noch
bedingt etwas auch wenn ich sie durchaus nachvollziehen kann.
Hallo Philipp,
ich fürchte du gehst das Problem von der falschen Seite an...
Philipp M. schrieb:> Harald A. schrieb:>> Du>> hast ein Open-Loop System ohne Rückmeldung, richtig?>> Nein da die Positionsregelung nur ein unterlagerter Regler ist um die> Gesamtdynamik zu beschleunigen, ist es closed Loop.
Nein, davon das du es so nennst, ist es kein closed loop. Ein Regelkreis
entsteht erst, wenn du den Istwert zurückführen kannst. Und dafür muss
man ihn üblicherweise messen.
> Rainer W. schrieb:>> Was benutzt du als Positionssensor, um deinen Istwert für die Regelung>> zu bestimmen?>> Es wird lediglich zu Beginn die Mittelposition durch zwei Endlagentaster> ermittelt und danach wird per Software die Position ermittelt. Heißt pro> Step 360°/400.
...und das scheint mir hier nicht der Fall zu sein. Oder machst du
irgendeine andere Magie, Beobachter o.ä.? Mal doch mal ein
Blockschaltbild auf.
Mit freundlichen Grüßen
Thorsten Ostermann
Hallo Philipp,
Philipp M. schrieb:> Harald A. schrieb:>> Ich denke, da fehlen vor lauter Regelungstheorie ein paar Grundlagen zum>> sinnvollen Betrieb eines Schrittmotors.>> Würde ich auch gar nicht abstreiten, nur ist das doch vollkommen> unrelevant für meine Frage... Es geht doch rein ums Verständnis.
Und für das Verständnis benötigt man Grundlagen. Dir fehlt das
Verständnis offensichtlich.
Mit freundlichen Grüßen
Thorsten Ostermann
Thorsten O. schrieb:> Nein, davon das du es so nennst, ist es kein closed loop. Ein Regelkreis> entsteht erst, wenn du den Istwert zurückführen kannst. Und dafür muss> man ihn üblicherweise messen.
Schau mal den gesamten Verlauf bitte durch. Etwas weiter oben ist der
Gesamte Regelkreis abgebildet. Der Winkel wird nur indirekt
gemessen/bestimmt indem die Schritte gezählt werden und anhand der steps
per revolution lässt sich nach Initialisierung der Position ja sehr
leicht bestimmen. Dabei wird davon ausgegangen, dass keine Schritte
verloren gehen und das Stellglied soweit begrenzt wird, dass es nicht
außer Tritt kommt.
Thorsten O. schrieb:> ...und das scheint mir hier nicht der Fall zu sein. Oder machst du> irgendeine andere Magie, Beobachter o.ä.? Mal doch mal ein> Blockschaltbild auf.
Die Initialisierung wird selbstverständlich vor dem Start des
Regelkreises durchgeführt.
Hallo Philipp,
Philipp M. schrieb:> Thorsten O. schrieb:>> Nein, davon das du es so nennst, ist es kein closed loop. Ein Regelkreis>> entsteht erst, wenn du den Istwert zurückführen kannst. Und dafür muss>> man ihn üblicherweise messen.>> Schau mal den gesamten Verlauf bitte durch. Etwas weiter oben ist der> Gesamte Regelkreis abgebildet. Der Winkel wird nur indirekt> gemessen/bestimmt indem die Schritte gezählt werden und anhand der steps> per revolution lässt sich nach Initialisierung der Position ja sehr> leicht bestimmen. Dabei wird davon ausgegangen, dass keine Schritte> verloren gehen und das Stellglied soweit begrenzt wird, dass es nicht> außer Tritt kommt.
Genau, und das nennt man open-loop oder Steuerung. Das ist das Gegenteil
vom closed-loop. Du brauchst keinen Positionsregler, sondern einen
Sollwertgenerator.
Mit freundlichen Grüßen
Thorsten Ostermann
Thorsten O. schrieb:> open-loop oder Steuerung.
Zeig mir bitte wo in der Grafik der Winkel als Open Loop angefahren
wird. Ich bin ja durchaus Lernwillig, nur sehe ich bei weitem nicht wo
dort der Winkel Open Loop sein soll.
Ich würde den äußeren Regler erst mal weitgehend ohne Berücksichtigung
des Antriebs auslegen:
- Eingang: Position, Geschwindigkeit, Winkel der Rampe
- Ausgang: Sollwinkel der Rampe laut Regelcharakteristik
Dann den Schrittmotor ansteuern und das ganze mal testen.
Nachfolgend hängts von den mechanischen Eigenschaften, der maximalen
Störung und der Geschwindigkeit / Genauigkeit der Sensorik ab.
Denn: sind Geschwindigkeit und Position mit hoher Genauigkeit und
Frequenz bekannt ist der aktuelle Winkel der Rampe unwichtig.
Bei nur seltenen / ungenauen Werten - oder wenn die Geschwindigkeit
nicht gemessen wird - geht's dagegen drum die Auswirkungen durch die
Winkeländerung vorherzusagen und beim Winkel evtl. "vorzuhalten". Dann
wird evtl. noch der konkrete Verlauf der Winkeländerung benötigt um die
Geschwindigkeit zu errechnen bzw. zumindest den Messwert per
Kalman-Filter o.Ä. zu verbessern.
Leider gibt es für den Antrieb keine verwertbare Sprungantwort (der
Stepper ist nicht linear). Zumindest nicht für "schnellen" Betrieb.
Evtl. reicht aber die geringe Stellgeschwindigkeit für einen Single-Step
in der Praxis aus: Ausprobieren welche Frequenz aus dem Stand ohne
Schrittverlust maximal geht und dann ggf. diese Periodendauer zu 60% auf
ein Totzeitglied und zu 40% auf ein PT2-Glied aufteilen. Praktische
Ansteuerung dann nur etwa mit der halben Frequenz (limitierte
Stellgeschwindigkeit).
Auf nem kleinen Controller lässt sich aber eigentlich easy die aktuelle
Winkelgeschwindigkeit des Steppers und eine dynamische Kennlinie mit
verarbeiten. Macht man halt 5 Iterationen und steuert das dann
entsprechend. Da darf dann auch die Schrittfrequenz zwischen 100 und
4000 Hz variieren.
Kann man sogar noch unterschiedliche Geschwindigkeiten für "auf und ab"
und je nach Position des Balls berücksichtigen.
Auflösung der Mechanik ist auch noch so ne Sache. +-30 Grad am Stepper
sind noch gut linearisierbar. Sind dann vielleicht +-10 Grad an der
Ebene. Aber +-30 Grad sind halt nur 67 Halbschritte. Flummi bleibt da
liegen, Metallkugel wegen der Durchbiegung auch, Tischtennisball wird
problematisch.
Philipp M. schrieb:> nur sehe ich bei weitem nicht wo> dort der Winkel Open Loop sein soll.
Dein Schrittmotor befindet sich außerhalb der Regelschleife --> open
loop!
Hallo Philipp,
Philipp M. schrieb:> Thorsten O. schrieb:>> open-loop oder Steuerung.>> Zeig mir bitte wo in der Grafik der Winkel als Open Loop angefahren> wird. Ich bin ja durchaus Lernwillig, nur sehe ich bei weitem nicht wo> dort der Winkel Open Loop sein soll.
Erklär mir bitte mal, wie du da den Istwert zurückführst, ohne ihn zu
messen. Tatsächlich setzt du implizit Sollwert=Istwert und führst damit
den Sollwert(!) zurück. Das ist dann aber kein geschlossener Regelkreis.
Mit freundlichen Grüßen
Thorsten Ostermann
Philipp M. schrieb:> Dabei wird davon ausgegangen, dass keine Schritte> verloren gehen und das Stellglied soweit begrenzt wird, dass es nicht> außer Tritt kommt.
Lol.
So viel Theorie am Anfang und dann - "es wird davon ausgegangen"?
Das Einzige, wovon du mit Sicherheit ausgehen kannst ist, dass aus
dem Ganzen auf diese Art nie etwas vernünftiges wird.
Aber wenn du unbedingt im Betrieb die "genaue" Position raten willst:
Ein paar Striche auf der Antriebsscheibe, eine Reflexlichtschranke
und du brauchst nicht mehr von irgendetwas "auszugehen", du kannst
es messen, Grenzbereiche ermitteln und diese Werte später verwenden.
Philipp M. schrieb:> Dabei wird davon ausgegangen, dass keine Schritte verloren gehen und das> Stellglied soweit begrenzt wird, dass es nicht außer Tritt kommt.
Mit dem begrenzten Stellglied ist es dann vorbei mit dem linearen
Regler.
Philipp M. schrieb:> Jaein, ich entwickle diesen Versuch im Rahmen meine Bachelorarbeit und> unter anbetracht der verbleibenden Zeit lässt sich die Hardware leider> nicht mehr austauschen. Rückblickend würde ich heute auch einen anderen> Motor wählen beziehungsweise einen anderen Treiber als eine simple> H-Brücke. Dafür ist nur leider jetzt nicht mehr genügend Zeit.
Ich kann nur dringend empfehlen, diese Erkenntnisse möglichst genau zu
dokumentieren. Auch mit einer technisch nicht so guten Lösung lässt sich
eine super Note erzielen, wenn genau erklärt werden kann, warum sich der
gewählte Ansatz nicht bewährt hat und was/wie man es besser machen
könnte.
Irgendwo müssen ja ein paar Hürden liegen. Sonst is ja zu einfach. ;)
Wobei der Teufel vermutlich wie meistens in den gar nicht so wichtigen
Details liegt.
Das System zu ner ordentlichen Funktion zu bringen sollte nicht zu
kompliziert sein. Das meiste is Dokumentation und das ganze formale
Zeugs.
Wenn du unbedingt eine Rückführung haben willst, dann nimm halt einen
Steppermotor mit integriertem Treiber, der kann dann tatsächlich in
Grenzen den Motorstrom nach der Belastung anpassen. Die Dinger sind
insgesamt nicht grossartig teurer wie Stepper und dazu passender
Treiber, zumindest wenn das einer sein soll, der wirklich was taugt,
also nicht diese TB6600.
Und Zeit ist kein Argument, hier in Deutschland bestellt hast du die
Teile 3 Werktage später im Briefkasten.
Eigentlich war es ja genau der einzige Sinn der Schrittmotoren diese aus
der Regelung rauszunehmen, um den Sensor und die Verarbeitung des
Ist-Signals zu sparen. Der Motor selbst als solcher ist Mist.
Wirkungsgrad, Geschwindigkeit, Drehmoment, Dynamik - alles mehr als
mittelmässig. Der Einzige Vorteil, wenn man die Sache nicht
überstrapaziert: theoretische und praktische Postion stimmten ohne
Rückmeldung überein. Leider ist es eben nicht immer so.
Aufgrund der Nachteile stirbt der SM so langsam aus.
Uli S. schrieb:.
> Und Zeit ist kein Argument, hier in Deutschland bestellt hast du die> Teile 3 Werktage später im Briefkasten.
Das ging mir auch durch den Kopf. Bei Amazon kannst Du entsprechende
„Shields“ (ich weiß, Thorsten mag den Begriff nicht) binnen 24h an die
Burg bekommen. Die gibt es dank aller möglichen xyz-Tische
millionenfach.
Und so ein Treiber mit Step und Dir Eingang macht die Sachen nicht
komplizierter sondern tendenziell einfacher. Wenn es tatsächlich ein
bidirektionaler Motor ist dauert der Austausch des Treibers 30min. Was
ein Problem sein könnte ist die Spannung des Motors. Für den
Chopperbetrieb sollte die eher klein sein, da die Betriebsspannung des
Treibers natürlich Grenzen hat.
> Leider ist es eben nicht immer so.> Aufgrund der Nachteile stirbt der SM so langsam aus.
Na, das sehe ich nicht so. Der Schrittmotor hat eine Menge Nachteile,
aber auch ein paar Vorteile. Der wird bis zum juengsten Tag erhalten
bleiben.
Ich kenne z.B eine medizinische Anwendung wo man mit einem Schrittmotor
Medikamente dosiert, dir also genau X-Schritte irgendwas wichtiges in
dein Blut pumpt, und parallel dazu noch einen Encoder dran hat um zu
ueberpruefen ob der der Motor richtig dreht. So bekommt man eine
ueberpruefung des Motors wo es wichtig ist.
Und dann wollen wir mal nicht vergessen, die Teile haben sich deshalb so
verbreitet weil sie schlicht billig sind.
Vanye