Bremskurve Beschleunigungskurve für Fahrzeug berechen

Chris80

Level-2
Beiträge
201
Reaktionspunkte
1
Hallo

Ich will ein Fahrzeug bewegen ca 15tonnen steht auf schienen und einen Läser der mir den Istwert übergibt. Denn Motorregler SEW steuer ich mit einer Analog karte an -10V bis 10V.

Jetzt will ich eine ganz Simple Beschleunigungskurve haben die man eventuell durch einen eingebauten faktor ändern könnte. Und
eine Bremskurve da habe ich an sowas gedacht wie (Istwert - Sollwert) * Faktor. Habt einer schon erfahrung oder gute idee?

Vielen Dank.
 
doch wenn der ist wert mit den soll wert auf +-10mm passt dann ist positioniern

also mit den (Ist-Sollwert) * faktor klappt das bremsen schon ganz gut. Habe noch ein mindest und max wert eingebaut. da klappt das positiegleronieren ganz gut. Kurve ist auch ok.laut simulation

Bloss jetzt beschleunigt er näturlich voll (Kurve in regler steuert jetzt). weil der ist und sollwert natürlich am anfang sehr groß ist. er müsste jetzt nur noch die beschleunigung mit einen faktor anpassen wie die bremskurve.

Das problem ist dann der punkt der beiden kurven von beschleunigung auf bremskurve
 
Zuletzt bearbeitet:
20mm Toleranz sind ok? oha.. Gut dann wirst du da mit deiner Lösung in der Steuerung schnell dein Ziel erreichen. Im Grunde reicht ja ein "umschalten auf langsam", dann mit "Zeit und Faktor" den Sollwert verringern. Genau so würde ich es mit der Beschleunigung machen.. einfach Faktor*Zeit. Die Rampen im Umrichter so klein, das auch auf die änderungen reagiert wird, und so groß, dass die "Kanten" der Kurve noch etwas interpoliert werden.
Generell sind Positionierungen mit SPS ziemlich aufwendig zu programmieren, deswegen war ja mein Tip den Laser direkt an den Umrichter anschließen, ihm über BUS eine Position und Geschwindigkeit geben und dann zurücklehnen und den Umrichter machen lassen.
 
Zuletzt bearbeitet:
wie würdes du es einbauen ?
hier meine bremskurve

Code:
 U     #start
      SPBN  end
      L     #soll_wert
      L     #ist_wert
      -I    
      L     #faktor
      *I    
      T     #rmp

start= ist ne freigabe
rmp= solldrehzahl die später noch zwischen 300 und 10000 begrenzt ist.
faktor= ist zZ 6
soll= ist zZ 5000
ist= zb 0

beim starten wäre dann ja rmp 5000 * 6 = 30000 (begrenzt auf 10000)
wie bringe ich jetzt am besten die formel Faktor*Zeit rein?
 
Also du möchtest eine Regelung programmiern, d.H. der Sollwert ist direkt vom Istwert abhängig. Ich würde das erstmal mit einer Steuerung versuchen, also den Sollwert solange erhöhen bis der Istwert erreicht wird.

Pseuo-SCL-Code:
Code:
IF sollwert >= istwert then
istwert := istwert + faktor;
end_if;

IF sollwert <= istwert then
istwert := istwert - faktor;
end_if;

Das ganze dann z.B. alle 20ms aufrufen (Interrupt oder mit nem Timer)

Den Sollwert dann einfach fest umschreiben, also 1000mm vor dem Ziel um 75% verringern, und 100mm vor dem Ziel schleichen bis Ziel erreicht.

-> Ist aber keine besonders schöne Lösung ;)

Muss denn wirklich die Rampe so oft verändert werden? Sonst kann man immer besser die interne Rampe nutzen. Durch Parametersatzumschaltung könntest du zwei Rampen für z.B. leer und beladen einstellen.
 
Zuletzt bearbeitet:
Habe auf den sollwert in bestimmten zeiten immer was drauf addiert läuft ganz gut. der regler glättet das ganze noch schön ab. Kann man mit leben.

Vielen Dank.
 
Zurück
Oben