DE102011122434B4 - Method for controlling movement of mechanical devices using sequentially interpolated traversing blocks - Google Patents

Method for controlling movement of mechanical devices using sequentially interpolated traversing blocks Download PDF

Info

Publication number
DE102011122434B4
DE102011122434B4 DE102011122434.7A DE102011122434A DE102011122434B4 DE 102011122434 B4 DE102011122434 B4 DE 102011122434B4 DE 102011122434 A DE102011122434 A DE 102011122434A DE 102011122434 B4 DE102011122434 B4 DE 102011122434B4
Authority
DE
Germany
Prior art keywords
acceleration
traversing
speed
values
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102011122434.7A
Other languages
German (de)
Other versions
DE102011122434A1 (en
Inventor
Jose Pedro Magalhaes Reboredo
Sebastian Pröll
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102011122434.7A priority Critical patent/DE102011122434B4/en
Publication of DE102011122434A1 publication Critical patent/DE102011122434A1/en
Application granted granted Critical
Publication of DE102011122434B4 publication Critical patent/DE102011122434B4/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/416Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control of velocity, acceleration or deceleration
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/43Speed, acceleration, deceleration control ADC
    • G05B2219/43043Normal and maximum deceleration mode, switch as function of position deviation, error

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)

Abstract

Verfahren zur Steuerung einer Bewegung einer mechanischen Vorrichtung unter Verwendung nacheinander interpolierter Verfahrsätze, mittels einer durch eine Steuerungseinrichtung durchgeführten Bahnplanung zur Sicherstellung der Einhaltung der in jedem Verfahrsatz gültigen Beschränkungen und zum Abbau einer Geschwindigkeit und einer Beschleunigung bis zu einer vorgegebenen Endposition der Bewegung unter Verwendung zumindest einer ersten Verfahrensanweisung, welche zumindest in einer Phase einer Verfahrsatzvorbereitung für jeden Verfahrsatz eine noch erlaubte Endgeschwindigkeit berechnet, bei welcher ein Anhalten bis zum Streckenende garantiert wird, wobei in der Phase einer Verfahrsatzabarbeitung die berechnete Endgeschwindigkeit zum Ermitteln des eigentlichen Geschwindigkeitsverlaufes verwendet wird, und wobei ausgehend von den aktuellen Werten der Position (s), Geschwindigkeit (v), und Beschleunigung (a), mittels der ersten Verfahrensanweisung der maximale Ruck (j) gesetzt und dadurch neue Werte der Position (s), Geschwindigkeit (v) und Beschleunigung (a) durch Interpolation ermittelt werden; sowie mittels zumindest einer zweiten Verfahrensanweisung, welche eine Gültigkeit von zumindest während einer Verfahrsatzabarbeitung durch die erste Verfahrensanweisung ermittelten Werte verifiziert, indem mit Hilfe der zweiten Verfahrensanweisung geprüft wird, ob die neuen Werte der Position (s), der Geschwindigkeit (v) und der Beschleunigung (a) gültig sind, und mittels zumindest einer dritten Verfahrensanweisung, welche beim Überschreiten einer Beschränkung und/oder bei unzureichendem Bremsweg eines Verfahrsatzes, einen Bremsvorgang einleitet, indem für die verbliebene Strecke bis zum Verfahrsatzende Sektionen gebildet werden, welche für den Abbau der Beschleunigung und das Abbremsen auf den durch die erste Verfahrensanweisung ermittelten Endgeschwindigkeitswert benötigt werden, wobei die Bewegung mit einer Anfangsgeschwindigkeit und einer Anfangsbeschleunigung beginnt und an einem Endpunkt anhält.A method of controlling a movement of a mechanical device using successively interpolated traversing blocks, by means of a path planning performed by a controller to ensure compliance with the limits in each traversing set and to reduce a speed and an acceleration up to a predetermined end position of the movement using at least one first method instruction, which calculates a still permissible final speed for each traversing block at least in one phase of a traversing block preparation in which stopping is guaranteed until the end of the traverse, wherein in the traversing processing phase the calculated final speed is used to determine the actual velocity trajectory, and starting from the current values of the position (s), velocity (v), and acceleration (a), the maximum jerk (j) set and dadu by means of the first procedural instruction new values of position (s), velocity (v) and acceleration (a) can be determined by interpolation; and by means of at least one second method instruction which verifies a validity of values determined by the first method instruction at least during a method block processing by checking with the aid of the second method instruction whether the new values of position (s), speed (v) and acceleration (a) are valid, and by means of at least a third procedural instruction, which initiates braking when exceeding a restriction and / or insufficient braking distance of a movement set by forming for the remaining distance to Verfahrsatzende sections, which for the reduction of acceleration and braking is required to the final velocity value determined by the first procedural instruction, the motion starting at an initial velocity and an initial acceleration and stopping at an endpoint.

Description

Die vorliegende Erfindung bezieht sich auf ein Verfahren zur Steuerung einer Bewegung einer mechanischen Vorrichtung, wie insbesondere einem Industrieroboter, unter Verwendung nacheinander und insbesondere zusammenhängender und aufeinanderfolgend interpolierter Verfahrsätze, mittels einer durch eine Steuerungseinrichtung durchgeführten Bahnplanung zur Sicherstellung der Einhaltung der in jedem Verfahrsatz gültigen Beschränkungen und zum Abbau einer Geschwindigkeit auf v=0 und einer Beschleunigung auf a=0 bis zu einer vorgegebenen Endposition der Bewegung.The present invention relates to a method for controlling a movement of a mechanical device, in particular an industrial robot, using sequentially and in particular contiguous and successively interpolated traversing sets, by means of a control device carried out path planning to ensure compliance with the valid in each traversing restrictions and for reducing a speed to v = 0 and an acceleration to a = 0 up to a predetermined end position of the movement.

Es soll eine Strecke der Länge s abgefahren werden, die in n Teilstücke aufgeteilt ist. In diesen sogenannten Verfahrsätzen gelten jeweils Beschränkungen für die Maximalgeschwindigkeit Vmax, die maximale und minimale Beschleunigung amax bzw. amin , sowie den maximalen und minimalen Ruck jmax bzw. jmin .It's supposed to be a stretch of length s be traversed, which is divided into n sections. In each of these so-called traversing blocks, restrictions apply for the maximum speed Vmax, the maximum and minimum acceleration a max or. a min , as well as the maximum and minimum jerk j max or. min ,

Innerhalb eines Verfahrsatzes sei das Beschleunigungsprofil stetig und stückweise linear. Daraus ergeben sich Profile für Position, Geschwindigkeit, Beschleunigung und Ruck, wie in der 1 gezeigt.Within a traversing block, the acceleration profile is continuous and piecewise linear. This results in profiles for position, speed, acceleration and jerk, as in the 1 shown.

Gemäß dem Stand der Technik verschwindet die Beschleunigung im Übergang zweier Verfahrsätze, so dass keine Übergangsbeschleunigung stattfindet.According to the prior art, the acceleration disappears in the transition of two traversing blocks, so that no transition acceleration takes place.

DE 10 2009 024 130 A1 , DE 10 2008 029 657 A1 , DE 10 2010 025 271 A1 EP 2 022 608 B1 , US 6 216 058 B1 , US 5 811 952 A zeigen jeweils ein Verfahren zum Steuern einer Vorrichtung mit Verfahrsätzen. DE 10 2009 024 130 A1 . DE 10 2008 029 657 A1 . DE 10 2010 025 271 A1 EP 2 022 608 B1 . US 6 216 058 B1 . US 5,811,952 A each show a method of controlling a device with traversing blocks.

Demnach ist es die Aufgabe der vorliegenden Erfindung, die Bewegungsdynamik durch beispielsweise mehr Laufruhe und höhere Geschwindigkeiten zu verbessern und die Anregung der Vorrichtung bzw. Maschine bzw. Roboters durch eine entsprechende Bahninterpolation für einen möglichst glatten Geschwindigkeitsverlauf zu vermindern bzw. zu verhindern, so dass unter Einhaltung von vorgegebenen Beschränkungen ein zeitoptimales Geschwindigkeitsprofil errechnet werden kann, um die Strecke in möglichst kurzer Zeit abzufahren.Accordingly, it is the object of the present invention to improve the dynamics of movement, for example, more smoothness and higher speeds and to reduce or prevent the excitation of the device or machine or robot by means of a corresponding web interpolation for the smoothest possible velocity course, so that under Adhering to predetermined restrictions, a time-optimal speed profile can be calculated in order to travel the route in as short a time as possible.

Diese Aufgabe löst die vorliegende Erfindung mittels eines Verfahrens zur Steuerung einer Bewegung von mechanischen Vorrichtungen unter Verwendung nacheinander interpolierter Verfahrsätze gemäß dem Anspruch 1.This object is achieved by the present invention by means of a method for controlling a movement of mechanical devices using sequentially interpolated traversing sets according to claim 1.

Vorteilhaft wird dabei über die vorhandenen Bewegungsabschnitte eine Bremswegrampe berechnet. Die resultierenden Wertepaare für die Bremsverzögerung und die Geschwindigkeit werden dann vorzugsweise tabellarisch abgelegt. Während der Sollwertvorgabe wird der nächste Stützpunkt berechnet, wobei hierbei die Grenzwerte der Folgeabschnitte mit berücksichtigt werden. Bevorzugt arbeitet der Mechanismus dabei für Echtzeit-Steuerungen optimiert.Advantageously, a brake ramp is calculated via the existing movement sections. The resulting value pairs for the braking deceleration and the speed are then preferably stored in a table. During the setpoint specification, the next interpolation point is calculated, taking into account the limit values of the following sections. The mechanism preferably works optimally for real-time control.

Demnach wird ein Verfahren zur Steuerung einer Bewegung einer mechanischen Vorrichtung, wie insbesondere einem Industrieroboter, unter Verwendung nacheinander interpolierter Verfahrsätze, mittels einer durch eine Steuerungseinrichtung durchgeführten Bahnplanung zur Sicherstellung der Einhaltung der in jedem Verfahrsatz gültigen Beschränkungen und zum Abbau einer Geschwindigkeit auf v=0 und einer Beschleunigung auf a=0 bis zu einer vorgegebenen Endposition der Bewegung unter Verwendung zumindest einer ersten Verfahrensanweisung, welche zumindest in einer Phase einer Verfahrsatzvorbereitung für jeden Verfahrsatz eine noch erlaubte Endgeschwindigkeit berechnet, bei welcher ein Anhalten bis zum Streckenende garantiert wird; sowie mittels zumindest einer zweiten Verfahrensanweisung, welche eine Gültigkeit von zumindest während einer Verfahrsatzabarbeitung durch die erste Verfahrensanweisung ermittelten Werte verifiziert, und/oder mittels zumindest einer dritten Verfahrensanweisung, welche beim Überschreiten einer Beschränkung und/oder bei unzureichendem Bremsweg eines Verfahrsatzes, einen Bremsvorgang einleitet, indem für die verbliebene Strecke bis zum Verfahrsatzende Sektionen gebildet werden, welche für den Abbau der Beschleunigung und das Abbremsen auf den durch die erste Verfahrensanweisung ermittelten Endgeschwindigkeitswert benötigt werden, wobei die Bewegung mit einer Anfangsgeschwindigkeit und einer Anfangsbeschleunigung beginnt und an einem Endpunkt anhält, beansprucht, wie in Anspruch 1 angegeben.Accordingly, a method for controlling movement of a mechanical device, such as an industrial robot, using successively interpolated traversing sets, by means of a controller carried out path planning to ensure compliance with the valid restrictions in each traversing set and to reduce a speed to v = 0 and an acceleration to a = 0 up to a predetermined end position of the movement, using at least a first method instruction which calculates a still permissible final speed at which at least one phase of a movement set preparation is guaranteed for each movement set, at which a stop is guaranteed until the end of the travel; and by means of at least one second method instruction, which verifies a validity of values determined by the first method instruction at least during a method block processing, and / or by means of at least one third method instruction, which initiates a braking operation when a limitation and / or insufficient braking distance of a positioning block is exceeded; forming sections for the remaining distance up to the end of travel, which are required for the reduction of the acceleration and the deceleration to the final speed value determined by the first method instruction, the movement starting with an initial speed and an initial acceleration and stopping at an end point, as specified in claim 1.

Vorteilhafte Ausführungsformen und Weiterbildungen sind Gegenstand der Unteransprüche.Advantageous embodiments and further developments are the subject of the dependent claims.

Es wird ein bewegliches, insbesondere mechanisches System bzw. Vorrichtung betrachtet, welches eine Strecke im Raum abfahren soll. Die Bewegung startet dabei mit einer Anfangsgeschwindigkeit und einer Anfangsbeschleunigung und soll an einem vorzugsweise definierten Endpunkt anhalten. Äußere Faktoren, wie z. B. die Mechanik und/oder die Masse des zu bewegenden Systems oder auch die Bewegungsrichtung geben dabei die Beschränkungen für die Beschleunigung und die Geschwindigkeit vor, welche nicht über- bzw. unterschritten werden können bzw. dürfen.It is considered a movable, in particular mechanical system or device which is intended to travel a distance in space. The movement starts with an initial speed and an initial acceleration and should stop at a preferably defined end point. External factors, such as As the mechanics and / or the mass of the system to be moved or the direction of motion specify the limits for acceleration and speed, which can not be exceeded or fallen below or may.

Zudem ist vorteilhaft die maximale Änderungsrate der Beschleunigung - der sogenannte Ruck - begrenzt.In addition, advantageously, the maximum rate of change of acceleration - the so-called jerk - limited.

Die Beschränkungen umfassen dabei vorzugsweise zumindest
eine Maximalgeschwindigkeit vmax , welche vorzugsweise die Einheit [mm/s] aufweist,
eine Maximalbeschleunigung amax , welche vorzugsweise die Einheit [mm/s2] aufweist,
eine Minimalbeschleunigung amin , welche einer Maximalverzögerung entspricht und ebenso vorzugsweise die Einheit [mm/s2] aufweist,
einen maximalen Ruck jmax und
einen minimalen Ruck jmin , welcher jeweils vorzugsweise die Einheit [mm/s3] aufweist.
The restrictions preferably comprise at least
a maximum speed v max , which preferably has the unit [mm / s],
a maximum acceleration a max , which preferably has the unit [mm / s 2 ],
a minimum acceleration a min which corresponds to a maximum delay and also preferably has the unit [mm / s 2 ],
a maximum jerk j max and
a minimal jerk min , which in each case preferably has the unit [mm / s 3 ].

Ist der zeitliche Verlauf des Rucks j:R+ → R,t → j(t) bekannt, dann ergeben sich die Werte für die Beschleunigung, die Geschwindigkeit und die Position wie folgt: a ( t ) = 0 t j ( τ ) d τ + a 0

Figure DE102011122434B4_0001
v ( t ) = 0 t a ( τ ) d τ + v 0
Figure DE102011122434B4_0002
s ( t ) = 0 t v ( τ ) d τ + s 0
Figure DE102011122434B4_0003
If the progression over time of the j: R + → R, t → j (t) is known, then the values for the acceleration, the velocity and the position result as follows: a ( t ) = 0 t j ( τ ) d τ + a 0
Figure DE102011122434B4_0001
v ( t ) = 0 t a ( τ ) d τ + v 0
Figure DE102011122434B4_0002
s ( t ) = 0 t v ( τ ) d τ + s 0
Figure DE102011122434B4_0003

Dabei sind a0 , v0 , s0 die Werte zu Beginn der Bewegung. Die Position bzw. der Weg bzw. die Strecke s weist dabei vorzugsweise die Einheit [mm] auf.There are a 0 . v 0 . s 0 the values at the beginning of the movement. The position or the way or the distance s in this case preferably has the unit [mm].

Im Folgenden sind die Angaben der Geschwindigkeit, Beschleunigung, Ruck und Position zur vereinfachten und verständlichen Darstellung jedoch ohne Einheiten aufgeführt, wobei die oben genannten Einheiten jederzeit bei der Betrachtung herangezogen werden können.In the following, however, the figures of the speed, acceleration, jerk and position are shown without units for the sake of simplicity and comprehensibility, with the above-mentioned units being able to be consulted at any time.

Für einen zeitlich konstanten Ruck können folgende Integrale direkt angeben werden: a ( t ) = 0 t j d τ + a 0 = j * t + a 0

Figure DE102011122434B4_0004
v ( t ) = 0 t j * τ + a 0 d τ + v 0 = 1 2 j t 2 + a 0 t + v 0
Figure DE102011122434B4_0005
s ( t ) = 0 t 1 2 j * τ 2 + a 0 * τ + v 0 d τ + s 0 = 1 6 j t 3 + 1 2 a 0 t 2 + v 0 t + s 0
Figure DE102011122434B4_0006
For a constant jerk the following integrals can be specified directly: a ( t ) = 0 t j d τ + a 0 = j * t + a 0
Figure DE102011122434B4_0004
v ( t ) = 0 t j * τ + a 0 d τ + v 0 = 1 2 j t 2 + a 0 t + v 0
Figure DE102011122434B4_0005
s ( t ) = 0 t 1 2 j * τ 2 + a 0 * τ + v 0 d τ + s 0 = 1 6 j t 3 + 1 2 a 0 t 2 + v 0 t + s 0
Figure DE102011122434B4_0006

Unter Einhaltung der oben genannten Beschränkungen soll die Strecke vorteilhaft in der kürzest möglichen Zeit abgefahren werden. Die gesamte Bewegung teilt sich dabei vorzugsweise in mindestens drei Phasen auf. In der ersten Phase, nämlich der Beschleunigungsphase, wird zunächst eine gewisse Maximalgeschwindigkeit aufgebaut, während in der zweiten Phase, nämlich der Konstantphase dann mit dieser Geschwindigkeit weiter verfahren wird und schließlich in der dritten Phase, nämlich der Verzögerungsphase, die Bewegung bzw. die Geschwindigkeit bis zum Stillstand abgebremst bzw. verzögert bzw. reduziert wird. Dabei soll die Beschleunigung vorzugsweise über die Zeit stetig und stückweise linear sein. Daraus ergibt sich ein stückweise konstanter Ruck.In compliance with the above restrictions, the route should advantageously be run in the shortest possible time. The entire movement is preferably divided into at least three phases. In the first phase, namely the acceleration phase, a certain maximum speed is initially set up, while in the second phase, namely the constant phase, this speed is then continued, and finally in the third phase, namely the deceleration phase, the movement or the speed to slowed down to a standstill or delayed or reduced. The acceleration should preferably be continuous over time and piecewise linear. This results in a piecewise constant jerk.

Die Bahnplanung hat dabei die Aufgabe, wie oben bereits erwähnt, zum Einen die Einhaltung der in jedem Verfahrsatz gültigen Beschränkungen sicherzustellen und zum Anderen bis zur vorgegebenen Endposition die Geschwindigkeit auf v =0 und die Beschleunigung auf a =0 abzubauen bzw. zu reduzieren. The path planning has the task, as already mentioned above, on the one hand to ensure compliance with the valid restrictions in each traversing set and on the other to reduce the speed to v = 0 and the acceleration to a = 0 to the predetermined end position or reduce.

Vorzugsweise wird dabei die Einhaltung der zweiten Bedingung, nämlich die Geschwindigkeit und die Beschleunigung bis zu einer vorgegebenen Position im Wesentlichen vollständig abzubauen in zwei Schritten, nämlich dem Schritt der Verfahrsatzvorbereitung und dem Schritt der Verfahrsatzabarbeitung realisiert.Preferably, the compliance with the second condition, namely the speed and the acceleration to a predetermined position is substantially completely reduced in two steps, namely the step of Verfahrsatzvorbereitung and the step of Verfahrsatzabarbeitung realized.

In der Verfahrsatzvorbereitung ermittelt vorzugsweise die erste Verfahrensanweisung, welche auch als „Look Ahead-Algorithmus“ bezeichnet werden kann, für jeden Verfahrsatz eine noch erlaubte Endgeschwindigkeit, mittels welcher bis zum Ende der Gesamtstrecke, d.h. bis zum Erreichen des letzten Verfahrsatzes die Bewegung bzw. die Geschwindigkeit der Bewegung bzw. Beschleunigung vollständig abgebremst bzw. reduziert werden kann. Beim Verfahren der Verfahrsätze im Schritt der Verfahrsatzabarbeitung werden dann diese Werte zum Ermitteln des eigentlichen Geschwindigkeitsverlaufs verwendet.In the positioning block preparation, the first method instruction, which may also be referred to as the "look-ahead algorithm", preferably determines a still permissible final speed for each traversing block by means of which the end of the total distance, i. until the last traversing block has been reached, the movement or the speed of the movement or acceleration can be completely decelerated or reduced. When moving the traversing blocks in the step of traversing processing, these values are then used to determine the actual course of the velocity.

Vorzugsweise soll die tatsächliche Geschwindigkeit am Ende aller Verfahrsätze stets kleiner gleich der Geschwindigkeit der ersten Verfahrensanweisung sein, um so sicherstellen zu können, dass das System bzw. die Bewegung der Vorrichtung bzw. Maschine bis zum Erreichen des Endpunktes bis zum Stillstand verzögert werden kann.Preferably, the actual speed at the end of all traversing sets should always be less than or equal to the speed of the first procedural instruction, so as to be able to ensure that the system or the movement of the device or machine can be delayed until reaching the end point to a standstill.

Demzufolge wird vorzugsweise in der Phase einer Verfahrsatzabarbeitung die berechnete Endgeschwindigkeit zum Ermitteln des eigentlichen Geschwindigkeitsverlaufes verwendet, wobei ausgehend von den aktuellen Werten der Position (c_dCurrentPos), Geschwindigkeit (c_dCurrentVel) und/oder Beschleunigung (c_dCurrentAcc), mittels zumindest der ersten Verfahrensanweisung der maximale Ruck gesetzt und dadurch neue Werte der Position (dNewPos), Geschwindigkeit (dNewVel) und/oder Beschleunigung (dNewAcc) durch Interpolation ermittelt werden.Consequently, the calculated final velocity is preferably used to determine the actual velocity profile in the phase of a procedural processing, wherein starting from the current values of the position (c_dCurrentPos), velocity (c_dCurrentVel) and / or acceleration (c_dCurrentAcc), the maximum jerk is determined by means of at least the first procedural instruction and thereby new values of the position (dNewPos), speed (dNewVel) and / or acceleration (dNewAcc) are determined by interpolation.

Vorzugsweise hat demnach die erste Verfahrensanweisung bzw. der „Look Ahead-Algorithmus“ die Aufgabe, für jeden der n Verfahrsätze, wobei vorzugsweise eine Mehrzahl an Verfahrsätzen und insbesondere mindestens ein Verfahrsatz angewandt wird, im Verfahrsatzpuffer eine Endgeschwindigkeit vLA zu ermitteln, die es erlaubt, bis zum Ende der Strecke auf v =0 (und a =0) abzubremsen. Somit muss vorteilhaft folglich ermittelt werden, wie viel Geschwindigkeit bei einer gegebenen Anfangsgeschwindigkeit vstart in einem Verfahrsatz unter Einhaltung der geltenden Beschränkungen jmax , jmin , amin abgebaut werden kann. Dies hängt bevorzugt von der Anfangsbeschleunigung ab. Zu Beginn eines Verfahrsatzes, welcher sich beispielsweise in der Beschleunigungsphase befindet, gilt folglich: astart > 0. D.h., dass zunächst diese Beschleunigung abgebaut und anschließend eine Verzögerung aufgebaut werden muss. Demzufolge kann also in diesem Fall weniger Geschwindigkeit abgebaut werden, als wenn sich die Bewegung bereits im Verzögerungsvorgang mit astart < 0 befinden würde.Accordingly, the first method instruction or the "look-ahead algorithm" preferably has the task, for each of the n movement records, wherein preferably a plurality of traversing sets and in particular at least one traversing block is used, in the traversing block buffer an end velocity v LA which allows it to decelerate to v = 0 (and a = 0) until the end of the route. Thus, advantageously, it must be determined how much speed at a given initial speed v start in one movement set in compliance with the applicable restrictions j max . min . a min can be reduced. This preferably depends on the initial acceleration. At the beginning of a traversing block, which is, for example, in the acceleration phase, the following applies: a start > 0. This means that first of all this acceleration has to be reduced and then a deceleration has to be established. Consequently, in this case, less speed can be reduced than if the movement were already in the deceleration process with a start <0.

Dies bedeutet im Fall der ersten Verfahrensanweisung, dass vorzugsweise neben einer Endgeschwindigkeit vLA auch eine Endbeschleunigung aLA anzugeben ist, so dass vorteilhaft für jeden Verfahrsatz ein Endwertepaar aus Endgeschwindigkeit und Endbeschleunigung (vLA , aLA ) ermittelt wird. Dafür wird bevorzugt mittels der ersten Verfahrensanweisung ein kontinuierlicher Verzögerungsvorgang gebildet, wobei immer gilt: aLA= 0.This means, in the case of the first procedural instruction, that preferably next to a terminal speed v LA also a final acceleration a LA is to be specified, so that advantageously for each traversing a final value pair of final speed and final acceleration ( v LA . a LA ) is determined. For this purpose, a continuous deceleration process is preferably formed by means of the first method instruction, wherein the following always applies: a LA = 0.

Um nun für jeden Verfahrsatz das Endwertepaar (vLA, aLA)i, i=1, ... , n, auszurechnen, beginnend am Endpunkt der Strecke, an welchem nach Voraussetzung v=0 und a=0 gelten muss, wird (vLA, aLA)n =(0, 0) gesetzt. Ausgehend von diesen Endbedingungen (v=0; a=0) wird nun ein Endwertepaar (vLA, aLA)n-1 mit maximaler Geschwindigkeit v für das Verfahrsatzende des vorletzten Verfahrsatzes ermittelt, so dass unter Einhaltung der im n-ten Verfahrsatz geltenden Beschränkungen das Ende der Strecke mit (v, a) =(vLA, aLA.)n =(0, 0) erreicht werden kann.In order to calculate the end value pair (v LA , a LA ) i , i = 1,..., N, starting at the end point of the path at which v = 0 and a = 0 must apply ( v LA , a LA ) n = (0, 0). Starting from these final conditions (v = 0, a = 0), an end value pair (v LA , a LA ) n-1 with maximum velocity now becomes v determined for the Verfahrsatzende the penultimate traversing block, so that the limits of ( n , a) = (0 LA , a LA .) n = (0, 0) can be reached in compliance with the restrictions in the n-th movement rate.

Dieser Verzögerungsvorgang ist zeitlich rückwärts betrachtet demnach ein Beschleunigungsvorgang, wobei die zulässige Maximalbeschleunigung gerade dem Betrag der zulässigen Maximalverzögerung |amin| entspricht. Vorzugsweise wird mittels der ersten Verfahrensanweisung stets mit den Beträgen von Verzögerungen gerechnet, so dass alle ermittelten Werte für die Beschleunigung bzw. Verzögerung „a“ ein positives Vorzeichen besitzen.This deceleration process is considered an acceleration process with regard to time in reverse, the permissible maximum acceleration being just the magnitude of the permissible maximum deceleration | a min | equivalent. Preferably, the amounts of delays are always calculated by means of the first method instruction, so that all determined values for the acceleration or deceleration "a" have a positive sign.

Wie oben bereits erwähnt, besteht ein Beschleunigungsvorgang aus bis zu drei Abschnitten bzw. Segmenten bzw. Sektionen. Folglich erhalten in den Berechnungen die Anfangswerte vorzugsweise den Index 0 (v0 , a0 ) und die Endwerte bevorzugt den Index 3 (v3 , a3 ). As already mentioned above, an acceleration process consists of up to three sections or segments. Thus, in the calculations, the initial values preferably obtain the index 0 ( v 0 . a 0 ) and the end values prefers the index 3 ( v 3 . a 3 ).

Am Anfang der Beschleunigung ist v0=0 und a0=0. Des Weiteren muss die Länge des n-ten Satzes s(n) in die Berechnung einfließen und die im Verfahrsatz geltenden Beschränkungen jmax , jmin , |amin| müssen beachtet werden. Zudem muss ermittelt werden, welchen Wert a3 die Beschleunigung am Ende des Beschleunigungsvorganges annehmen soll.At the beginning of the acceleration v 0 = 0 and a 0 = 0. Furthermore, the length of the nth set s (n) must be included in the calculation and the restrictions in the traversing block j max . min , | a min | have to be considered. In addition, it must be determined what value a 3 should take the acceleration at the end of the acceleration process.

Da die gesuchte Beschleunigung am Ende des Beschleunigungsvorganges, d.h. a 3 = a L A ( n 1 )

Figure DE102011122434B4_0007
weder die Beschränkungen des letzten noch des vorletzten Verfahrsatzes verletzen sollte, wird a3 bevorzugt zunächst wie folgt gesetzt: a 3 = min { | a min ( n ) | , | a min ( n 1 ) | } .
Figure DE102011122434B4_0008
Since the acceleration sought at the end of the acceleration process, ie a 3 = a L A ( n - 1 )
Figure DE102011122434B4_0007
neither violate the restrictions of the last sentence nor of the penultimate one, will a 3 preferably initially set as follows: a 3 = min { | a min ( n ) | . | a min ( n - 1 ) | } ,
Figure DE102011122434B4_0008

Mit diesen Voraussetzungen kann nun v 3 = v L A ( n 1 )

Figure DE102011122434B4_0009
berechnet werden.With these requirements can now v 3 = v L A ( n - 1 )
Figure DE102011122434B4_0009
be calculated.

Im Folgenden wird dazu ein erstes Beispiel aufgeführt:The following is a first example:

Es seien drei Verfahrsätze im Verfahrsatzpuffer: s vmax amax amin jmax jmin Verfahrsatz 1 30 10000 4000 -4000 50000 -50000 Verfahrsatz 2 20 10000 3000 -3000 50000 -50000 Verfahrsatz 3 50 10000 4000 -4000 50000 -50000 There are three traversing blocks in the traversing buffer: s v max a max a min j max min Traversing block 1 30 10000 4000 -4000 50000 -50000 Traversing block 2 20 10000 3000 -3000 50000 -50000 Traversing block 3 50 10000 4000 -4000 50000 -50000

Dann lauten die Werte der ersten Verfahrensanweisung für die Geschwindigkeit und die Beschleunigung wie folgt: vLA aLA Verfahrsatz 1 706.8083379333484 3000 Verfahrsatz 2 616.0990291262135 3000 Verfahrsatz 3 0 0 Then the values of the first procedure for speed and acceleration are as follows: v LA a LA Traversing block 1 706.8083379333484 3000 Traversing block 2 616.0990291262135 3000 Traversing block 3 0 0

Um die Endwerte bzw. das Endwertpaar aus Endgeschwindigkeit und Endbeschleunigung von Verfahrsatz 1 zu bestimmen, wird vorzugsweise im Wesentlichen genauso verfahren wie bei der Bestimmung des Endwertpaares für den Verfahrsatz 2. D.h., dass die berechneten Endwerte des Endwertpaares des zweiten Verfahrsatzes als Startwerte bzw. Anfangswerte bei der Berechnung der Endwerte des ersten Verfahrsatzes verwendet werden und folglich „rückwärts beschleunigt“ wird. Dabei wird die Endbeschleunigung, wie oben beschrieben, gebildet: a L A ( 1 ) : = min { | a min ( 2 ) | , | a min ( 1 ) | } = 3000.

Figure DE102011122434B4_0010
To the end values or the end value pair of final speed and final acceleration of traversing block 1 to be determined, is preferably substantially the same procedure as in the determination of the end value pair for the positioning record 2 , This means that the calculated end values of the end value pair of the second traversing block are used as start values or initial values in the calculation of the end values of the first traversing block and consequently "accelerated backwards". The final acceleration is formed as described above: a L A ( 1 ) : = min { | a min ( 2 ) | . | a min ( 1 ) | } = 3000th
Figure DE102011122434B4_0010

Jedoch ist es ebenso möglich, dass die gewünschte Beschleunigung aLA gar nicht erreicht werden kann, wie folgendes zweites Beispiel zeigt: s vmax amax amin jmax jmin Verfahrsatz 1 30 10000 4000 -4000 50000 -50000 Verfahrsatz 2 20 10000 4000 -4000 50000 -50000 Verfahrsatz 3 20 10000 4000 -4000 20000 -50000 However, it is also possible that the desired acceleration a LA can not be reached, as the following second example shows: s v max a max a min j max min Traversing block 1 30 10000 4000 -4000 50000 -50000 Traversing block 2 20 10000 4000 -4000 50000 -50000 Traversing block 3 20 10000 4000 -4000 20000 -50000

Ausgehend von (vLA, aLA)3=(0, 0) wird nur eine Endbeschleunigung von a 3 = a L A ( 2 ) = 3634.2411856642   79

Figure DE102011122434B4_0011
anstatt des vorläufigen Wertes a3=4000 erreicht.Starting from (v LA , a LA ) 3 = (0, 0) only one final acceleration of a 3 = a L A ( 2 ) = 3634.2411856642 79
Figure DE102011122434B4_0011
instead of the provisional value a 3 = 4000 reached.

Beim Eintreten dieses Falls wird die maximal erreichbare Beschleunigung als Endbeschleunigung der ersten Verfahrensanweisung (mit der entsprechend zugehörigen Geschwindigkeit) des vorliegenden Verfahrsatzes gesetzt. Es ergeben sich demnach folgende Werte: vLA aLA Verfahrsatz 1 517.8025359433898 4000 Verfahrsatz 2 330.1927248894627 3634.241185664279 Verfahrsatz 3 0 0 When this case occurs, the maximum achievable acceleration is set as the final acceleration of the first procedural instruction (with the corresponding associated speed) of the current positioning record. The following values result: v LA a LA Traversing block 1 517.8025359433898 4000 Traversing block 2 330.1927248894627 3634.241185664279 Traversing block 3 0 0

Vorzugsweise gilt ganz allgemein, dass je kürzer der Verfahrsatz, je größer die Geschwindigkeit und/oder je kleiner der Ruck ist, desto weniger Beschleunigung kann innerhalb einer festgelegten Strecke auf- oder abgebaut werden.In general, it is generally the case that the shorter the travel rate, the greater the speed and / or the smaller the jerk, the less acceleration can be built up or taken down within a defined distance.

Problematisch wird dies jedoch beispielsweise bei der Konstellation, wie es das dritte Beispiel zeigt: s vmax amax amin jmax jmin Verfahrsatz 1 30 10000 1000 -1000 50000 -50000 Verfahrsatz 2 10 10000 4000 -4000 20000 -20000 Verfahrsatz 3 50 10000 4000 -4000 20000 -50000 However, this becomes problematic, for example, in the constellation, as shown in the third example: s v max a max a min j max min Traversing block 1 30 10000 1000 -1000 50000 -50000 Traversing block 2 10 10000 4000 -4000 20000 -20000 Traversing block 3 50 10000 4000 -4000 20000 -50000

Nach der ersten Berechnung ergeben sich für Endbeschleunigung und -geschwindigkeit des zweiten Verfahrsatzes a L A ( 2 ) : = 4000  und  v L A ( 2 ) : = 625.6729729729   73.

Figure DE102011122434B4_0012
After the first calculation result for final acceleration and velocity of the second traversing block a L A ( 2 ) : = 4000 and v L A ( 2 ) : = 625.6729729729 73rd
Figure DE102011122434B4_0012

Werden diese Werte zur Berechnung der Endwerte des ersten Verfahrsatzes herangezogen, wird eine Endbeschleunigung von a L A ( 1 ) : = 3694.84849   8478164

Figure DE102011122434B4_0013
errechnet, obwohl nur eine Beschleunigung von 1000 erlaubt ist.If these values are used to calculate the end values of the first traversing block, a final acceleration of a L A ( 1 ) : = 3694.84849 8478164
Figure DE102011122434B4_0013
calculated, although only an acceleration of 1000 is allowed.

Die Differenz aΔ =3694.848498478164 - 1000 =2694.848498478164 muss deshalb vorher schon abgebaut werden. Dazu wird nachträglich die Endbeschleunigung des zweiten Verfahrsatzes reduziert, um die Beschränkungen des ersten Verfahrsatzes einhalten zu können. Als neue Endbeschleunigung wird gesetzt: a L A ( 2 ) : = min { | a min ( 3 ) | , | a min ( 2 ) | } a Δ = 1305.151501521836.

Figure DE102011122434B4_0014
The difference a Δ = 3694.848498478164 - 1000 = 2694.848498478164 must therefore already be dismantled. For this purpose, the final acceleration of the second traversing set is subsequently reduced in order to be able to comply with the restrictions of the first traversing block. As new final acceleration is set: a L A ( 2 ) : = min { | a min ( 3 ) | . | a min ( 2 ) | } - a Δ = 1305.151501521836.
Figure DE102011122434B4_0014

Jetzt kann, wie bekannt, weitergerechnet werden, wobei folgende Endwerte erhalten werden: vLA aLA Verfahrsatz 1 581.8476387081914 1000 Verfahrsatz 2 561.3371315246402 1305.151501521836 Verfahrsatz 3 0 0 Now, as known, can be further calculated, the following end values are obtained: v LA a LA Traversing block 1 581.8476387081914 1000 Traversing block 2 561.3371315246402 1305.151501521836 Traversing block 3 0 0

Ein viertes Beispiel soll aufzeigen, was erforderlich ist, sofern die berechnete Endgeschwindigkeit die zulässige Maximalgeschwindigkeit verletzt, wobei dabei folgende zwei Verfahrsätze betrachtet werden: s vmax amax amin jmax jmin Verfahrsatz 1 100 10000 6000 -6000 50000 -50000 Verfahrsatz 2 250 1500 6000 -6000 20000 -50000 A fourth example is intended to show what is required if the calculated final speed violates the permissible maximum speed, whereby the following two traversing blocks are considered: s v max a max a min j max min Traversing block 1 100 10000 6000 -6000 50000 -50000 Traversing block 2 250 1500 6000 -6000 20000 -50000

Als Endwerte für den ersten Verfahrsatz wird vorläufig v L A ( 1 ) : = 1719.53481478148   15  und  a L A ( 1 ) : = 4600

Figure DE102011122434B4_0015
erhalten. Demnach verletzt die Endgeschwindigkeit des ersten Verfahrsatzes v L A ( 1 )
Figure DE102011122434B4_0016
die zulässige Maximalgeschwindigkeit des zweiten Verfahrsatzes. In diesem Fall sollte die berechnete Beschleunigung vorzugsweise nicht übernommen werden und die Geschwindigkeit nicht einfach auf die zulässige Maximalgeschwindigkeit gesetzt werden, also (vLA, aLA)1 =(1500, 6000), da folglich, ausgehend von diesen Anfangswerten, die Beschleunigung bzw. die Verzögerung nicht abgebaut werden kann, bevor die Geschwindigkeit auf Null reduziert wurde.The final values for the first traversing block become provisional v L A ( 1 ) : = 1719.53481478148 15 and a L A ( 1 ) : = 4600
Figure DE102011122434B4_0015
receive. Accordingly violates the final speed of the first traversing set v L A ( 1 )
Figure DE102011122434B4_0016
the permissible maximum speed of the second positioning record. In this case, the calculated acceleration should preferably not be adopted and the speed should not simply be set to the permissible maximum speed, that is, (v LA , a LA ) 1 = (1500, 6000), since, starting from these initial values, the acceleration or acceleration is increased The delay can not be reduced before the speed has been reduced to zero.

Des Weiteren ist es nicht ausreichend die Endbeschleunigung vom Verfahrsatz 2 auf Null und die Endgeschwindigkeit auf v = min { v max ( 1 ) , v max ( 2 ) } = 1500

Figure DE102011122434B4_0017
zu setzen, da beim Starten mit diesen Werten in den letzten Verfahrsatz die Distanz von 250 folglich nicht ausreichen würde, um die Bewegung vollständig abbremsen zu können. Der Bremsweg betrüge im vorliegenden Fall 277.5.Furthermore, it is not enough the final acceleration of the positioning record 2 to zero and the final speed up v = min { v Max ( 1 ) . v Max ( 2 ) } = 1500
Figure DE102011122434B4_0017
Therefore, when starting with these values in the last traversing block, the distance of 250 would not be sufficient to completely decelerate the movement. The braking distance would be 277.5 in the present case.

Vorzugsweise wird stattdessen wie im Folgenden beschrieben vorgegangen:Preferably, the procedure is instead as described below:

Verletzt eine berechnete Geschwindigkeit der ersten Verfahrensanweisung die zulässige Maximalgeschwindigkeit, so wird die letzte Berechnung nochmals durchgeführt, jedoch dieses Mal mit a3=0, wodurch folgende Werte erhalten werden: vLA aLA Verfahrsatz 1 1409.067567567568 0 Verfahrsatz 2 0 0 If a calculated speed of the first procedural instruction violates the permissible maximum speed, the last calculation is carried out again, but this time with a 3 = 0, whereby the following values are obtained: v LA a LA Traversing block 1 1409.067567567568 0 Traversing block 2 0 0

Läge die Maximalgeschwindigkeit noch niedriger als der aktuell berechnete Wert, so wird schließlich die Maximalgeschwindigkeit als Look Ahead-Geschwindigkeit bzw. als Geschwindigkeit der ersten Verfahrensanweisung gesetzt.If the maximum speed is still lower than the currently calculated value, the maximum speed is finally set as the look-ahead speed or as the speed of the first procedural instruction.

Im Übergang zweier Verfahrsätze ist folglich in diesem Fall bzw. bei dieser ersten Verfahrensanweisung die Geschwindigkeit immer konstant. Die von der ersten Verfahrensanweisung ermittelten Endgeschwindigkeiten werden vorzugsweise dauerhaft gespeichert.In the transition between two traversing blocks, the speed is always constant in this case or in this first procedural instruction. The terminal speeds determined by the first method instruction are preferably stored permanently.

Vorzugsweise wird mit Hilfe der zweiten Verfahrensanweisung (im Folgenden auch als „DecCheck“-Algorithmus bezeichnet) geprüft, ob die neuen Werte der Position (dNewPos), der Geschwindigkeit (dNewVel) und der Beschleunigung (dNewAcc) gültig sind.Preferably, with the aid of the second method instruction (also referred to below as "DecCheck" algorithm), it is checked whether the new values of the position (dNewPos), the speed (dNewVel) and the acceleration (dNewAcc) are valid.

D.h., dass in der Verfahrsatzvorbereitung bzw. in der Satzvorbereitung zuerst mit der ersten Verfahrensansweisung für jeden Verfahrsatz eine Endgeschwindigkeit (mit zugehöriger Endbeschleunigung) ermittelt wurde, welche die maximal erlaubte Geschwindigkeit am Ende des jeweiligen Verfahrsatzes darstellt, um bis zum Ende der Gesamtstrecke die Bewegung abbremsen zu können, während in der Verfahrsatzabarbeitung diese Werte wiederum genutzt werden, um den tatsächlichen Geschwindigkeitsverlauf zu bestimmen.This means that in the positioning block preparation or in block preparation, a final speed (with associated final acceleration) was first determined for each traversing block, which represents the maximum permitted speed at the end of the respective traversing block, in order to decelerate the movement until the end of the overall route while in traversing processing these values are in turn used to determine the actual course of the velocity.

Zu Beginn der Bewegung, d.h. in der Beschleunigungsphase soll eine Geschwindigkeit aufgebaut werden. Ausgehend von den aktuellen Werten für die Position, die Geschwindigkeit und die Beschleunigung (c_dCurrentPos, c_dCurrentVel, c_dCurrentAcc) wird der maximale positive Ruck gesetzt, wodurch die Werte im nächsten Interpolationsschritt erhalten werden. Diese ergeben sich einfach aus den oben aufgeführten Formeln (1), indem die Zykluszeit eingesetzt wird.At the beginning of the movement, i. in the acceleration phase, a speed is to be built up. Based on the current position, velocity, and acceleration values (c_dCurrentPos, c_dCurrentVel, c_dCurrentAcc), the maximum positive jerk is set, which preserves the values in the next interpolation step. These are simply given by formulas (1) above by using the cycle time.

Diese neuen Werte (dNewPos, dNewVel, dNewAcc) sind bevorzugt gültig, wenn sichergestellt ist, dass:

  1. 1. sämtliche Beschränkungen in diesem und allen folgenden Verfahrsätzen eingehalten werden; und
  2. 2. bis zum Streckenende vollständig abgebremst werden kann.
These new values (dNewPos, dNewVel, dNewAcc) are preferably valid if it is ensured that:
  1. 1. all restrictions in this and all following traverses are complied with; and
  2. 2. can be braked completely to the end of the track.

Ob die „neue“ Beschleunigung (dNewAcc) die Maximalbeschleunigung im selben Verfahrsatz verletzt, wird vorzugsweise gleich nach deren Berechnung überprüft. Danach wird, wie oben erwähnt, mit Hilfe der zweiten Verfahrensanweisung geprüft, ob die neuen Werte gültig sind.Whether the "new" acceleration (dNewAcc) violates the maximum acceleration in the same traversing block is preferably checked immediately after its calculation. Thereafter, as mentioned above, it is checked with the aid of the second method statement whether the new values are valid.

Um ermitteln zu können, ob die Bewegung bis zum Streckenende angehalten werden kann, wird bevorzugt ein Verzögerungsvorgang mit den vorläufigen neuen Werten (dNewPos, dNewVel, dNewAcc) als Startwerte gebildet.In order to be able to determine whether the movement can be stopped until the end of the journey, it is preferable to form a delay process with the provisional new values (dNewPos, dNewVel, dNewAcc) as starting values.

Vorzugsweise muss bei diesem Verzögerungsvorgang darauf geachtet werden, dass sämtliche Beschränkungen eingehalten werden, d.h., dass beispielsweise nicht die Minimalbeschleunigung amin (bzw. die maximale Verzögerung) eines Verfahrsatzes unterschritten wird. Diese Problematik wurde auch schon bei der Beschreibung der ersten Verfahrensanweisung dargelegt, wo iterativ dort für jeden Verfahrsatz Beschleunigungsendwerte aLA bestimmt wurden, welche es ermöglichen, die Beschleunigungsgrenze amin in jedem Verfahrsatz einzuhalten. Dies soll demnach auch im Folgenden berücksichtigt werden.Care must preferably be taken in this delay process that all restrictions are met, ie, that, for example, not the minimum acceleration a min (or the maximum delay) of a traversing set is fallen below. This problem has also been explained in the description of the first procedural instruction, where iteratively there acceleration end values for each traversing set a LA which allow the acceleration limit a min to be complied with in each positioning record. This should therefore also be considered below.

Die zweite Verfahrensanweisung (DecCheck-Algorithmus) wird vorteilhaft mittels zweier Methoden, nämlich einer Verzögerungs-Methode (Decelerate) und einer Bremsstreckenberechnungs-Methode (CalcBrakeDistance) erfüllt.The second method instruction (DecCheck algorithm) is advantageously fulfilled by means of two methods, namely a deceleration method and a braking distance calculation method (CalcBrakeDistance).

D.h., dass vorzugsweise der Verzögerungsvorgang mit den neuen Werte der Position (dNewPos), der Geschwindigkeit (dNewVel) und der Beschleunigung (dNewAcc), welche als Start- bzw. Anfangswerte dienen, unter Einsatz der Verzögerungs-Methode, bei welcher eine Endgeschwindigkeit unter einer vorgegeben Strecke ermittelt wird, und der Bremsstreckenberechnungs-Methode, bei welcher eine Strecke unter einer vorgegebenen Endgeschwindigkeit ermittelt wird, gebildet wird.That is, preferably, the deceleration process with the new values of the position (dNewPos), the velocity (dNewVel), and the acceleration (dNewAcc) serving as start and initial values, respectively, using the deceleration method in which a final velocity is below a determined predetermined distance, and the braking distance calculation method in which a distance is determined below a predetermined final speed is formed.

Demnach werden, um einen Verzögerungsvorgang zu ermöglichen, neben den Anfangswerten für die Geschwindigkeit und die Beschleunigung auch die Werte bezüglich einer gewünschten Endbeschleunigung und einer Strecke benötigt, auf welcher die Bewegung verzögert werden soll. Dies entspricht den Eingangsparametern der Verzögerungs-Methode (Decelerate: StartVel, StartAcc, EndAcc, Distance).Thus, in order to enable a deceleration process, in addition to the initial values for the velocity and the acceleration, the values with respect to a desired final acceleration and a distance at which the movement is to be delayed are also required. This corresponds to the input parameters of the deceleration method (Decelerate: StartVel, StartAcc, EndAcc, Distance).

Ein einziger Verzögerungsvorgang kann vorzugsweise nicht über Verfahrsatzgrenzen hinweg gebildet werden, da sich im Allgemeinen die Beschränkungen in den einzelnen Verfahrsätzen unterscheiden. Stattdessen wird bevorzugt für jeden Verfahrsatz ein eigener Verzögerungsvorgang gebildet.A single deceleration process preferably can not be formed across traversing block boundaries, since in general the restrictions in the individual traversing blocks differ. Instead, a separate delay process is preferably formed for each positioning record.

Befindet sich folglich die Bewegung gerade im Verfahrsatz an der Position x und ist die Gesamtstrecke des Verfahrsatzes s, dann steht eine Strecke s - x für die Verzögerung der Bewegung bzw. der Geschwindigkeit und/oder der Beschleunigung zur Verfügung.Consequently, the movement is currently in the traversing block at position x and is the total distance of the traversing block s , then there is a track s - x available for the deceleration of the movement or the speed and / or the acceleration.

Um zu bestimmen, welche Endbeschleunigung nun der Verzögerungs-Methode übergeben werden soll, wird die Verzögerung aLA (bzw. die negative Beschleunigung), welche in der ersten Verfahrensanweisung ermittelt wurde, verwendet, da diese sicherstellt, dass die Beschränkungen für die Minimalbeschleunigung amin in jedem Verfahrsatz eingehalten werden können.To determine which final acceleration should now be passed to the delay method, the delay becomes a LA (or the negative acceleration), which was determined in the first procedural instruction, since this ensures that the restrictions for the minimum acceleration a min can be complied with in each traversing block.

Als Ergebnis der Berechnung in der Verzögerungs-Methode wird vorteilhaft eine Endgeschwindigkeit (EndVel) ermittelt. Daneben gibt vorzugsweise die Verzögerungs-Methode auch die während des Verzögerungsvorgangs maximal erreichte Geschwindigkeit (LimVel) aus. Falls nämlich die Anfangsbeschleunigung (StartAcc) positiv ist, muss diese folglich zunächst erst abgebaut werden, damit anschließend verzögert werden kann. Solange die Beschleunigung „a“ jedoch positiv ist, wird weiterhin Geschwindigkeit aufgebaut, so dass die maximal erreichte Geschwindigkeit größer als die Anfangsbeschleunigung bzw. - geschwindigkeit ist.As a result of the calculation in the deceleration method, an end velocity (EndVel) is advantageously determined. Besides, preferably, the deceleration method also outputs the maximum speed (LimVel) achieved during the deceleration process. If, in fact, the initial acceleration (StartAcc) is positive, it must first be reduced before it can be delayed. However, as long as the acceleration "a" is positive, speed is still built up so that the maximum speed achieved is greater than the initial acceleration or speed.

Weiterhin ist es denkbar, dass die gewünschte Endbeschleunigung (EndAcc) gar nicht erreicht wird. Auch diese Situation kann bereits beim Beschleunigungsvorgang in der ersten Verfahrensanweisung auftreten.Furthermore, it is conceivable that the desired final acceleration (EndAcc) is not achieved. This situation can already occur during the acceleration process in the first procedural instruction.

Dazu folgendes fünftes Beispiel: The following fifth example:

Es seien eine Strecke der Länge s =30 und die Beschränkung jmin =-20000 gegeben. Die Anfangswerte lauten v0 =800 und a0 =3000. Die gewünschte Endbeschleunigung ist a3 =4000. Dann wäre eine Strecke s =320.8333 notwendig, um diese Endbeschleunigung zu erreichen. Innerhalb der Strecke s könnte dagegen die Beschleunigung auf a3=2293.160855222864 abgebaut werden. Die Endgeschwindigkeit lautet dann in diesem Fall v3 =893.5353323018386. Diese Endgeschwindigkeit v3 ist dann im vorliegenden Fall gleichzeitig die maximal erreichte Geschwindigkeit.It's a stretch of length s = 30 and the restriction min = -20000 given. The initial values are v 0 = 800 and a 0 = 3000th The desired final acceleration is a 3 = 4000th Then there would be a stretch s = 320.8333 necessary to reach this final acceleration. Within the route s on the other hand, the acceleration could be reduced to a 3 = 2293.160855222864. The final speed is then in this case v 3 = 893.5353323018386. This final speed v 3 is then in the present case at the same time the maximum speed reached.

Die Verzögerungs-Methode liefert folglich die Ausgangsparameter der Endgeschwindigkeit (EndVel), der Endbeschleunigung (EndAcc) und der Anfangsbeschleunigung bzw. - geschwindigkeit (LimVel) zurück. The delay method thus returns the output parameters of the final speed (EndVel), the final acceleration (EndAcc) and the initial acceleration (VelVel).

D.h., dass die durch die Verzögerungs-Methode ermittelte Endbeschleunigung immer größer gleich der Beschleunigung aLA ist.This means that the final acceleration determined by the deceleration method is always greater than or equal to the acceleration a LA is.

Demnach werden folglich vorzugsweise mittels der Verzögerungs-Methode ermittelte Verfahrsatz-Endwerte für die Geschwindigkeit (v3 ) und die Beschleunigung (a3 ) mit den ermittelten Endwerten (vLA , aLa ) der ersten Verfahrensanweisung verglichen, wobei immer gilt: a 3 = a LA .

Figure DE102011122434B4_0018
Accordingly, preferably determined by the delay method displacement rate end values for the speed ( v 3 ) and the acceleration ( a 3 ) with the determined end values ( v LA . a la ) of the first procedural instruction, where always: a 3 = a LA ,
Figure DE102011122434B4_0018

Dadurch ergeben sich folgende Fallunterscheidungen: v3>vLA Werte sind ungültig. v3=vLA; a3=aLA Werte sind gültig. v3=vLA; a3>aLA Es kann keine Aussage über die Gültigkeit der Werte gemacht werden. This results in the following case distinctions: v 3 > v LA Values are invalid. v 3 = v LA ; a 3 = a LA Values are valid. v 3 = v LA ; a 3 > a LA There can be no statement about the validity of the values.

Die erste Verfahrensanweisung hat für die Endpositionen der einzelnen Verfahrsätze die maximalen Geschwindigkeiten ermittelt, welche ein Anhalten der Bewegung, d.h. ein Reduzieren der Geschwindigkeit und der Beschleunigung auf den Wert Null, bis zum Streckenende garantieren. Jede größere Geschwindigkeit als die Endgeschwindigkeit gemäß der ersten Verfahrensanweisung vLA führt unvorteilhaft dazu, dass nicht mehr innerhalb der Strecke abgebremst werden kann. Deshalb sind die vorläufigen Werte in diesem Fall ungültig.The first procedural instruction has determined the maximum speeds for the end positions of the individual traversing blocks, which guarantee a stop of the movement, ie a reduction of the speed and the acceleration to the value zero, up to the end of the travel. Any speed greater than the final speed according to the first procedure v LA leads unfavorably to the fact that can not be braked within the track. Therefore, the preliminary values are invalid in this case.

Ist die Geschwindigkeit v3 dagegen kleiner gleich der Geschwindigkeit der ersten Verfahrensanweisung, müssen die Beschleunigungen vorzugsweise miteinander verglichen werden. Sind dagegen a3 und aLA identisch, dann kann folglich bevorzugt innerhalb der gesamten Strecke abgebremst werden.Is the speed v 3 on the other hand, less than or equal to the speed of the first procedural instruction, the accelerations must preferably be compared with each other. Are against it a 3 and a LA identical, then can be preferably decelerated within the entire route.

Ist a3 größer als aLA kann dagegen keine Aussage über die Gültigkeit der Werte gemacht werden. Dann werden die durch die Verzögerungs-Methode ermittelten Werte der Endgeschwindigkeit (EndVel) und der Endbeschleunigung (EndAcc) dem nächsten Verfahrsatz, welcher seinerseits mit diesen Anfangswerten einen Verzögerungsvorgang bildet, übergeben. D.h., dass am Anfang des nächsten Verfahrsatzes die Gesamtdistanz des darauffolgenden Verfahrsatzes der nächsten Verzögerungs-Methode übergeben werden, so dass wiederum Endwerte bzw. Endwertpaare erhalten werden, welche mit den entsprechenden Werten der ersten Verfahrensanweisung verglichen werden. Falls dann jedoch immer noch nicht über die Gültigkeit der vorläufigen Werte entschieden werden kann, wird mit dem übernächsten Verfahrsatz weitergerechnet. Dies wird solange fortgeführt, bis eine Entscheidung getroffen werden kann.is a 3 greater than a LA On the other hand, no statement can be made about the validity of the values. Then the final velocity (End Vel) and final acceleration (End Acc) values determined by the deceleration method are passed to the next traversing block, which in turn forms a deceleration with these initial values. This means that at the beginning of the next traversing block the total distance of the subsequent traversing block is transferred to the next deceleration method so that, in turn, end values or final value pairs are obtained, which are compared with the corresponding values of the first procedural instruction. If, however, it is still not possible to decide on the validity of the provisional values, the system continues to use the next-second positioning record. This will continue until a decision can be made.

Die zweite Methode der zweiten Verfahrensanweisung ist die Bremsstreckenberechnungs-Methode (CalcBrakeDistance). Während bei der Verzögerungs-Methode eine Strecke vorgegeben wird und eine Endgeschwindigkeit ermittelt wird, benötigt die Bremsstreckenberechnungs-Methode eine Endgeschwindigkeit und liefert die Strecke zurück, welche erforderlich ist, um auf diese Endgeschwindigkeit zu verzögern.The second method of the second procedure is the brake distance calculation method (CalcBrakeDistance). While in the deceleration method a distance is specified and a final speed is determined, the braking distance calculation method requires a final speed and returns the distance required to decelerate to that final speed.

Ebenso wie die Verzögerungs-Methode berechnet die Bremsstreckenberechnungs-Methode die beim Verzögerungsvorgang erreichte Maximalgeschwindigkeit (LimVel). Ebenso muss eine Endbeschleunigung angegeben werden, welche am Ende der Verzögerung erreicht werden soll. Kann diese Endbeschleunigung nicht erreicht werden bevor die Geschwindigkeit v3 erreicht wird, wird die bis dahin erreichte Verzögerung zurückgegeben.Like the deceleration method, the braking distance calculation method calculates the maximum speed (LimVel) achieved during deceleration. Similarly, a final acceleration must be specified, which should be reached at the end of the delay. This final acceleration can not be reached before the speed v 3 is reached, the delay reached so far is returned.

Dazu folgendes sechstes Beispiel: The following sixth example:

Es seien v0 =300, a0 =0, a3 =-4000=amin , jmax =50000=-jmin und s=50. Setzt man v3 =0, dann wird ein Bremsweg SB = 17.2125 ermittelt.It was v 0 = 300, a 0 = 0, a 3 = -4000 = a min . j max = 50000 = - min and s = 50. You put v 3 = 0, then becomes a braking distance S B = 17.2125 determined.

Zusätzlich zur Bildung eines Verzögerungsvorgangs und dem anschließenden Vergleichen der Wertepaare (v3 , a3 ) und (vLA , aLA ), kann auch beispielsweise mit der Bremsstreckenberechnungs-Methode auf das Wertepaar (vLA , aLA ) verzögert werden, um zu überprüfen, ob die dazu benötigte Strecke größer oder kleiner gleich der verbleibenden Distanz bis zum Verfahrsatzende ist.In addition to forming a delay process and then comparing the value pairs ( v 3 . a 3 ) and ( v LA . a LA ), can also be used for example with the braking distance calculation method on the value pair ( v LA . a LA ) to check whether the required distance is greater than or less than the remaining distance to the end of the traversing set.

Ist die Strecke kleiner gleich der verbleibenden Distanz bis zum Verfahrsatzende, dann sind die Werte gültig, anderenfalls ungültig. Für aLA≠0 ist diese Berechnung jedoch nicht immer so einfach durchführbar. So kann der Fall auftreten, dass das Wertepaar der ersten Verfahrensanweisung mit den gegebenen Startwerten nicht erreicht wird. Daher wird diese Methode vorzugsweise immer nur dann angewendet, wenn gilt aLA=0.If the distance is less than or equal to the remaining distance up to the end of the movement, the values are valid, otherwise they are invalid. For a LA ≠ 0, however, this calculation is not always so easy to perform. Thus, the case may arise that the value pair of the first procedural instruction with the given starting values is not reached. Therefore, this method is preferably always applied only when a LA = 0.

Mit der ersten Verfahrensanweisung wurden in der Verfahrsatzvorbereitung Werte für Endgeschwindigkeiten ermittelt, mit denen bis zum Streckenende verzögert werden kann. Bei diesen Werten galt, dass die zugehörige Beschleunigung stets gleich Null ist.With the first procedural instruction, values for final velocities were determined in the positioning block preparation, with which it is possible to delay to the end of the distance. For these values, the associated acceleration was always zero.

Mit diesen Werten kann vorteilhaft die Bremsstrecke ermittelt werden (dNewVel, dNewAcc, c_dConstEndVeILA, 0.0, dBrakeDist, dLimVel), wobei bevorzugt verglichen wird, ob die Bremsdistanz (dBrakeDist) größer oder kleiner gleich der Distanz bis zum Verfahrsatzende (dRestDist) ist. dBrakeDist = dRestDist Werte sind gültig. dBrakeDist > dRestDist Umschalten auf die Verzögerungs-Methode (DecCheckLow =FALSE). With these values, the braking distance can advantageously be determined (dNewVel, dNewAcc, c_dConstEndVeILA, 0.0, dBrakeDist, dLimVel), whereby it is preferably compared whether the braking distance (dBrakeDist) is greater than or less than the distance up to the end of the traverse end (dRestDist). dBrakeDist = dRestDist Values are valid. dBrakeDist> dRestDist Switching to the delay method (DecCheckLow = FALSE).

Ist der Bremsweg kleiner gleich der Reststrecke bis zum Verfahrsatzende sind die Werte gültig. Jedoch muss es umgekehrt nicht sein, dass die Werte ungültig sind, wenn der Bremsweg größer ist. Das „Bremsweg-Kriterium“ ist also hinreichend, jedoch nicht notwendig für die Gültigkeit der Werte der Position, der Geschwindigkeit und/oder der Beschleunigung (dNewPos, dNewVel, dNewAcc).If the braking distance is less than or equal to the remaining distance up to the end of the traversing stroke, the values are valid. However, conversely, the values need not be invalid when the braking distance is greater. The "braking distance criterion" is therefore sufficient, but not necessary for the validity of the values of position, speed and / or acceleration (dNewPos, dNewVel, dNewAcc).

Gilt in einem Verfahrsatz aLA=0, dann wird vorzugsweise die Bremsstreckenberechnungs-Methode angewandt, wobei die Verzögerungs-Methode dabei bevorzugt nicht zum Einsatz kommt, so dass folglich das Bremswegkriterium erforderlich ist. Das bedeutet, dass wenn der Bremsweg größer als die Distanz bis zum Verfahrsatzende ist, muss bevorzugt abgebremst werden, wobei die Werte jedoch dann ungültig sind.If a LA = 0 applies in a travel record, then preferably the brake distance calculation method is used, the deceleration method preferably not being used, and consequently the braking distance criterion is required. This means that if the braking distance is greater than the distance up to the end of the traversing stop, it is preferable to decelerate, but the values are then invalid.

Mittels der zweiten Verfahrensanweisung wurde folglich eine Methodik entwickelt, die nachweist oder auch widerlegt, dass mit den vorläufigen Werten der Position, Geschwindigkeit und Beschleunigung (dNewPos, dNewVel, dNewAcc) das Abbremsen bis zum Ende der Gesamtstrecke möglich ist. Des Weiteren wird mittels dieser zweiten Verfahrensanweisung im Wesentlichen nie die Minimalbeschleunigung amin der einzelnen Verfahrsätze verletzt, so dass folglich diese Beschränkung im Wesentlichen stets eingehalten wird.By means of the second procedural instruction, a methodology has been developed which proves or refutes that with the provisional values of position, velocity and acceleration (dNewPos, dNewVel, dNewAcc) it is possible to decelerate until the end of the total distance. Furthermore, by means of this second procedural instruction, the minimum acceleration is essentially never a min violates the individual traversing sets, so that consequently this restriction is essentially always adhered to.

In einer bevorzugten Ausführungsform wird der Ruck zumindest teilweise und besonders bevorzugt stets frei gewählt, so dass im Allgemeinen auch jmax . und jmin im Wesentlichen immer eingehalten werden. Folglich fehlen lediglich noch die Beschränkungen amax und vmax . In a preferred embodiment, the jerk is at least partially and more preferably always chosen freely, so that in general also j max , and min essentially always be adhered to. Consequently, only the restrictions are missing a max and v max ,

Da in der zweiten Verfahrensanweisung ein kontinuierlicher Verzögerungsvorgang gebildet wird, werden positive Beschleunigungen zuerst vorzugsweise vollständig abgebaut. Die maximale Beschleunigung wird bei diesem Vorgang also immer am Anfang eines Verfahrsatzes angenommen.Since a continuous deceleration process is formed in the second process instruction, positive accelerations are preferably first completely degraded. The maximum acceleration is thus always assumed at the beginning of a traversing block in this process.

Demnach wird vorzugsweise zu Beginn jedes Verfahrsatzes mittels der zweiten Verfahrensanweisung geprüft, ob die Anfangsgeschwindigkeit des jeweiligen Verfahrsatzes die Maximalbeschleunigung amax überschreitet.Accordingly, it is preferably checked at the beginning of each traversing set by means of the second method statement, whether the initial speed of each traversing set, the maximum acceleration a max exceeds.

Des Weiteren wird auf die Maximalgeschwindigkeit geachtet, indem nach dem Aufrufen der Bremsstreckenberechnungs-Methode und/oder der Verzögerungs-Methode beispielsweise immer die Werte der Anfangsbeschleunigung bzw. -geschwindigkeit (LimVel) mit den Werten der maximalen Geschwindigkeit (c_dMaxVel) verglichen werden.Furthermore, attention is paid to the maximum speed by, for example, always comparing the values of the initial acceleration (LimVel) with the values of the maximum speed (c_dMaxVel) after calling up the braking distance calculation method and / or the deceleration method.

Somit werden in der zweiten Verfahrensanweisung vorzugsweise alle Beschränkungen in die Betrachtung einbezogen. Wird eine Beschränkung verletzt, liefert beispielsweise die zweite Verfahrensanweisung einen Wert größer Null zurück. Anderenfalls ist mit dem Rückgabewert gleich 0 alles in Ordnung. Rückgabe-Wert Bedeutung 0 Keine Verletzung; Werte sind gültig. 1 Bremsweg reicht nicht aus. 2 Maximalgeschwindigkeit wurde überschritten. 3 Maximalbeschleunigung wurde überschritten. Thus, in the second procedural instruction, preferably all constraints are considered. If a constraint is violated, for example, the second procedural instruction returns a value greater than zero. Otherwise, with the return value equal to 0 everything is fine. Return value meaning 0 No injury; Values are valid. 1 Braking distance is not enough. 2 Maximum speed has been exceeded. 3 Maximum acceleration has been exceeded.

Wird während des Ablaufs der zweiten Verfahrensanweisung festgestellt, dass die Maximalbeschleunigung oder die Maximalgeschwindigkeit eines Verfahrsatzes verletzt wurde und/oder der Bremsweg nicht ausreicht, dann muss folglich vorzugsweise ein Bremsvorgang eingeleitet werden.If, during the course of the second process instruction, it is determined that the maximum acceleration or the maximum speed of a positioning record has been violated and / or the braking distance is insufficient, then a braking operation must therefore preferably be initiated.

Um jedoch korrekt verzögern zu können, werden für die verbleibende Strecke bis zum Verfahrsatzende Sektionen gebildet. D.h., dass jeder Verfahrsatz eine Vielzahl, jedoch mindestens eine Sektion und vorzugsweise mindestens zwei Sektionen aufweisen kann.However, in order to be able to decelerate correctly, sections are formed for the remaining distance up to the traversing set. That is, each traversing set may have a plurality but at least one section, and preferably at least two sections.

Folglich gibt es auch eine Vielzahl von verschiedenen Methoden-Bestandteilen bzw. Abschnitten, welche für das Bilden von Sektionen zuständig sind (BuildSections(), BuildAccSections(), BuildDecSections(), RemoveAcc (), BuildEndOfMove (), BuildFinalMove ()).Consequently, there are also a variety of different method components or sections that are responsible for forming sections (BuildSections (), BuildAccSections (), BuildDecSections (), RemoveAcc (), BuildEndOfMove (), BuildFinalMove ()).

Vorzugsweise werden beim Bilden der Sektionen die Anfangswerte (c_dSi, c_dVi, c_dAi) und die Rücke (c_dJi) in jeder einzelnen Sektion gespeichert. Zudem muss bevorzugt bekannt sein, wie lange das Verfahren jeder einzelnen Sektion andauert, so dass die Zeitpunkte (c_dTi), welche die Anfangszeit angeben, bei welcher die Sektion „i“ beginnt, gespeichert werden.Preferably, in forming the sections, the initial values (c_dSi, c_dVi, c_dAi) and the back (c_dJi) are stored in each individual section. In addition, it must be preferred to know how long the process of each individual section lasts, so that the times (c_dTi), which indicate the start time at which the section "i" begins, are stored.

Vor dem Bilden der Sektionen werden zudem die aktuelle Zeit (c_dTimeOffset) und Position (c_dPosOffset) gespeichert. Das hat den Vorteil, dass in den folgenden Berechnungen die Anfangswerte für die Zeit und die Position auf T=0 und s=0 gesetzt werden können.Before forming the sections, the current time (c_dTimeOffset) and position (c_dPosOffset) are also saved. This has the advantage that in the following calculations the initial values for the time and the position can be set to T = 0 and s = 0.

Um die korrekten Werte zu erhalten, werden dann wieder die Offset-Werte addiert. Wie viele und welche der vorzugsweise sieben Sektionen benötigt werden, ist von verschiedenen Faktoren abhängig. Wurde beispielsweise die Maximalgeschwindigkeit in einem Verfahrsatz verletzt, so wird beim Bilden der Sektionen in diesem Verfahrsatz folglich vorzugsweise versucht, exakt diese Maximalgeschwindigkeit zu erreichen.In order to obtain the correct values, the offset values are then added again. How many and which of the preferably seven sections are needed depends on several factors. If, for example, the maximum speed was violated in one traversing block, when forming the sections in this traversing block, it is therefore preferable to attempt to reach exactly this maximum speed.

Ein Ziel der vorliegenden Erfindung ist dabei demnach schnellstmöglich Geschwindigkeit abzubauen, wobei hierbei mehrere Fälle hinsichtlich der Anfangs- und Endbeschleunigung, wie die folgende Tabelle zeigt, unterschieden werden. a0 aLA >0 =0 =0 =0 <0 =0 >0 <0 =0 <0 <0 <0 Accordingly, an object of the present invention is to reduce speed as quickly as possible, whereby a plurality of cases with respect to the initial and final acceleration, as the following table shows, are distinguished. a 0 a LA > 0 = 0 = 0 = 0 <0 = 0 > 0 <0 = 0 <0 <0 <0

In einer bevorzugten Ausführungsform wird des Weiteren mit jedem Aufruf der dritten Verfahrensanweisung der Zeitpunkt (c_dTFinal), welcher das zeitliche Ende der Sektionen speichert, gesetzt, wobei dabei die Werte für die Position, die Geschwindigkeit, die Beschleunigung und den Ruck zurückgeliefert werden, welche der nachfolgende Verfahrsatz im ersten Interpolationsschritt wiederum als Anfangswerte verwendet.Furthermore, in a preferred embodiment, each time the third method instruction is called, the time (c_dTFinal), which stores the end of the period of the sections, is set, thereby returning the position, velocity, acceleration, and jerk values subsequent positioning record in the first interpolation step again used as initial values.

Weitere Vorteile, Ziele und Eigenschaften der vorliegenden Erfindung werden anhand nachfolgender Beschreibung anliegender Zeichnung erläutert.Further advantages, objects and characteristics of the present invention will be explained with reference to the following description of the appended drawings.

Komponenten, welche in den Figuren wenigstens im Wesentlichen hinsichtlich ihrer Funktion übereinstimmen, können hierbei mit gleichen Bezugszeichen gekennzeichnet sein, wobei diese Komponenten nicht in allen Figuren gekennzeichnet und erläutert sein müssen. Components which at least substantially coincide in the figures with respect to their function may in this case be identified by the same reference symbols, these components not having to be identified and explained in all figures.

In den Figuren zeigen:

  • 1 ein Diagramm zur beispielhaften Abbildung des zeitlichen Verlaufs von Geschwindigkeit, Beschleunigung und Ruck einer Bewegung;
  • 2 ein Diagramm zur Abbildung des Bahnverlaufs eines Bremsvorganges mit positiver Anfangs- und verschwindender Endbeschleunigung (a0>0, aLA=0):
  • 3 ein Diagramm zur Abbildung des Bahnverlaufs eines Bremsvorganges, bei welcher innerhalb der Sektionen die Bewegung verzögert wird;
  • 4 ein Diagramm zur Abbildung des Bahnverlaufs eines Bremsvorganges mittels der Bildung lediglich einer zweiten Sektion;
  • 5 ein Diagramm zur Abbildung des Bahnverlaufs eines Bremsvorganges mit negativer Anfangs- und negativer Endbeschleunigung (a0<0, aLA<0);
  • 6 ein Diagramm zur Abbildung des Bahnverlaufs eines Bremsvorganges mit negativer Anfangs- und verschwindender Endbeschleunigung(a0<0, aLA=0);
  • 7 ein Diagramm zur Abbildung des Bahnverlaufs eines Bremsvorganges mit verschwindender Anfangs- und verschwindender Endbeschleunigung (a0=0, aLA=0);
  • 8 ein Diagramm zur Abbildung des Bahnverlaufs eines Bremsvorganges mit verschwindender Anfangs- und negativer Endbeschleunigung (a0=0, aLA<0);
  • 9 ein Diagramm zur Abbildung des Bahnverlaufs eines Bremsvorganges mit positiver Anfangsbeschleunigung und dem Ziel die Maximalgeschwindigkeit zu erreichen, für den Fall a0=0, aLA=0;
  • 10 ein Diagramm zur Abbildung des Bahnverlaufs eines Bremsvorganges mit positiver Anfangsbeschleunigung und dem Ziel die Maximalgeschwindigkeit zu erreichen, für den Fall a0=0, aLA<0;
  • 11 ein Diagramm zur Abbildung der Ruckanpassung im letzten Verfahrsatz; und
  • 12 ein Diagramm zur Abbildung von Zeiten beim Verfahrsatzübergang.
In the figures show:
  • 1 a diagram for exemplifying the time course of speed, acceleration and jerk of a movement;
  • 2 a diagram illustrating the trajectory of a braking process with positive initial and vanishing final acceleration (a 0 > 0, a LA = 0):
  • 3 a diagram illustrating the trajectory of a braking process, in which the movement is delayed within the sections;
  • 4 a diagram for illustrating the trajectory of a braking operation by means of the formation of only a second section;
  • 5 a diagram illustrating the trajectory of a braking process with negative initial and negative final acceleration (a 0 <0, a LA <0);
  • 6 a diagram illustrating the trajectory of a braking process with negative initial and vanishing final acceleration (a 0 <0, a LA = 0);
  • 7 a diagram illustrating the trajectory of a braking process with vanishing initial and vanishing final acceleration (a 0 = 0, a LA = 0);
  • 8th a diagram illustrating the trajectory of a braking process with vanishing initial and negative final acceleration (a 0 = 0, a LA <0);
  • 9 a diagram for mapping the trajectory of a braking process with positive initial acceleration and the goal to reach the maximum speed, for the case a 0 = 0, a LA = 0;
  • 10 a diagram for mapping the trajectory of a braking process with positive initial acceleration and the goal to reach the maximum speed, for the case a 0 = 0, a LA <0;
  • 11 a diagram for mapping the jerk adjustment in the last traversing block; and
  • 12 a diagram for the representation of times during the movement record transition.

1 zeigt ein Diagramm zur beispielhaften Abbildung des zeitlichen Verlaufs von der Geschwindigkeit v, der Beschleunigung a und des Rucks j einer Bewegung, wobei der Ruck j für Bewegungen nicht über die gesamte Zeit des Bewegungsablaufs durch einen geschlossenen Funktionsterm dargestellt werden kann. Stattdessen wird der Ruck j abschnittsweise definiert. 1 shows a diagram for exemplary mapping of the time course of the speed v , the acceleration a and the jerk j a movement, the jerk j for movements can not be represented over the entire time of the movement by a closed Funktionssterm. Instead, the jolt j section-wise defined.

Wie in 1 deutlich zu erkennen ist, teilt sich die Bewegung in sieben Abschnitte auf, innerhalb derer der Ruck j jeweils konstant. ist. Die Bewegung beginnt zum Zeitpunkt T0 =0 und endet zum im Wesentlichen festgelegten Zeitpunkt T7 bzw. bei der Abschnittsgrenze T7 . Die Abschnitte sind folglich von t0 bis t6 nummeriert. Der i-te Abschnitt wird begrenzt durch die Zeitpunkte bzw. Abschnittsgrenzen Ti und Ti+1, i =0, ... ,6.As in 1 can be clearly seen, the movement is divided into seven sections, within which the jerk j always constant. is. The movement starts at the time T 0 = 0 and ends at the essentially fixed time T 7 or at the section boundary T 7 , The sections are therefore of t 0 to t 6 numbered. The i-th section is limited by the timings or section boundaries T i and T i + 1 , i = 0, ..., 6.

Der i-te Abschnitt hat dann die Länge ti =Ti+1 -TI. Umgekehrt gilt Ti+1 =Ti + ti, i =0, ..., 6.The i-th section then has the length t i = T i + 1 -T I. Conversely, T i + 1 = T i + t i , i = 0, ..., 6.

Der Ruck j wird nun abschnittsweise angegeben durch: j ( t ) = j i , T i < t = T i+1 , i = 0 , , 6 .

Figure DE102011122434B4_0019
The jerk j is now specified in sections by: j ( t ) = j i . T i < t = T i + 1 . i = 0 . ... . 6 ,
Figure DE102011122434B4_0019

Dabei sind j0 , ... j6 reelle Zahlen. Gemäß 1 gilt z.B.: j 0 = j 6 = j max ,

Figure DE102011122434B4_0020
j 1 = j 3 = j 5 = 0 ,
Figure DE102011122434B4_0021
j 2 = j 4 = j min .
Figure DE102011122434B4_0022
There are j 0 , ... j 6 real numbers. According to 1 applies, for example: j 0 = j 6 = j Max .
Figure DE102011122434B4_0020
j 1 = j 3 = j 5 = 0 .
Figure DE102011122434B4_0021
j 2 = j 4 = j min ,
Figure DE102011122434B4_0022

Um die Beschleunigung a zu einer beliebigen Zeit t bzw. zu einem beliebigen Zeitwert t, welcher einem Zeitpunkt t entspricht, zu erhalten, muss der Ruck j beispielsweise über mehrere Abschnitte integriert werden. Liegt t im i-ten Abschnitt, d. h. Ti < t = Ti+1, dann ist a ( t ) = a 0 + 0 t j ( τ ) d τ = a 0 + T 0 T 1 j 0 d τ + T 1 T 2 j 1 d τ + + T 1 T j 1 d τ

Figure DE102011122434B4_0023
To the acceleration a at any time t or at any time value t which one time t equals to receive, the jerk must j for example, be integrated over several sections. Lies t in the i-th section, ie T i <t = T i + 1 , then a ( t ) = a 0 + 0 t j ( τ ) d τ = a 0 + T 0 T 1 j 0 d τ + T 1 T 2 j 1 d τ + ... + T 1 T j 1 d τ
Figure DE102011122434B4_0023

Dabei ist: d a i : = T i T i + 1 j i d τ = j i * t i ,

Figure DE102011122434B4_0024
i=0,...,6
die Änderung der Beschleunigung a im i-ten Abschnitt. Die Beschleunigung an den Abschnittsgrenzen wird dabei mit ai=a(Ti) bezeichnet,
Für diese gilt: a i + 1 : = a i + d a i = a 0 + k = 0 i d a k ,
Figure DE102011122434B4_0025
i=0,...,6Where: d a i : = T i T i + 1 j i d τ = j i * t i .
Figure DE102011122434B4_0024
i = 0, ..., 6
the change of acceleration a in the i-th section. The acceleration at the section boundaries is denoted by a i = a (T i ),
For these applies: a i + 1 : = a i + d a i = a 0 + Σ k = 0 i d a k .
Figure DE102011122434B4_0025
i = 0, ..., 6

Somit lautet die Beschleunigung a zu einer beliebigen Zeit t im i-ten Abschnitt: a ( t ) = a 0 + da 0 + da 1 + + da i 1 + j i * ( t T i ) = a i + j i * ( t T i ) .

Figure DE102011122434B4_0026
Thus, the acceleration is a at any time t in the i-th section: a ( t ) = a 0 + there 0 + there 1 + ... + there i - 1 + j i * ( t - T i ) = a i + j i * ( t - T i ) ,
Figure DE102011122434B4_0026

Für Geschwindigkeit v und Position s werden analoge Größen eingeführt. So ist: d v i : = T 1 T i + 1 a ( τ ) d τ = T 1 T i + 1 a 1 + j i ( τ T i ) d τ = [ a i τ + 1 2 j i ( τ T i ) 2 ] t i T i + 1 = a i T i + 1 + 1 2 t i 2 a i T i = a i t i + 1 2 j i t i 2

Figure DE102011122434B4_0027
die Geschwindigkeitsänderung im i-ten Abschnitt und vi :=v(Ti) =vi-1, + dvi-1 die Geschwindigkeit zum Zeitpunkt Ti. Für eine beliebige Zeit t ∈ [Ti, Ti+1] lautet die Geschwindigkeit v ( t ) = v i + a i ( t T i ) + 1 2 j i ( t T i ) 2 .
Figure DE102011122434B4_0028
For speed v and position s Analogous quantities are introduced. So is: d v i : = T 1 T i + 1 a ( τ ) d τ = T 1 T i + 1 a 1 + j i ( τ - T i ) d τ = [ a i τ + 1 2 j i ( τ - T i ) 2 ] t i T i + 1 = a i T i + 1 + 1 2 t i 2 - a i T i = a i t i + 1 2 j i t i 2
Figure DE102011122434B4_0027
the velocity change in the ith section and v i : = v (T i ) = v i-1 , + dv i-1 the velocity at time T i . For any time t ∈ [T i , T i + 1 ] is the velocity v ( t ) = v i + a i ( t - T i ) + 1 2 j i ( t - T i ) 2 ,
Figure DE102011122434B4_0028

Die Positionsänderung im i-ten Abschnitt erhält man durch d s i : = T i T i + 1 v ( τ ) d τ = T i T i + 1 v i + a i ( τ T i ) + 1 2 j i ( τ T i ) 2 d τ = [ v i τ + 1 2 a i ( τ T i ) 2 + 1 6 j i ( τ T i ) 3 ] T i T i + 1 = v i t i + 1 2 a i t i 2 + 1 6 j t t i 3

Figure DE102011122434B4_0029
The position change in the i-th section is obtained by d s i : = T i T i + 1 v ( τ ) d τ = T i T i + 1 v i + a i ( τ - T i ) + 1 2 j i ( τ - T i ) 2 d τ = [ v i τ + 1 2 a i ( τ - T i ) 2 + 1 6 j i ( τ - T i ) 3 ] T i T i + 1 = v i t i + 1 2 a i t i 2 + 1 6 j t t i 3
Figure DE102011122434B4_0029

Die Position an den Abschnittsgrenzen ist si:=s(Ti)=sI-1+dsI-1 und für eine beliebige Zeit t ∈ [Ti, Ti+1] schließlich s ( t ) = s i + v i ( t T i ) + 1 2 a i ( t T i ) 2 + 1 6 j i ( t T i ) 3 .

Figure DE102011122434B4_0030
The position at the section boundaries is s i : = s (T i ) = s I-1 + ds I-1 and for any time t ∈ [T i , T i + 1 ] finally s ( t ) = s i + v i ( t - T i ) + 1 2 a i ( t - T i ) 2 + 1 6 j i ( t - T i ) 3 ,
Figure DE102011122434B4_0030

In der 2 ist ein Diagramm zur Abbildung des Bremsvorganges mit positiver Anfangs- und verschwindender Endbeschleunigung gezeigt. D.h., dass die aktuelle Beschleunigung a0>0 und die Beschleunigung aus der ersten Verfahrensanweisung aLA=0 ist. In the 2 is a diagram for mapping the braking process with positive initial and vanishing final acceleration shown. This means that the current acceleration a 0 > 0 and the acceleration from the first method statement a LA = 0.

Die Bewegung befindet sich beim Bilden der Sektionen also gerade in einem Beschleunigungsvorgang, so dass zunächst die vorhandene Beschleunigung abgebaut werden muss. D.h. die Bewegung befindet sich folglich im zweiten Segment, wobei gilt: T2 =0.The movement is thus in the process of forming the sections just in an acceleration process, so that first the existing acceleration must be reduced. That is, the movement is thus in the second segment, where: T 2 = 0th

Es wird nun die dritte Verfahrensanweisung und vorzugsweise die Methode BuildAccSections (StartVel, StartAcc, TargetVel) aufgerufen, um dieser die aktuellen Werte für die Geschwindigkeit (=v2 ) und die Beschleunigung (=a2) zu übergeben.Now, the third method statement and preferably the method BuildAccSections (StartVel, StartAcc, TargetVel) is called, in order to get the current values for the velocity (= v 2 ) and the acceleration (= a 2 ).

Da keine bestimmte Geschwindigkeit erreicht wird, sondern lediglich vorzugsweise so schnell wie möglich die Beschleunigung abgebaut werden soll, wird die Zielgeschwindigkeit bzw. die Endgeschwindigkeit auf Null gesetzt (TargetVel =0). Folglich wird berechnet, welche Zeit und Strecke benötigt wird, um bei Wirkung von j2 =jmin zu a3 =0 zu gelangen. Die Endwerte lauten dann T3 , s3 , v3 , a3=0.Since no particular speed is reached, but only preferably as quickly as possible, the acceleration is to be reduced, the target speed or the end speed is set to zero (TargetVel = 0). Consequently, it is calculated what time and distance is needed to take effect of j 2 = min to a 3 = 0 to arrive. The final values are then T 3 . s 3 . v 3 , a 3 = 0.

Zu der Beschleunigung der ersten Verfahrensanweisung aLA=0 gehört auch eine Geschwindigkeit vLA , welche bevorzugt am Ende des Verfahrsatzes erreicht werden soll. D.h., dass von einer Geschwindigkeit v3 auf eine Geschwindigkeit vLA<v3 verzögert wird.The speed of the first method instruction a LA = 0 also includes a speed v LA which should preferably be reached at the end of the traversing block. Ie, that of a speed v 3 to a speed v LA < v 3 is delayed.

Um den Verzögerungsvorgang zu planen, wird demnach bevorzugt die dritte Verfahrensanweisung (StartVel, StartAcc, EndVel) mit den Startwerten v3(=v4), a3=0(=a4) und der gewünschten Endgeschwindigkeit vLA verwendet. Hierbei werden anfänglich die Startwerte T4 =0 und s4 =0 angewandt, wobei erst später die korrekten Werte gespeichert werden.In order to plan the deceleration process, it is therefore preferred to use the third method instruction (StartVel, StartAcc, EndVel) with the starting values v 3 (= v 4 ), a 3 = 0 (= a 4 ) and the desired final speed v LA used. This will initially the starting values T 4 = 0 and s 4 = 0, whereby only later the correct values are stored.

Folglich wurden bisher die Strecken berechnet, welche für den Abbau bzw. die Reduzierung der Beschleunigung auf vLA , d.h. der Geschwindigkeit der ersten Verfahrensanweisung benötigt werden. Werden nun die beiden Streckenstücke und die aktuelle Position addiert, so erhält man im Wesentlichen die Distanz des aktuellen Verfahrsatzes. Jedoch ist es möglich, dass eine kleine Differenz beispielsweise aus folgendem Grund entstehen könnte: Das Bilden von Sektionen wurde, wie zuvor beschrieben, deshalb erforderlich, da bei einer weiteren Beschleunigung mit den Werten im nächsten Interpolationsschritt ein zu langer Bremsweg benötigt worden wäre, um auf vLA abzubremsen. Mit den aktuellen Werten hingegen ist ein Verzögern noch möglich. Der Grenzfall, bei dem ein Verzögern auf vLA gerade bis zum Endpunkt des Verfahrsatzes noch möglich ist, wird irgendwo zwischen den aktuellen Werten und den Werten im nächsten Schritt erreicht.Consequently, so far the distances have been calculated, which for the reduction or the reduction of the acceleration v LA , ie the speed of the first procedural instruction needed. If the two sections and the current position are added together, the distance of the current positioning block is essentially obtained. However, it is possible that a small difference could arise, for example, for the following reason: The formation of sections became necessary, as described above, because in a further acceleration with the values in the next interpolation step, an excessively long braking distance would have been required v LA decelerate. With the current values, however, a delay is still possible. The limiting case in which a delay on v LA is still possible until the end point of the traversing block is reached somewhere between the current values and the values in the next step.

Nachdem die Zeit t3 für diesen Abschnitt berechnet wurde, werden die Zeiten und Positionen am Anfang jedes einzelnen Abschnitts angepasst. Die Werte am Ende der letzten berechneten Sektion werden abgespeichert (zusätzlich in den Größen c_dS. c_dV, c_dA. c_dJ, c_dTFinal).After the time t 3 For this section, times and positions are adjusted at the beginning of each section. The values at the end of the last calculated section are stored (additionally in the sizes c_dS, c_dV, c_dA, c_dJ, c_dTFinal).

Darauf folgend wird die zweite Verfahrensanweisung deaktiviert.Subsequently, the second procedure is deactivated.

Immer wenn die Endbeschleunigung der ersten Verfahrensanweisung aLA=0 ist, kann die Endgeschwindigkeit vLA exakt erreicht werden. Ist dagegen aLA negativ, wie in 3 dargestellt, wird dann die Beschleunigung innerhalb der Sektionen so weit wie möglich verzögert, um zu versuchen am Ende des Verfahrsatzes aLA zu erreichen. Einen dritten Abschnitt gibt es in diesem Fall also nicht.Whenever the final acceleration of the first process instruction a LA = 0, the final velocity v LA be reached exactly. Is against a LA negative, as in 3 is shown, then the acceleration within the sections is delayed as much as possible to try at the end of the traversing block a LA to reach. There is no third section in this case.

Zum Bilden der Sektionen 4 bis 6 wird die dritte Verfahrensanweisung (BuildDecSections mit StartVel, StartAcc, EndAcc, Distance) aufgerufen, welcher dann die aktuellen Werte für die Geschwindigkeit und die Beschleunigung übergeben werden. Dabei ist aLA die Endbeschleunigung und die verbleibende Wegstrecke ist die Distanz, die sich dadurch ergibt, dass von der Gesamtdistanz des Verfahrsatzes die aktuelle Wegstrecke abgezogen wird, welche bei der Funktion der dritten Verfahrensanweisung (BuildAccSections()) verbraucht wurde.To make the sections 4 to 6 The third procedure (BuildDecSections with StartVel, StartAcc, EndAcc, Distance) is called, which then transfers the current values for the velocity and the acceleration. It is a LA the final acceleration and the remaining distance is the distance that results from subtracting from the total distance of the movement rate the current distance which was consumed in the function of the third procedure instruction (BuildAccSections ()).

Auch wäre es denkbar, dass es gar nicht möglich ist, alle Sektionen (DecSections) zu bilden, da bis zum Ende des Verfahrsatzes die Beschleunigung nicht auf a=0 abgebaut werden kann. In diesem Fall wird lediglich die zweite Sektion, wie in 4 gezeigt, gebildet.It would also be conceivable that it is not possible to form all sections (DecSections), since the acceleration can not be reduced to a = 0 until the end of the positioning record. In this case, only the second section, as in 4 shown, formed.

Ist die Anfangsbeschleunigung negativ, was beispielsweise dann passieren kann, wenn über mehrere Verfahrsätze hinweg verzögert wird, können die in den 5 und 6 gezeigten Fälle auftreten.If the initial acceleration is negative, which can happen, for example, if it is delayed over several traversing blocks, then those in the 5 and 6 Cases shown occur.

Der Fall a0<0, aLA<0 (5) ist ähnlich wie der Fall a0>0, aLA<0 (ähnlich zu 2), nur dass hier die Beschleunigungssektionen (AccSections) entfallen, so dass es nur die Abschnitte 4 bis 6 gibt. The case a 0 <0, a LA <0 ( 5 ) is similar to the case a 0 > 0, a LA <0 (similar to 2 ), except that here the acceleration sections (AccSections) are omitted, so that only the sections 4 to 6 gives.

Einen weiteren Fall zeigt 6. Generell liegt die Geschwindigkeit bei der Bahninterpolation stets etwas unterhalb der durch die erste Verfahrensanweisung berechneten Geschwindigkeit. Das führt im Fall a0<0, aLA=0 dazu, dass die gewünschte Endgeschwindigkeit vLA erreicht wird, bevor das Verfahrsatzende erreicht ist. Die übrige Strecke wird dann mit dieser Geschwindigkeit weiter abgefahren. Jedoch werden dabei keine Sektionen bis zum Verfahrsatzende gebildet, sondern es erfolgt ein Austreten aus den vorausberechneten Sektionen und ein Setzen beim Austreten aus den Sektionen der Werte.Another case shows 6 , In general, the speed in the web interpolation is always slightly below the speed calculated by the first method instruction. In the case a 0 <0, a LA = 0, this leads to the desired final speed v LA is reached before the end of the traversing is reached. The rest of the route will then continue at this speed. However, no sections are formed up to the end of the movement, but there is an exit from the precalculated sections and a setting on exit from the sections of the values.

In den 7 und 8 wird jeweils der Fall aufgezeigt, dass in einem Verfahrsatz die Maximalgeschwindigkeit erreicht werden soll oder bereits erreicht worden ist.In the 7 and 8th in each case the case is shown that in a traversing the maximum speed is to be achieved or has already been achieved.

Sollen Sektionen gebildet werden, dann können diese - falls aLA=0 ist - bis zum Verfahrsatzende geplant werden (siehe 7). Dieser Bahnverlauf berechnet sich analog zu dem in 2, nur muss jetzt keine Beschleunigung abgebaut werden, so dass die Abschnitte 0 bis 2 entfallen.If sections are to be formed, these can - if a LA = 0 - be planned until the end of the movement (see 7 ). This trajectory is calculated analogously to that in 2 , only now no acceleration needs to be broken down, leaving the sections 0 to 2 omitted.

In 8 wird zunächst in der zweiten Verfahrensanweisung mit konstanter (Maximal-) Geschwindigkeit verfahren, wie durch die gestrichelte Linie angedeutet. Gibt die zweite Verfahrensanweisung im Verlauf der Interpolation einen Wert größer Null zurück, werden Sektionen bis zum Verfahrsatzende gebildet.In 8th is first moved in the second procedure with constant (maximum) speed, as indicated by the dashed line. If the second procedural instruction returns a value greater than zero in the course of the interpolation, sections are formed up to the end of the movement.

In den 8 und 10 wird zudem der Fall gezeigt, dass die Sektionsbildung mit positiver Startbeschleunigung aufgerufen wird, wobei es das Ziel ist die Maximalgeschwindigkeit zu erreichen.In the 8th and 10 In addition, the case is shown that the section formation is called with positive start acceleration, where the goal is to reach the maximum speed.

Gilt folglich a0>0 und aLA=0, können wie gewohnt bis zum Verfahrsatzende Sektionen gebildet werden. Im Fall mit a0>0 und aLA<0, wie in der 10 gezeigt, werden zunächst die Beschleunigungssektionen (AccSections), d.h. die Abschnitte 0 bis 2 gebildet, um die Maximalgeschwindigkeit zu erreichen. Dann wird zuerst im Modus der zweiten Verfahrensanweisung verfahren und später noch einmal Sektionen gebildet, nämlich die Abschnitte 4 bis 6. Dieser Fall entspricht folglich im Wesentlichen dem Fall aus 8.Consequently, if a 0 > 0 and a LA = 0, then sections can be formed as usual until the end of the movement. In the case with a 0 > 0 and a LA <0, as in the 10 First, the acceleration sections (AccSections), ie the sections 0 to 2 formed to reach the maximum speed. Then, first in the mode of the second procedural instruction and later again sections are formed, namely the sections 4 to 6 , This case therefore essentially corresponds to the case 8th ,

Zu erwähnen sind zudem zwei weitere Sonderfälle. So kann es möglich sein, dass ein Verfahrsatz komplett im Modus der zweiten Verfahrensanweisung (DecCheckModus) verfahren wird, ohne dass Sektionen gebildet werden müssen. Das stellt sich vor allem am Anfang einer Bewegung ein, wenn das System beschleunigt. Um einen korrekten Übergang von einem Verfahrsatz zum nächsten Verfahrsatz zu gewährleisten, müssen aber die Werte für die Zeit, die Geschwindigkeit und die Beschleunigung berechnet werden, welche exakt am Verfahrsatzübergang (d. h. bei Position c_dDistance) gelten. Diese Position wird im Allgemeinen natürlich nicht auf einem Interpolationspunkt, sondern zwischen zwei Interpolationspunkten liegen.Also worth mentioning are two other special cases. It may thus be possible for a traversing block to be traversed completely in the mode of the second method instruction (DecCheck mode) without sections having to be formed. This is especially true at the beginning of a movement as the system accelerates. In order to ensure a correct transition from one positioning block to the next traversing block, however, the values for the time, velocity and acceleration must be calculated, which apply exactly at the traversing block transition (ie at position c_dDistance). Of course, this position will generally not lie on an interpolation point, but between two interpolation points.

Wird bei der Berechnung des nächsten Interpolationspunktes festgestellt, dass die neue Position größer als die Position am Verfahrsatzübergang ist (dNewPos> c_dDistance), dann werden jedoch nur für das letzte bzw. verbliebene Stück des Verfahrsatzes noch Sektionen gebildet, wobei der Verfahrensanweisung die aktuellen Werte für die Geschwindigkeit und die Beschleunigung sowie die verbleibende Strecke bis zum Verfahrsatzende (c_dDistance; c_dCurrentPos) übermittelt werden.If, during the calculation of the next interpolation point, it is determined that the new position is greater than the position at the traversing block transition (dNewPos> c_dDistance), then sections are still formed only for the last or remaining part of the traversing block, whereby the method statement contains the current values for the speed and the acceleration as well as the remaining distance are transmitted up to the end of the traversing end (c_dDistance; c_dCurrentPos).

Der andere Sonderfall betrifft den allerletzten Verfahrsatz im Verfahrsatzpuffer, für welchen stets vLA=0 und aLA=0 gilt. In 6 wurde die Situation aufgezeigt, dass auf eine konstante Geschwindigkeit vLA>0 abgebremst werden soll und die verbleibende Distanz des Verfahrsatzes im Modus der zweiten Verfahrensanweisung mit dieser Geschwindigkeit verfahren werden soll. Diese Lösung funktioniert jedoch nicht, wenn vLA=0 ist, denn hier kann die verbliebene Strecke nicht mehr aufgeholt werden, da bereits vollständig abgebremst wurde. Stattdessen müssen die Sektionen vorteilhaft so geplant werden, dass mit den vorhandenen Bedingungen die Restdistanz verfahren werden kann.The other special case concerns the very last traversing block in the traversing block, for which v LA = 0 and a LA = 0 always apply. In 6 the situation was shown that should be decelerated to a constant speed v LA > 0 and the remaining distance of the traversing set is to be traversed in the mode of the second procedural instruction at this speed. However, this solution does not work if v LA = 0, because here the remaining distance can not be made up, since it was already completely decelerated. Instead, the sections must advantageously be planned so that the remaining distance can be traversed with the existing conditions.

Alle diese Bedingungen können erfüllt werden, wenn der Ruck im letzten Abschnitt bzw. im letzten Verfahrsatz, wie in der 11 gezeigt, angepasst wird.All these conditions can be met if the jerk in the last section or in the last traversing block, as in the 11 shown, adjusted.

12 zeigt ein Diagramm zur Abbildung von Zeiten beim Verfahrsatzübergang. Für die Bahninterpolation wird in jedem Interpolationsschritt die Interpolationsberechnungs-Methode mit den aktuellen Werten für die Position, die Geschwindigkeit, die Beschleunigung und den Ruck aufgerufen und liefert die Werte für den nächsten Schritt zurück. Die Schrittweite wird durch die Zykluszeit bestimmt. Der Interpolationsberechnungs-Methode wird die aktuelle Zeit übergeben. Zu dem Zeitpunkt, an welchem Sektionen gebildet werden, wird diese Zeit vorzugsweise temporär zwischengespeichert (Offset-Wert). Das ist insbesondere deshalb erforderlich, weil der Anfangszeitpunkt der Sektionen auf T=0 festgelegt wurde, und nicht, wie es bevorzugt sein müsste, auf die aktuelle Zeit. 12 shows a diagram for mapping times in the movement set transition. For path interpolation, in each interpolation step, the interpolation calculation method is called with the current position, velocity, acceleration, and jerk values, and returns the values for the next step. The step size is determined by the cycle time. The interpolation calculation method is passed the current time. At the time at which sections are formed, this time is preferably buffered temporarily (offset value). This is particularly necessary because the start time of the sections has been set to T = 0 and not, as should be preferred, to the current time.

Wenn später innerhalb der berechneten Sektionen verfahren wird, wird folglich von der aktuellen Zeit der Offset-Wert abgezogen. Vergleichbar wird ebenso mit der Position verfahren.If you move later within the calculated sections, the offset value will be subtracted from the current time. The same procedure is used for the position.

Beim Bilden der Sektionen wird demnach die Positionsdifferenz zwischen der aktuellen Position und der gespeicherten Position auf den gespeicherten Positionswert aufaddiert. Überschreitet während der Interpolation zu irgendeinem Zeitpunkt die Position die Gesamtdistanz des Verfahrsatzes, so wird vermerkt, dass die Bewegung am Verfahrsatzende angekommen ist und sich eigentlich bereits im nächsten Verfahrsatz befindet. An dieser Stelle wird vorzugsweise ein „Zwischenschritt“ bei der Interpolation eingefügt. Bei jedem Aufruf der dritten Verfahrensanweisung (BuildSections-Methode) wird der Zeitpunkt (c_dTFinal) gesetzt, der das zeitliche Ende der Sektionen speichert. Werden Sektionen bis zum Verfahrsatzende gebildet, dann markiert dieser Zeitpunkt auch das zeitliche Ende des Verfahrsatzes. Es können folglich die Werte für die Position, die Geschwindigkeit, die Beschleunigung und den Ruck am Verfahrsatzende zurückgeliefert werden. Vorzugsweise wird außerdem die Restzeit temporär gespeichert, die bis zum nächsten reguIären Interpolationspunkt fehlt. Der nächste Satz verwendet vorzugsweise nun im ersten Interpolationsschritt nicht die übliche Zykluszeit, sondern diese gespeicherte Restzeit und ermittelt damit die Werte für die Position, die Geschwindigkeit, die Beschleunigung und den Ruck. Damit ist die Bewegung im neuen Verfahrsatz angekommen.When forming the sections, therefore, the position difference between the current position and the stored position is added to the stored position value. If the position exceeds the total distance of the positioning record during the interpolation at any time, it is noted that the movement has arrived at the end of the positioning block and is actually already in the next positioning block. At this point, an "intermediate step" is preferably inserted in the interpolation. Each time the third method statement is called (BuildSections method), the time (c_dTFinal) is set, which stores the end of the period of the sections. If sections are formed up to the end of the traversing block, then this point in time also marks the end of the traversing block. Consequently, the values for the position, the velocity, the acceleration and the jerk at the end of the motion set can be returned. Preferably, the remaining time, which is missing until the next regulatory interpolation point, is also temporarily stored. The next sentence preferably now uses in the first interpolation step not the usual cycle time, but this stored residual time and thus determines the values for the position, the velocity, the acceleration and the jerk. This means that the movement has arrived in the new traversing block.

BezugszeichenlisteLIST OF REFERENCE NUMBERS

aa
Beschleunigungacceleration
amax a max
maximale Beschleunigungmaximum acceleration
amin a min
minimale Beschleunigungminimal acceleration
jj
Ruckshock
jmax j max
maximaler Ruckmaximum jerk
jmin min
minimaler Ruckminimal jerk
ss
Positionposition
tt
ZeitTime
t0, t1, t2, t3, t4, t5, t6 t 0 , t 1 , t 2 , t 3 , t 4 , t 5 , t 6
Abschnittesections
T1, T2, T3, T4, T3, T6 T 1 , T 2 , T 3 , T 4 , T 3 , T 6
Zeitpunktetimings
vmax v max
Maximale GeschwindigkeitMaximum speed
v,v2, v3, V4, v5,v6, v7 v, v 2, v 3, V4, v 5, v 6 v 7
Geschwindigkeitspeed

Claims (8)

Verfahren zur Steuerung einer Bewegung einer mechanischen Vorrichtung unter Verwendung nacheinander interpolierter Verfahrsätze, mittels einer durch eine Steuerungseinrichtung durchgeführten Bahnplanung zur Sicherstellung der Einhaltung der in jedem Verfahrsatz gültigen Beschränkungen und zum Abbau einer Geschwindigkeit und einer Beschleunigung bis zu einer vorgegebenen Endposition der Bewegung unter Verwendung zumindest einer ersten Verfahrensanweisung, welche zumindest in einer Phase einer Verfahrsatzvorbereitung für jeden Verfahrsatz eine noch erlaubte Endgeschwindigkeit berechnet, bei welcher ein Anhalten bis zum Streckenende garantiert wird, wobei in der Phase einer Verfahrsatzabarbeitung die berechnete Endgeschwindigkeit zum Ermitteln des eigentlichen Geschwindigkeitsverlaufes verwendet wird, und wobei ausgehend von den aktuellen Werten der Position (s), Geschwindigkeit (v), und Beschleunigung (a), mittels der ersten Verfahrensanweisung der maximale Ruck (jmax) gesetzt und dadurch neue Werte der Position (s), Geschwindigkeit (v) und Beschleunigung (a) durch Interpolation ermittelt werden; sowie mittels zumindest einer zweiten Verfahrensanweisung, welche eine Gültigkeit von zumindest während einer Verfahrsatzabarbeitung durch die erste Verfahrensanweisung ermittelten Werte verifiziert, indem mit Hilfe der zweiten Verfahrensanweisung geprüft wird, ob die neuen Werte der Position (s), der Geschwindigkeit (v) und der Beschleunigung (a) gültig sind, und mittels zumindest einer dritten Verfahrensanweisung, welche beim Überschreiten einer Beschränkung und/oder bei unzureichendem Bremsweg eines Verfahrsatzes, einen Bremsvorgang einleitet, indem für die verbliebene Strecke bis zum Verfahrsatzende Sektionen gebildet werden, welche für den Abbau der Beschleunigung und das Abbremsen auf den durch die erste Verfahrensanweisung ermittelten Endgeschwindigkeitswert benötigt werden, wobei die Bewegung mit einer Anfangsgeschwindigkeit und einer Anfangsbeschleunigung beginnt und an einem Endpunkt anhält.A method of controlling a movement of a mechanical device using successively interpolated traversing blocks, by means of a path planning performed by a controller to ensure compliance with the limits in each traversing set and to reduce a speed and an acceleration up to a predetermined end position of the movement using at least one first method instruction, which calculates a still permissible final speed for each traversing block at least in one phase of a traversing block preparation, in which stopping is guaranteed until the end of the traverse, wherein in the traversing processing phase the calculated final speed is used to determine the actual velocity trajectory, and starting from the current values of the position (s), velocity (v), and acceleration (a), by means of the first procedural instruction set the maximum jerk (j max ) and thereby determining new values of position (s), velocity (v) and acceleration (a) by interpolation; and by means of at least one second method instruction which verifies a validity of values determined by the first method instruction at least during a method block processing by checking with the aid of the second method instruction whether the new values of position (s), speed (v) and acceleration (a) are valid, and by means of at least a third procedural instruction, which initiates a braking operation when a restriction and / or insufficient braking distance of a traversing set, by forming the remaining distance to the traversing end sections, which for the Reduction of the acceleration and deceleration are required to the determined by the first method instruction Endgeschwindigkeitswert, wherein the movement starts with an initial speed and an initial acceleration and stops at an end point. Verfahren gemäß Anspruch 1, dadurch gekennzeichnet, dass die Beschränkungen zumindest eine Maximalgeschwindigkeit (vmax), eine Maximalbeschleunigung (amax), eine Minimalbeschleunigung (amin), einen maximalen Ruck (jmax) und einen minimalen Ruck (jmin) umfassen.Method according to Claim 1 , characterized in that the constraints comprise at least a maximum speed (vmax), a maximum acceleration (a max ), a minimum acceleration (a min ), a maximum jerk (j max ) and a minimum jerk (j min ). Verfahren gemäß einem der Ansprüche 1 oder 2, dadurch gekennzeichnet, dass die mechanische Vorrichtung ein Industrieroboter ist.Method according to one of Claims 1 or 2 , characterized in that the mechanical device is an industrial robot. Verfahren gemäß Anspruch 1 oder 2, dadurch gekennzeichnet, dass ein Verzögerungsvorgang mit den neuen Werten der Position (s), der Geschwindigkeit (v) und der Beschleunigung (a), welche als Startwerte dienen, unter Einsatz einer Verzögerungs-Methode, bei welcher eine Endgeschwindigkeit unter einer vorgegeben Strecke ermittelt wird, und einer Bremsstreckenberechnungs-Methode, bei welcher eine Strecke unter einer vorgegebenen Endgeschwindigkeit ermittelt wird, gebildet wird.Method according to Claim 1 or 2 , characterized in that a deceleration operation with the new values of the position (s), the speed (v) and the acceleration (a) serving as start values is made using a deceleration method in which a final speed is determined below a predetermined distance is formed, and a braking distance calculation method in which a distance is determined below a predetermined final speed. Verfahren gemäß Anspruch 4, dadurch gekennzeichnet, dass mittels der Verzögerungs-Methode ermittelte Verfahrsatz-Endwerte für die Geschwindigkeit (v3) und die Beschleunigung (a3) mit den ermittelten Endwerten (vLA, aLa) der ersten Verfahrensanweisung verglichen werden, wobei immer gilt: a3≥aLA.Method according to Claim 4 , characterized in that by means of the deceleration method determined traverse rate end values for the velocity (v 3 ) and the acceleration (a 3 ) with the determined end values (v LA , a La ) of the first procedural instruction are compared, where always applies: a 3 ≥a LA . Verfahren gemäß einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass zu Beginn jedes Verfahrsatzes mittels der zweiten Verfahrensanweisung geprüft wird, ob bei einer vorbestimmten Anfangsgeschwindigkeit (vstart) des jeweiligen Verfahrsatzes die zulässige Maximalbeschleunigung (amax) überschritten wird.Method according to one of the preceding claims, characterized in that at the beginning of each traversing set by means of the second method statement is checked whether at a predetermined initial speed (v start ) of the respective traversing set, the maximum permissible acceleration (a max ) is exceeded. Verfahren gemäß einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass der Ruck (j) zumindest teilweise frei gewählt wird.Method according to one of the preceding claims, characterized in that the jerk (j) is at least partially selected freely. Verfahren gemäß einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass mit jedem Aufruf der dritten Verfahrensanweisung der Zeitpunkt, welcher das zeitliche Ende der Sektionen speichert, gesetzt wird, wobei dabei die Werte für die Position (s), die Geschwindigkeit (v), die Beschleunigung (a) und den Ruck (j) zurückgeliefert werden, welche der nachfolgende Verfahrsatz im ersten Interpolationsschritt wiederum als Anfangswerte verwendet.Method according to one of the preceding claims, characterized in that with each call of the third method instruction, the time which stores the end of the period of the sections is set, whereby the values for the position (s), the speed (v), the acceleration (a) and the jerk (j) are returned, which the subsequent traversing block again uses as initial values in the first interpolation step.
DE102011122434.7A 2011-12-24 2011-12-24 Method for controlling movement of mechanical devices using sequentially interpolated traversing blocks Expired - Fee Related DE102011122434B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102011122434.7A DE102011122434B4 (en) 2011-12-24 2011-12-24 Method for controlling movement of mechanical devices using sequentially interpolated traversing blocks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102011122434.7A DE102011122434B4 (en) 2011-12-24 2011-12-24 Method for controlling movement of mechanical devices using sequentially interpolated traversing blocks

Publications (2)

Publication Number Publication Date
DE102011122434A1 DE102011122434A1 (en) 2013-06-27
DE102011122434B4 true DE102011122434B4 (en) 2019-07-04

Family

ID=48575634

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011122434.7A Expired - Fee Related DE102011122434B4 (en) 2011-12-24 2011-12-24 Method for controlling movement of mechanical devices using sequentially interpolated traversing blocks

Country Status (1)

Country Link
DE (1) DE102011122434B4 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021000814A1 (en) 2020-03-03 2021-09-09 Sew-Eurodrive Gmbh & Co Kg Method for braking an object and machine

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015103451B4 (en) * 2015-03-10 2021-09-23 Deutsches Zentrum für Luft- und Raumfahrt e.V. Method for the time-discrete control of drivable axes and computer program product
CN107671859B (en) * 2017-10-20 2018-11-02 山东大学 Moving target Dynamic Tracking, system and device based on S curve acceleration and deceleration
EP3556521B1 (en) * 2018-04-18 2023-05-24 B&R Industrial Automation GmbH Brake path monitoring of a kinematic
CN111660314B (en) * 2020-05-09 2022-08-16 北京配天技术有限公司 Robot stop buffer division method, device and storage device
CN113501012A (en) * 2021-06-29 2021-10-15 湖南千盟工业智能系统股份有限公司 Automatic efficient traveling and accurate alignment method for coking locomotive

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5811952A (en) 1995-06-29 1998-09-22 Fanuc Ltd. Method of setting accelerating/decelerating motion of robot
US6216058B1 (en) 1999-05-28 2001-04-10 Brooks Automation, Inc. System of trajectory planning for robotic manipulators based on pre-defined time-optimum trajectory shapes
EP2022608A2 (en) 2007-07-31 2009-02-11 Rockwell Automation Technologies, Inc. Improved blending algorithm for trajectory planning
DE102008029657A1 (en) 2008-06-24 2009-12-31 Technische Universität Carolo-Wilhelmina Zu Braunschweig Position-controlled mechanism and method for controlling mechanisms movable in multiple degrees of freedom of movement
DE102009024130A1 (en) 2009-05-29 2010-12-02 Technische Universität Ilmenau Method for real-time capable path planning of continuous, jerk-free setpoint trajectories
DE102010025271A1 (en) 2010-06-28 2011-12-29 Sew-Eurodrive Gmbh & Co. Kg Method for determining path curve of e.g. load over two- or multi-axis machine, involves providing zero-crossover in acceleration curve during falling movement, and determining prevailing acceleration at summit level

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5811952A (en) 1995-06-29 1998-09-22 Fanuc Ltd. Method of setting accelerating/decelerating motion of robot
US6216058B1 (en) 1999-05-28 2001-04-10 Brooks Automation, Inc. System of trajectory planning for robotic manipulators based on pre-defined time-optimum trajectory shapes
EP2022608A2 (en) 2007-07-31 2009-02-11 Rockwell Automation Technologies, Inc. Improved blending algorithm for trajectory planning
DE102008029657A1 (en) 2008-06-24 2009-12-31 Technische Universität Carolo-Wilhelmina Zu Braunschweig Position-controlled mechanism and method for controlling mechanisms movable in multiple degrees of freedom of movement
DE102009024130A1 (en) 2009-05-29 2010-12-02 Technische Universität Ilmenau Method for real-time capable path planning of continuous, jerk-free setpoint trajectories
DE102010025271A1 (en) 2010-06-28 2011-12-29 Sew-Eurodrive Gmbh & Co. Kg Method for determining path curve of e.g. load over two- or multi-axis machine, involves providing zero-crossover in acceleration curve during falling movement, and determining prevailing acceleration at summit level

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021000814A1 (en) 2020-03-03 2021-09-09 Sew-Eurodrive Gmbh & Co Kg Method for braking an object and machine
WO2021175487A1 (en) 2020-03-03 2021-09-10 Sew-Eurodrive Gmbh & Co. Kg Method for decelerating an object and machine

Also Published As

Publication number Publication date
DE102011122434A1 (en) 2013-06-27

Similar Documents

Publication Publication Date Title
DE102011122434B4 (en) Method for controlling movement of mechanical devices using sequentially interpolated traversing blocks
DE102014223000B4 (en) Adjustable trajectory planning and collision avoidance
EP2421736B1 (en) Method for operating a rail vehicle
DE102005061570A1 (en) Method for determining position-led approximate path to be traveled e.g. by processing machines and machine tools, involves using scalar path parameter in start function
DE112013002882T5 (en) Vehicle travel control device
EP3071501B1 (en) Method for operating a lift control device
DE102015205099B4 (en) Braking a rail vehicle
EP3676139B1 (en) Method and equipment for determining braking-relevant actual values of a rail vehicle for the performance of controlled-retardation braking with distributed sensors
WO2020260048A1 (en) Method and device for the dynamic optimization of a braking distance of vehicles, in particular of rail vehicles
DE102018110297B4 (en) Method and device for jerk-limited trajectory planning and real-time control of a movement
DE2631540C3 (en) Device for optimizing the driving speed in a track-bound vehicle
EP2527221A1 (en) Method for operating a longitudinally guiding driver assistance system of a motor vehicle and motor vehicle
DE2643148C2 (en)
DE102014018974B4 (en) Control device for an injection molding machine
EP2135143B1 (en) Method and device for guiding the movement of a movable machine element of a numerically controlled machine
DE102017106559B4 (en) Design or implementation of a movement task of a moving mass in a mechanical system along at least one axis of movement
DE102016220577A1 (en) Method for optimizing the motion contours of a manipulator
DE2944571C2 (en) Device for optimizing the mountain performance of a drainage system
DE3016081C2 (en) Device for the precise braking of track-bound vehicles
DE102021103126B4 (en) Method for accelerating a handling machine
EP2278425B1 (en) Method and device for controlling a movement cycle of a machine element
EP2202597B1 (en) Method for operating a packing machine with at least two mobile units and packing machine
DE3938083C2 (en)
DE102012014012B4 (en) Method for controlling the longitudinal movement of a rail vehicle, cornering control device and rail vehicle
EP2319730A1 (en) Method for operating a predictive adaptive light system in a motor vehicle and motor vehicle

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee