■odorici.sys

$ 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.

fig.01 · photograph
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

  1. 01Wrote bare-metal C control loops on a TI F28379D, exchanging state with two Quanser plants over a 1 kHz SPI link.
  2. 02Identified reduced plant models by least squares from filtered step responses.
  3. 03Designed state-space integral controllers with full-order estimators, placed by closed-form pole placement and discretized at 1 ms with anti-windup.
  4. 04Added quintic-polynomial trajectories with model-inversion feedforward for smooth point-to-point motion.
  5. 05Balanced a rotary inverted pendulum upright, then controlled pitch on the two-rotor Aero 2 with an outer position and inner propeller-speed cascade.

ls ./modules

01Rotary inverted pendulumPendulum balanced upright on a Qube-Servo 2 while the arm tracks step commands
02Aero 2 pitch controlTwo-rotor platform in helicopter configuration, yaw locked, pitch held by a cascade loop
03Parameter identificationReduced plant models fitted by least squares from filtered step responses

ls ./media

fig.02The rotary inverted pendulum balancing upright on a Qube-Servo 2, holding while the arm is commanded around.
fig.03The Quanser Aero 2 holding pitch under the cascade controller, yaw axis locked.
■ 12 modules · 2 roles∿█