# Patent

## Title
Method for controlling the movement of a drive axis of a drive unit

## Abstract

To be able to activate a smoothing filter for a setpoint, with which the movement of a drive axis (A, Ai) of a drive unit (AE) can also be controlled during the movement without a negative effect on the movement, it is provided that the smoothing filter (10) is initialized with a setpoint profile (Sinit) so that a current movement phase ((S0, {dot over (S)}0, . . . , S0(x))) is continued continuously and the repeated time derivative (S(x+1)) of the highest time derivative (S(x)) of the setpoint (S(t), S(k)) is limited.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
The present application claims priority under 35 U.S.C. § 119(a) of Austria Patent Application No. A50073/2016 filed Feb. 5, 2016, the disclosure of which is expressly incorporated by reference herein in its entirety.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a method for controlling the movement of a drive axis of a drive unit, wherein the movement of the drive axis is controlled in a cycle step by specifying a setpoint of the movement, by means of which there results a movement phase of the movement of the drive axis, wherein a smoothing filter in the form of an averaging filter calculates the new setpoint as the mean value of the previous setpoints at a filter time in the past.
2. Discussion of Background Information
Long-stator linear motors are often used as flexible conveying devices in manufacturing lines, processing lines, assembly lines and similar systems. As is known, a long-stator linear motor consists substantially of a long stator in the form of a multiplicity of drive coils arranged one after the other, and a multiplicity of transport units with excitation magnets (permanent or electromagnets) which are moved along the long stator by applying an electrical current appropriately to the drive coils. As a result of the drive coils, a moving magnetic field is produced which interacts with the excitation magnets on the transport units in order to move the transport units. A conveyor line, along which the transport units can be moved, is therefore formed by the long stator. It is thus possible to control each transport unit individually and independently of one another in its movement (position, velocity, acceleration). For this purpose, each drive coil is activated by an associated drive coil controller which can receive commands to move a transport unit (e.g. in the form of setpoints for position or velocity) from a superordinate system control unit. At the same time, track switches or merging conveyor sections of the long-stator linear motor can be provided along the conveyor line. The long stator is also often constructed in the form of conveyor segments, wherein each conveyor segment forms part of the conveyor line and contains a number of drive coils. Usually, a segment controller, which controls all drive coils of the conveyor segment, is provided for a conveyor segment. The structural design of the long-stator linear motor, that is to say, for example, the design of the drive coils, the conveyor line, the transport units, the transport unit guides, etc., can, of course, be different, wherein, however, the basic functional principle of a long-stator linear motor remains the same.
A conveyor device in the form of a long-stator linear motor can become quite complex with a plurality of transport sections which can be connected to one another by means of track switches. A large number of transport units can be moved simultaneously on these. Such a conveyor device therefore imposes high demands on the control of the movement of the individual transport units.
U.S. Pat. No. 8,863,669 B2 describes, by way of example, a conveyor device in the form of a long-stator linear motor with a transport unit controller. Herein, the conveyor line is divided into zones, wherein a transport unit in a setpoint-based zone is controlled based on a setpoint command, and, in a limit-based zone, is controlled by means of commands for the end position and maximum values for the velocity and acceleration. With the limit-based control, these commands are converted into a movement profile with which the transport unit is moved.
There are various possibilities as to how the movement of a transport unit can be controlled or regulated. For example, a distance coupling, with which a slave transport unit is coupled to the movement of a master transport unit, would be conceivable. The slave transport unit follows the master transport unit at a specified constant distance. Instead of a constant distance, the distance could also vary along the movement, for example in the form of a specified curve. A movement in the form of an inverse kinematic, with which the movement of the transport unit is synchronized to the movement of another unit in space, is also conceivable. An example of this is the synchronization of a transport unit to the movement of a robot arm which carries out work on a workpiece on the transport unit. A position control, in which a control difference, based on which the setpoint position is varied in order to equalize the control difference to zero, is specified, is also possible. An application of this could be the exertion of a process force between two transport units. However, the invention is not restricted to a conveyor device in the form of a long-stator linear motor but applies generally to drive axes of a drive.
In most cases, a target velocity or a target position, which is to be set or approached by the drive, is specified for a drive axis. This type of movement of a drive axis is also referred to in the following as target mode. In target mode, the target velocity or target position is converted into a position profile or, as an equivalent, also into a velocity profile, which is followed by the drive axis. A typical example of the specification of target velocities is a crane where the slewing velocity of the crane arm is controlled by means of a control element, e.g. a joystick. In target mode, limits for the jerk, which is defined as the time derivative of the acceleration, are often specified in order to reduce the load on the drive axis. So-called smoothing filters, which limit the change in acceleration (that is to say the jerk), are often used for this purpose. Such smoothing filters are often designed as low-pass filters or as averaging filters. In many applications, such as cranes for example, a limit of the time derivative of the jerk is also desired.
It would, of course, also be possible to generate movement profiles which are inherently jerk-limited. However, the generation of such movement profiles is very calculation-intensive. Particularly in the case of applications such as a conveyor device in the form of a long-stator linear motor where there is a multiplicity of transport units to be moved, the limits of available computational power are quickly reached. For this reason, in many applications, only simple movement profiles, which are subsequently jerk-limited in a smoothing filter, are generated for a drive axis.
U.S. Pat. No. 4,603,286 A describes a higher-order low-pass filter. However, such low-pass filters are likewise calculation-intensive. For a conveyor device having a multiplicity of transport units, the computational effort would increase enormously, as a result of which such low-pass filters can hardly be used for this application. Irrespective of this, low-pass filters have the characteristic that the output of the filter only adapts exponentially to the input but never reaches it. This makes low-pass filters rather uninteresting for accurate control with low tracking error (deviation between setpoint and actual value).
EP 419 705 A1 and EP 477 412 A1 each describe a jerk limitation with a simple averaging filter which forms the mean value over a specified number of previous position commands in order to calculate the new setpoint for the position command. Although these averaging filters require less computational power, they assume that previous position commands are known in order to be able to calculate a mean value from the previous values. This is the case when the smoothing filter is always active, that is to say from standstill at the beginning of the movement to the end of the movement.
However, it is possible that a smoothing filter in the form of a averaging filter is only to be activated during a movement of a drive axis, that is to say not from the very beginning, for example when the system switches from a movement mode, e.g. inverse kinematic, to the target mode. In this case, an undesirable movement behavior of the drive axis occurs depending on how the smoothing filter is initialized at the time of activation (filled with values for the previous time period). If the smoothing filter has simply been initialized with the previous setpoints, then a setpoint step would occur at the time of activation which would burden the drive axis controller and the components of the drive. In the worst case, the control could become unstable. If initialization takes place with the setpoint at the time of activation, then this could result in a velocity or acceleration step, which is likewise undesirable and may have similar consequences.
SUMMARY OF THE EMBODIMENTS
Embodiments of the present invention are directed to a method which enables, with little computational effort, the movement of a drive axis of a drive unit to be controlled by specifying setpoints, wherein a smoothing filter in the form of a averaging filter can also be activated during the movement of the drive axis while maintaining the specified kinematic limits, in particular the jerk or the change in the jerk with respect to time.
According to the invention, it can be ensured that the movement is continued continuously also after activating the smoothing filter at the current movement phase. At the same time, this enables the output of the smoothing filter to be continuous and therefore differentiable, by means of which the repeated time derivative of the highest time derivative in the movement phase, e.g. the jerk or the change in the jerk with respect to time, is limited. In this way, the smoothing filter can be activated without negative effects at any time, in particular also during a movement of the drive axis, and not only at the beginning of the movement.
Preferably, a constant function is assumed for the highest time derivative of the setpoint for the previous time interval. This enables the computational effort for determining the setpoint profile for initialization to be reduced, as the lower derivatives, and therefore also the setpoint profile for initialization, can easily be calculated therewith.
It is quite particularly advantageous when the setpoint is updated and buffered in a circular buffer in every cycle step, wherein the updated setpoint shifts the oldest setpoint out of the circular buffer, wherein the setpoints stored in the circular buffer form the setpoint profile for initializing the smoothing filter. In this way, the setpoint profile for initializing the smoothing filter is available when activating the smoothing filter, which considerably reduces the effort and time for initialization.



BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is explained in more detail below with reference to FIGS. 1 to 8, which show advantageous embodiments of the invention in an exemplary, schematic and non-restricting form. In the drawing
FIG. 1 shows a drive unit in the form of a conveyor device as a long-stator linear motor with transport units as drive axes,
FIG. 2 shows a drive axis of a drive unit with drive axis controller and smoothing filter,
FIG. 3 shows a typical movement profile without smoothing filter,
FIG. 4 shows the activation of the smoothing filter without initialization according to the invention,
FIG. 5 shows an exemplary embodiment of a drive axis controller with smoothing filter,
FIG. 6 shows an initialization of the smoothing filter according to the invention,
FIG. 7 shows a typical movement profile with initialization of the smoothing filter during the movement, and
FIG. 8 shows a circular buffer for the setpoint profile for initialization of the smoothing filter.



DETAILED DESCRIPTION OF THE EMBODIMENTS
The particulars shown herein are by way of example and for purposes of illustrative discussion of the embodiments of the present invention only and are presented in the cause of providing what is believed to be the most useful and readily understood description of the principles and conceptual aspects of the present invention. In this regard, no attempt is made to show structural details of the present invention in more detail than is necessary for the fundamental understanding of the present invention, the description taken with the drawings making apparent to those skilled in the art how the several forms of the present invention may be embodied in practice.
The smoothing filter 10 according to the invention is described below with reference to FIG. 1, without restricting generality, in conjunction with a transport unit TEi of a conveyor device 1 in the form of a long-stator linear motor. Here, a transport unit TEi of the conveyor device 1 is seen as a driven drive axis Ai and the conveyor device 1 forms the drive unit AE. A long-stator linear motor as conveyor device 1 therefore has as many drive axes Ai as there are transport units TEi which are moved upon it.
However, it must be noted that the smoothing filter 10 can be used generally on driven drive axes A of a drive unit AE (FIG. 2), wherein the driven drive axis A is controlled by a drive axis controller AR and setpoints S, e.g. in the form of positions p or velocity v. The smoothing filter 10 can be implemented in the drive axis controller AR but can also be implemented separately therefrom. A drive axis A of a drive unit AE moves a moving part 20 of the drive in accordance with the specified setpoints S in a possible movement direction. The terms single-axis or multi-axis drive are used depending upon the number of possible movement directions of the drive unit AE. For example, a conventional electric motor for moving a unit driven thereby in one direction (rotary or translatory) is a single-axis drive with a drive axis A of a drive unit AE. An example of this is, for example, a single-axis drive for an elevator or the slewing drive of a crane. The sliding door of the elevator is likewise moved by a single-axis drive. The drive of a worktable which can be moved in a plane in both directions by a drive unit AE would be a two-axis drive. Likewise, a transport unit TEi which interacts with drive coils ASij of the conveyor device 1 is a single-axis Ai with direction of movement in the direction of the conveyor line 2. The transport unit TEi then constitutes the moving part 20.
By way of example, an arbitrary design of a conveyor device 1 with a conveyor line 2 (shown by the dashed line) is shown in FIG. 1. The conveyor device 1 is designed as a long-stator linear motor, and a multiplicity of transport units TEi, i=1, . . . , x, which can be moved along the conveyor line 2, is provided. The conveyor line 2 is substantially specified by the long stator of the long-stator linear motor 1. In the exemplary embodiment shown, a series of conveyor segments FSi, i=1, . . . , y, which define the path of the transport units TEi, that is to say the conveyor line 2, is provided. Individual conveyor sections FAi, i=1, . . . , z of the conveyor line 2 are formed by a series of conveyor segments FSi arranged adjacent to one another. In doing so, the conveyor segments FSi form part of the long stator of the long-stator linear motor. The conveyor segments FSi are fixedly arranged in a suitable structure and usually also form guide elements, along which the transport units TEi can be guided. Each conveyor section FAi comprises at least one conveyor segment FSi, normally a plurality of conveyor segments FSi. Individual conveyor sections FAi, or conveyor segments FSi of individual conveyor sections FAi (such as the conveyor segments FS1, FSm for example), can also partially overlap one another, in particular in areas of the conveyor line 2 at which a transition occurs from one conveyor section FAi to another conveyor section FAi (such as from conveyor section FA1 to conveyor section FA2 for example). It can also be provided that conveyor segments FSi are partially arranged on both sides of the conveyor line 2. Track switches W, at which (depending on the conveying direction of a transport unit TEi) two conveyor sections FAi are merged or a separation onto two conveyor sections FAi occurs, can also be provided. It is understandable that an almost arbitrarily designed conveyor line 2, which does not only have to be located in a two-dimensional plane but can also extend three-dimensionally, can be formed in this way.
Each conveyor segment FSi comprises a number k of drive coils ASij, j=1, . . . , k, wherein the number k does not have to be the same for each conveyor segment FSi. For clarity, only drive coils ASij of some conveyor segments FSi are shown in FIG. 1. Each transport unit TEi comprises a number of excitation magnets EMij, j=1, . . . , 1, preferably on both sides (referred to the conveying direction which is indicated by the arrows on the transport units TEi) of the transport units TEi. When the conveyor device 1 is operating, the drive coils ASij interact in a known manner with the excitation magnets EMij of the transport units TEi in accordance with the motor principle. If the drive coils ASij in the region of a transport unit TEi are energized with a coil current, a magnetic flux is produced which, in conjunction with the excitation magnets EMij, exerts a force on the transport unit TEi. Depending on the coil current, this force can comprise a forward-driving-force-forming force component and a lateral-force-forming force component. The forward-driving-force-forming force component serves substantially to move the transport unit TEi, and the lateral-force-forming force component can be used to guide the transport unit TEi and also to define the path of the transport unit TEi at a track switch W. In this way, each transport unit TEi can be moved individually and independently of one another along the conveyor line 2 by energizing the drive coils ASij in the region of each transport unit TEi with an appropriate coil current in accordance with the movement to be executed.
This basic principle of operation of a long-stator linear motor is well-known and is therefore not discussed in more detail. For the present invention, it is also irrelevant how the transport units TEi, the conveyor segments FSi, the drive coils ASij, the excitation magnets EMij, etc. are specifically structurally designed, for which reason they are also not discussed in more detail.
A transport unit control 3, in which the setpoints S for the movement of the transport units TEi are generated, is provided in order to control the movement of the individual transport units TEi. Of course, a plurality of transport unit controls 3, which are each assigned to part of the conveyor device 1, e.g. a conveyor section FAi, and control the movement of the transport units TEi on this part, can equally be provided. In addition, segment control units 4 can also be provided, which are assigned to a conveyor segment FSi (or also to a plurality of conveyor segments FSi or to part of a conveyor segment FSi) and which convert the setpoint commands of the associated transport unit control 3 for a transport unit TEi into control variables, such as into coil currents for example, for the drive coils ASij of the conveyor segment FSi. However, the segment control units 4 could also be implemented in a transport unit control 3. The transport unit control 3, possibly in combination with the associated segment control unit 4, forms the drive axis controller AR of a drive axis Ai.
Positions pi of the drive axis A, e.g. of the transport units TEi, or equally also velocities vi, are specified as setpoints S. This means that a new setpoint S is calculated for each drive axis A in each cycle step n of the control and is adjusted in the cycle step n by the drive axis controller AR. Accordingly, a suitable controller is implemented in a drive axis controller AR, which converts the setpoint specification in form of the setpoints S, into a suitable control variable for the drive, for example into a force or a coil current as in a conveyor device 1.
The requested path of the transport units TEi along the conveyor line 2 can also be specified by a superordinate conveyor device control 5, in which, for example, a route calculation (which path must a transport unit TEi take?), a track switch arbitration (which transport unit TEi may move into a track switch?), a deadlock prevention (e.g. will two transport units TEi block one another?), etc., can take place in order to move the transport units TEi in the required manner along the conveyor line 2, e.g. in order to realize a manufacturing process, assembly process or other process. This movement specification for the transport units TEi can be converted into a setpoint specification for the transport units TEi in the transport unit control 3.
By way of example, a typical movement profile for the setpoint specification for achieving a target position p(tz) is shown in FIG. 3 using a transport unit TEi as drive axis Ai as an example. At the beginning of the movement at t=0, the transport unit TEi is accelerated with specified maximum acceleration amax until, at time t1, a specified maximum velocity vmax has been reached. From this time t1 the movement is continued at constant velocity vmax, whereby the position p increases linearly. At time t1 the acceleration is abruptly set from maximum acceleration amax to zero, which causes an infinite jerk j. The time t2, from which the deceleration of the transport unit begins, is chosen such that the transport unit TEi reaches the target position p(tz) at velocity v=0. An infinite jerk j also occurs at the time t2, at which the deceleration is switched. This jerk j is to be limited by a smoothing filter 10 in the form of an averaging filter.
Generally speaking, the smoothing filter 10 forms the arithmetic mean S from nR previous setpoints S. The filter time tR is defined as tR=(nR−1)ta, with the sampling time ta, which defines the cycle step n. A new setpoint S is calculated at each sampling moment n·ta, that is to say in each cycle step n. If the setpoint profile is thought of as a time-continuous signal S(t), the smoothing filter 10 can be formulated mathematically as a convolution of the setpoint signal S(t) with the function




  
    
      1
      
        t
        R
      
    
    ⁢
    
      1
      B
    
  
  ,
  
    
  
  ⁢
  
    B
    =
    
      
        [
        
          0
          ,
          
            t
            R
          
        
        ]
      
      ⁢
      
        :
      
    
  








  
    
      1
      B
    
    ⁢
    
      (
      x
      )
    
  
  =
  
    {
    
      
        
          
            
              1
            
            
              
                
                  falls
                  ⁢
                  
                    
                  
                  ⁢
                  x
                
                ∈
                B
              
            
          
          
            
              0
            
            
              sonst
            
          
        
        ⁢
        
          

        
        ⁢
        
          
            S
            _
          
          ⁡
          
            (
            t
            )
          
        
      
      =
      
        
          (
          
            
              S
              ⁡
              
                (
                t
                )
              
            
            ⋆
            
              
                1
                
                  t
                  R
                
              
              ⁢
              
                1
                B
              
            
          
          )
        
        =
        
          
            1
            
              t
              R
            
          
          ⁢
          
            
              ∫
              
                -
                
                  t
                  R
                
              
              0
            
            ⁢
            
              
            
            ⁢
            
              
                S
                ⁡
                
                  (
                  
                    δ
                    -
                    t
                  
                  )
                
              
              ⁢
              d
              ⁢
              
                
              
              ⁢
              
                δ
                .
              
            
          
        
      
    
  




From this, it can be seen that values of the setpoint signal S(t) for the previous time period tR are required to calculate the mean value S. If the smoothing filter 10 were switched on at time tein (FIG. 4) then, consequently, the setpoint signal S(t) would not be resumed with the current setpoint S0 but with Sein, which corresponds to the mean value S of the setpoint signal S(t) at the filter time tR in the past. If no previous setpoint signal S(t<tein) is available, the step would be even more distinct, as then, typically, S(t<tein)=0 is assumed. Frequently S(t<tein)=S0 is also assumed, which, however, amounts to a kink in the setpoint profile which leads to a step in the time derivative {dot over (S)} of the setpoint S, which is undesirable as the movement would not be resumed continuously. This makes it clear that the activation of a conventional smoothing filter 10 as a averaging filter during a movement is problematic and not easily possible.
The smoothing filter 10 is implemented, for example, in the transport unit control 3, generally in a drive axis controller AR (FIG. 5). A setpoint specification in the form of a chronological sequence of setpoints S(t) is generated from a movement target Z, e.g. a target position pz or a target velocity vz, in a movement profile unit 11 in the drive axis controller AR or in the transport unit control 3. In doing so, the movement profile unit 11 ensures that limits for time derivatives {dot over (S)}, {umlaut over (S)},  of the setpoint S(t), such as a maximum permissible velocity vmax, a maximum permissible acceleration amax or a maximum jerk jmax for example, are maintained. At the same time, the movement profile unit 11 preferably also ensures a continuous course for the setpoint S(t), e.g. the position p(t) or the velocity v(t). The movement target Z is therefore converted in the movement profile unit 11 into a continuous course of the setpoints S(t) while maintaining specified limits. For example, a position step to specify a new target position pz is converted into a position and velocity profile as shown in FIG. 3.
However, it is of course equally conceivable that the setpoints S(t) are fed directly to the drive axis controller AR and are not determined in a movement profile unit 11.
An averaging filter has a smoothing effect, i.e. it increases the derivability of the setpoint S(t) by one order. If the input signal in the averaging filter was a two-times continuously differentiable function, then the output of the averaging filter is a three-times continuously differentiable function. This is exactly the effect that is to be achieved with smoothing filter 10. If the input in the smoothing filter 10 is the position signal p(t) according to FIG. 3 for example, then this position signal p(t) can be continuously differentiated once (velocity v={dot over (p)}), but cannot be continuously differentiated twice (acceleration a={umlaut over (p)}), as the acceleration a(t) is not a continuous function. However, if the position signal p(t) is averaging-filtered, then the averaged position signal p can be continuously differentiated twice, that is to say the acceleration a(t) is also a continuous function. Consequently, the time derivative of the continuous acceleration a(t), that is to say the jerk j=, is then limited and not infinite as in FIG. 3.
The x-times continuously differentiable setpoints S(t) are accordingly converted in the subsequent smoothing filter 10 to x+1-times continuously differentiable setpoints S(t) and are output as an output. In doing so, it does not matter to the smoothing filter 10 which setpoint S(t) is applied to the input. If a position signal p(t) or velocity signal v(t) is applied to the input of the smoothing filter 10 as setpoint S(t) as in FIG. 3, then a jerk-limited setpoint S is obtained at the output of the smoothing filter 10. If a velocity profile which can be continuously differentiated once and which corresponds to the position signal p(t) in FIG. 3 is applied to the input of the smoothing filter 10 as setpoint S(t), then a setpoint S is obtained at the output, the second time derivative of which, that is to say the time derivative of the jerk j, is continuous. The time derivative of the jerk j would be limited thereby, which is often required with cranes.
Generally speaking, with an expected finite input signal, the output of the smoothing filter 10 as an averaging filter is continuous and therefore, in particular, has no steps. At the same time, an averaged setpoint S(t) is calculated in each cycle step n.
The procedure according to the invention for initializing the smoothing filter 10 when activated during a movement of the drive axis A is described below for easier understanding in the time domain and for a typical movement phase (S,{dot over (S)},{umlaut over (S)}) of the movement of the drive axis A.
At time tein of the activation of the smoothing filter 10, there exists a current movement phase (S0,{dot over (S)}0,{umlaut over (S)}0), wherein S0 designates the setpoint S(t) at the current time tein. In the example of a position signal p(t) as setpoint S(t), this results in the velocity v(t) as the first time derivative and the acceleration a(t) as the second time derivative and therefore a current movement phase (p0, v0, a0), wherein p0 specifies the current position, v0 the current velocity and a0 the current acceleration. In order to be also able to activate the smoothing filter 10 during the movement, according to the invention, the smoothing filter 10 is initialized in order to achieve the continuation of the current movement phase (S0,{dot over (S)}0,{umlaut over (S)}0) and a limit of the third time derivative of the setpoint S(t) on activation. In the example of the position signal p(t) as setpoint S(t), this therefore results in a limitation of the jerk j.
On activation, the averaged setpoint S(t) as an output signal of the smoothing filter 10 (FIG. 5) is intended to continue the current movement phase (S0,{dot over (S)}0,{umlaut over (S)}0) continuously, that is to say without a step and while maintaining the kinematic limits, for t≧tein independently of the setpoint signal S(t). For this purpose, the smoothing filter 10 is filled with a setpoint profile Sinit for the time interval [tein−tR, tein] at a filter time tR in the past so that the characteristics S(tein)=S0, {dot over (S)}(tein)={dot over (S)}0, {umlaut over (S)}(tein)={umlaut over (S)}0 are fulfilled.
In the simplest case, the second time derivative of the setpoint {umlaut over (S)}(t) for the time interval [tein−tR, tein] is set equal to the current value of the second time derivative of the setpoint {umlaut over (S)}0 of the current movement phase (S0,{dot over (S)}0,{umlaut over (S)}0), that is to say {umlaut over (S)}(t)={umlaut over (S)}0. For the mean value at time tein of the activation of the smoothing filter 10, this results directly in {umlaut over (S)}(tein)={umlaut over (S)}0, whereby part of the above requirement is fulfilled. From {umlaut over (S)}(t)={umlaut over (S)}0 follows directly, for the first derivative {dot over (S)}(t) of the setpoint S(t) before time tein {dot over (S)}(t)={dot over (S)}(tein)+{umlaut over (S)}0t, wherein, from the specified condition {dot over (S)}(tein)={dot over (S)}0, it follows that




  
    
      S
      .
    
    ⁡
    
      (
      
        t
        ein
      
      )
    
  
  =
  
    
      
        S
        .
      
      0
    
    +
    
      
        
          t
          R
        
        2
      
      ⁢
      
        
          
            S
             ̈
          
          0
        
        .
      
    
  




In turn, the setpoint S(t) is therefore given by





  
    
      S
      ⁡
      
        (
        t
        )
      
    
    =
    
      
        S
        ⁡
        
          (
          
            t
            ein
          
          )
        
      
      +
      
        
          
            S
            .
          
          ⁡
          
            (
            
              t
              ein
            
            )
          
        
        ⁢
        t
      
      +
      
        
          
            
              S
               ̈
            
            0
          
          2
        
        ⁢
        
          t
          2
        
      
    
  
  ,




wherein, from the specified condition S(tein)=S0, it follows that





  
    S
    ⁡
    
      (
      
        t
        ein
      
      )
    
  
  =
  
    
      S
      0
    
    +
    
      
        
          
            S
            .
          
          ⁡
          
            (
            
              t
              ein
            
            )
          
        
        2
      
      ⁢
      
        t
        R
      
    
    -
    
      
        
          
            S
             ̈
          
          0
        
        6
      
      ⁢
      
        
          t
          R
          2
        
        .
      
    
  




When all the substitutions are made, the desired previous setpoint signal S(t) for t=[tein−tR, tein], which corresponds to the setpoint profile Sinit for initializing the smoothing filter 10, is finally obtained as





  
    S
    ⁡
    
      (
      t
      )
    
  
  =
  
    
      
        S
        0
      
      +
      
        
          (
          
            
              
                S
                .
              
              0
            
            +
            
              
                
                  S
                   ̈
                
                0
              
              ⁢
              
                
                  t
                  R
                
                2
              
            
          
          )
        
        ⁢
        
          (
          
            t
            +
            
              
                t
                R
              
              2
            
          
          )
        
      
      +
      
        
          a
          0
        
        ⁡
        
          (
          
            
              
                t
                2
              
              2
            
            -
            
              
                t
                R
                2
              
              6
            
          
          )
        
      
    
    =
    
      
        S
        init
      
      .
    
  




In the case of the position signal p(t) as setpoint S(t), the position signal p(t) for the time interval [tein−tR, tein], for example, is then given by




  
    p
    ⁡
    
      (
      t
      )
    
  
  =
  
    
      p
      0
    
    +
    
      
        (
        
          
            v
            0
          
          +
          
            
              a
              0
            
            ⁢
            
              
                t
                R
              
              2
            
          
        
        )
      
      ⁢
      
        (
        
          t
          +
          
            
              t
              R
            
            2
          
        
        )
      
    
    +
    
      
        
          a
          0
        
        ⁡
        
          (
          
            
              
                t
                2
              
              2
            
            -
            
              
                t
                R
                2
              
              6
            
          
          )
        
      
      .
    
  




Naturally, instead of {umlaut over (S)}(t)={umlaut over (S)}0, a different approach can also be chosen, as long as S(tein)=S0, {dot over (S)}(tein)={dot over (S)}0, {umlaut over (S)}(tein)={umlaut over (S)}0 is maintained and the movement is continuously continued while maintaining the specified kinematic limits. An alternative suitable function f, the mean value of which corresponds to the current value {umlaut over (S)}0 of the second derivative, can therefore also be chosen for {umlaut over (S)}(t) for the time interval [tein−tR, tein]. It must therefore be possible to integrate the function f with respect to time in the time interval [tein−tR, tein] piece by piece.
Here, it must once again be emphasized that S(t) above is only the setpoint profile Sinit with which the smoothing filter 10 is initialized for the previous time interval [tein−tR, tein]. The movement is resumed continuously for the time t≧tein based on the setpoints S(t) specified in the drive controller AR while maintaining the kinematic limits, wherein the current movement phase (S0,{dot over (S)}0,{umlaut over (S)}0) is continued.
This is shown in FIG. 6, wherein the smoothing filter 10 has been initialized for the time interval [tein−tR, tein] with the values at each of the sampling times ta. In this way, for example, the movement of the transport unit TEi is continued continuously at the time tein of activation of the smoothing filter 10. In the case of a position p(t) as setpoint S(t), this results, for example, in a continuous acceleration output of the smoothing filter 10, as a result of which the jerk j is limited. In the case of a velocity v(t) as setpoint S(t), in a similar way, this results, for example, in a continuous jerk output of the smoothing filter 10, as a result of which the change in the jerk j is limited.
The effect of the smoothing filter 10 is shown in FIG. 7 using a position signal p(t) as setpoint S(t) as an example. Once again, a movement profile according to FIG. 3 is generated at the beginning. The smoothing filter 10 is activated at time tein. The current movement phase (p0, v0, a0) is continued after activation. At time t2, the transport unit TEi is decelerated once more, wherein the smoothing filter 10 now intervenes and the acceleration a reduces continuously to the maximum deceleration −amax, whereby the resulting jerk j is limited. In FIG. 7, it can also be seen that, as a result of the smoothing filter 10, there is a time delay amounting to the filter time tR, i.e. the desired target position is not reached until the filter time tR later (compared to FIG. 3 without smoothing filter 10).
The above time-continuous consideration can also be discretized, which is advantageous for implementation in a digital drive controller AR. The time-continuous signals become finite sequences, and arithmetic means are used in place of the convolutions. An index kε{kein−nR+1, . . . , kein} is now considered in place of the time interval [tein−tR, tein]. Otherwise, the approach described above remains the same, that is to say S(kein)=S0, {dot over (S)}(kein)={dot over (S)}0, {umlaut over (S)}(kein)={umlaut over (S)}0. With {umlaut over (S)}(k)={umlaut over (S)}0, the first time derivative {dot over (S)}(k) is given by {dot over (S)}(k)={dot over (S)}(kein)+{umlaut over (S)}0k={dot over (S)}(kein)−{umlaut over (S)}0·|k| with




  
    
      S
      .
    
    ⁡
    
      (
      
        k
        ein
      
      )
    
  
  =
  
    
      
        S
        .
      
      0
    
    +
    
      
        
          
            n
            R
          
          -
          1
        
        2
      
      ⁢
      
        
          S
           ̈
        
        0
      
    
  




from the condition





  
    
      S
      .
    
    0
  
  =
  
    
      1
      
        n
        R
      
    
    ⁢
    
      
        ∑
        k
      
      ⁢
      
        
      
      ⁢
      
        
          
            S
            .
          
          ⁡
          
            (
            k
            )
          
        
        .
      
    
  




The setpoint sequence S(k) is then given by




  
    
      S
      ⁡
      
        (
        k
        )
      
    
    =
    
      
        
          S
          ⁡
          
            (
            
              k
              ein
            
            )
          
        
        -
        
          
            
              S
              .
            
            0
          
          ·
          
            
            k
            
          
        
        +
        
          
            
              
                S
                 ̈
              
              0
            
            2
          
          ⁢
          
            (
            
              
                
                  
                  k
                  
                
                2
              
              -
              
                
                  
                  k
                  
                
                ⁢
                
                  n
                  R
                
              
            
            )
          
        
      
      =
      
        
          S
          init
        
        ⁢
        
          
        
        ⁢
        with
      
    
  




  
    
      S
      0
    
    +
    
      
        
          
            S
            .
          
          0
        
        2
      
      ⁢
      
        (
        
          
            n
            R
          
          -
          1
        
        )
      
    
    +
    
      
        
          
            S
             ̈
          
          0
        
        12
      
      ⁢
      
        (
        
          
            n
            R
            2
          
          -
          1
        
        )
      
    
  



from the condition





  
    S
    0
  
  =
  
    
      1
      
        n
        R
      
    
    ⁢
    
      
        ∑
        k
      
      ⁢
      
        
      
      ⁢
      
        
          S
          ⁡
          
            (
            k
            )
          
        
        .
      
    
  




In the case of a position signal p(t) as setpoint S(t), the position signal p(k) for the past {kein−nR+1, . . . , kein} is then given by



  
    
      p
      ⁡
      
        (
        k
        )
      
    
    =
    
      
        p
        ⁡
        
          (
          
            k
            ein
          
          )
        
      
      -
      
        
          v
          0
        
        ·
        
          
          k
          
        
      
      +
      
        
          
            a
            0
          
          2
        
        ⁢
        
          (
          
            
              
                
                k
                
              
              2
            
            -
            
              
                
                k
                
              
              ⁢
              
                n
                R
              
            
          
          )
        
        ⁢
        
          
        
        ⁢
        with
      
    
  




  
    
      p
      ⁡
      
        (
        
          k
          ein
        
        )
      
    
    =
    
      
        p
        0
      
      +
      
        
          
            v
            0
          
          2
        
        ⁢
        
          (
          
            
              n
              R
            
            -
            1
          
          )
        
      
      +
      
        
          
            a
            0
          
          12
        
        ⁢
        
          (
          
            
              n
              R
              2
            
            -
            1
          
          )
        
      
    
  



from the condition





  
    p
    0
  
  =
  
    
      1
      
        n
        R
      
    
    ⁢
    
      
        ∑
        k
      
      ⁢
      
        
      
      ⁢
      
        
          p
          ⁡
          
            (
            k
            )
          
        
        .
      
    
  




The smoothing filter 10 can therefore be initialized from only the current movement phase (S0,{dot over (S)}0,{umlaut over (S)}0) without knowledge of the previous movement profile, so that the movement is continued continuously at the current movement phase (S0,{dot over (S)}0,{umlaut over (S)}0).
The invention has been described above with a movement phase (S0,{dot over (S)}0,{umlaut over (S)}0) having three movement components, namely S0,{dot over (S)}0,{umlaut over (S)}0. However, the invention can, of course, also be generalized for other movement phases, with the setpoint S and time derivatives thereof, with more or fewer movement components. If, for example, a movement phase (S0,{dot over (S)}0) having two movement components, for example the position p as setpoint S and the velocity v as time derivative, is used, then the above applies in a similar manner. Likewise in the case with more than three movement components. The approach according to the invention can therefore be generalized as follows for an arbitrary movement phase (S, {dot over (S)}, . . . , S(x)) with the highest time derivative




  
    
      S
      
        (
        x
        )
      
    
    =
    
      
        
          d
          
            (
            x
            )
          
        
        
          dt
          
            (
            x
            )
          
        
      
      ⁢
      S
    
  
  ,




with the positive whole number xε.

In general, for the initialization of the smoothing filter 10, for the previous time interval [tein−tR, tein] or {kein−nR+1, . . . kein}, a function f(t), f(k), e.g. a constant function f=const., (S(x)=f) is assumed for the highest time derivative of the setpoint S(x) in the movement phase (S, {dot over (S)}, . . . , S(x)), the mean value f of which over the previous time interval [tein−tR, tein] or {kein−nR+1, . . . , kein} corresponds to the current value S0(x) of the highest time derivative at the time tein or kein of activation of the smoothing filter 10, that is to say f=S0(x). It must therefore be possible to integrate the function f with respect to time in the time interval [tein−tR, tein] or {kein−nR+1, . . . , kein} piece by piece. The lower time derivatives x={0, 1, . . . , x−1} of the movement phase (S, {dot over (S)}, S(x)) are then given by the necessary condition S(tein)=S0, {dot over (S)}(tein)={dot over (S)}0, . . . , S(x−1)(tein)=S0(x−1) or S(kein)=S0, {dot over (S)}(kein)={dot over (S)}0, . . . , S(x−1)(kein)=S0(x−1), in order to be able to continue the movement continuously after activation. From this, the setpoint profile Sinit for initializing the smoothing filter 10 for the time interval [tein−tR, tein] or {kein−nR+1, . . . , kein} can be determined. Here, the zero-order time derivative is, by definition, the setpoint S itself.
Initialization of the smoothing filter 10 on activation with the sequence {p(kein−nR+1), . . . , p(kein)} requires computational time proportional to nR, that is to say O(nR). Calculation of the output of the smoothing filter 10 in each cycle step likewise requires O(nR) time. The computational effort for the smoothing filter 10 is therefore very low. This effort can even be reduced to O(1) if the setpoint S(k) in the sequence Sinit for initialization is continuously updated in every cycle step n instead of calculating the whole sequence when activating the smoothing filter 10. A circular buffer 20, in which nR storage locations are provided, can be used for this purpose, and the new value of S(k) of the sequence Sinit in each case shifts the oldest value of S(k−nR) out of the circular buffer 20 as indicated in FIG. 8. The circular buffer 20 is implemented, for example in the smoothing filter 10 or in the drive controller AR. Here, it must once again be noted that the setpoint S(k) of the sequence Sinit is not the same as the current setpoint S for moving the drive axis A, Ai.
The value of the renewed time derivative S(x+1) of the highest time derivative S(x) of the setpoint S in the movement phase (S, {dot over (S)}, S(x)) is limited by the smoothing filter 10 at all times t≧tein, or k≧kein. Consequently, in the example of a movement phase (p, v, a), the derivative of the acceleration a, that is to say the jerk j, is limited by the smoothing filter 10. Under the assumption S(x)max=−S(x)min, the maximum value of the renewed time derivative is given by




  
    
      S
      max
      
        (
        
          x
          +
          1
        
        )
      
    
    =
    
      ±
      
        
          2
          ·
          
            S
            max
            
              (
              x
              )
            
          
        
        
          
            (
            
              
                n
                R
              
              -
              1
            
            )
          
          ⁢
          
            t
            a
          
        
      
    
  
  ,




or, in the time-continuous case,





  
    S
    max
    
      (
      
        x
        +
        1
      
      )
    
  
  =
  
    ±
    
      
        
          2
          ·
          
            S
            max
            
              (
              x
              )
            
          
        
        
          t
          R
        
      
      .
    
  




In the case of the acceleration a as the highest time derivative S(x) in the movement phase, the jerk j is limited with





  
    
      j
      max
    
    =
    
      ±
      
        
          2
          ·
          
            a
            max
          
        
        
          
            (
            
              
                n
                R
              
              -
              1
            
            )
          
          ⁢
          
            t
            a
          
        
      
    
  
  ,




or, in the time-continuous case, with





  
    j
    max
  
  =
  
    ±
    
      
        
          2
          ·
          
            a
            max
          
        
        
          t
          R
        
      
      .
    
  




It is noted that the foregoing examples have been provided merely for the purpose of explanation and are in no way to be construed as limiting of the present invention. While the present invention has been described with reference to an exemplary embodiment, it is understood that the words which have been used herein are words of description and illustration, rather than words of limitation. Changes may be made, within the purview of the appended claims, as presently stated and as amended, without departing from the scope and spirit of the present invention in its aspects. Although the present invention has been described herein with reference to particular means, materials and embodiments, the present invention is not intended to be limited to the particulars disclosed herein; rather, the present invention extends to all functionally equivalent structures, methods and uses, such as are within the scope of the appended claims.

## Claims

1. Method for controlling the movement of a drive axis (A, Ai) of a drive unit (AE), wherein the movement of the drive axis (A, Ai) is controlled in a cycle step (n) by specifying a setpoint (S(t), S(k)) of the movement, by means of which there results a movement phase ((S(t), {dot over (S)}(t), . . . , S(t)(x)), (S(k), {dot over (S)}(k), . . . , S(k)(x))) of the movement of the drive axis (A, Ai), wherein a smoothing filter (10) in the form of an averaging filter calculates the new setpoint as the mean value (S(t), S(k)) of the previous setpoints (S(t), S(k)) at a filter time (tR, nR) in the past, wherein the smoothing filter (10) is activated during the movement with a current movement phase ((S0, {dot over (S)}0, . . . , S0(x))) at a time (tein>0, kein>0), that, for the previous time interval ([tein−tR, tein], {kein−nR+1, . . . , kein}), a function (f(t), f(k)) is assumed for the highest time derivative (S(t)(x), S(k)(x)) of the setpoint (S(t), S(k)) in the movement phase ((S(t), {dot over (S)}(t), . . . , S(t)(x)), (S(k), {dot over (S)}(k), . . . , S(k)(x))), the mean value (f) of which over the previous time interval ([tein−tR, tein], {kein−nR+1, . . . , kein}) corresponds to the current value (S0(x)) of the highest time derivative (S(t)(x), S(k)(x)) at the time (tein, kein) of activation of the smoothing filter (10), that for the previous time interval [tein−tR, tein], {kein−nR+1, . . . kein}), the lower time derivatives ((S(t), {dot over (S)}(t), . . . , S(t)(x−1)), (S(k), {dot over (S)}(k), . . . , S(k)(x−1))) of the setpoint (S(t), S(k)) are given by the condition that the mean values ((S, {dot over (S)}, . . . , S(x−1))) of the lower time derivatives of the setpoint (S(t), S(k)) over the previous time interval ([tein−tR, tein], {kein−nR+1, . . . kein}) in each case correspond to the current values ((S0, {dot over (S)}0, . . . , S0(x−1))) of the lower time derivatives of the setpoint (S(t), S(k)) at the time (tein, kein) of activation of the smoothing filter (10), and that on activation, for the previous time interval ([tein−tR, tein], {kein−nR+1, . . . , kein}), the smoothing filter (10) is initialized with the calculated setpoints (S(t), S(k)) for this previous time interval ([tein−tR, tein], {kein−nR+1, . . . , kein}) as setpoint profile (Sinit).

2. The method according to claim 1, wherein, for the previous time interval ([tein−tR, tein], {kein−nR+1, . . . kein}), a constant function (f(t), f(k)) is assumed for the highest time derivative (S(t)(x), S(k)(x)) of the setpoint (S(t), S(k)).

3. The method according to claim 1, wherein the setpoint (S(k)) of the setpoint profile (Sinit) is updated in every cycle step (n) and stored in a circular buffer (20) with nR storage locations, wherein the updated setpoint (S(k)) shifts the oldest setpoint (S(k−nR)) out of the circular buffer 20), wherein the setpoints (S(k−nR, . . . , S(k)) stored in the circular buffer (20) form the setpoint profile (Sinit) for initializing the smoothing filter (10).