Skip to main content

Open-loop automobile cruise controller design

Short answer

Open-loop cruise sets engine force u=b·r using car model m·dv/dt=-b·v+u+d. No oscillation requires sampling period T < m/b (pole 0<a<1). Bounded output requires T < 2m/b. Steady-state speed v_ss=r+d/b, so road disturbance error d/b cannot be rejected. Performance: time constant τ=m/b, rise time ≈2.2m/b, settling time ≈4m/b, zero overshoot.

Design an open loop automobile cruise controller and derive the conditions for no oscillation and reduction of road disturbance and determine the performance parameters.

An open-loop cruise controller sets the engine force from the desired speed only, using a known model of the car. It does not measure the actual speed.

Model

Let m = mass, b = friction (drag) coefficient, v = speed, u = engine force, d = road disturbance force (slope, wind), r = desired speed.

m·dv/dt = -b·v + u + d

Open-loop design

Controller: u = K·r, with K = b (so that, with d = 0, the steady speed is v = u/b = r).

 r --> [ K = b ] --u--> (+) --> [ 1/(m s + b) ] --> v
                         ^ d

Transfer function: V(s) = [1/(m·s + b)]·(K·R(s) + D(s)).

Discrete form (sampling period T)

Euler approximation: v[k+1] = a·v[k] + c·(u[k] + d[k]), with a = 1 - b·T/m and c = T/m.

Condition for no unbounded output

The pole of the system is at z = a. A stable (bounded) output needs |a| < 1, i.e. 0 < b·T/m < 2, so T < 2m/b. In continuous time the pole s = -b/m is negative for b > 0, so the response is always bounded.

Condition for no oscillation

Oscillation occurs when the pole is negative. We need 0 < a < 1, i.e. b·T/m < 1, so T < m/b. The speed then rises smoothly with no overshoot (first-order response).

Steady state and road disturbance

With constant r and d, the steady-state speed is v_ss = (K·r + d)/b = r + d/b.

  • Tracking error due to the road = d/b.
  • The controller cannot reduce this error: changing K only shifts the speed reached, while the d/b term depends only on the plant, so open loop has no way to reject the disturbance.
  • If b or m changes (passengers, tyre wear), K = b is wrong and an error appears even with d = 0.

Performance parameters

ParameterValue
Time constantτ = m/b
Rise time (10-90 %)≈ 2.2·m/b
Settling time (2 %)≈ 4·m/b
Overshoot0 %
Steady-state errord/b (plus model error)

Conclusion: the open-loop controller is simple and non-oscillatory when T < m/b, but it cannot remove the road-disturbance error; this motivates feedback.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Embedded System chapter 7 questions →