Main Content

Ultra-Local Model for Disturbance Estimation and Compensation

Ultra-local model (ULM) is an estimation technique that allows you to approximate a nonlinear plant as a single or double integrator system with an affine term that captures unknown dynamics and disturbances. The estimated model is valid only for a local operating point over a short period of time.

You can describe the input-output behavior of a nonlinear SISO system in the following generic form:

y(m)=f(y(m1),,y,ul,,u)

Here, f(.) is an unknown nonlinear function, y is the plant output, u is the plant input, m is the m-th order derivative of plant output, and l is the l-th order derivative of plant input.

The ULM method approximates the plant using a simplified linear control-affine model as follows:

y(n)=F(t)+αu(t)

Here,

  • n ∈ [1,2] is the order of ULM model. In practice, a first or second order ULM model is sufficient to describe the plant local behavior.

  • F(t) is the affine term for combined uncertain dynamics and external disturbances. Therefore, F(t) must be continuously updated at runtime to approximate the local plant behavior.

  • α ∈ R is the input gain and is chosen such that the three quantities y(n), F(t), and αu(t) are of the same order of magnitude. α is usually a constant and it does not have to be precise.

Therefore, the ULM method approximates the local behavior of a nonlinear plant as a single or double integrator plus a time-varying quantity F(t) that captures local uncertainties and disturbances. You can implement ULM in Simulink® using the Ultra-Local Model block.

Algebraic Estimation Method

The Ultra-Local Model block identifies F(t) from the plant input and output data online, using first-order or second order Algebraic Estimation .

Consider the second-order ULM y¨=F+αu. Under the weak integrability condition, you can approximate the continuous time function F(t) as a piecewise constant function F^ (see [1]).

y¨=F^+αu(t)

Estimating a continuous function as a piecewise constant function over a small time window.

Taking Laplace transform, you get:

s2Y=F^s+U+sy(0)+y˙(0)

To get rid of terms related to initial conditions, you can take derivative twice with respect to s.

2F^s3=s2d2Yds2+4sdYds+2Yd2Uds2

When you multiplying both sides by s-N (N ≥ 3), you can get rid of positive powers of s, that is, of time derivatives, which are very sensitive to corrupting noises. The negative powers of s correspond to repeated time integrals. Additionally, integrals ensure robustness to corrupting noises through their filtering properties.

2F^s6=2s3Y+4s2dYds+s1d2Yds2s3d2Uds2

From the inverse Laplace transform identities and writing as repeated integrations, you get:

tτttτtF^dt=tτty(t)dt+2tτtty(t)dt+0.5tτtt2y(t)dt0.5tτtt2u(t)dt

Using Cauchy formula for repeated integration, you can simplify the previous equation to one that uses single integral.

F^=60τ6tτt(((τσ)24σ(τσ)+σ2)y(σ)α2σ2(τσ)2u(σ))dσ

This is the algebraic estimation formula for the second-order ULM. Since the Ultra-Local Model block operates in discrete-time, the block uses a discrete equivalent based on the measurement data samples:

F^(k+τ+1)=60τ6σ=0τ((τσ)24σ(ττ)+σ2)y(k+σ)0.5ασ2(τσ)2u(k+σ)

Similarly, for first-order model, the block uses algebraic estimation [2]:

F^=6τ3σ=0τ((τ2σ)y(k+σ)+ασ(τσ)u(k+σ))

Here, the integration window τ is a small sliding window over which you obtain F^.

Using Ultra-Local Model Block

You can use the Ultra-Local Model block in one of these ways:

For accurate estimation, the block requires you to configure the following parameters.

Model Order

Using this block, you can approximate the nonlinear plant order as a first-order or second-order plant. Generally, the ULM model order can be less than or equal to the true plant order. In addition, when you use ULM as a part of model-free control structure to provide disturbance compensation, the choice of ULM model order also depends on choice of the nominal controller. For example, if the nominal control law is proportional-only (P) or proportional-integral (PI), first-order ULM is sufficient. However, if the nominal control law is proportional-derivative (PD) or proportional-integral-derivative (PID), you require a second-order ULM.

Input Gain

For ULM to work, you do not require a precise guess for input gain α. The block requires you to select a nonzero α ∈ R to approximately balance the three quantities y(n), F(t), and αu(t) in their magnitude. The estimated F^ captures any mismatch between α and the true plant value.

One recommendation on how to obtain good initial guess of this parameter is as follows.

  1. Simulate the plant over the operating range using a step signal with magnitude u.

  2. Record the change in plant output over a short duration of time.

    • For first-order ULM, use the response approximation y = at and determine a as follows.

      a=y(end)y(0)t(end)t(0)

    • For second-order ULM, use the response approximation y = ½at2 and determine a as follows.

      a=2(y(end)y(0))(t(end)t(0))2

  3. You can then determine α from a and the step magnitude u.

    α=au

Estimator Sample Time and Integration Window

The estimator sample time Ts is the time at which the ULM updates its estimation of F^. A faster sample time means that the collected runtime data used for estimation is closer to the local operating condition, which, in turn, improves estimation accuracy. Since, typical applications of ULM often involve using F^ as part of the control law, it only needs to run as fast as the controller demands.

The block estimates F^ using an algebraic estimation algorithm discussed in the preceding section. To compute F^, the algorithm collects the plant input and output signals during an integration window, from time tN×Ts to current time t. Here, N is the integration window that you can specify in the ULM block. The block requires the parameter N to be at least 3 to function properly. Generally, N cannot be too small because a small N would reduce numerical integration accuracy and robustness against measurement noise. Conversely, N cannot be too large because a large N uses more historical data, which might prevent F^ from accurately reflecting the local plant behavior.

One-Step Output Prediction

In addition to F^, the ULM block also produces y^, the one-step prediction of the plant output y at time t+Ts based on the estimated F^. You can enable the optional outport yhat in the ULM block using the Output estimated yhat option in the block parameters.

  • First order — y^(t+Ts)=y^(t)+tt+Tsy^˙(τ)dτ,y^˙=F^+αu+L(yy^)

  • Second order — y^(t+Ts)=y^(t)+tt+Tsy^¨(τ)dτ,y^¨=F^+αu+L(yy^)

Typically, y^ is helpful in one of the following two ways.

  • Use y^ to check accuracy of F^ — By comparing y^ with measured y, you can tell how well the block estimates F^. This is helpful because ground truth of F(t) is unknown in practice.

  • Use y^ for one-step prediction — Some control laws require one-step prediction and the yhat port in the ULM block can provide such information. However, for more accurate predictions, you must enable the Luenberger observer by specifying the observer gain L ≥ 0 in the ULM block parameters.

References

[1] Fliess, Michel, and Cédric Join. “An Alternative to Proportional-Integral and Proportional-Integral-Derivative Regulators: Intelligent Proportional-Derivative Regulators,” 2021. https://doi.org/10.48550/ARXIV.2106.12210.

[2] Fliess, Michel, and Cédric Join. “Model-Free Control.” International Journal of Control 86, no. 12 (December 2013): 2228–52. https://doi.org/10.1080/00207179.2013.810345.

See Also

Topics