Chapter 2

Proportional Control

How hard should the drone push when it's too low?

Chapter 2: Proportional Control ↗

Push harder the further away you are

June: Last time, the drone settled 25 cm low with the package on. I want to know why.

Theo: Our rule had two parts: 4.9 N to hold the drone up, plus 8 N for every metre of error. The 4.9 N was a guess about the weight. Once the package changed the weight, the guess was wrong.

Mika: So let's drop the guess! No 4.9. Let the error do all the work: push in proportion to how far off you are.

That's the most famous controller there is, proportional control ("P control" for short):

T=Kp e=Kp (r−h)\eff{T} = K_p \, \err{e} = K_p\,(\sp{r} - \out{h})

KpK_p is the gain: how many newtons of thrust you add for every metre of error. Its unit is newtons per metre (N/m). Big KpK_p means an eager controller, small KpK_p a relaxed one. That's the only knob we get in this chapter.

Predict first! Take Kp=5K_p = 5 N/m. The drone starts on the ground and heads for 2 m. Where does it end up hovering?

Chapter 2: Proportional Control ↗

Look at the dotted blue line: that's where the drone ends up hovering, and it's always below the target. The gap is called the steady-state error, or just the droop.

Theo: It's a tug of war. Gravity pulls down with 4.9 N, always. The only way the controller can push back with 4.9 N is if there's some error left over to multiply.

T=weight⟹Kp e=4.9⟹edroop=4.9Kp m\begin{aligned}\eff{T} &= \text{weight} \\ \Longrightarrow K_p\,\err{e} &= 4.9 \\ \Longrightarrow \err{e}_{\text{droop}} &= \frac{4.9}{K_p}\ \text{m}\end{aligned}

Now slide KpK_p down to 2 N/m. The drone doesn't even leave the ground! On the ground the error is 2 m, so the thrust is only 2×2=42 \times 2 = 4 N, less than the 4.9 N weight. The formula says it would need to droop 2.45 m, which is underground.

Just turn it up!

June: Easy fix: more gain is always better. Bigger KpK_p, smaller droop. Crank it!

Mika: On it. Maximum power: Kp=60K_p = 60!

Chapter 2: Proportional Control ↗

Mika: Droop down to 8 cm! After a few seconds it's basically at 2 m. Victory!

Theo: Mika… look at the first two seconds. It shot up to about 3.4 metres, way past the target. And look at the thrust: 120 N at launch, then pulling down, then up again. That's not hovering, that's bouncing.

Mika: Oh. I only looked at where it ended up. The red error area at the start is huge.

That was Mika's mistake: judging a controller only by where it finally settles. How it gets there matters just as much. Try a few gains and watch the faint ghost of your previous run:

  • Low gain (small KpK_p): gentle, but it droops a lot. Push it low enough and the drone never takes off.
  • High gain (big KpK_p): small droop, but it overshoots (shoots past where it will settle) and wiggles before settling.

June: Why would pushing harder make it wobble?

Theo: A big push gets it moving fast. When it reaches the right height it's still going quickly, and nothing in our rule says "slow down, you're nearly there". Only the air drag gently brakes it. So it sails past, gets pushed back, sails past again…

A challenge

Let's find the sweet spot. The drone passes if it droops less than 20 cm and overshoots less than 30% (we measure overshoot as how far it shoots above the height it finally settles at). Find a KpK_p that does both.

Chapter 2: Proportional Control ↗

Mika: The green zones never overlap! Droop needs KpK_p above about 24.5, overshoot needs it below about 3.9. There's no answer.

Theo: Because one knob controls both, and it pulls them in opposite directions. It's not that we haven't found the right number. There isn't one. We need a better kind of controller.

June: To design a better one, we need to talk about the wiggles properly. "Sluggish", "bouncy", "settles eventually"… those are vibes, not physics.

What we know so far

What we figured out

  • Proportional control: thrust = Kp×K_p \times error. One knob, the gain KpK_p (N/m).
  • Against gravity, P control always leaves a steady-state error (droop) of 4.9/Kp4.9 / K_p m: some error must remain to produce the thrust that holds the drone up.
  • Low gain means big droop and a sluggish response. High gain means small droop, but overshoot and wiggling.
  • "More gain is always better" is false. For our drone, no single KpK_p gives both small droop and small overshoot.

Sluggish. Wiggly. Overshoots. Settles. We keep describing how things change over time with fuzzy words. We need a real language for change.

Chapter 2: Proportional Control ↗