FRID – Frequency response identification
Block SymbolLicensing group: ADVANCED
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:
where is the current amplitude, is the current excitation frequency, and 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 of the excitation sinusoid over time , thus
The cp parameter typically ranges in the interval cp.
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.
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) |
|
|
|
cp | Sweeping Rate 0.995 | Double (F64) |
iavg | Number of values for averaging 10 | Long (I32) |
obw | Observer bandwidth 2 | Long (I32) |
|
|
|
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) |
|
|
|
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 |
|
|
|
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 |
[Previous] [Back to top] [Up] [Next]
2024 © REX Controls s.r.o., www.rexygen.com