1.1 Why control? Open-loop vs closed-loop

Module 0 ran the pizza truck on open-loop plans: pick the forces (and switch marks) ahead of time, then hope the world matches the model. That works on a flat, drag-free toy. Real roads have hills, wind, and mass you did not measure. Control exists because the plan alone is not enough.

Open-loop

An open-loop command ignores what the system is doing now. You set a throttle u(t)u(t) from a schedule or a constant u0u_0 and never look at the speedometer. If the model is perfect, you get the speed you designed for. If a hill appears, the same u0u_0 no longer balances drag and gravity — speed falls, and the controller does not notice.

Closed-loop

A closed-loop (feedback) law looks at a measurement and corrects. The simplest cruise idea is proportional speed feedback:

u=Kp (vref−v).u = K_p\,(v_{\mathrm{ref}} - v).

When the hill slows the car, v<vrefv < v_{\mathrm{ref}}, so uu rises (until the actuator saturates). When you are fast, uu backs off. The loop does not need a perfect hill model — it needs a sensor and a gain.

Closed-loop vehicle: force command equals F, a = F/m, integrate to v v_des[m/s]+−e[m/s]K_p[N·s/m]u[N]Vehicleu = F[N]a = F/m[m/s²]v = ∫ a dt[m/s]outputv[m/s]vfeedbackv [m/s]
Inside the vehicle: the command is the force (u = F), Newton gives a = F/m, and integrating acceleration produces the output speed v that is fed back.

The diagram is the same loop in pictures: desired speed minus measured speed is the error ee; KpK_p turns that error into a force command uu. Inside the vehicle, highlight the chain u=Fu = F, then a=F/ma = F/m, then v=∫a dtv = \int a\,\mathrm{d}t as the output that feeds back.

Try it

Both traces start near cruise on flat road. At the dashed mark a grade appears. Gray is open-loop (fixed thrust tuned for the flat). Accent is closed-loop. Move KpK_p and the hill; watch who holds vrefv_{\mathrm{ref}}.

Playground — cruise car + hill; open-loop vs speed feedback

End of run — open-loop v ≈ 9.3 m/s · closed-loop v ≈ 16.6 m/s (target 20 m/s).

Discussion

This is the same moral as Module 0. In 0.2 an early or late brake mark misses the door because the switch was chosen without sensing xx. In 0.4 a jerk-aware preview still lands with a tolerance, not x=Dx = D on the nose. Open-loop is a feedforward guess. Feedback is what turns “I meant to be there” into “I am measuring the error and pushing back.”

Hills are just the first disturbance. Later sections will shape how you compute uu from the error — PID, poles, state feedback, optimal costs — but the fork in the road is here: schedule alone, or schedule plus a loop that reads the system at hand.

Dimensions of KpK_p

Start from Newton’s second law. Force has the dimensions of mass times acceleration:

F=ma⇒[F]=M LT2.F = m a \qquad\Rightarrow\qquad [F] = \mathrm{M}\,\frac{\mathrm{L}}{\mathrm{T}^{2}}.

In SI that is newtons: 1 N=1 kg⋅m/s21\,\mathrm{N} = 1\,\mathrm{kg\cdot m/s^{2}}.

In this cruise toy the command uu is a force (thrust along the road), so [u]=[F][u] = [F]. The error vref−vv_{\mathrm{ref}} - v is a speed:

[v]=LT.[v] = \frac{\mathrm{L}}{\mathrm{T}}.

The gain has to turn a speed error into a force:

[Kp]=[u][vref−v]=M L/T2L/T=MT.[K_p] = \frac{[u]}{[v_{\mathrm{ref}} - v]} = \frac{\mathrm{M}\,\mathrm{L}/\mathrm{T}^{2}}{\mathrm{L}/\mathrm{T}} = \frac{\mathrm{M}}{\mathrm{T}}.

So KpK_p is not “unitless.” In SI it is N⋅s/m\mathrm{N\cdot s/m}, or equivalently kg/s\mathrm{kg/s}. The playground slider is labeled that way on purpose: a bigger KpK_p means more newtons of corrective thrust per (m/s)(\mathrm{m/s}) of speed error.