Positionsberechnung

stricky

Level-2
Beiträge
254
Reaktionspunkte
15
Zuviel Werbung?
-> Hier kostenlos registrieren
Moinsen,

kämpfe gerade ein wenig mit Rampenberechnungen rum.

Habe ein Antrieb der ein bestimmtes Positionsziel anfährt. Auf dem Weg dorthin muss ich an bestimmten Punkten ein Ventil schalten.

Das Ventil hat eine Schaltzeit von 75ms ... das heisst bei z.B. konstant 1m/s 75mm vor dem Schaltpunkt muss ich das Ventil ansteuern.

Problem ist nun, wenn mein Antrieb in der Brems/Beschleunigungsrampe ist kann ich das natürlich vergessen. Rechne mir hier gerade nen Wolf. Hat jemand ne Idee oder nen passenden Baustein, wo man die Restzeit bis zum Ziel rausbekommt ?

Grüße
 
Hallo,

das sollte doch nicht so schwer sein. Wird der Antrieb mit einer konstanten Beschleunigung gebremst bzw. beschleunigt?

Viele Grüße
 
Ok.

Verstehe ich das richtig(fiktive Werte):

- Antrieb beschleunigt mit 2 m/s[SUP]2[/SUP]
- Antrieb fährt mit 1 m/s
- Antrieb bremst mit -2 m/s[SUP]2[/SUP]

-Ventilöffnungszeit sind 75 ms

-Und die Strecke die zurückgelegt werden soll sind 5 m am Ende dieser Strecke muss das Ventil offen sein.

mit den Formeln:

v = v[SUB]0[/SUB] + a*t
s = s[SUB]0[/SUB] + v*t

kann man nun alle Werte berechnen. Aus deinem Text vernehme ich du möchtest wissen, wann (an welcher Position) du das Ventil ansteuern musst?

Ich brauche als erstes die Geschwindigkeit, welche der Antrieb 75 ms bevor er stehen bleibt noch hat.

also:

tBrems = (v-v[SUB]0[/SUB])/a = (0-1m/s)/-2m/s[SUP]2[/SUP] = 0,5s
also brauch ich die Geschwindigkeit des Antriebs nach 0,5s-0,075s =0,425s Bremsen
v= v[SUB]0[/SUB] + a*t = 1m/s + -2m/s[SUP]2[/SUP] * 0,425s = 0,15 m/s so da wir konstante Beschleunigung haben, haben wir für die 75 ms eine Durchschnittsgeschwindigkeit von 0,15m/s / 2 = 0,075 m/s

so jetzt wird die strecke berechnet, welche der Antrieb zurücklegt

s = v*t = 0,075m/s * 0,075s = 5,625 mm

ich hoffe das ist so richtig.

Bin neu in diesem Forum. Gibt es irgendwo einen Formeleditor?

Grüße
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich brauche als erstes die Geschwindigkeit, welche der Antrieb 75 ms bevor er stehen bleibt noch hat.

also:

tBrems = (v-v[SUB]0[/SUB])/a = (0-1m/s)/-2m/s[SUP]2[/SUP] = 0,5s
also brauch ich die Geschwindigkeit des Antriebs nach 0,5s-0,075s =0,425s Bremsen
v= v[SUB]0[/SUB] + a*t = 1m/s + -2m/s[SUP]2[/SUP] * 0,425s = 0,15 m/s so da wir konstante Beschleunigung haben, haben wir für die 75 ms eine Durchschnittsgeschwindigkeit von 0,15m/s / 2 = 0,075 m/s

so jetzt wird die strecke berechnet, welche der Antrieb zurücklegt

s = v*t = 0,075m/s * 0,075s = 5,625 mm

ich hoffe das ist so richtig.

Du hast hier ausgerechnet an welcher Position das Ventil angesteuert werden muss, damit es offen ist wenn der Antrieb in der Endposition ist.
Der TS hat aber scheinbar mehrere Punkte wo das passieren muss.
 
Da hast du recht.
Aber er hatte Probleme damit das während der Bremsung bzw Beschleunigung zu berechnen und da habe ich ihm einen Lösungsvorschlag gegeben und haben den Endpunkt gewählt, da ich keine weiteren Informationen habe.
 
An welchen Punkten?

Gibt es Angaben über die Beschleunigung bzw. Verzögerung?

die Ziele sind variabel und können nun mal mitten in der rampe liegen ... das problem ist das die achse mit 2m/s fährt und die beschleuning ca 9m/s² ist

die task habe ich schon auf 1ms ... das Messer ( ventil ) soll halt nach Wunsch millimeter genau eintauchen ... ist konstruktiv eigentlich schon garnicht realisierbar

wenn das ventil ne toleranz von 10ms hat sind das schon 20mm

habe echt noch keine lösung :(

also die achse ist ein sew servo der an einem movidrive b hängt ... der geber geht zusätzlich auf ne el5021 ... sonst ging es ganricht, da der sew einfach zu langsam die positionen übertragen hat
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kollege RateFuchs hat das ja eh schön aufgemalt.
Prinzipiell ist die Frage: hast Du Probleme bei der Berechnung, die ist ja, wie oben erkennbar nicht allzu schwer oder bei der Programmierung selbst?

Bei 2m/s ist mm-genau nicht möglich da es hier dann um 500µs Zeitscheiben geht.
Das kann Deine SPS vermutlich nicht erreichen und das Ventil schon gar nicht konstant reproduzieren.
-> Aufbau ist falsch.
 
die Ziele sind variabel und können nun mal mitten in der rampe liegen ... das problem ist das die achse mit 2m/s fährt und die beschleuning ca 9m/s² ist

die task habe ich schon auf 1ms ... das Messer ( ventil ) soll halt nach Wunsch millimeter genau eintauchen ... ist konstruktiv eigentlich schon garnicht realisierbar

wenn das ventil ne toleranz von 10ms hat sind das schon 20mm

habe echt noch keine lösung :(

also die achse ist ein sew servo der an einem movidrive b hängt ... der geber geht zusätzlich auf ne el5021 ... sonst ging es ganricht, da der sew einfach zu langsam die positionen übertragen hat

Du willst das Unmögliche wenn das Ventil eine Toleranz von 10ms hat.

Ansonsten gilt das von RateFuchs gesagte. Während einer Beschleunigung gelten die Gleichungen für konstante Beschleunigungen. Nur wenn das Ventil kurz nach der Rampe erreicht wird, wird es etwas problematischer. Dann musst du ermitteln welche Zeit für den Rest der Rampe benötigt wird, um dann die Zeit für V=const zu berechnen. Dieser Spezialfall kann allgemein verwendet werden, weil Teil2 auf der Rampe gleich 0 ist und Teil 1 ist 0, wenn die Rampe verlassen wurde.

Da aber dein Ventil nicht die geforderte Toleranz einhält, würde ich mir das noch einmal überlegen.
 
Wenn dein Ventil zu langsam ist oder zu große Toleranzen hat gibt es "Schnellschaltventile" von Festo:
https://www.festo.com/cat/de_de/data/doc_de/PDF/DE/MHJ_DE.PDF

Die Schaltzeiten liegen dann bei <1ms was Faktor 10 besser als deins ist.

Ansonsten ist die Berechnung ja bereits schön hergeleitet. Die Berechnung wird funktionieren wenn dein Antrieb überhaupt der mathematisch ermittelten Kurve folgt. Die beschriebenen Formeln gehen von Trapezprofilen aus. Trapezprofile sind nur mathematisch möglich in der Realität kann man solch eine unstetige Funktion/Kurve nicht fahren da Sprünge der Geschwindigkeit an den Knickpunkten vorhanden sind. Es wird immer ein gerundetes Trapez werden. Zusätzlich spielen deine Regelabweichungen noch eine Rolle. Hier musst du deine Regelung im Antrieb sehr flink einstellen um Regelabweichungen möglichst gering zu halten.
 
Frag mal bei SEW nach mit welchem Takt die Istposition ausgegeben wird.
Kann sein, dass die Abtastrate gar nicht reicht ...

Gruß
Dieter
 
Hallo stricky,

bei deiner Applikation wären die exakt geforderten Genauigkeiten wichtig. Erst dann kann man sich Gedanken zur notwendig Hardware machen.

Sehr wahrscheinlich ist bei dir das Ventil der größte Unsicherheits-Faktor. Wenn es sich um ein Messer handelt, das abgesenkt werden muss, wäre ein Linearmotor die besser Wahl.
Letztlich spielt auch der Gleichlauf vom Motor, die Zykluszeit der Steuerung/Antrieb und die Verzögerung hinter deinem Ventil eine Rolle.

Insgesamt würde ich so eine Anwendung immer als „Motion Control“ auslegen. Wenn es sich bei den ersten Simulationen als übertrieben herausstellt, kann man immer noch über konventionelle Alternativen nachdenken.
Eventuell ist es schon als „Fliegende Säge“ eine echte Herausforderung. Dann ist alles andere nur Zeitverschwendung.

Gruß
Chräshe
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Stricky,

schaue die mal die EL2212 und parallel dazu mal das Camming Tool (Kurvenscheibeneditor) von Beckhoff an. Ansonsten ist die Lösung von Cräshe die Technisch bessere.

Gruß Blueocean
 
Mit Camming ist das nicht gelöst, Camming bzw. die Kurvenschaltpunkte sind nur von der Position abhängig, nicht von den Schaltzeiten. Das klappt also nicht. Gleiches gilt auch für CNC Editor mit den Bahnschaltpunkten. Dort kann man keine Zeit eintragen die voreilend geschaltet wird.

Bei einer Achse macht Cam und NC sowieso keinen Sinn da es dann eine Masterachse gibt und eine 1:1 Kopplung zur physikalischen Achse. Da kann man gleich nur auf Position abfragen und dann schalten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Gib mal ein Beispiel für ein Hersteller/ein System bei dem im NC Programm Bahnschaltpunkte mit Schaltzeitkompensation möglich ist. Ich kenne keine. Bei Robotiksteuerungen sieht das anders aus. Die können das.

Es wurde außerdem explizit die Beckhoff CAM Lösung erwähnt. Hier ist mir diese Funktion nicht bekannt.
 
Zurück
Oben