Dynamic Control of an Aeropendulum
Can classical PID and energy-based control strategies effectively control a nonlinear physical oscillator with real sensor noise, actuator latency, and friction?
Textbook control theory teaches linear, noise-free, friction-free systems. Real physical systems have sensor noise, actuator deadbands, nonlinear dynamics, and coupling between modes. The aeropendulum — a propeller-driven pendulum with real-time feedback control — is a testbed for investigating what control theories survive contact with reality.
Control Modes
| Mode | Strategy | Description |
|---|---|---|
| Manual | Open-loop | Button-driven throttle for direct motor control |
| Static Hold | PID | Closed-loop angle hold at a target setpoint (Kp, Ki, Kd) |
| Oscillation | Energy pumping | Amplitude-regulated oscillation via energy injection and braking at the swing nadir |
| Active Damping | Adaptive braking | Amplitude-dependent gate widths with speed-normalized braking gain to bring the pendulum to rest |
System Architecture
Sensors
- AS5600 magnetic encoder (12-bit, I2C) — absolute angular position
- MPU6050 IMU — angular velocity via gyroscope
- Circular-mean tare calibration
- Wrap-safe EMA angle filtering
- Gyro low-pass filtering
Controller
- Anti-windup integral clamp
- PWM slew rate limiter
- Actuator deadband compensation
- Auto IMU reinit on sensor stall
- Real-time serial parameter tuning
Hardware
- Propeller-driven pendulum arm
- Custom 3D-printed enclosure
- 18+ CAD iterations (FreeCAD)
- 60+ STL component files
Firmware
- 21 versions (v0.1–v4.0)
- 5 months of iterative development
- Arduino-based control loop