Liquid Rocketry at Illinois • Champaign, IL • August 2024 – May 2025

Rocket Roll Control

I led the controls sub-team that designed active roll control for Maurice 2, a high-power rocket at Liquid Rocketry at Illinois. Actuated fin tabs, aerodynamic authority measured in CFD, and a rate-damping loop using an onboard state estimate.

Ghosted CAD render of the vehicle in side view showing the nose cone, avionics bay, body tube and fin can through a transparent airframe.
Maurice 2 vehicle layout. Nose, avionics bay, body tube, fin can. Courtesy of Liquid Rocketry at Illinois.

Overview

With the end goal of flying a pump-fed liquid rocket engine, we needed to mitigate roll for the engine and pumps to operate nominally. This is what drove the design of a roll-controlled rocket with actuated fin tabs.

My year went to three things: sizing the control surfaces, measuring how much authority they had, and writing the loop that used them. Maurice 2 did not launch during my time on the team. Its successor, Control Freak, flew in April 2026 using the same approach.

RoleControls Sub-Team Lead
DatesAugust 2024 – May 2025
VehicleMaurice 2, actuated fin tabs on Hitec HS-225BB servos
ScopeAerodynamic sizing, control law, 6-DOF verification
ToolsC++, Simulink, Python, ANSYS Fluent, OpenRocket, RocketPy

Control Authority

Roll is a single-axis problem with a gain that moves by orders of magnitude over the flight. The hard part is knowing how much moment a deflection produces at a given airspeed and altitude.

Rolling moment scales with dynamic pressure, so a deflection at burnout produces significantly more than near apogee. I automated an ANSYS workflow in Python to sweep deflection angle and flow condition, then reduced the runs into aerodynamic coefficient tables. Those tables became the control model the loop is designed against.

CFD velocity-magnitude contour on the vehicle centerline plane showing a local disturbance at the control surfaces and a wake behind the tail.
Velocity magnitude on the centerline plane. The rolling moment comes from the local disturbance at the control surfaces and the wake off the tail. Courtesy of Liquid Rocketry at Illinois.

Closing the Loop

A raw gyro carries bias and noise that integrate badly, so the flight software runs a state estimate over the inertial measurements and the vehicle dynamics, and the controller acts on the estimate rather than the sensor.

The law is rate damping with the gain scheduled on airspeed through the CFD tables, so it commands a deflection the air can deliver at that instant. Control stays off during motor burn, where the vibration environment is hostile to the estimate, and takes over at burnout.

Verification came in two steps. First the open-loop model: with control disabled, the 6-DOF integration of the vehicle should reproduce what an independent solver predicts for the same airframe. It does, through the burn and into the first second of coast, which is the window the controller has to work in. Then the closed loop: the same model with the law switched on holds the vehicle to within 1 deg/s, against an uncontrolled peak near 68 deg/s and most of a full revolution accumulated before apogee.

Three stacked plots: uncontrolled roll rate from the 6-DOF model against OpenRocket, roll rate with control on versus off, and commanded fin tab deflection against time.
Roll response. Top: uncontrolled roll rate against OpenRocket, peaks agreeing within 3 percent before the decay rates diverge. Middle: the loop holds the vehicle inside 1 deg/s. Bottom: the command sits near 5 deg, well inside the deflection limit.

Handoff

I left the team in May 2025 for a summer internship. The airframe group carried the work onto a new vehicle, Control Freak, a 5 inch composite airframe using canards rather than fin tabs but the same method: CFD-derived roll moments to size the surfaces, state estimation and feedback to command them. Control Freak flew in April 2026.