Real-time control of an underactuated double-gimbal control moment gyroscope

PhD research, 2022 to 2026. University of Nebraska-Lincoln, advised by Wei Qiao and Liyan Qu.

A spinning rotor inside two motorized gimbals, all mounted in an outer frame that has no motor of its own. The controller moves the two gimbals so that the unpowered frame follows a commanded trajectory.

Real-time control of an underactuated double-gimbal control moment gyroscope

PhD dissertation, 2022 to 2026. Advisors: Wei Qiao and Liyan Qu.

The problem

A control moment gyroscope steers a spacecraft, ship, or robot by tilting a fast-spinning rotor. The double-gimbal version has two motors and four rigid bodies, so one axis is never driven directly. It has to be moved through gyroscopic coupling, and the coupling itself changes with the gimbal angles. At certain angles the gimbal axes line up and one control direction disappears entirely. That is gimbal lock, and a controller that wanders into it loses the plant. When I started, nobody had stabilized this configuration on hardware.

What I built

The full stack from model to rig. Euler-Lagrange dynamics with a configuration-dependent inertia matrix; a MATLAB/Simulink controller running through QUARC on a Q8-USB data acquisition board at a 2 ms cycle; optical encoders on every body, filtered and differentiated for velocity; torque commands converted to motor current through a linear current amplifier with saturation limits to protect the motors. I ran all of the hardware experiments and the digital-twin simulations they are compared against.

What the hardware taught me

My first controller was an adaptive LQR built on a state-dependent Riccati equation. It passed every stability check in the linear region and worked on the rig for stabilization tasks. Under a time-varying reference, one gimbal drifted across the gimbal-lock boundary, the linearization behind the Riccati update stopped being valid, and the closed loop diverged. Simulation had not shown this because the model had no notion of the boundary. The hardware did.

So I redesigned the controller as an adaptive sliding mode law with the constraint written into the control law itself. A composite sliding manifold couples the actuated gimbal velocities to the unactuated tracking error, a barrier Lyapunov function pushes the gimbals away from the singular boundaries before they get there, a fractional-power reaching law gives finite-time convergence with a computable time bound, and a gradient adaptation law absorbs friction, encoder quantization, and external disturbance torques without needing to know their bound in advance.

Measured on the rig

Finite-time adaptive sliding mode control (FT-ASMC) against the adaptive LQR baseline, same hardware, same references
TestFT-ASMCAdaptive LQR
Release from initial error, 2% settling time 0.94 s 3.02 s
Smooth S-curve tracking, RMS error 0.12° diverged past gimbal lock
Smooth S-curve tracking, peak error 0.28° 18.1° before shutdown
Same tracking with an external disturbance torque on the unpowered frame, RMS error 0.19° diverged

Two recent controllers from the underactuated-systems literature were also run on the rig as baselines; both diverged in every test because their stability arguments rely on a gravitational restoring torque that a horizontally mounted gyroscope does not have.

Mathematical background

  • Euler-Lagrange modeling of multibody systems, partial linearization, controllability of the actuated and unactuated subsystems
  • State-dependent Riccati equation control and its local stability argument
  • Sliding mode control for underactuated systems: composite manifolds, reaching laws, chattering and its mitigation
  • Lyapunov direct method, LaSalle's invariance principle, barrier Lyapunov functions for state constraints
  • Finite-time stability theory, comparison lemmas, Young's and Cauchy-Schwarz inequalities used in the convergence proofs
  • Online parameter and disturbance adaptation without a known disturbance bound
Schematic of the underactuated double-gimbal control moment gyroscope: rotor D inside inner gimbal C and outer gimbal B, mounted in the unactuated frame A, with body angles q1 to q4 and torques tau1 to tau4
The four bodies. The rotor (D) spins inside two motor-driven gimbals (C and B), all carried by an outer frame (A) with no motor of its own, so its angle q4 can only be moved through gyroscopic coupling (τ4 = 0).
Singularity boundaries of the gimbal angles, with the admissible operating cell shaded
Gimbal-lock boundaries in the space of the two gimbal angles. The controller keeps the gimbals inside one cell for all time.
Measured tracking of the S-curve reference and the tracking error under FT-ASMC
Measured tracking of a seven-phase sinusoidal-jerk S-curve reference on the unpowered axis, and the resulting error.

Physics-informed observer for closed-loop state and torque estimation

PhD research, PyTorch and MATLAB/Simulink.

The gyroscope's encoders give position only, and differentiating them amplifies quantization noise into the velocity signal the controller depends on. I fused encoder and motor-current measurements through a physics-informed neural network observer whose loss function is penalized by the Euler-Lagrange dynamics, so the network cannot learn an estimate that violates the physics. Against a model-based observer on the same rig data, the closed loop tracked with 9.87% lower error and used 4.95% less control energy.

Mathematical background

  • Observer design and separation of estimation from control
  • Physics-informed learning: residuals of the governing equations as training loss
  • Sensor fusion of position encoders with current-derived torque estimates
Block diagram of the physics-informed observer in the control loop
Where the observer sits in the loop.

Documented in four IEEE papers listed here. Next case studies: the monolithic spring and hands-on projects from graduate coursework.