Electromechanical brake

Overview

System type: Linear clocked hybrid system
State dimension: 4
Application domain: Mechanical engineering

Model description

This system models an electromechanical brake, which works as in the following image.

The system is described by linear differential equations:

\[\begin{aligned} \dot{x}(t) &= Ax(t) + Bu(t),\qquad u(t) ∈ \mathcal{U} \\ y(t) &= Cx(t) \end{aligned}\]

A hybrid-automaton model is depicted below.

There are two versions of this benchmark:

  • Time-varying inputs: The inputs can change arbitrarily over time: $\forall t: u(t) ∈ \mathcal{U}$.

  • Constant inputs: The inputs are only uncertain in the initial value, and constant over time: $u(0) ∈ \mathcal{U}$, $\dot{u}(t) = 0.$

using ReachabilityAnalysis, SparseArrays

Common functionality between model variants

The following code is shared between all model variants.

function embrake_common(; A, Tsample, ζ, x0)
    # continuous system
    EMbrake = @system(x' = A * x)

    # initial condition
    X₀ = Singleton([0.0, 0, 0, 0])

    # reset map
    Ar = sparse([1, 2, 3, 4, 4], [1, 2, 2, 2, 4], [1.0, 1.0, -1.0, -Tsample, 1.0], 4, 4)
    br = sparsevec([3, 4], [x0, Tsample * x0], 4)
    reset_map(X) = Ar * X + br

    # hybrid system with clocked affine dynamics
    ha = HACLD1(EMbrake, reset_map, Tsample, ζ)
    return IVP(ha, X₀)
end;

Fixed parameters

The model without parameter variation is defined below.

function embrake_no_pv(; Tsample=1.E-4, ζ=1e-6, x0=0.05)
    # model's constants
    L = 1.e-3
    KP = 10000.0
    KI = 1000.0
    R = 0.5
    K = 0.02
    drot = 0.1
    i = 113.1167

    # state variables: [I, x, xe, xc]
    A = Matrix([-(R + K^2 / drot)/L 0 KP/L KI/L;
                K / i/drot 0 0 0;
                0 0 0 0;
                0 0 0 0])

    return embrake_common(; A=A, Tsample=Tsample, ζ=ζ, x0=x0)
end;

Parameter variation

The model with parameter variation described below consists of changing only one coefficient, which corresponds to the Flow* settings in [SO15].

function embrake_pv_1(; Tsample=1.E-4, ζ=1e-6, Δ=3.0, x0=0.05)
    # model's constants
    L = 1.e-3
    KP = 10000.0
    KI = 1000.0
    R = 0.5
    K = 0.02
    drot = 0.1
    i = 113.1167
    p = 504.0 + (-Δ .. Δ)

    # state variables: [I, x, xe, xc]
    A = IntervalMatrix([-p 0 KP/L KI/L;
                        K / i/drot 0 0 0;
                        0 0 0 0;
                        0 0 0 0])

    return embrake_common(; A=A, Tsample=Tsample, ζ=ζ, x0=x0)
end;

Extended parameter variation

In the following model, considered in [SO15], we vary all constants by χ% with respect to their nominal values. The variation percentage defaults to 5%.

function embrake_pv_2(; Tsample=1.E-4, ζ=1e-6, x0=0.05, χ=5.0)
    # model's constants
    Δ = -χ / 100 .. χ / 100
    L = 1.e-3 * (1 + Δ)
    KP = 10000.0 * (1 + Δ)
    KI = 1000.0 * (1 + Δ)
    R = 0.5 * (1 + Δ)
    K = 0.02 * (1 + Δ)
    drot = 0.1 * (1 + Δ)
    i = 113.1167 * (1 + Δ)

    # state variables: [I, x, xe, xc]
    A = IntervalMatrix([-(R + K^2 / drot)/L 0 KP/L KI/L;
                        K / i/drot 0 0 0;
                        0 0 0 0;
                        0 0 0 0])

    return embrake_common(; A=A, Tsample=Tsample, ζ=ζ, x0=x0)
end;

References

  • SO15Strathmann, Thomas, and Jens Oehlerking. Verifying Properties of an Electro-Mechanical Braking System. ARCH. 2015.