Axis filters (A7)

1.1 IntroductionPAGEREF _Toc307299409 \h2

1.2 Description 5

1.2.1 Low-pass filters 7

1.2.2 High-pass filters 8

1.2.3 Band-pass filters 9

1.2.4 Band-stop filters 10

1.2.5 All-pass filters 11

1.2.6 PT1 filter 12

1.2.7 HSC filter 14

1.3 Application 15

1.4 Parameters 16

1.4.1 Overview 16

1.4.2 Axis parameters 19

1.5 Examples 20

1.5.1 Important limits of the axis in the example application 20

1.5.2 Application example 1 21

1.5.2.1 Use of a low-pass filter 21

1.5.2.1.1 Cut-off frequency 3 Hz 21

1.5.2.1.2 Cut-off frequency 5 Hz 22

1.5.2.2 Cut-off frequency 10 Hz 22

1.5.2.2.1 Cut-off frequency 20 Hz 23

1.5.3 Application example 2 24

1.5.3.1 Use of a low-pass filter at the limits 24

1.5.3.1.1 Cut-off frequency 3 Hz 24

1.5.3.1.2 Cut-off frequency 5 Hz 25

1.5.3.1.3 Cut-off frequency 10 Hz 25

1.5.3.1.4 Cut-off frequency 30 Hz 26

1.5.3.2 Duration of a movement, depending on the cut-off frequency and acceleration 27

1.5.4 Application example 3 28

1.5.4.1 Use of an axis filter to approximate a non-linear slope 28

1.5.4.2 Notes on tracing possibilities 31

More:

button Introduction

button Description

button Application

button Parameters

button Examples


Introduction

Task

Filters are generally used to influence the course of a signal.

In the controller, it is possible to parameterise digital filters in the axis record [AXIS]. Depending on the required effect, the filters can be defined as low-pass, high-pass, band-pass or band-stop and all-pass filters. Depending on the filter type, with these filters it is possible to

q smooth a signal

q limit a signal's bandwidth

q suppress signal's noise

q select or attenuate frequency bands.

The filters are also used to handle resonance phenomena.

The filters act on the values for the absolute position setpoint that have been calculated by interpolation of the path.

Effectiveness

The parameter-definable filters are effective for

q Linear axes

q Rotational axes (not in the case of rotational axes that rotate infinitely or are positioned).

Standard and HSC filters are available, and they are distinguished via the filter prototype.

Standard filters:

Up to three filters can be connected in series and parameterised for each axis. A filter is active when the P-AXIS-00319 parameter is set to 1 and the value of P-AXIS-00140 parameter is > 0.

HSC filters:

In the case of these filters, only one HSC filter per axis is allowed, and it must imperatively be the first filter. In the axis lists, HSC filters are only preconfigured, but do not take effect until activated by the #FILTER ON[HSC] NC command in the NC program. Furthermore, it is possible to deactivate HSC filters during machining, or to redefine their parameters.

Parameter definition

The following parameters are available for adjusting the digital filters in the axis parameter record [AXIS]:

q Characteristic frequency of a filter P-AXIS-00067

q Quality of the filter P-AXIS-00080

q Order of the filter P-AXIS-00140

q Filter prototype P-AXIS-00153

q Signal component P-AXIS-00164 that is routed through the filter

q Filter type P-AXIS-00204

q Time constant of the PT1 filter P-AXIS-00357


Description

General

The filter algorithms that are implemented in the controller are characterised by high selectivity with a low order of the filter. For each specific axis, the properties of the filters used can be defined via the axis parameter record. A filter's behaviour is essentially defined by the type of the filter prototype P-AXIS-00153, the filter type P-AXIS-00204, its order P-AXIS-00140 and its characteristic frequency P-AXIS-00067. For certain filter types, the quality P-AXIS-00080 is also a defining attribute.

In the case of a standard filter (exception: HSC filter), up to three filters can be defined for each axis that are then connected in series.

Filter types

Filters can be classified according to their characteristic transmission behaviour and thus their purpose. The filter types with the following characteristics can be used

The filter types listed below are standard filters.

q Low-pass filters
All frequencies below a certain cut-off frequency are passed through the filter. Higher frequencies above this cut-off frequency are attenuated or are no longer passed through at all. The high frequencies are filtered out.

q High-pass filters
The low frequencies of a signal are attenuated or are not passed through at all. Only as from a cut-off frequency are the frequencies transmitted without modification.

q Band-stop filters
One frequency range out of the frequency spectrum to be transmitted is filtered out. All other frequencies are transmitted almost without damping. The characteristic frequency is called the centre frequency.

q Band-pass filters
All frequencies except for the chosen frequency band are filtered out. All other frequencies are attenuated.

q All-pass filters
These filters have a constant gain, but generate a frequency-dependent phase shift. They are used for phase correction and to delay signals.

q PT1 filters
A PT1 filter is a delay element of the first order that has a transmission response similar to that of a low-pass filter of the first order. The filter transmits frequencies under the
cut-off frequency fg = 1 / (2 * Pi * P-AXIS-00357). Frequencies higher than the cut-off frequency are attenuated with  20dB/decade.

The following filter types are only to be used in conjunction with the prototype HSC.

q HSC-Sinc
The HSC-Sinc filter is an acausal time range filter with a sin(x)/x profile. Its effect in the frequency band is that of a low-pass filter.

q HSC-average
The HSC average filter is an acausal time range average filter. Its effect in the frequency band is that of a low-pass filter.

q HSC-Gauss
The HSC Gauss filter is an acausal time range filter with a Gaussian curve profile. Its effect in the frequency band is that of a low-pass filter.

Filter prototypes

Five different prototypes of filters can beselected. They are essentially distinguished by their behaviour when transmitting frequencies and their response to abrupt change of command value(step response of the filter).

These are

q Filter with critical damping

q Bessel filter

q Butterworth filter

q Chebyshev filter

q HSC

More:

button Low-pass filters

button High-pass filters

button Band-pass filters

button Band-stop filters

button All-pass filters

button PT1 filter

button HSC filter


Low-pass filters

Frequency response

The following diagram shows the frequency transmission response of low-pass filters that are each based on one of the filter prototypes. To elucidate the characteristic transmission response, filters of the 4th order have been chosen because the characteristics are more distinct due to the higher order.

Figure 1- 1 : Amplitude frequency response of the filter prototypes (4th order)

In the range below the cut-off frequency, low-pass filters of the "critical damping" and "Bessel" prototypes behave very similarly. In this range, the Butterworth filters transmit almost without damping over a wide range. Damping of the transmitted frequencies only sets in just before the cut-off frequency. Of the filters presented here, in the range above the cut-off frequency the Butterworth filter has the highest damping.

Step response

The step response of a low-pass filter with "critical damping" does not exhibit any overshoot. This is why this filter is highly suitable for control applications, despite its lower frequency selection response in comparison with the other filters.

Slight overshoot with filter orders > 1 can be observed in the case of Bessel low-pass filters. This is why this filter should not be applied to position values.

In the case of Butterworth low-pass filters considerable overshoot is exhibited as the response to an abrupt change at the input. The overshoot increases with the filter's order. Due to this keen reaction, the Butterworth low-pass filter is unsuitable for control applications.

Figure 1- 2 : Step response of the filter prototypes (4th order)


High-pass filters

Frequency response

The frequency response of high-pass filters results from mirroring the frequency response of the corresponding low-pass filter at the cut-off frequency line.

Figure 1- 3 : Amplitude frequency response of the high-pass filters (4th order)

Step response

Contrary to low-pass filters, the filter output values of the step response in the case of high-pass filters fluctuate around the stationary value.

Figure 1- 4 : Step response of the high-pass filters (4th order)


Band-pass filters

Frequency response

Figure 1- 5 : Amplitude frequency response of band-pass filters (4th order, quality = 1)


Band-stop filters

Frequency response

Figure 1- 6 : Amplitude frequency response of band-stop filters (4th order, quality = 1)


All-pass filters

When the parameters of an all-pass filter are defined, the Bessel filter prototype should be parameterised because it approximates a constant group run time for all frequencies.

The group run time is the time that a "group" of cos-shaped oscillations take when passing through a transmission system.


PT1 filter

Frequency response

The PT1 filter has the transmission behaviour of a delay element of the first order. Contrary to the other axis filters, it is parameterised by specification of a time constant (see P-AXIS-00357). No filter prototype needs to be specified for this filter type.

Figure 1- 7 : Amplitude response of the PT1 filter depending on the filter time constant P-AXIS-00357


HSC filter

Step response

Figure 1-8: Step response of the various HSC filters

Contour deviation adjustment aid

The contour deviation when using HSC axis filters is composed of three components.

1. Cycle time

2. Filter order

3. Feed rate

The following simple relationships apply:

1. Double cycle time = double error

2. Double feed rate = double error

3. Double filter order = double error

The following graphic was drawn up for a cycle time of 1ms and F1000 feed rate on a 90 degrees corner. For other edge data, the filter orders must be converted in accordance with the above relationships.

Figure 1- 9 : Contour error per filter order on a 90° corner for a corner speed of 1000mm/s and a cycle time of 1ms


Application

Smoothing signals with low-pass filters

The ability of low-pass filters to attenuate high frequencies is used to smooth signal profiles. The following diagram shows the step response of low-pass filters of different orders, but with the same cut-off frequency of 1Hz.

It is found that the maximum slope of the step response is almost independent of the filter order. It can therefore be estimated on the basis of the slope at the start of the step response of a filter of the 1st order, which is easy to calculate.

For a step ∆x at the input of a low-pass filter with the cut-off frequency fg, we arrive at the following equation for the maximum slope of the output signal:

This equation is important because it reflects the relationship between the bandwidth of the signal and the maximum slope of the filtered signal.

Figure 1- 10 : Step response of low-pass filters of different orders


Parameters

More:

button Overview

button Axis parameters


Overview

ID | Parameters | Description
P-AXIS-00319 | enable | Activates standard filter
P-AXIS-00067 | fg_f0 | Characteristic frequency of a filter
P-AXIS-00080 | guete | Quality of the filter
P-AXIS-00140 | order | Order of the filter
P-AXIS-00153 | prototype | Filter characteristic
P-AXIS-00164 | share_percent | Amount of the signal that is routed through the filter
P-AXIS-00204 | type | Type of the filter
P-AXIS-00357 | time_constant | Time constant of the PT1 filter

Parameters | Standard filters | HSC filters
enable | X | - (**)
fg_f0 | X | X(***)
guete | X (*) | -
order | X | X
prototype | X | X
share_percent | X | -
type | X | X
time_constant | X (*) | -

(*) Depending on the filter type

(**) Activated via NC command

(***) Effective only in the case of HSC-Sinc and HSC-Gauss


Axis parameters

P-AXIS-00319 | Standard filter function switch
Parameters | filter[i].enable
Description | Parameter activates standard filter function of axis filter filter[i].
Data type | BOOLEAN
Data range | 0 ≤ P-AXIS-00067 ≤ 1
Dimension | Translatory: no | Rotatory: no
Default | 0
Remarks | -

P-AXIS-00067 | Characteristic frequency of a filter
Parameters | filter[i].fg_f0
Description | The parameter defines the value of a filter's characteristic frequency. Interpretation of the characteristic frequency is dependent on the type of the filter. § For Low-pass filters it is the start of the frequency cut-off range (ideal filter) § For High-pass filters it is the start of the frequency pass-band range (ideal filter) § For Band-pass and band-stop filters it is the centre frequency
Data type | REAL64
Data range | 1 ≤ P-AXIS-00067 ≤ MAX(REAL64)
Dimension | Translatory: Hz | Rotatory: Hz
Default | 30,0
Remarks | -

P-AXIS-00080 | Quality of the filter
Parameters | filter[i].guete
Description | Quality of the filter This parameter applies only to band-pass or band-stop filter and is the reciprocal of the bandwidth.
Data type | REAL64
Data range | 1 ≤ P-AXIS-00080 ≤ 10
Dimension | Translatory: - | Rotatory: -
Default | 1,0
Remarks | -

P-AXIS-00140 | Order of the filter
Parameters | filter[i].order
Description | The filter's order describes its behaviour with regard to the drop in the frequency response. Frequency drop = - P-AXIS-00140 * 20 dB/decade
Data type | UNS32
Data range | 0 ≤ P-AXIS-00080 ≤ 6 for low-pass, high-pass and all-pass filters 0 ≤ P-AXIS-00080 ≤ 3 for band-pass and band-stop filters 0 ≤ P-AXIS-00080 ≤ 1 for PT1 filters 0 ≤ P-AXIS-00080 ≤ 40 for HSC filters where the filter is deactivated for P-AXIS-00080 = 0. In the case of HSC filters, the default is 40; activation via the NC program.
Dimension | Translatory: - | Rotatory: -
Default | 0
Remarks | -

P-AXIS-00153 | Filter prototype
Parameters | filter[i].prototype
Description | 1 "Critical damping" filter prototype 2 "Butterworth" filter prototype 3 "Bessel" filter prototype 4 "Chebyshev" filter prototype 5 "HSC" filter prototype
Data type | UNS32
Data range | 1 ≤ P-AXIS-00153 ≤ 5
Dimension | Translatory: - | Rotatory: -
Default | 1
Remarks | -

P-AXIS-00164 | Amount of the signal that is passed through the filter.
Parameters | filter[i].share_percent
Description | Amount of the signal that is passed through the filter.
Data type | REAL64
Data range | 0 ≤ P-AXIS-00164 ≤ 100
Dimension | Translatory: - | Rotatory: -
Default | 100,0
Remarks | -

P-AXIS-00204 | Type of the filter
Parameters | filter[i].type
Description | 1 Low-pass 2 High-pass 3 Band-pass 4 Band-stop 5 All-pass 6 PT1 filter 7 HSC-Sinc 8 HSC-average 9 HSC-Gauss
Data type | UNS32
Data range | 1 ≤ P-AXIS-00204 ≤ 9
Dimension | Translatory: - | Rotatory: -
Default | 1
Remarks | -

P-AXIS-00357 | Time constant of the PT1 filter
Parameters | filter[i].time_constant
Description | The parameter defines the PT1 filter's time constant.
Data type | UNS32
Data range | TAb ≤ P-AXIS- ≤ MAX(UNS32) (where TAb -> NC cycle time)
Dimension | Translatory: µ s | Rotatory: µ s
Default | 10000
Remarks | -


Examples

More:

button Important limits of the axis in the example application

button Application example 1

button Application example 2

button Application example 3


Important limits of the axis in the example application

The following diagrams were recorded for an axis with the following axis movement limits:

kenngr.swe_pos 9100000 [0,1 µm]

kenngr.swe_neg -1250000 [0,1 µm]

getriebe[0].lslope_profil.vb_stufe_1_2 2507942 [µm/s]

getriebe[0].lslope_profil.a_grenz_stufe_1 16720 [mm/s2]

getriebe[0].lslope_profil.a_grenz_stufe_2 16720 [mm/s2]

getriebe[0].lslope_profil.vb_grenz_stufe_1_2 2507942 [µm/s]

getriebe[0].dynamik.vb_max 2507942 [µm/s]

getriebe[0].dynamik.a_max 16720 [mm/s2]

This is an axis with a simulated drive.


Application example 1

Based on the limits specified above, an acceleration value of 1.8 m/s2 was chosen for the first series of tests, which corresponds to about 10% of the maximum possible acceleration and command 1200000 [ µ m/s] as the speed, which corresponds to 72 m/min and amounts to about 50% of the maximum allowed speed.

More:

button Use of a low-pass filter

button Cut-off frequency 10 Hz


Use of a low-pass filter

The response of acceleration, position and speed setpoints under variation of the filter's order is presented below.

More:

button Cut-off frequency 3 Hz

button Cut-off frequency 5 Hz


Cut-off frequency 3 Hz

Legend:

Takte | Cycles
Soll-Beschleunigung, Soll-Position, Soll-Geschwindigkeit | Acceleration, position and speed setpoints
Kritische D ä mpfung, Tiefpass, Variable Ordnung (0,1,2,3,5), Grenzfrequenz 3 Hz | Critical damping, low-pass, variable order (0,1,2,3,5), cut-off frequency 3 Hz


Cut-off frequency 5 Hz

Legend:

Takte | Cycles
Soll-Beschleunigung, Soll-Position, Soll-Geschwindigkeit | Acceleration, position and speed setpoints
Kritische D ä mpfung, Tiefpass, Variable Ordnung (0,1,2,3,5), Grenzfrequenz 5 Hz | Critical damping, low-pass, variable order (0,1,2,3,5), cut-off frequency 5 Hz


Cut-off frequency 10 Hz

Legend:

Takte | Cycles
Soll-Beschleunigung, Soll-Position, Soll-Geschwindigkeit | Acceleration, position and speed setpoints
Kritische D ä mpfung, Tiefpass, Variable Ordnung (0,1,2,5), Grenzfrequenz 10 Hz | Critical damping, low-pass, variable order (0,1,2,5), cut-off frequency 10 Hz

More:

button Cut-off frequency 20 Hz


Cut-off frequency 20 Hz

Legend:

Takte | Cycles
Soll-Beschleunigung, Soll-Position, Soll-Geschwindigkeit | Acceleration, position and speed setpoints
Kritische D ä mpfung, Tiefpass, Variable Ordnung (0,1,2,5), Grenzfrequenz 20 Hz | Critical damping, low-pass, variable order (0,1,2,5), cut-off frequency 20 Hz


Application example 2

For this application example, the values commanded for the speed and acceleration were chosen close to the specified limits. 2.5.106 [ µ m/s] was chosen for the commanded speed, while 16m/s2 was chosen for the acceleration.

More:

button Use of a low-pass filter at the limits

button Duration of a movement, depending on the cut-off frequency and acceleration


Use of a low-pass filter at the limits

The response of acceleration, position and speed setpoints under variation of the filter's order is presented below.

More:

button Cut-off frequency 3 Hz

button Cut-off frequency 5 Hz

button Cut-off frequency 10 Hz

button Cut-off frequency 30 Hz


Cut-off frequency 10 Hz

Legend:

Takte | Cycles
Soll-Beschleunigung, Soll-Position, Soll-Geschwindigkeit | Acceleration, position and speed setpoints
Kritische D ä mpfung, Tiefpass, Variable Ordnung (0,1,2,3,5), Grenzfrequenz 10 Hz | Critical damping, low-pass, variable order (0,1,2,3,5), cut-off frequency 10 Hz


Cut-off frequency 30 Hz

Legend:

Takte | Cycles
Soll-Beschleunigung, Soll-Position, Soll-Geschwindigkeit | Acceleration, position and speed setpoints
Kritische D ä mpfung, Tiefpass, Variable Ordnung (0,3,5), Grenzfrequenz 30 Hz | Critical damping, low-pass, variable order (0,3,5), cut-off frequency 30 Hz


Duration of a movement, depending on the cut-off frequency and acceleration

Legend:

Kommandierte Beschleunigung in % von maximaler Beschleunigung | Commanded acceleration in % of maximum acceleration
Zeitdauer in % bez ü glich Zeitdauer bei a max, Ordnung 0 | Duration in % with reference to duration at a max, order 0
Zeitdauer einer Bewegung, bei variierender Grenzfrequenz und Beschleunigung | Duration of movement, depending on the cut-off frequency and acceleration


Application example 3

More:

button Use of an axis filter to approximate a non-linear slope

button Notes on tracing possibilities


Use of an axis filter to approximate a non-linear slope

The following rule of thumb can be used to achieve a noteworthy improvement in axis movement with a constant duration of the overall movement. Prerequisite: the dynamic phases of the movement are not all that small in comparison with the phase of constant speed.

Steps to follow:

1. Move the axis without filter with the non-linear slope at about half the available acceleration.

2. Then define the parameters of a low-pass filter with critical damping of the 6th order and the characteristic frequency of 8Hz.

3. Example

filter[0].order 6 # max. value = 6

filter[0].prototype 1 # 1: crit. damp.

filter[0].type 1 # 1: TP 2: HP 3: BP 4: BS 5:AP

filter[0].fg_f0 8 # characteristic frequency

filter[0].guete 1

filter[0].share_percent 100

4. Define the parameters of the In Position window as high as possible in the application to avoid having to wait too long for the "In Position" acknowledgement.

getriebe[0].window 10000 # corresponds to 1mm

5. Create a trace and continue to optimise filtering.


Notes on tracing possibilities

On MC_ReadStatus, the following output values are suitable for tracing: lr_act_pos, lr_act_rev, ipo_a_act. They present the current position, speed and acceleration setpoints in each cycle.

Example from Multiprog:

Trace of an unfiltered movement with a linear slope

Trace of the filtered movement with double acceleration

Superpositioning of both traces (note: for technical reasons, the acceleration is not true to scale here!).