$ cat ~/work/control-systems-labs.md
project · control · 2025
Pendulum and Aero Control
State-space control in bare-metal C on Quanser hardware
Bare-metal C on a TI C2000 microcontroller identifying, then controlling Quanser rigs: a spinning disk, a balanced rotary pendulum and a two-rotor Aero 2.
- kind
- project
- course
- ECE 4550, Georgia Tech
- category
- control
- period
- Aug 2025 - Dec 2025
- status
- completed
head -n 20 README
State-space controllers designed on paper and run in real time on a TI F28379D driving Quanser hardware over SPI, with MATLAB for system identification and analysis.
The sequence was model, then control, then a harder plant. The first labs set up the microcontroller: timer interrupts, GPIO, and a 1 kHz SPI link to a Quanser Qube-Servo 2. From there, least-squares system identification fitted a reduced motor model from filtered step responses, and a state-space integral controller with a full-order estimator held disk position, discretized with forward Euler at 1 ms and protected with anti-windup. Later labs added quintic-polynomial trajectories with model-inversion feedforward, then balanced a rotary inverted pendulum upright while the arm tracked step commands, and finished on the two-rotor Quanser Aero 2 in helicopter configuration with the yaw axis locked, controlling pitch through a cascade of an outer position loop and an inner propeller-speed loop. Every controller was closed-form pole placement, and everything ran on the microcontroller in real time.
grep -n highlights
- 01Wrote bare-metal C control loops on a TI F28379D, exchanging state with two Quanser plants over a 1 kHz SPI link.
- 02Identified reduced plant models by least squares from filtered step responses.
- 03Designed state-space integral controllers with full-order estimators, placed by closed-form pole placement and discretized at 1 ms with anti-windup.
- 04Added quintic-polynomial trajectories with model-inversion feedforward for smooth point-to-point motion.
- 05Balanced a rotary inverted pendulum upright, then controlled pitch on the two-rotor Aero 2 with an outer position and inner propeller-speed cascade.