DE102021211819B3 - Method for generating a speed profile for a path control - Google Patents
Method for generating a speed profile for a path control Download PDFInfo
- Publication number
- DE102021211819B3 DE102021211819B3 DE102021211819.4A DE102021211819A DE102021211819B3 DE 102021211819 B3 DE102021211819 B3 DE 102021211819B3 DE 102021211819 A DE102021211819 A DE 102021211819A DE 102021211819 B3 DE102021211819 B3 DE 102021211819B3
- Authority
- DE
- Germany
- Prior art keywords
- speed
- path
- profile
- speed profile
- zone
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000007704 transition Effects 0.000 claims abstract description 124
- 230000001133 acceleration Effects 0.000 claims abstract description 87
- 230000036461 convulsion Effects 0.000 claims abstract description 46
- 238000004364 calculation method Methods 0.000 claims description 60
- 230000008859 change Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 7
- 230000009467 reduction Effects 0.000 description 7
- 238000001914 filtration Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 230000015654 memory Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 208000027418 Wounds and injury Diseases 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical 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/416—Numerical 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
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
Landscapes
- Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Numerical Control (AREA)
Abstract
Die Erfindung betrifft ein Verfahren zur Generierung eines Geschwindigkeitsprofils für eine Bahnsteuerung umfassend ein Erzeugen eines Grenzgeschwindigkeitsprofils (1) für mehrere Bahnsegmente einer vorgegebenen Bahn, ein Aufteilen des Grenzgeschwindigkeitsprofils (1) in Zonen (1 a-1 g), die jeweils konstante Grenzwerte für Geschwindigkeit, Beschleunigung oder Ruck aufweisen, ein Ermitteln einer Vielzahl von Übergangsbedingungen an einem Übergang von einer ersten Zone (1a-1g) auf eine zweite Zone (1a-1g) basierend auf einem Grenzwert der zweiten Zone (1a-1g) und ein Berechnen eines ersten Geschwindigkeitsprofils (2) für die erste Zone (1a-1g) zum Erreichen einer vorbestimmten Sollgeschwindigkeit (vsoll), wobei das erste Geschwindigkeitsprofil (2) eine Vielzahl vorbestimmter Interpolationspunkte zur Ermittlung eines aktuellen Bahnwegs aufweist. Wenn das erste Geschwindigkeitsprofil eine der Vielzahl von Übergangsbedingungen verletzt, wird ein zweites Geschwindigkeitsprofils (3.1-3.5) für den Übergang von der ersten Zone (1a-1g) in die zweite Zone (1a-1g) an jedem Interpolationspunkt des ersten Geschwindigkeitsprofils (2) berechnet, wobei das zweite Geschwindigkeitsprofil (3.1-3.5) jeweils abhängig von einer ermittelten Geschwindigkeit in einem Interpolationspunkt und einer zugehörigen Übergangsbedingung berechnet wird, von dem ersten Geschwindigkeitsprofil (2) auf das zweite Geschwindigkeitsprofil (3.1-3.5), das an einem direkt vorangegangenen Interpolationspunkt berechnet wurde, gewechselt, wenn das zweite Geschwindigkeitsprofil (3.1-3.5), das an einem aktuellen Interpolationspunkt berechnet wurde, eine der Vielzahl von Übergangsbedingungen verletzt, und Interpolationspunkte werden entlang des zweiten Geschwindigkeitsprofils (3.1-3.5) zur Ermittlung des aktuellen Bahnwegs bestimmt.The invention relates to a method for generating a speed profile for a path control, comprising generating a limit speed profile (1) for a plurality of path segments of a specified path, dividing the limit speed profile (1) into zones (1a-1g), each of which has constant limit values for speed , acceleration or jerk, determining a plurality of transition conditions at a transition from a first zone (1a-1g) to a second zone (1a-1g) based on a limit value of the second zone (1a-1g) and calculating a first Speed profile (2) for the first zone (1a-1g) to reach a predetermined desired speed (vsoll), the first speed profile (2) having a multiplicity of predetermined interpolation points for determining a current path. If the first velocity profile violates one of the plurality of transition conditions, a second velocity profile (3.1-3.5) is generated for the transition from the first zone (1a-1g) to the second zone (1a-1g) at each interpolation point of the first velocity profile (2) calculated, the second speed profile (3.1-3.5) being calculated in each case as a function of a determined speed in an interpolation point and an associated transition condition, from the first speed profile (2) to the second speed profile (3.1-3.5) at a directly preceding interpolation point calculated, switched when the second velocity profile (3.1-3.5) computed at a current interpolation point violates one of the plurality of transition conditions, and interpolation points are determined along the second velocity profile (3.1-3.5) to determine the current trajectory.
Description
Die vorliegende Erfindung betrifft ein Verfahren zur Generierung eines Geschwindigkeitsprofils für eine Bahnsteuerung sowie eine Recheneinheit und ein Computerprogramm zur Durchführung des Verfahrens. Das Verfahren erlaubt Modifikationen des Geschwindigkeitsprofiles zur Laufzeit unter Einhaltung von definierten Grenzwerten für Geschwindigkeit, Beschleunigung und Ruck.The present invention relates to a method for generating a speed profile for a path control, as well as a computing unit and a computer program for carrying out the method. The process allows modifications to the velocity profile during runtime while maintaining defined limit values for velocity, acceleration and jerk.
Hintergrund der ErfindungBackground of the Invention
In numerisch gesteuerten Maschinen und Anlagen kommen Bahnsteuerungen zum Einsatz, welche die Position eines sich bewegenden Objekts entlang einer vorab festgelegten Bahn steuern. Im Rahmen der Bahnsteuerung werden die Bewegungen zu der nächsten anzufahrenden Position (Bewegungsprofil), die Art der dabei zu durchfahrenden Bahn und die Geschwindigkeit für die Bewegungen zu dieser Position vorgegeben. Die Bahn wird üblicherweise in Bahnsegmente zerlegt, die z.B. aus Geraden oder Kreissegmenten bestehen. Da reale Maschinen und Anlagen bestimmten Einschränkungen hinsichtlich der maximalen Geschwindigkeit, Beschleunigung und des Rucks (Änderung der Beschleunigung) unterliegen, kann die Abarbeitung eines einzelnen Bahnsegments von einem Startpunkt zu einem Endpunkt nicht mit einer vorgegebenen konstanten Geschwindigkeit erfolgen, da dies am Startpunkt des Bahnsegments, an dem die Geschwindigkeit des Objekts null beträgt, einen Geschwindigkeitssprung mit unendlicher Beschleunigung zur Folge hätte. Daher sind kontinuierliche Geschwindigkeitsprofile erforderlich, bei denen diese Geschwindigkeitssprünge geglättet/verrundet werden.Path controls are used in numerically controlled machines and systems, which control the position of a moving object along a predefined path. Within the framework of path control, the movements to the next position to be approached (motion profile), the type of path to be traveled through and the speed for the movements to this position are specified. The trajectory is usually broken down into trajectory segments, which consist of straight lines or circular segments, for example. Since real machines and systems are subject to certain limitations with regard to the maximum speed, acceleration and jerk (change in acceleration), the processing of a single path segment from a starting point to an end point cannot take place at a specified constant speed, since this is the starting point of the path segment, where the object's velocity is zero, would result in a jump in velocity with infinite acceleration. Continuous speed profiles are therefore required in which these speed jumps are smoothed/rounded off.
Eine solche Filterung hat den Nachteil, dass zur Laufzeit zwei verschiedene Betrachtungsebenen (vor und nach dem Filter) vorliegen, die eine separate Verwaltung benötigen. Dies führt zu komplexen und damit fehleranfälligen Algorithmen im Hinblick auf die Synchronisation zwischen der interpolierten Bewegung und nicht bewegungsspezifischen Maschinenfunktionen. Zudem lassen sich Beschleunigung und Ruck durch das oben beschriebene Verfahren nicht vollständig entkoppeln, so dass der maximal mögliche Ruck in einigen Fällen nicht erreicht wird. Außerdem sind mit diesem Verfahren keine unterschiedlichen Ruckgrenzwerte für Beschleunigung und Verzögerung möglich.Such filtering has the disadvantage that there are two different viewing levels (before and after the filter) at runtime, which require separate management. This leads to complex and therefore error-prone algorithms with regard to the synchronization between the interpolated movement and non-movement-specific machine functions. In addition, acceleration and jerk cannot be completely decoupled using the method described above, so that the maximum possible jerk is not achieved in some cases. In addition, different jerk limit values for acceleration and deceleration are not possible with this method.
Die Druckschrift
Die Druckschrift
Andere gebräuchliche Verfahren, bei denen - zumindest abschnittsweise - komplett vorausberechnete Geschwindigkeitsprofile abgefahren werden, haben vor allem den Nachteil, dass die dafür notwendigen zum Teil iterativen Berechnungen sehr rechenintensiv sind und eine nachträgliche Beeinflussung des Bewegungsprofils, indem beispielsweise Sollgeschwindigkeit und -beschleunigung über eine Override-Funktion angepasst werden, eine komplette Neuberechnung des Geschwindigkeitsprofils erfordert, was in der Praxis aufgrund der für die Neuberechnung erforderlichen Rechenzeit zu einer nicht tolerierbaren verzögerten Reaktion führen würde.Other common methods in which - at least in sections - completely pre-calculated speed profiles are run have the main disadvantage that the partly iterative calculations required for this are very computationally intensive and a subsequent influencing of the movement profile, for example by using an override function are adapted, a complete recalculation of the speed profile is required, which in practice would lead to an intolerable delayed reaction due to the computing time required for the recalculation.
Offenbarung der ErfindungDisclosure of Invention
Erfindungsgemäß wird ein Verfahren zur Generierung eines Geschwindigkeitsprofils für eine Bahnsteuerung sowie eine Recheneinheit und ein Computerprogramm zur Durchführung des Verfahrens mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.According to the invention, a method for generating a speed profile for a path control as well as a computing unit and a computer program for carrying out the method with the features of the independent patent claims are proposed. Advantageous configurations are the subject of the dependent claims and the following description.
Die Erfindung schafft insbesondere ein Verfahren zur Generierung von kontinuierlichen Geschwindigkeitsprofilen für Bahnsteuerungen, welches die oben genannten Nachteile überwindet, und glatte und (im Wesentlichen) glatte, geschwindigkeitsoptimierte Geschwindigkeitsprofile erzeugen kann. Das erfindungsgemäße Verfahren erlaubt es zudem, zur Laufzeit Geschwindigkeit und Beschleunigung zu variieren.In particular, the invention provides a method for generating continuous speed profiles for path controls, which overcomes the disadvantages mentioned above and can generate smooth and (substantially) smooth, speed-optimized speed profiles. The method according to the invention also allows speed and acceleration to be varied during runtime.
Die Vorteile des Verfahrens werden insbesondere erzielt durch eine Vorab-Ermittlung einer Vielzahl von Übergangsbedingungen zwischen einzelnen Zonen eines Grenzgeschwindigkeitsprofils, die zur Laufzeit in jedem Interpolationsschritt überprüft werden. Wird eine Verletzung einer Übergangsbedingung detektiert, so erfolgt eine Umschaltung von einem ersten Geschwindigkeitsprofil, mit dem eine vorgegebene Sollgeschwindigkeit in einer aktuellen Zone erreicht werden kann, auf ein zweites Geschwindigkeitsprofil, welches die zulässige Geschwindigkeit in einer nachfolgen Zone berücksichtigt und die Übergangsbedingungen einhält. Somit ist sichergestellt, dass eine vorgegebene Bahn jederzeit unter Einhaltung aller zulässigen Grenzwerte einer Maschine/Anlage mit maximal möglicher Geschwindigkeit abgefahren werden kann.The advantages of the method are achieved in particular by determining in advance a large number of transition conditions between individual zones of a limit speed profile, which are checked during the runtime in each interpolation step. If a violation of a transitional condition is detected, there is a switchover from a first speed profile with which a predetermined target speed in a can be reached in the current zone, to a second speed profile, which takes into account the permissible speed in a subsequent zone and complies with the transition conditions. This ensures that a specified path can always be traveled at the maximum possible speed while complying with all permissible limit values of a machine/system.
Das erfindungsgemäße Verfahren gliedert sich vorteilhaft in zwei Berechnungsteile, und zwar in einen vorab zu berechnenden Vorbereitungsteil, der nicht echtzeitfähig sein muss, und in einen zyklisch zur Laufzeit aufzurufenden Interpolationsteil, der vorteilhafterweise in Echtzeit abgearbeitet werden kann, d.h. jeder Schritt wird innerhalb eines deterministischen Zeitraums (während der Bewegung) ausgeführt.The method according to the invention is advantageously divided into two calculation parts, namely a preparation part to be calculated in advance, which does not have to be real-time capable, and an interpolation part to be called cyclically at runtime, which can advantageously be processed in real time, i.e. each step is completed within a deterministic time period (while moving).
Der Vorbereitungsteil dient zur Erzeugung eines Grenzgeschwindigkeitsprofils entlang einer vorgegebenen Bahn, auf dessen Grundlage im nachfolgenden Interpolationsteil die aktuelle Geschwindigkeit und Beschleunigung auf der Bahn ermittelt wird.The preparation part is used to generate a limit speed profile along a specified path, on the basis of which the current speed and acceleration on the path are determined in the subsequent interpolation part.
Zu Beginn des Vorbereitungsteils sind üblicherweise die Start- und Zielposition einer Bahn bereits festgelegt. Ebenso ist die Bahndynamik, mit der entlang der vorgegebenen Bahn gefahren werden darf, bereits bekannt. Die Bahn wird für gewöhnlich segmentiert, um sicherzustellen, dass die Dynamik der einzelnen Achsen einer Maschine/Anlage möglichst gut ausgenutzt und nicht überschritten wird. Für jedes dieser Bahnsegmente werden üblicherweise konstante Grenzwerte für Geschwindigkeit, Beschleunigung, Verzögerung und Ruck (jeweils getrennt für Beschleunigung und Verzögerung) basierend auf den Eigenschaften der Maschine/Anlage bzw. allgemein des Prozesses festgelegt. Diese segmentweise ermittelten Grenzwerte sind jedoch nur innerhalb der jeweiligen Bahnsegmente gültig und können zu Grenzwertüberschreitungen führen, wenn mehrere aufeinanderfolgende Bahnsegmente abgefahren werden.At the beginning of the preparatory part, the start and finish positions of a lane are usually already set. The path dynamics that can be used to drive along the specified path are also already known. The path is usually segmented to ensure that the dynamics of the individual axes of a machine/system are used as well as possible and not exceeded. Constant limit values for speed, acceleration, deceleration and jerk (each separately for acceleration and deceleration) are usually specified for each of these path segments based on the properties of the machine/system or the process in general. However, these limit values, which are determined segment by segment, are only valid within the respective path segments and can lead to limit value violations if several consecutive path segments are traveled.
Daher wird im Vorbereitungsteil des Verfahrens, basierend auf den segmentweise ermittelten konstanten Grenzwerten für die einzelnen Bahnsegmente, ein Grenzgeschwindigkeitsprofil für mehrere aufeinanderfolgende Bahnsegmente einer vorgegebenen Bahn erzeugt. Dieses Grenzgeschwindigkeitsprofil wird nachfolgend in Zonen aufgeteilt, die jeweils durch einen konstanten Grenzwert für Geschwindigkeit, Beschleunigung oder Ruck gekennzeichnet sind. Mit anderen Worten wird ein Grenzgeschwindigkeitsprofil erzeugt, das für mehrere aufeinanderfolgende Bahnsegmente gültig ist und Bereiche mit konstanten Grenzwerten für Geschwindigkeit, Beschleunigung oder Ruck enthält, welche die einzelnen Zonen des Geschwindigkeitsprofils darstellen.Therefore, in the preparatory part of the method, based on the segmentally determined constant limit values for the individual path segments, a limit speed profile is generated for several consecutive path segments of a given path. This limit speed profile is then divided into zones, each of which is characterized by a constant limit value for speed, acceleration or jerk. In other words, a limit speed profile is generated that is valid for several consecutive path segments and contains areas with constant limit values for speed, acceleration or jerk, which represent the individual zones of the speed profile.
Das Grenzgeschwindigkeitsprofil enthält vorzugsweise eine oder mehrere Zonen, die eine konstante Geschwindigkeit als Grenzwert aufweisen, und/oder eine oder mehrere Zonen, die einen konstanten negativen Ruck zum Aufbau einer Verzögerung (negativer Beschleunigung) als Grenzwert aufweisen, und/oder eine oder mehrere Zonen, die eine konstante Verzögerung als Grenzwert aufweisen, und/oder eine oder mehrerer Zonen, die einen konstanten positiven Ruck zum Abbau einer Verzögerung als Grenzwert aufweisen. Die Zonen werden derart berechnet, dass jeweils die für den Abschnitt charakteristische Größe Ruck, Verzögerung oder Geschwindigkeit ihren maximal zulässigen Grenzwert erreicht.The limit speed profile preferably contains one or more zones which have a constant speed as a limit and/or one or more zones which have a constant negative jerk for building up a deceleration (negative acceleration) as a limit and/or one or more zones that have constant deceleration as a limit, and/or one or more zones that have a constant positive jerk to reduce deceleration as a limit. The zones are calculated in such a way that the variable jerk, deceleration or speed characteristic of the section reaches its maximum permissible limit value.
Zudem umfasst der Vorbereitungsteil des Verfahrens ein Ermitteln einer Vielzahl von Übergangsbedingungen an einem Übergang von einer ersten Zone auf eine zweite Zone basierend auf einem Grenzwert der zweiten Zone. Unter einer ersten und zweiten Zone sollen zwei beliebige, aufeinander folgende Zonen verstanden werden.In addition, the preparation part of the method includes determining a plurality of transition conditions at a transition from a first zone to a second zone based on a limit value of the second zone. A first and second zone should be understood to mean any two zones that follow one another.
Jede Übergangsbedingung kann ein Wertepaar aus Geschwindigkeit und Beschleunigung sein. Dies bedeutet, dass die Übergangsbedingungen definieren, mit welcher Beschleunigung in Abhängigkeit von der Geschwindigkeit eine Zone zur Laufzeit verlassen werden darf, ohne dass in den nachfolgenden Zonen die Gefahr besteht, deren Grenzgeschwindigkeitsprofil zu verletzten. Darüber hinaus definieren die Übergangsbedingungen die maximale Verzögerung in Abhängigkeit von der Geschwindigkeit, mit der eine Zone verlassen werden darf, ohne das die Geschwindigkeit in den nachfolgenden Zonen die Nulllinie verletzt, da dies eine Richtungsumkehr auf der Bahn zu Folge hätte.Each transition condition can be a pair of velocity and acceleration values. This means that the transition conditions define the acceleration with which, depending on the speed, a zone may be left at runtime without the risk of violating the limit speed profile in the subsequent zones. In addition, the transition conditions define the maximum deceleration depending on the speed with which a zone may be left without the speed in the following zones violating the zero line, as this would result in a change of direction on the track.
Der Interpolationsteil des Verfahrens beinhaltet eine eindimensionale Interpolation entlang der vorgegebenen Bahn, welche die Grundlage für eine nachfolgende n-dimensionalen Geometrieberechnung der einzelnen Achsen einer Maschine/Anlage bildet. Der Interpolationsteil wird zyklisch in einem festen Takt (Interpolationstakt) aufgerufen und berechnet für jeden Takt einen aktuell interpolierten Bahnweg einschließlich der aktuellen Geschwindigkeit, der aktuellen Beschleunigung und des aktuellen Rucks.The interpolation part of the method includes a one-dimensional interpolation along the specified path, which forms the basis for a subsequent n-dimensional geometry calculation of the individual axes of a machine/plant. The interpolation part is called cyclically in a fixed cycle (interpolation cycle) and calculates a currently interpolated path including the current speed, the current acceleration and the current jerk for each cycle.
Zu Beginn der ersten Zone wird ein erstes Geschwindigkeitsprofil für die erste Zone zum Erreichen einer vorbestimmten Sollgeschwindigkeit berechnet/initialisiert. Bei der vorbestimmten Sollgeschwindigkeit kann es sich insbesondere um eine von außen (z.B. durch einen Maschinenbediener) vorgegebene bzw. überschriebene Sollgeschwindigkeit handeln. Vorzugsweise erfolgt die Berechnung des ersten Geschwindigkeitsprofils anhand des (üblichen) bekannten ruckbegrenzten Siebenphasenprofils, das ein Erreichen der vorbestimmten Sollgeschwindigkeit unter Einhaltung der Grenzwerte für maximale Geschwindigkeit, Beschleunigung und Ruck in minimaler Zeit ermöglicht.At the beginning of the first zone, a first speed profile for the first zone is calculated/initialized in order to reach a predetermined target speed. The predetermined setpoint speed can be, in particular, a act externally (e.g. by a machine operator) specified or overwritten setpoint speed. The first speed profile is preferably calculated using the (usual) known jerk-limited seven-phase profile, which makes it possible to reach the predetermined target speed while maintaining the limit values for maximum speed, acceleration and jerk in a minimum of time.
Das Siebenphasenprofil besteht aus insgesamt 7 Phasen, mit denen sich jede Punkt-zu-Punkt Bewegung mit jeweils Stillstand am Anfang und Ende darstellen lässt. Die einzelnen Phasen weisen die nachfolgend aufgelisteten Eigenschaften auf:
- - Phase 1: Positiver konstanter Ruck zum Aufbau der Beschleunigung
- - Phase 2: Positive konstante Beschleunigung zum Beschleunigen
- - Phase 3: Negativer konstanter Ruck zum Abbau der Beschleunigung bis zum Erreichen einer konstanten Geschwindigkeit
- - Phase 4: Konstante Geschwindigkeit
- - Phase 5: Negativer konstanter Ruck zum Ausbau einer Verzögerung (negativen Beschleunigung),
- - Phase 6: Konstante Verzögerung zum Abbremsen,
- - Phase 7: Konstanter positiver Ruck zum Abbau der Verzögerung.
- - Phase 1: Positive constant jerk to build up acceleration
- - Phase 2: Positive constant acceleration to accelerate
- - Phase 3: Negative constant jerk to reduce acceleration until a constant speed is reached
- - Phase 4: constant speed
- - Phase 5: Negative constant jerk to increase deceleration (negative acceleration),
- - Phase 6: Constant deceleration to slow down,
- - Phase 7: Constant positive jerk to reduce deceleration.
Jedes der berechneten Teilprofile setzt sich aus einer individuellen Folge dieser Phasen zusammen, wobei Phasen gleichen Typs durchaus mehrfach innerhalb eines Teilprofils auftreten können (z. B. eine Teilfolge in der Reihenfolge Phase 5 → Phase 6 → Phase 5 oder Phase 7 →Phase6 → Phase7). Das Siebenphasenprofil kann erweitert werden, indem zusätzlich die Ableitung des Rucks (im Englischen als „snap“ bezeichnet) berücksichtigt wird. Dadurch entsteht beispielsweise ein Modell mit dreizehn Phasen, indem jeweils zwischen zwei Phasen des Siebenphasenprofils noch eine weitere Phase zum Ruckaufbau und -abbau eingeschoben wird.Each of the calculated partial profiles consists of an individual sequence of these phases, whereby phases of the same type can occur several times within a partial profile (e.g. a partial sequence in the order phase 5 → phase 6 → phase 5 or phase 7 → phase6 → phase7 ). The seven-phase profile can be extended by additionally considering the derivative of the jerk (referred to as “snap” in English). This creates a model with thirteen phases, for example, in that a further phase for jerk build-up and reduction is inserted between two phases of the seven-phase profile.
Alternativ oder zusätzlich können die einzelnen Phasen durch andere mathematische Modelle beschrieben werden, d.h. es können andere mathematische Beschreibungen der Bewegungsgleichungen, beispielsweise basierend auf einem sinusförmigen Verlauf, gewählt werden.Alternatively or additionally, the individual phases can be described by other mathematical models, i.e. other mathematical descriptions of the equations of motion can be selected, for example based on a sinusoidal curve.
Das erste Geschwindigkeitsprofil umfasst den analytischen Zusammenhang zwischen Weg, Geschwindigkeit, Beschleunigung und Ruck und weist eine Vielzahl vorbestimmter Interpolationspunkte zur Ermittlung eines aktuellen Bahnwegs auf, d.h. in jedem Interpolationstakt werden auf Basis des Verlaufs des ersten Geschwindigkeitsprofils aktuelle Soll-Werte für Weg, Geschwindigkeit, Beschleunigung und Ruck ermittelt. Dabei werden neben den konstanten Grenzwerten für Geschwindigkeit, Beschleunigung und Ruck das Grenzgeschwindigkeitsprofil sowie die aktuell gültigen Übergangsbedingungen von der ersten Zone in die zweite Zone berücksichtigt. Die Taktzeit des Interpolationstakts beträgt vorzugsweise 1 ms.The first speed profile includes the analytical relationship between distance, speed, acceleration and jerk and has a large number of predetermined interpolation points for determining a current path, i.e. current target values for distance, speed and acceleration are calculated in each interpolation cycle based on the course of the first speed profile and jerk determined. In addition to the constant limit values for speed, acceleration and jerk, the limit speed profile and the currently valid transition conditions from the first zone to the second zone are taken into account. The cycle time of the interpolation cycle is preferably 1 ms.
Wenn das erste Geschwindigkeitsprofil eine der Vielzahl von Übergangsbedingungen verletzt, erfolgt an jedem Interpolationspunkt des ersten Geschwindigkeitsprofils ein Berechnen eines zweiten Geschwindigkeitsprofils für den Übergang von der ersten Zone in die zweite Zone, wobei das zweite Geschwindigkeitsprofil jeweils abhängig von einer ermittelten Geschwindigkeit in einem Interpolationspunkt und einer zugehörigen Übergangsbedingung berechnet wird. Mit anderen Worten wird in jedem Interpolationstakt die aktuelle Geschwindigkeit basierend auf dem Verlauf des ersten Geschwindigkeitsprofils ermittelt und, ausgehend von dieser Geschwindigkeit, der Verlauf des zweiten Geschwindigkeitsprofils derart berechnet, dass die für die aktuelle Geschwindigkeit gültige Übergangsbedingung so weit wie möglich eingehalten wird. Somit liegt in jedem Interpolationstakt neben dem ersten Geschwindigkeitsprofil ein weiteres zweites Geschwindigkeitsprofil vor, das sich von Takt zu Takt ändert, und einen aktuellen Geschwindigkeitsverlauf von der ersten Zone in die zweite Zone unter Berücksichtigung der Vielzahl von Übergangsbedingungen darstellt.If the first speed profile violates one of the plurality of transition conditions, a second speed profile is calculated at each interpolation point of the first speed profile for the transition from the first zone to the second zone, with the second speed profile depending on a determined speed in an interpolation point and a associated transition condition is calculated. In other words, the current speed is determined in each interpolation cycle based on the course of the first speed profile and, based on this speed, the course of the second speed profile is calculated in such a way that the transition condition applicable to the current speed is maintained as far as possible. Thus, in each interpolation cycle, in addition to the first speed profile, there is another second speed profile that changes from cycle to cycle and represents a current speed profile from the first zone to the second zone, taking into account the multitude of transition conditions.
Vorzugsweise erfolgt die Berechnung des zweiten Geschwindigkeitsprofils analog zu dem ersten Geschwindigkeitsprofil anhand des Siebenphasenprofils bzw. der vorab beschriebenen Alternativen dazu. Es ist ebenso möglich, dass das zweite Geschwindigkeitsprofil immer berechnet wird, d. h. auch wenn das erste Geschwindigkeitsprofil keine der Übergangsbedingungen verletzt.Preferably, the second speed profile is calculated analogously to the first speed profile using the seven-phase profile or the alternatives described above. It is also possible that the second speed profile is always calculated, i. H. even if the first velocity profile does not violate any of the transition conditions.
Das erste und/oder das zweite Geschwindigkeitsprofil sind vorzugsweise ausgewählt aus einer Menge, welche enthält: Geschwindigkeitsprofil zum Erreichen einer Sollgeschwindigkeit, Geschwindigkeitsprofil zum Erreichen einer Übergangsbedingung, Geschwindigkeitsprofil entlang des Grenzgeschwindigkeitsprofils und Geschwindigkeitsprofil zum Erreichen eines lokalen Geschwindigkeitsminimums oder des Stillstands.The first and/or the second speed profile are preferably selected from a set that contains: speed profile for reaching a target speed, speed profile for reaching a transition condition, speed profile along the limit speed profile and speed profile for reaching a local speed minimum or standstill.
Ein Wechsel von dem ersten Geschwindigkeitsprofil auf das zweite Geschwindigkeitsprofil erfolgt jedoch erst, wenn das zweite Geschwindigkeitsprofil, das an einem aktuellen Interpolationspunkt berechnet wurde, eine der Vielzahl von Übergangsbedingungen verletzt. In diesem Fall wird von dem ersten Geschwindigkeitsprofil auf ein neues Geschwindigkeitsprofil gewechselt, welches auf dem zweiten Geschwindigkeitsprofil basiert, das an einem direkt vorangegangenen Interpolationspunkt berechnet wurde. Mit anderen Worten wird ein Objekt so lange basierend auf dem ersten Geschwindigkeitsprofil verfahren, bis beim Übergang von der ersten Zone in die zweite Zone eine Übergangsbedingung verletzt würde.However, a change from the first speed profile to the second speed profile only takes place when the second speed profile, which is based on a current interpolation point has been calculated, one of a variety of transition conditions is violated. In this case, there is a change from the first speed profile to a new speed profile which is based on the second speed profile which was calculated at a directly preceding interpolation point. In other words, an object is moved on the basis of the first speed profile until a transition condition is violated during the transition from the first zone to the second zone.
Dies bedeutet, dass die maximale Geschwindigkeit so lange wie möglich aufrechterhalten und beim Zonenübergang nur so weit wie nötig reduziert wird. Das am vorangegangenen Interpolationspunkt ermittelte, zweite Geschwindigkeitsprofil entspricht dabei aufgrund der kurzen Taktzeit bereits weitgehend dem erreichbaren Geschwindigkeitsoptimum unter Einhaltung der Übergangsbedingungen. Das zweite Geschwindigkeitsprofil kann neben dem beschriebenen Übergangsgeschwindigkeitsprofil von einer ersten in eine zweite Zone auch ein Geschwindigkeitsprofil entlang dem Grenzgeschwindigkeitsprofil und/oder ein Geschwindigkeitsprofil zu einem lokalen Geschwindigkeitsminimum bzw. zum Stillstand sein.This means that the maximum speed is maintained for as long as possible and only reduced as much as necessary at the zone transition. Due to the short cycle time, the second speed profile determined at the preceding interpolation point already largely corresponds to the achievable optimum speed while complying with the transition conditions. In addition to the described transition speed profile from a first to a second zone, the second speed profile can also be a speed profile along the limit speed profile and/or a speed profile to a local speed minimum or to a standstill.
Zur Ermittlung des aktuellen Bahnwegs nach dem Wechsel von dem ersten auf das zweite Geschwindigkeitsprofil werden Interpolationspunkte entlang des zweiten Geschwindigkeitsprofils festgelegt, an denen dann bis zum Erreichen des Übergangs von der ersten in die zweite Zone die aktuellen Werte für Weg, Geschwindigkeit, Beschleunigung und Ruck ermittelt werden.To determine the current path after the change from the first to the second speed profile, interpolation points are defined along the second speed profile, at which the current values for path, speed, acceleration and jerk are then determined until the transition from the first to the second zone is reached will.
Das erfindungsgemäße Verfahren erzeugt glatte, ruckbegrenzte und annähernd zeitoptimale Geschwindigkeitsprofile für Bahnsteuerungen ohne eine Filterung der Bewegungsgrößen Geschwindigkeit, Beschleunigung und/oder Ruck vorzunehmen. Durch die einmal ermittelten Übergangsbedingungen und den Entfall einer komplett neuen Vorausberechnung ergibt sich nur ein geringer Rechenmehraufwand im Falle von Änderungen zur Laufzeit, der durch die zonenbasierte Berechnung der Bewegungsgrößen nochmals reduziert wird. Diese ermöglicht eine gekapselte Betrachtung von Bewegungssegmenten zur Laufzeit und vermeidet aufwändige iterative Rechenschritte.The method according to the invention generates smooth, jerk-limited and approximately time-optimal speed profiles for path controls without filtering the movement variables speed, acceleration and/or jerk. Due to the fact that the transition conditions are determined once and that a completely new precalculation is no longer necessary, there is only a small amount of additional computing effort in the event of changes at runtime, which is further reduced by the zone-based calculation of the movement variables. This enables an encapsulated view of motion segments at runtime and avoids time-consuming iterative calculation steps.
Bevorzugt werden an jedem Interpolationspunkt des ersten und zweiten Geschwindigkeitsprofils basierend auf dem ermittelten aktuellen Bahnweg aktuelle Sollwerte für die Positionen einzelner Achsen einer Maschine oder Anlage berechnet und an die betreffende Maschine oder Anlage gesendet. Mit anderen Worten wird der aktuelle Bahnweg auf die einzelnen Achsen einer Maschine oder Anlage transformiert, woraus die Sollwerte für die Positionen der einzelnen Achsen resultieren, welche dann an die entsprechenden Antriebe der Maschine/Anlage gesendet werden.Current target values for the positions of individual axes of a machine or system are preferably calculated at each interpolation point of the first and second speed profile based on the determined current path and sent to the relevant machine or system. In other words, the current path is transformed to the individual axes of a machine or system, which results in the target values for the positions of the individual axes, which are then sent to the corresponding drives of the machine/system.
Vorzugsweise wird das Grenzgeschwindigkeitsprofil mittels einer Vorwärtsberechnung und einer Rückwärtsberechnung von zulässigen Maximalgeschwindigkeiten für die mehreren Bahnsegmente erzeugt. Dadurch kann eine Folge von Bahnsegmenten bestimmt werden, entlang derer mit einer kontinuierlichen Maximalgeschwindigkeit verfahren werden kann. Zudem ist durch die Kombination einer Vorwärtsberechnung und einer Rückwärtsberechnung gewährleistet, dass die Geschwindigkeit am Ende einer Bahn sicher null erreicht.The limit speed profile is preferably generated by means of a forward calculation and a backward calculation of permissible maximum speeds for the plurality of path segments. As a result, a sequence of path segments can be determined along which a continuous maximum speed can be used. In addition, the combination of a forward calculation and a backward calculation ensures that the speed at the end of a path safely reaches zero.
Bevorzugt umfasst die Vorwärtsberechnung der zulässigen Maximalgeschwindigkeiten für die mehreren Bahnsegmente zunächst eine Prüfung, ob eine zulässige Maximalgeschwindigkeit eines zweiten Bahnsegments eingehalten wird, wenn ein Übergang von einem ersten Bahnsegment auf das zweite Bahnsegment mit einer zulässigen Maximalgeschwindigkeit des ersten Bahnsegments angefahren wird. Unter einem ersten und zweiten Bahnsegment sollen zwei beliebige aufeinanderfolgende Bahnsegmente verstanden werden. Bei der zulässigen Maximalgeschwindigkeit des ersten und zweiten Bahnsegments handelt es sich bevorzugt um die vorab festgelegten konstanten Grenzwerte für die zulässige Geschwindigkeit in den einzelnen Bahnsegmenten, die die Grenzwerte der einzelnen Achsen der Maschine einhalten.The forward calculation of the permissible maximum speeds for the multiple path segments preferably firstly includes a check as to whether a permissible maximum speed of a second path segment is being observed when a transition from a first path segment to the second path segment is approached at a permissible maximum speed of the first path segment. A first and second path segment should be understood to mean any two consecutive path segments. The permissible maximum speed of the first and second path segment is preferably the predefined constant limit values for the permissible speed in the individual path segments, which comply with the limit values of the individual axes of the machine.
Wird die die zulässige Maximalgeschwindigkeit des zweiten Bahnsegments überschritten, erfolgt ein Absenken der Maximalgeschwindigkeit des ersten Bahnsegments an einem Beginn des zweiten Bahnsegments, d.h. beim Übergang von dem ersten auf das zweite Bahnsegment. Bevorzugt wird die Maximalgeschwindigkeit am Beginn des zweiten Bahnsegments soweit abgesenkt, dass der konstante Grenzwert für die zulässige Geschwindigkeit des zweiten Bahnsegments erreicht, aber nicht überschritten wird.If the permissible maximum speed of the second path segment is exceeded, the maximum speed of the first path segment is reduced at the beginning of the second path segment, i.e. at the transition from the first to the second path segment. The maximum speed at the start of the second path segment is preferably lowered to such an extent that the constant limit value for the permissible speed of the second path segment is reached but not exceeded.
Vorzugsweise wird nachfolgend eine Minimalgeschwindigkeit an einem Ende des zweiten Bahnsegments ausgehend von der Maximalgeschwindigkeit am Beginn des zweiten Bahnsegments ermittelt. Erfolgte ein Absenken der Maximalgeschwindigkeit am Beginn des zweiten Bahnsegments, so wird die Minimalgeschwindigkeit am Ende des zweiten Bahnsegments ausgehend von der abgesenkten Maximalgeschwindigkeit ermittelt, ansonsten wird die ursprünglich vorliegende Maximalgeschwindigkeit verwendet.Preferably, a minimum speed at one end of the second path segment is then determined based on the maximum speed at the beginning of the second path segment. If the maximum speed was reduced at the start of the second path segment, the minimum speed at the end of the second path segment is determined on the basis of the reduced maximum speed, otherwise the maximum speed originally present is used.
Ist die Minimalgeschwindigkeit am Ende des zweiten Bahnsegments größer null, werden die vorstehenden Schritte in einem dritten Bahnsegment und nachfolgenden Bahnsegmenten wiederholt, bis die Minimalgeschwindigkeit an einem Ende eines Bahnsegments null erreicht. Dies bedeutet, dass ausgehend von der gegebenenfalls abgesenkten Maximalgeschwindigkeit des zweiten Bahnsegments am Übergang von dem zweiten Bahnsegment in ein weiteres, drittes Bahnsegment überprüft wird, ob die Maximalgeschwindigkeit des dritten Bahnsegments überschritten wird. Sofern dies der Fall ist, wird die Maximalgeschwindigkeit zu Beginn des dritten Bahnsegments erneut abgesenkt, bevorzugt bis der konstante Grenzwert für die zulässige Geschwindigkeit des dritten Bahnsegments erreicht, aber nicht überschritten wird. Ausgehend von dieser abgesenkten Maximalgeschwindigkeit wird dann die erreichbare Minimalgeschwindigkeit am Ende des dritten Bahnsegments ermittelt. Kann am Ende des dritten Bahnsegments eine Geschwindigkeit von null erreicht werden, so ist die Vorwärtsberechnung abgeschlossen, ansonsten werden die beschriebenen Schritte in einem weiteren Bahnsegment wiederholt, bis am Ende eines Bahnsegments die ermittelte Minimalgeschwindigkeit null beträgt oder das Ende der Bahn erreicht wird, an dem die Geschwindigkeit zwangsläufig auf null gesetzt ist.If the minimum speed at the end of the second path segment is greater than zero, the above steps are repeated in a third path segment and subsequent path segments until the minimum speed at an end of a path segment reaches zero. This means that based on the possibly reduced maximum speed of the second path segment at the transition from the second path segment into a further, third path segment, a check is made as to whether the maximum speed of the third path segment is being exceeded. If this is the case, the maximum speed is lowered again at the beginning of the third path segment, preferably until the constant limit value for the permissible speed of the third path segment is reached but not exceeded. Based on this reduced maximum speed, the minimum speed that can be achieved at the end of the third path segment is then determined. If a speed of zero can be reached at the end of the third path segment, the forward calculation is complete, otherwise the steps described are repeated in a further path segment until the determined minimum speed is zero at the end of a path segment or the end of the path is reached at which the speed is forced to zero.
Vorzugsweise umfasst die Vorwärtsberechnung zusätzlich eine Prüfung, ob eine zulässige Maximalbeschleunigung des zweiten Bahnsegments eingehalten wird, wenn ein Übergang von dem ersten Bahnsegment auf das zweite Bahnsegment mit einer zulässigen Maximalbeschleunigung des ersten Bahnsegments angefahren wird. Wird die zulässige Maximalbeschleunigung des zweiten Bahnsegments überschritten, erfolgt ein Absenken der Maximalbeschleunigung des ersten Bahnsegments am Beginn des zweiten Bahnsegments, d.h. beim Übergang von dem ersten auf das zweite Bahnsegment. Bevorzugt wird die Maximalbeschleunigung am Beginn des zweiten Bahnsegments soweit abgesenkt, dass der konstante Grenzwert für die zulässige Beschleunigung des zweiten Bahnsegments erreicht, aber nicht überschritten wird.The forward calculation preferably also includes a check as to whether a permissible maximum acceleration of the second path segment is maintained when a transition from the first path segment to the second path segment is approached with a permissible maximum acceleration of the first path segment. If the permissible maximum acceleration of the second path segment is exceeded, the maximum acceleration of the first path segment is reduced at the beginning of the second path segment, i.e. at the transition from the first to the second path segment. The maximum acceleration at the start of the second path segment is preferably lowered to such an extent that the constant limit value for the permissible acceleration of the second path segment is reached but not exceeded.
Vorzugsweise wird nachfolgend die Minimalgeschwindigkeit am Ende des zweiten Bahnsegments ausgehend von der Maximalgeschwindigkeit und der Maximalbeschleunigung am Beginn des zweiten Bahnsegments ermittelt. Erfolgte ein Absenken der Maximalgeschwindigkeit und/oder der Maximalbeschleunigung am Beginn des zweiten Bahnsegments, so wird die Minimalgeschwindigkeit am Ende des zweiten Bahnsegments ausgehend von der abgesenkten Maximalgeschwindigkeit und/oder der abgesenkten Maximalbeschleunigung ermittelt, ansonsten wird die ursprünglich vorliegende Maximalgeschwindigkeit und oder Maximalbeschleunigung verwendet.The minimum speed at the end of the second path segment is then preferably determined on the basis of the maximum speed and the maximum acceleration at the start of the second path segment. If the maximum speed and/or the maximum acceleration was reduced at the start of the second path segment, the minimum speed at the end of the second path segment is determined on the basis of the reduced maximum speed and/or the reduced maximum acceleration, otherwise the maximum speed and/or maximum acceleration originally present is used.
Diese Schritte werden in einem dritten Bahnsegment und gegebenenfalls in weiteren folgenden Bahnsegmenten wiederholt, wenn die Minimalgeschwindigkeit am Ende des zweiten Bahnsegments größer null ist. Die Vorwärtsberechnung ist abgeschlossen, wenn die Geschwindigkeit am Ende eines Bahnsegments null erreicht.These steps are repeated in a third path segment and possibly in further following path segments if the minimum speed at the end of the second path segment is greater than zero. The forward calculation is complete when the velocity reaches zero at the end of a path segment.
Bevorzugt umfasst die Rückwärtsberechnung der zulässigen Maximalgeschwindigkeiten für die mehreren Bahnsegmente zunächst eine Ermittlung eines Bahnsegments, an dessen Beginn die Maximalgeschwindigkeit während der Vorwärtsberechnung zum letzten Mal abgesenkt wurde. Erfolgten während der Vorwärtsberechnung eine oder mehrere Absenkungen der Maximalgeschwindigkeit am Beginn eines Bahnsegments, so beginnt die Rückwärtsberechnung am Beginn des letzten, während der Vorwärtsberechnung gefundenen Bahnsegments mit einer Geschwindigkeitsabsenkung.The backward calculation of the permissible maximum speeds for the plurality of path segments preferably firstly includes a determination of a path segment at the start of which the maximum speed was last reduced during the forward calculation. If one or more reductions in the maximum speed at the beginning of a path segment occurred during the forward calculation, the backward calculation begins with a speed reduction at the beginning of the last path segment found during the forward calculation.
Die Berechnung neuer zulässiger Maximalgeschwindigkeiten für alle dem ermittelten Bahnsegment vorangegangenen Bahnsegmente (bis zurück zum Beginn des ersten Bahnsegments) erfolgt dann ausgehend von der abgesenkten Maximalgeschwindigkeit am Beginn des ermittelten Bahnsegments. Bevorzugt wird die Beschleunigung zu Beginn der Rückwärtsberechnung auf null gesetzt und während der Rückwärtsberechnung werden die konstanten Grenzwerte der einzelnen Bahnsegmente für Geschwindigkeit, Beschleunigung und Ruck berücksichtigt.The new permissible maximum speeds for all path segments preceding the determined path segment (back to the start of the first path segment) are then calculated on the basis of the lowered maximum speed at the start of the determined path segment. The acceleration is preferably set to zero at the beginning of the backward calculation and the constant limit values of the individual path segments for speed, acceleration and jerk are taken into account during the backward calculation.
Wenn es während der Vorwärtsberechnung mindestens zu einer Geschwindigkeitsabsenkung kam, ergibt sich in der Rückwärtsberechnung für das Ende des ersten Bahnsegments eine Maximalgeschwindigkeit, die kleiner ist als die ursprünglich zu Beginn der Vorwärtsrechnung angenommene Maximalgeschwindigkeit.If there was at least one drop in speed during the forward calculation, the backward calculation for the end of the first path segment results in a maximum speed that is lower than the maximum speed originally assumed at the beginning of the forward calculation.
Sind die neu berechneten zulässigen Maximalgeschwindigkeiten für die einzelnen Bahnsegmente mittels der Rückwärtsberechnung bestimmt, kann daraus das Grenzgeschwindigkeitsprofil erzeugt werden. Das Grenzgeschwindigkeitsprofil kann nachfolgend in die vorne beschriebenen Zonen konstanter zulässiger Geschwindigkeit, konstanter zulässiger Beschleunigung oder konstanten zulässigen Rucks aufgeteilt werden, woraufhin die Übergangsbedingungen an den Zonenübergängen ermittelt werden können. Mit anderen Worten wird mittels der Vorwärts- und Rückwärtsberechnung ein Grenzgeschwindigkeitsprofil erzeugt, das für mehrere aufeinanderfolgende Bahnsegmente gültig ist und Bereiche mit konstanten Grenzwerten für Geschwindigkeit, Beschleunigung oder Ruck enthält. Anhand dieser Bereiche erfolgt die Aufteilung des Grenzgeschwindigkeitsprofils in einzelne Zonen an deren Übergängen Zonenübergangsbedingungen eingehalten werden müssen, um das Grenzgeschwindigkeitsprofil in der nachfolgenden Zone nicht zu verletzen.If the newly calculated permissible maximum speeds for the individual path segments are determined by means of the backward calculation, the limit speed profile can be generated from this. The limit speed profile can subsequently be divided into the previously described zones of constant permissible speed, constant permissible acceleration or constant permissible jerk, whereupon the transition conditions at the zone transitions can be determined. In other words, a limit speed profile is generated by means of the forward and backward calculation, which is valid for several consecutive path segments and areas with constant limit values for contains velocity, acceleration or jerk. Based on these areas, the speed limit profile is divided into individual zones at the transitions of which zone transition conditions must be observed in order not to violate the speed limit profile in the subsequent zone.
Da ausgehend von der letzten Geschwindigkeitsabsenkung immer auf Stillstand abgebremst werden kann, haben alle etwaig noch folgenden weiteren Bahnsegmente keinen Einfluss mehr auf die davorliegenden Bahnsegmente und beeinflussen somit auch die Erzeugung des Grenzgeschwindigkeitsprofils nicht.Since it is always possible to decelerate to a standstill starting from the last speed reduction, any further path segments that may follow no longer have any influence on the preceding path segments and therefore also do not influence the generation of the limit speed profile.
Erfolgte während der Vorwärtsberechnung keine Absenkung der Maximalgeschwindigkeit an einem Beginn eines Bahnsegments, so kann die Rückwärtsberechnung entfallen.If the maximum speed at the beginning of a path segment is not reduced during the forward calculation, the backward calculation can be omitted.
Vorzugsweise umfasst die Vielzahl von Übergangsbedingungen Wertepaare für Geschwindigkeit und Beschleunigung, wobei die Wertepaare für Geschwindigkeit und Beschleunigung an dem Übergang von der ersten Zone in die zweite Zone derart gewählt werden, dass die Grenzwerte der zweiten Zone (und weiterer nachfolgender Zonen) nicht überschritten werden. Handelt es sich bei der zweiten Zone beispielsweise um eine Zone mit konstanter zulässiger Verzögerung, so ist ein Wertepaar bereits durch den Verlauf des Grenzgeschwindigkeitsprofils am Zonenübergang bestimmt, nämlich durch die maximal mögliche Geschwindigkeit am Zonenende mit der dort maximal möglichen Verzögerung (negativen Beschleunigung).The plurality of transition conditions preferably includes value pairs for speed and acceleration, the value pairs for speed and acceleration at the transition from the first zone to the second zone being selected in such a way that the limit values of the second zone (and further subsequent zones) are not exceeded. If, for example, the second zone is a zone with a constant permissible deceleration, then a pair of values is already determined by the course of the limit speed profile at the zone transition, namely by the maximum possible speed at the end of the zone with the maximum possible deceleration there (negative acceleration).
Vorzugsweise geben weitere Wertepaare an, bei welcher maximalen Geschwindigkeit die Zone mit maximal möglicher Beschleunigung verlassen werden darf und bei welcher maximalen Geschwindigkeit die Zone noch mit einem Beschleunigungswert von null verlassen werden darf. Um den Zusammenhang zwischen möglicher Geschwindigkeit und Beschleunigung am Zonenübergang möglichst genau zu beschreiben, kann es sinnvoll sein, weitere Wertepaare zu bestimmen. Für Werte, die nicht explizit während des Vorbereitungsteils ermittelt wurden, kann zur Laufzeit eine Bewertung mittels Zwischeninterpolation erfolgen.Further pairs of values preferably indicate at which maximum speed the zone may be left with the maximum possible acceleration and at which maximum speed the zone may still be left with an acceleration value of zero. In order to describe the connection between possible speed and acceleration at the zone transition as precisely as possible, it can be useful to determine further pairs of values. Values that were not explicitly determined during the preparatory part can be evaluated at runtime using intermediate interpolation.
Vorzugsweise wird das erste Geschwindigkeitsprofil in jedem Interpolationspunkt an die vorbestimmte Sollgeschwindigkeit und eine vorbestimmte Sollbeschleunigung angepasst. Mit anderen Worten kann sich der Verlauf des ersten Geschwindigkeitsprofils ändern, wenn in einem Interpolationspunkt eine Änderung der vorbestimmten Sollgeschwindigkeit festgestellt wird. Das angepasste erste Geschwindigkeitsprofil wird dabei bevorzugt an den innerhalb der aktuellen Zone noch zur Verfügung stehenden Weg angepasst.The first speed profile is preferably adapted to the predetermined target speed and a predetermined target acceleration in each interpolation point. In other words, the course of the first speed profile can change if a change in the predetermined setpoint speed is detected at an interpolation point. The adapted first speed profile is preferably adapted to the path that is still available within the current zone.
Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät einer Produktionsmaschine oder -anlage, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.A computing unit according to the invention, e.g. a control unit of a production machine or system, is set up, in particular in terms of programming, to carry out a method according to the invention.
Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.The implementation of a method according to the invention in the form of a computer program or computer program product with program code for carrying out all method steps is advantageous because this causes particularly low costs, especially if an executing control unit is also used for other tasks and is therefore available anyway. Suitable data carriers for providing the computer program are, in particular, magnetic, optical and electrical memories, such as hard drives, flash memories, EEPROMs, DVDs, etc. It is also possible to download a program via computer networks (Internet, intranet, etc.).
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.Further advantages and refinements of the invention result from the description and the attached drawing.
Es versteht sich, dass die vorstehend genannten und die nachfolgend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.It goes without saying that the features mentioned above and those still to be explained below can be used not only in the combination specified in each case, but also in other combinations or on their own, without departing from the scope of the present invention.
Die Erfindung ist anhand eines Ausführungsbeispiels in den Zeichnungen schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnungen ausführlich beschrieben.The invention is shown schematically in the drawings using an exemplary embodiment and is described in detail below with reference to the drawings.
Figurenlistecharacter list
-
1 zeigt eine Ausführungsform der erfindungsgemäßen Recheneinheit,1 shows an embodiment of the computing unit according to the invention, -
2 zeigt ein Beispiel für eine Vorwärtsberechnung zur Ermittlung eines Grenzgeschwindigkeitsprofils mit dem erfindungsgemäßen Verfahren,2 shows an example of a forward calculation for determining a limit speed profile using the method according to the invention, -
3 zeigt ein Beispiel für eine Rückwärtsberechnung zur Ermittlung des Grenzgeschwindigkeitsprofils basierend auf der in2 beschriebenen Vorwärtsberechnung,3 shows an example of a backward calculation to determine the limit speed profile based on the in2 described forward calculation, -
4 zeigt ein Beispiel für die Aufteilung des in3 ermittelten Grenzgeschwindigkeitsprofil in die einzelnen Zonen,4 shows an example of the division of the in3 determined limit speed profile in the individual zones, -
5 zeigt ein Beispiel für verschiedene Übergangsbedingungen an einem Zonenübergang des Grenzgeschwindigkeitsprofils entsprechend dem erfindungsgemäßen Verfahren,5 shows an example of different transition conditions at a zone transition the limit speed profile according to the method according to the invention, -
6 zeigt anhand eines Flussdiagramms ein Beispiel für die Berechnung eines aktuellen Bahnwegs entsprechend dem erfindungsgemäßen Verfahren, und6 shows an example for the calculation of a current path according to the method according to the invention using a flowchart, and -
7 zeigt ein Beispiel für die Ermittlung eines zweiten Geschwindigkeitsprofils mit dem erfindungsgemäßen Verfahren.7 shows an example for the determination of a second speed profile with the method according to the invention.
Detaillierte Beschreibung der ZeichnungDetailed description of the drawing
In einer ersten Subeinheit 1 werden im Rahmen eines Vorbereitungsteils die nicht echtzeitfähigen Berechnungen zur Ermittlung eines Grenzgeschwindigkeitsprofils, von Übergangsbedingungen und eines ersten Geschwindigkeitsprofils durchgeführt. Die Aufteilung des Grenzgeschwindigkeitsprofils in einzelne Zonen mit jeweils konstanter zulässiger Geschwindigkeit, Beschleunigung oder Ruck erfolgt ebenfalls in der ersten Subeinheit 1.In a
Die ermittelten Größen werden an die zweite Subeinheit 2 gesendet, welche die Berechnungen zur Laufzeit vorzugsweise in einem festen Interpolationstakt, der beispielsweise 1 ms betragen kann, ausführt. Die zweite Subeinheit passt in jedem Interpolationstakt das erste Geschwindigkeitsprofil an eine von außen (z.B. durch einen Maschinenbediener) vorgegebene Sollgeschwindigkeit an und berechnet dann den aktuellen Bahnweg anhand des ersten Geschwindigkeitsprofils unter Berücksichtigung der Übergangsbedingungen und des Grenzgeschwindigkeitsprofils. Dazu berechnet die Subeinheit 2 in jedem Interpolationstakt ein zweites Geschwindigkeitsprofil, das einen zeitoptimalen Übergang von einer ersten Zone in eine zweite Zone des Grenzgeschwindigkeitsprofils ermöglicht. Die in der Subeinheit 2 ausgeführten Berechnungsschritte im Interpolationsteil des erfindungsgemäßen Verfahrens werden nachfolgend anhand von
Die zweite Subeinheit 2 sendet den in jedem Interpolationstakt berechneten Bahnweg einschließlich der aktuellen Geschwindigkeit, der aktuellen Beschleunigung und des aktuellen Rucks an eine dritte Subeinheit 3, die daraus die Positionswerte für die einzelnen Achsen (insbesondere angetrieben durch Elektromotoren) einer Maschine/Anlage (nicht gezeigt) berechnet und diese Werte an eine Antriebssteuerung 4 der Maschine/Anlage sendet.The
Das betrachtete Bewegungssegment soll mit einer vorgegebenen Geschwindigkeit Vk_soll verfahren werden. Diese Geschwindigkeit wurde zuvor so ermittelt, dass sie die oben genannten Grenzwerte für das betrachtete Bahnsegment einhält.The movement segment under consideration is to be moved at a specified speed V k_soll . This speed was previously determined in such a way that it adheres to the above limit values for the track segment under consideration.
Während der Vorwärtsberechnung wird geprüft, ob die nachfolgenden Bewegungssegmente, die zu den Zeitpunkten tk,v , tk+1,v bzw. tk+2v beginnen, es erlauben die Geschwindigkeit v(t) bis zum Stillstand abzubremsen, ohne dabei die ermittelten Grenzwerte dieser nachfolgenden Bahnsegmente zu verletzen. Im vorliegenden Beispiel kann die Geschwindigkeit v(t) in dem ersten nachfolgenden Bewegungssegment bis tk+1,v nicht auf Stillstand abgebremst werden, daher wird zunächst zum Zeitpunkt tk+1,v geprüft, ob die sich ergebende Geschwindigkeit am Übergang von dem aktuell betrachteten, ersten Bewegungssegment auf das nachfolgende, zweite Bewegungssegment zulässig ist. Zum Zeitpunkt tk+1,v sollte maximal die Geschwindigkeit vloc,min,1 herrschen, es kann aber unter Berücksichtigung der maximalen Werte für Verzögerung und Ruck nur auf die Geschwindigkeit vloc,1,v abgebremst werden. Daher muss die Geschwindigkeit v(tk+1) auf die Geschwindigkeit vloc,min,1 abgesenkt werden und der Übergang wird als „verletzt“ markiert. Bevorzugt wird zum Zeitpunkt tk+1,v ebenfalls geprüft, ob die Beschleunigung a an dem Übergang von dem ersten auf das zweite Bahnsegment zulässig ist, und diese bei Überschreitung ebenfalls abgesenkt.During the forward calculation, it is checked whether the following movement segments, which begin at the times t k,v , t k+1,v or t k+2v , allow the speed v(t) to be braked to a standstill without the to violate the determined limit values of these subsequent path segments. In the present example, the speed v(t) cannot be slowed down to a standstill in the first subsequent movement segment up to t k+1, v currently considered, first movement segment to the subsequent, second movement segment is permissible. At time t k+1,v , the maximum velocity v loc,min,1 should prevail, but taking into account the maximum values for deceleration and jerk, it can only be decelerated to velocity v loc,1,v . Therefore the speed v(t k+1 ) has to be lowered to the speed v loc,min , 1 and the transition is marked as “violated”. At time t k+1,v it is preferably also checked whether the acceleration a at the transition from the first to the second path segment is permissible, and if it is exceeded it is also reduced.
Da auch im zweiten Bewegungssegment die Geschwindigkeit v(t) nicht auf null abgesenkt werden kann, muss auch dort überprüft werden, ob die Geschwindigkeit v(tk+2) beim Übergang vom zweiten auf das dritte Bewegungssegment zu einer Überschreitung der zulässigen Geschwindigkeit v(t) im dritten Bahnsegment führt. Zum Zeitpunkt tk+2,v sollte maximal die Geschwindigkeit vloc,min,2 herrschen, es kann aber unter Berücksichtigung der maximalen Werte für Verzögerung und Ruck nur auf die Geschwindigkeit vloc,2,v abgebremst werden. Daher erfolgt zum Zeitpunkt tk+2,v eine weitere Geschwindigkeitsabsenkung auf die Geschwindigkeit vloc,min,2 und auch dieser Übergang wird als „verletzt“ markiert. Ausgehend von der Geschwindigkeit vloc,min,2 kann dann im dritten Bewegungssegment die Geschwindigkeit v(t) auf Stillstand abgebremst werden.Since the speed v(t) cannot be reduced to zero in the second movement segment either, it must also be checked there whether the speed v(t k+2 ) at the transition from the second to the third movement segment leads to an over exceeding the permissible speed v(t) in the third track segment. At time t k+2,v the maximum velocity v loc,min,2 should prevail, but taking into account the maximum values for deceleration and jerk it can only be decelerated to velocity v loc,2,v . Therefore, at time t k+2,v there is a further reduction in speed to speed v loc,min,2 and this transition is also marked as “violated”. Starting from the speed v loc,min,2 , the speed v(t) can then be braked to a standstill in the third movement segment.
Damit ist eine Folge von Bewegungssegmenten gefunden, an deren Ende die Geschwindigkeit auf null abgesenkt werden kann, und die Vorwärtsberechnung ist für den betrachteten Bewegungsabschnitt abgeschlossen. Sollte tk+2,v nicht das Bahnende sein, beginnt an der Stelle tk+2,v ein nächster Bewegungsabschnitt, d.h. an dieser Stelle startet die Vorwärtsberechnung für den nächsten Bewegungssegmente erneut.A sequence of movement segments has thus been found, at the end of which the speed can be reduced to zero, and the forward calculation is complete for the movement section under consideration. If t k+2,v is not the end of the path, a next movement section begins at point t k+2,v , ie the forward calculation for the next movement segment starts again at this point.
Ausgehend von der maximal möglichen Geschwindigkeit vloc,1,r bei tk+1,r wird nachfolgend anhand der zwischen tk,r und tk+1,r geltenden Grenzwerte für Geschwindigkeit, Beschleunigung und Ruck die maximal mögliche Geschwindigkeit an der Stelle tk,r zu vend,max berechnet. Da es innerhalb des betrachteten Bereichs während der Vorwärtsberechnung zu zwei Geschwindigkeitsabsenkungen kam, ergibt sich in der Rückwärtsberechnung an der Stelle tk,r eine Grenzgeschwindigkeit vend,max die kleiner als die ursprünglich zu Beginn der Vorwärtsberechnung angenommene Geschwindigkeit vk_soll ist, sowie eine negative Beschleunigung.Based on the maximum possible speed v loc,1,r at t k+1,r , the maximum possible speed at the point is subsequently calculated using the limit values for speed, acceleration and jerk applicable between t k,r and t k+1,r t k,r to v end,max calculated. Since there were two speed reductions within the area under consideration during the forward calculation, the backward calculation at point t k,r results in a limit speed v end,max that is lower than the speed v k_soll originally assumed at the beginning of the forward calculation, and a negative one Acceleration.
Ausgehend von der maximal möglichen Geschwindigkeit vend,max bei tk,r und dieser negativen Beschleunigung wird nachfolgend anhand der geltenden Grenzwerte für Geschwindigkeit, Beschleunigung und Ruck für das ausgangs betrachtete Bahnsegment das Geschwindigkeitsprofil zum Erreichen von vk,soll,r berechnet.Based on the maximum possible speed v end,max at t k,r and this negative acceleration, the speed profile for reaching v k,soll,r is then calculated using the applicable limit values for speed, acceleration and jerk for the path segment considered at the beginning.
Das Grenzgeschwindigkeitsprofil 1 für die betrachteten Bewegungssegmente ist damit gefunden. Da ausgehend von der letzten Geschwindigkeitsabsenkung auf die Geschwindigkeit vloc, min,2 in der Vorwärtsberechnung immer auf einen Stillstand abgebremst werden kann und da diese Geschwindigkeit auch nicht überschritten werden darf, haben alle etwaig noch folgenden weiteren Bewegungssegmente keinen weiteren Einfluss mehr auf die betrachteten Bewegungssegmente.The
Der folgende Ablauf starte in einem Schritt S100.The following flow starts in a step S100.
Zu Beginn wird eine erste Zone, z = 1, gewählt (S101) und ein erstes Geschwindigkeitsprofil, V = V1, vorzugsweise anhand des vorne beschriebenen ruckbegrenzten Siebenphasenprofils ermittelt und als aktuelles Geschwindigkeitsprofil initialisiert (S102). Mit anderen Worten wird ein erstes Geschwindigkeitsprofil V = V1 für eine erste Zone z = 1 zum Erreichen einer vorbestimmten Sollgeschwindigkeit vsoll berechnet, wobei das erste Geschwindigkeitsprofil phasenweise in Form von Bewegungsgleichungen vorliegt und eine Vielzahl vorbestimmter Interpolationspunkte zur Ermittlung eines aktuellen Bahnwegs aufweist.At the beginning, a first zone, z=1, is selected (S101) and a first speed profile, V=V 1 , preferably determined using the jerk-limited seven-phase profile described above and initialized as the current speed profile (S102). In other words, a first speed profile V=V1 is calculated for a first zone z=1 to reach a predetermined setpoint speed v set , the first speed profile being present in phases in the form of equations of motion and having a large number of predetermined interpolation points for determining a current path.
Es wird ein erster Interpolationstakt, i = 1, gestartet (S103) und zunächst geprüft, ob sich die Sollgeschwindigkeit vsoll(i) gegenüber der Sollgeschwindigkeit im letzten Interpolationstakt vsoll(i-1) geändert hat. Ist dies der Fall, Zweig „1“, so wird das erste Geschwindigkeitsprofil V1 an die geänderte Sollgeschwindigkeit angepasst (S104), ansonsten, Zweig „0“, bleibt es unverändert (S105).A first interpolation cycle, i=1, is started (S103) and a check is first made as to whether the setpoint speed v setpoint (i) has changed compared to the setpoint speed in the last interpolation cycle v setpoint (i-1). If this is the case, branch "1", then the first speed profile V 1 is adapted to the changed target speed (S104), otherwise, branch "0", it remains unchanged (S105).
Im nachfolgenden Schritt S106 werden dann die aktuellen Werte für Weg x(i), Geschwindigkeit v(i), Beschleunigung a(i) und Ruck j(i) mit Hilfe des in der Initialisierung ermittelten ersten Geschwindigkeitsprofils V1 berechnet. Verletzt das erste Geschwindigkeitsprofil V1 eine der Übergangsbedingungen am Ende der ersten Zone (V1(imax) > ÜB(imax)), Zweig „1“, wird in demselben Interpolationstakt eine zweites Geschwindigkeitsprofil V2 als Funktion der aktuellen Geschwindigkeit v(i) und der aktuellen Beschleunigung a(i) mittels der zugehörigen Übergangsbedingungen berechnet (S107). Ansonsten wird die Interpolation auf dem ersten Geschwindigkeitsprofil V1 bis zum Ende der Zone fortgeführt, Zweig „0“. Es wird in Schritt S107 also ein zweites Geschwindigkeitsprofil für den Übergang von der ersten Zone in die zweite Zone an jedem Interpolationspunkt des ersten Geschwindigkeitsprofils berechnet, wobei das zweite Geschwindigkeitsprofil jeweils abhängig von einer ermittelten Geschwindigkeit in einem Interpolationspunkt und einer zugehörigen Übergangsbedingung berechnet wird.In the subsequent step S106, the current values for distance x(i), speed v(i), acceleration a(i) and jerk j(i) are then calculated using the first speed profile V 1 determined in the initialization. If the first speed profile V 1 violates one of the transition conditions at the end of the first zone (V 1 (i max ) > ÜB(i max )), branch "1", a second speed profile V 2 is generated in the same interpolation cycle as a function of the current speed v( i) and the current acceleration a(i) is calculated using the associated transition conditions (S107). Otherwise the interpolation is continued on the first speed profile V 1 up to the end of the zone, branch "0". In step S107, a second speed profile for the transition from the first zone to the second zone is calculated at each interpolation point of the first speed profile, with the second speed profile being calculated depending on a determined speed in an interpolation point and an associated transition condition.
Anschließend wird geprüft, ob die Geschwindigkeit des zweiten Geschwindigkeitsprofils V2 im Zonenübergang die Übergangsbedingung ÜB(i) verletzt. Verletzt die Geschwindigkeit des zweiten Geschwindigkeitsprofils V2 im Zonenübergang die Übergangsbedingung ÜB(i), Zweig „1“, so findet ein Wechsel des aktuellen Geschwindigkeitsprofils V auf das zweite Geschwindigkeitsprofil V2(i-1), das im vorangegangenen Interpolationstakt i-1 ermittelt wurde, statt (S109), ansonsten, Zweig „0“, wird weiter entlang des ersten Geschwindigkeitsprofils V1 interpoliert (S108). Mit anderen Worten findet ein Wechsel von dem ersten Geschwindigkeitsprofil V1 auf das zweite Geschwindigkeitsprofil V2, das an einem direkt vorangegangenen Interpolationspunkt (i-1) berechnet wurde, statt, wenn das zweite Geschwindigkeitsprofil V2, das an einem aktuellen Interpolationspunkt i berechnet wurde, eine der Übergangsbedingungen verletzt.It is then checked whether the speed of the second speed profile V 2 in the zone transition violates the transition condition ÜB(i). If the speed of the second speed profile V 2 violates the transition condition ÜB(i), branch "1" in the zone transition, the current speed profile V changes to the second speed profile V 2 (i-1), which was determined in the previous interpolation cycle i-1 was, instead of (S109), otherwise, branch "0" is further interpolated along the first velocity profile V 1 (S108). In other words, a change from the first speed profile V 1 to the second speed profile V 2 calculated at a directly preceding interpolation point (i-1) takes place when the second speed profile V 2 calculated at a current interpolation point i , one of the transition conditions is violated.
Da das interpolierte zweite Geschwindigkeitsprofil V2(i-1) im letzten Interpolationstakt i-1 gültig war, das zweite Geschwindigkeitsprofil des aktuellen Taktes V2(i) jedoch zu einer Verletzung der Übergangsbedingung ÜB geführt hat, muss das Optimum hinsichtlich der maximal zulässigen Geschwindigkeit beim Zonenübergang zwischen diesen beiden Geschwindigkeitsprofilen V2 liegen. Da die üblichen Taktzeiten für die Interpolation klein sind (1 ms ist ein typischer Wert), liegt das zweite Geschwindigkeitsprofil des letzten Taktes V2(i-1) schon sehr nah am Optimum und kann ggf. mit einfachen Modifikationen an das tatsächliche Geschwindigkeitsoptimum angenähert werden.Since the interpolated second speed profile V 2 (i-1) was valid in the last interpolation cycle i-1, but the second speed profile of the current cycle V 2 (i) led to a violation of the transition condition ÜB, the optimum with regard to the maximum permissible speed lie between these two speed profiles V 2 at the zone transition. Since the usual cycle times for the interpolation are small (1 ms is a typical value), the second speed profile of the last cycle V 2 (i-1) is already very close to the optimum and can be approximated to the actual speed optimum with simple modifications if necessary .
Sind noch weitere Interpolationspunkte in der ersten Zone vorhanden, i < imax, wird zum nächsten Interpolationspunkt i+1 gewechselt (S110). Falls in Schritt S109 ein Umschalten auf das zweite Geschwindigkeitsprofil des letzten Interpolationstaktes V2(i-1) stattgefunden hat, erfolgt die weitere Bestimmung von Interpolationspunkten entlang des zweiten Geschwindigkeitsprofils V2. Nach Erreichen des letzten Interpolationspunkts der ersten Zone (i = imax) erfolgt der Eintritt in die nachfolgende Zone (S111), in der erneut das erste Geschwindigkeitsprofil V1 initialisiert wird. Die Berechnung wird fortgesetzt, bis alle Zonen der betrachteten Bahnsegmente durchfahren wurden (z = zmax), dann ist das Ende des Verfahrens erreicht (S112).If further interpolation points are still present in the first zone, i<i max , a change is made to the next interpolation point i+1 (S110). If a switchover to the second speed profile of the last interpolation cycle V 2 (i-1) has taken place in step S109, the further determination of interpolation points along the second speed profile V 2 takes place. After reaching the last interpolation point of the first zone (i=i max ), the next zone (S111) is entered, in which the first speed profile V 1 is initialized again. The calculation is continued until all zones of the path segments considered have been traversed (z=z max ), then the end of the method is reached (S112).
In der letzten Zone zmax entspricht das zweite Geschwindigkeitsprofil V2 einem Geschwindigkeitsprofil, das eine Abbremsung zum Stillstand ermöglicht.In the last zone z max , the second speed profile V 2 corresponds to a speed profile that enables braking to a standstill.
In
Am Beginn der Zone seien Geschwindigkeit und Beschleunigung jeweils null (Stillstand).At the beginning of the zone, the speed and acceleration are both zero (standstill).
Am Beginn einer Zone wird in der Regel von einem ersten Geschwindigkeitsprofil V1 zum Erreichen der Sollgeschwindigkeit ausgegangen, welches im Rahmen der Initialisierung berechnet wird. Insbesondere stammt die Sollgeschwindigkeit aus einer externen Vorgabe. Bei dem ersten Geschwindigkeitsprofil kann es sich wieder um das bereits genannte ruckbegrenzte Siebenphasenprofil handeln.At the beginning of a zone, a first speed profile V 1 is generally assumed to reach the target speed, which is calculated during the initialization. In particular, the setpoint speed comes from an external specification. The first speed profile can again be the jerk-limited seven-phase profile already mentioned.
Entlang dieses ersten Geschwindigkeitsprofils V1 wird jetzt zyklisch interpoliert. In jedem Interpolationstakt wird ein zweites Geschwindigkeitsprofil (Übergangsgeschwindigkeitsprofil) V2-1-V2-5 berechnet und gegen die Zonenübergangsbedingungen (Pfeile am Zonenübergang tz) geprüft. Das zweite Geschwindigkeitsprofil V2-1-V2-5 basiert ebenfalls auf dem bereits beschriebenen Siebenphasenprofil und kann aus einer Menge an vorbestimmten Profilen ausgewählt werden, welche neben dem o.g. Geschwindigkeitsprofil zum Erreichen einer Sollgeschwindigkeit weiterhin ein Geschwindigkeitsprofil zum Erreichen einer Übergangsbedingung, ein Geschwindigkeitsprofil entlang des Grenzgeschwindigkeitsprofils und ein Geschwindigkeitsprofil zum Erreichen des Stillstands aufweistCyclic interpolation is now carried out along this first speed profile V 1 . A second speed profile (transition speed profile) V 2-1 -V 2-5 is calculated in each interpolation cycle and checked against the zone transition conditions (arrows at the zone transition t z ). The second speed profile V 2-1 -V 2-5 is also based on the seven-phase profile already described and can be selected from a number of predefined profiles which, in addition to the above-mentioned speed profile for reaching a target speed, also include a speed profile for reaching a transition condition, along a speed profile of the limit speed profile and a speed profile for reaching standstill
Bei der Berechnung eines Geschwindigkeitsprofils auf eine Übergangsbedingung werden die Übergangsbedingungen am Zonenübergang in der Reihenfolge „maximal zulässige Beschleunigung“, „erreichbare konstante Geschwindigkeit“ und „maximal zulässige Verzögerung“ berücksichtigt. Dies bedeutet, dass zunächst ein Übergangprofil auf die maximal zulässige Beschleunigung am Zonenübergang berechnet wird. Verletzt dieses Übergangsgeschwindigkeitsprofil eine Übergangsbedingung, so wird als nächstes ein Übergangsgeschwindigkeitsprofil auf die erreichbare konstante Geschwindigkeit am Zonenübergang berechnet. Verletzt auch dieses Übergangsgeschwindigkeitsprofil eine Übergangsbedingung, so wird als letztes ein Übergangsgeschwindigkeitsprofil auf die maximal zulässige Verzögerung ermittelt.When calculating a speed profile for a transition condition, the transition conditions at the zone transition are taken into account in the order "maximum permissible acceleration", "achievable constant speed" and "maximum permissible deceleration". This means that a transition profile to the maximum permissible acceleration at the zone transition is first calculated. If this transition speed profile violates a transition condition, then a transition speed profile is calculated next to the achievable constant speed at the zone transition. If this transitional speed profile also violates a transitional condition, then a transitional speed profile to the maximum permissible deceleration is determined as the last step.
Im Hinblick auf die dargestellten Übergangsgeschwindigkeitsprofile V2-1 und V2-2, die eine konstante Geschwindigkeit (a = 0) am Zonenübergang tz aufweisen, bedeutet dies, dass ein zuerst berechnetes Übergangsgeschwindigkeitsprofil auf die maximal zulässige Beschleunigung am Zonenübergang zu einer Verletzung geführt hat, und daraufhin jeweils ein Übergangsgeschwindigkeitsprofil auf die erreichbare konstante Geschwindigkeit ermittelt wurde. Dieses führt in beiden Fällen zu keiner Verletzung der Übergangsbedingungen, da die Geschwindigkeit in den entsprechenden Interpolationspunkten unterhalb der Geschwindigkeit liegt, bis zu der ein Zonenübergang mit einer Beschleunigung von null (a = 0) zulässig ist, aber oberhalb der Geschwindigkeit, mit der ein Zonenübergang mit maximaler Beschleunigung (a = amax) möglich ist.With regard to the transition speed profiles V 2-1 and V 2-2 shown, which have a constant speed (a = 0) at the zone transition t z , this means that a first calculated transition speed profile to the maximum permissible acceleration at the zone transition led to an injury and then a transition speed profile to the achievable constant speed was determined. In both cases, this does not lead to a violation of the transition conditions, since the speed at the corresponding interpolation points is below the speed up to which a zone transition with zero acceleration (a = 0) is permissible, but above the speed at which a zone transition is permissible with maximum acceleration (a = a max ) is possible.
Da die Übergangsgeschwindigkeitsprofile V2-1 und V2-2 die Zonenübergangsbedingungen nicht verletzen, erfolgt die Interpolation weiterhin entlang des ersten Geschwindigkeitsprofils V1.Since the transition speed profiles V 2-1 and V 2-2 do not violate the zone transition conditions, the interpolation continues along the first speed profile V1.
Die Geschwindigkeiten in den Interpolationspunkten der Übergangsgeschwindigkeitsprofile V2-3 bis V2-5 liegen oberhalb der Geschwindigkeit, die einen Zonenübergang mit konstanter Geschwindigkeit (a = 0) erlaubt, so dass diese Übergangsgeschwindigkeitsprofile gemäß der zugehörigen Übergangsbedingung eine konstante Verzögerung (a = alim) am Zonenübergang zeigen. Dies bedeutet für die Übergangsgeschwindigkeitsprofile V2-3 und V2-4, dass jeweils die beiden zunächst ermittelten Übergangsgeschwindigkeitsprofile auf maximal zulässige Beschleunigung und erreichbare konstante Geschwindigkeit zu einer Verletzung der Übergangsbedingungen geführt haben und nur das Übergangsgeschwindigkeitsprofil mit maximal zulässiger Verzögerung ausgehend von den betreffenden Interpolationspunkten zu keiner Verletzung der Übergangsbedingungen führt.The speeds at the interpolation points of the transition speed profiles V 2-3 to V 2-5 are above the speed that allows a zone transition with constant speed (a = 0), so that these transition speed profiles have a constant deceleration (a = a lim ) show at the zone transition. For the transition speed profiles V 2-3 and V 2-4 , this means that the two initially determined transition speed profiles to the maximum permissible acceleration and achievable constant speed led to a violation of the transition conditions and only the transition speed profile with the maximum permissible deceleration starting from the relevant interpolation points does not lead to a violation of the transition conditions.
Das Übergangsgeschwindigkeitsprofil mit maximal zulässige Verzögerung V2--5 verletzt jedoch die Zonenübergangsbedingung a = alim, da die am Zonenende erreichte Verzögerung zu gering ist und dadurch auch das Grenzgeschwindigkeitsprofil 1 am Zonenübergang überschritten wird (siehe eingezeichneter Blitz). Das im Schritt zuvor ermittelte Übergangsgeschwindigkeitsprofil V2-4 verletzt die Bedingungen noch nicht und existiert zum aktuellen Zeitpunkt noch. Daher erfolgt ein Wechsel auf das Übergangsgeschwindigkeitsprofil V2-4, auf welchem die Zone dann fertig interpoliert werden kann. Neben der Umschaltung auf ein Übergangsgeschwindigkeitsprofil V2-1-V2-5 kann in gleicher Weise ein Wechsel auf ein Geschwindigkeitsprofil entlang der Grenzgeschwindigkeit und/oder ein Wechsel auf ein Geschwindigkeitsprofil zum Stillstand erfolgen.However, the transition speed profile with maximum permissible deceleration V 2--5 violates the zone transition condition a = a lim , since the deceleration achieved at the end of the zone is too low and thus the
Zusammenfassend ermöglicht es das erfindungsgemäße Verfahren, glatte, ruckbegrenzte und annähernd zeitoptimale Geschwindigkeitsprofile für Bahnsteuerungen zu erzeugen, ohne dass eine Filterung der Bewegungsgrößen Geschwindigkeit, Beschleunigung und/oder Ruck notwendig ist. Durch die zonenbasierte Berechnung der Bewegungsgrößen entfällt die Notwendigkeit weiterer aufwendiger Vorausberechnungen zur Interpolationszeit im Falle von zur Laufzeit eintretenden Veränderungen bezüglich der Sollgeschwindigkeit und/oder der Sollbeschleunigung. Zugleich entfallen durch den Wegfall der Filterung aufwendige Synchronisationsalgorithmen. Das Verfahren ermöglicht eine gekapselte Betrachtung von Bewegungssegmenten zur Laufzeit und erfordert keine weiteren aufwändigen iterativen Rechenschritte.In summary, the method according to the invention makes it possible to generate smooth, jerk-limited and approximately time-optimal velocity profiles for path controls without the need for filtering the movement variables velocity, acceleration and/or jerk. The zone-based calculation of the movement variables eliminates the need for further complex advance calculations for the interpolation time in the event of changes in the setpoint speed and/or the setpoint acceleration occurring during the runtime. At the same time, there is no need for complex synchronization algorithms because there is no filtering. The method enables an encapsulated view of motion segments at runtime and does not require any further complex iterative calculation steps.
Claims (11)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102021211819.4A DE102021211819B3 (en) | 2021-10-20 | 2021-10-20 | Method for generating a speed profile for a path control |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102021211819.4A DE102021211819B3 (en) | 2021-10-20 | 2021-10-20 | Method for generating a speed profile for a path control |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE102021211819B3 true DE102021211819B3 (en) | 2023-01-05 |
Family
ID=84492445
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE102021211819.4A Active DE102021211819B3 (en) | 2021-10-20 | 2021-10-20 | Method for generating a speed profile for a path control |
Country Status (1)
| Country | Link |
|---|---|
| DE (1) | DE102021211819B3 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DD289832A5 (en) | 1989-11-29 | 1991-05-08 | Fz Des Werkzeugmaschinenbaues,De | CIRCUIT ARRANGEMENT FOR FOLLOWING TAX ON TRANSACTION INTERVENTION |
| DE102009049172A1 (en) | 2009-10-13 | 2011-06-16 | Kuka Roboter Gmbh | Method and device for controlling a manipulator |
| EP2996003A1 (en) | 2014-09-11 | 2016-03-16 | Robert Bosch Gmbh | Device and method for moving an object |
-
2021
- 2021-10-20 DE DE102021211819.4A patent/DE102021211819B3/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DD289832A5 (en) | 1989-11-29 | 1991-05-08 | Fz Des Werkzeugmaschinenbaues,De | CIRCUIT ARRANGEMENT FOR FOLLOWING TAX ON TRANSACTION INTERVENTION |
| DE102009049172A1 (en) | 2009-10-13 | 2011-06-16 | Kuka Roboter Gmbh | Method and device for controlling a manipulator |
| EP2996003A1 (en) | 2014-09-11 | 2016-03-16 | Robert Bosch Gmbh | Device and method for moving an object |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE60035651T2 (en) | Control system for the synchronous cooperative operation of a plurality of robots | |
| EP0384925B1 (en) | Control method for a digital machine tool or a robot | |
| WO2019137665A1 (en) | Method for the computer-assisted planning of a working sequence that can be carried out by a robot | |
| DE102014103370A1 (en) | Method and device for discrete-time control of a manipulator | |
| EP3983779A1 (en) | Method and apparatus for predictive vehicle control | |
| EP2209596B1 (en) | Industrial robot and method for controlling the movement of an industrial robot | |
| DE102015009247B4 (en) | Smoothing numerical control to smooth out speed variations due to abrupt changes in positional deviation | |
| EP0768587B1 (en) | Clock-synchronised motion control in discrete-time sampling systems | |
| DE102016012634B4 (en) | Numerical control with curvature and curvature change dependent speed control | |
| EP3861440A1 (en) | Method for data processing and programmable logic controller | |
| DE102020124371B4 (en) | Numerical control device | |
| AT519253A4 (en) | Control unit for a molding machine | |
| DE102021211819B3 (en) | Method for generating a speed profile for a path control | |
| DE102018110297B4 (en) | Method and device for jerk-limited trajectory planning and real-time control of a movement | |
| EP3314761B1 (en) | Filter switching method for a machine control | |
| DE102019204884A1 (en) | Adjustment device and adjustment program | |
| EP0988584A1 (en) | Method and device for controlling a tool feed | |
| EP0791193A1 (en) | Speed control for any override range effective over a plurality of blocks | |
| DE102016220577A1 (en) | Method for optimizing the motion contours of a manipulator | |
| EP3887911B1 (en) | Method for controlling an automation process in real time | |
| WO2020015951A1 (en) | Method for determining a rough trajectory from a predetermined contour | |
| WO2001033304A2 (en) | Control system for electric drive mechanisms and method for controlling a trajectory | |
| WO1994028470A1 (en) | Regulating device | |
| DE102022121582B4 (en) | Device and method for stepper motor control and 3D printer | |
| EP2148255B1 (en) | Method for operating a regulator and regulator |
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 |