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.
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.
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.
The present invention is explained in more detail below with reference to
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
However, it must be noted that the smoothing filter 10 can be used generally on driven drive axes A of a drive unit AE (
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
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
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
Generally speaking, the smoothing filter 10 forms the arithmetic mean
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
The smoothing filter 10 is implemented, for example, in the transport unit control 3, generally in a drive axis controller AR (
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
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
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
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
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 (
In turn, the setpoint S(t) is therefore given by
wherein, from the specified condition
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
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
Naturally, instead of {umlaut over (S)}(t)={umlaut over (S)}0, a different approach can also be chosen, as long as
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
The effect of the smoothing filter 10 is shown in
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
from the condition
The setpoint sequence S(k) is then given by
from the condition
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
from the condition
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
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
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
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
or, in the time-continuous case,
In the case of the acceleration a as the highest time derivative S(x) in the movement phase, the jerk j is limited with
or, in the time-continuous case, with
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.
Number | Date | Country | Kind |
---|---|---|---|
A50073/2016 | Feb 2016 | AT | national |