FRID – Frequency response identification

Block SymbolLicensing group: ADVANCED
Qt SVG Document Exported by REXYGEN Studio dv pv TUNE HLD BRK mv SAT TBSY w xres xims xrem ximm epv IDE iIDE A0 A1 A2 A3 A4 A5 THD DAV FRID

Function Description
The FRIDblock is designed for experimental identification of the frequency response of linear and weakly nonlinear systems. The basic principle of the function is to use an excitation signal generator in the form of a swept harmonic function with time-varying frequency, amplitude and DC component. This signal is injected into the input of the identified system in an open or closed loop setting. Based on the observed output response of the system , a non-parametric model in the form of frequency transfer points of the system is computed using an internally implemented state estimator.

Its primary application is for systems with oscillatory dynamics, where accurate identification of frequency characteristics, including location and shape of resonant modes, is crucial for optimal design of control algorithms.

The identification procedure is initiated upon detecting a rising edge on the TUNE input. The procedure alternates between two modes: sweeping and measuring. In the sweeping mode, the FRID block generates a swept sinusoidal signal on the mv output as excitation for the system under test in the form:

mv(t) = A(t)sin{0tω(τ)dτ} + u 0(t),

where A(t) is the current amplitude, ω(t) is the current excitation frequency, and u0(t) is the DC component. If ADAPT_EN is set to on, the amplitude and DC component are dynamically adjusted to map the system’s response across a spectrum of frequencies. The amplitude adaptation is especially important for weakly damped resonant systems, for which the gain may vary considerably in the vicinity of (anti)resonances. Initial values are given by the uamp parameter for amplitude and ubias for the DC component. The rate of change in amplitude is given by adapt_rc.

The frequency sweeping mode is determined by the isweep parameter. The rate of frequency change (sweeping) is given by the cp parameter, which specifies the relative reduction of the initial period Tb = 2π wb of the excitation sinusoid over time Tb, thus

cp = wb ω(Tb) = wb wbeγTb = eγTb .

The cp parameter typically ranges in the interval cp 0.95;1.

For specific ω values, the sweeping is paused, and the block switches to the measurement phase to acquire a point of the frequency response. Depending on the immode parameter setting, the ω values can be determined manually, by a frequency range, or automatically (see parameter description below). This process facilitates the identification of key dynamic properties, including (anti)resonant frequencies.

The core of the FRID block algorithm is based on recursive Kalman filter discretization, which optimizes computational efficiency while maintaining high accuracy of frequency estimation. The block dynamically adjusts the excitation signal parameters during the identification experiment to mitigate the effects of nonlinearities and achieve a reliable representation of the system dynamics by a linear frequency response model. The amplitude adaptation also serves to keep the output within user-defined limits. The tracking speed of the observed output response can be influenced by the parameter obw, which affects the bandwidth of the estimator. A larger value results in faster tracking and steady state estimation of the frequency response at the cost of greater amplification of measurement noise.

Below is the schematic representation of the FRID block within a system identification setup. The diagram illustrates the block’s interaction with the signal generator and the mechanical system being analyzed.

image/svg+xmlSG velocity/position A 1 ^ A 2 ^ A 3 ^ A 4 ^ A 5 ^ THD ^ A 0 A 0 ^ Online experiment control Measurement points selectionFrequency sweep control Amplitude control Closed loop ID (optional) Observer force/torque

The FRIDblock provides outputs that contain detailed information about the frequency characteristics of the system under test. Outputs A1 to A5 provide estimates of the amplitudes of the first five harmonic components of the Fourier series of the plant output response the actual excitation frequency. These amplitudes are key to understanding how the system responds to different input signal frequencies and allow identification of system characteristics such as resonant frequencies. They are also used to detect non-linearities.

The output THD, or total harmonic distortion, is an indication of the degree to which the system response deviates from the ideal linear response. A low THD value indicates that the system behaves predominantly linearly with respect to the input signal, while a high THD value may indicate the presence of nonlinearities such as saturation or backlash. In addition to nonlinearities, this also takes into account the effect of measurement noise. The THD value is calculated as the ratio of the RMS (root mean square) amplitudes of the higher harmonic components to the RMS amplitude of the first harmonic component, providing a comprehensive view of the quality and linearity of the system response.

Utilizing these outputs allows users to better understand system dynamics and tailor control strategies to achieve optimal performance. More details on the block’s operation can be found in [5].

This block propagates the signal quality. More information can be found in the 1.4 section.

Input

dv

Feedforward control variable

Double (F64)

pv

Process variable

Double (F64)

TUNE

Start the tuning experiment

Bool

HLD

Hold

Bool

BRK

Stop the tuning experiment

Bool

Parameter

ubias

Static component of the exciting signal

Double (F64)

uamp

Amplitude of the exciting signal  1.0

Double (F64)

wb

Frequency interval lower limit [rad/s]  1.0

Double (F64)

wf

Frequency interval higher limit [rad/s]  10.0

Double (F64)

isweep

Frequency sweeping mode  1

Long (I32)

1 ....

Logarithmic

2 ....

Linear

3 ....

Combined

cp

Sweeping Rate  0.995

Double (F64)

iavg

Number of values for averaging  10

Long (I32)

obw

Observer bandwidth  2

Long (I32)

1 ....

LOW

2 ....

NORMAL

3 ....

HIGH

stime

Settling period [s]  10.0

Double (F64)

umax

Maximum generator amplitude  1.0

Double (F64)

thdmin

Minimum demanded THD threshold  0.1

Double (F64)

adapt_rc

Maximum rate of amplitude variation  0.001

Double (F64)

pv_max

Maximum desired process value  1.0

Double (F64)

pv_sat

Maximum allowed process value  2.0

Double (F64)

ADAPT_EN

Enable automatic amplitude adaptation  on

Bool

immode

Measurement mode  1

Long (I32)

1 ....

Manual specification of frequency points

2 ....

Linear series of nmw points in the interval <wb;wf>

3 ....

Logarithmic series of nmw points in the interval <wb;wf>

4 ....

Automatic detection of important frequencies (N/A)

nwm

Number of frequency response point for automatic mode

Long (I32)

wm

Frequency measurement points for manual meas. mode [array of rad/s]  [2.0 4.0 6.0 8.0]

Double (F64)

Output

mv

Manipulated variable (controller output)

Double (F64)

SAT

Saturation flag

Bool

TBSY

Tuner busy flag

Bool

off ..

Identification not running

on ...

Identification in progress

w

Frequency response - frequency [rad/s]

Double (F64)

xres

Frequency response - real part (sweeping)

Double (F64)

xims

Frequency response - imaginary part (sweeping)

Double (F64)

xrem

Frequency response - real part (measurement)

Double (F64)

ximm

Frequency response - imaginary part (measurement)

Double (F64)

epv

Estimated process value

Double (F64)

IDE

Error indicator

Bool

iIDE

Error code

Long (I32)

DC

Estimated DC value

Double (F64)

A1..A5

Estimated n-th harmonics amplitude

Double (F64)

THD

Total harmonic distortion

Double (F64)

DAV

Data Valid

Bool

2024 © REX Controls s.r.o., www.rexygen.com