AENGM0073 · Multirotor Dynamics and Control

Multirotor Control Lab

t = 0.0 s
Side viewClick or drag to set the target
Altitude z (m) altitudetarget
Thrust (N) commandedappliedTmax and hover m g
Error e
0.00 m
Altitude z
0.00 m
Thrust applied
0.0 N
Integral term
0.0 N
Thrust within limits Integrator running

Expected steady state appears here.

Plant: m z = T − m g − c z, with m = 1.0 kg (1.4 kg with payload), c = 0.15 N·s/m, 0 ≤ T ≤ Tmax. Controller: Tcmd = FF + Kpe + Ki∫e dt − Kdzmeas, FF = mnomg with mnom = 1.0 kg; zmeas is a finite difference of the measured altitude at the controller rate.

Try this

  1. Press P only. The drone hangs below the dashed target and keeps bouncing. Is the gap close to m g/Kp? What does adding Kd change, and what does it leave alone?
  2. Press PD + feed-forward, then add the payload (P). Why does a sag come back, and which term removes it?
  3. Press Windup demo. The target is 3 m, so why does the drone climb to about 4.5 m? Turn anti-windup on and run the demo again.
  4. Turn on sensor noise. Which term turns 2 cm of altitude noise into newtons of thrust noise? Compare 20 Hz with 1000 Hz: why does the update rate matter?