Year 2 · Control Technology · 2024

PID rudder control for a nuclear submarine

A closed-loop rudder control system modelled in MATLAB Simulink and tuned by hand for three manoeuvres, with smooth, stealthy turns and zero steady-state error as the goal.

  • ContextENGR5051 Control Technology, Oxford Brookes University
  • RoleIndividual lab assessment
  • SoftwareMATLAB, Simulink
MATLAB & SimulinkPID controlSystem modellingController tuningTransfer functions
Rudder angle response for five PID tuning trials

Key numbers

0%
overshoot and steady-state error on the final 40° turn
~30 s
to settle a full 40° rudder turn
±45°
physical rudder limit built into the model
1 s
sensor feedback delay the controller had to cope with

The model

I built the rudder drive as a chain of real hardware in Simulink: a ±20 V supply limit, a motor (gain 10, time constant 2 s), a 100:1 gearbox (time constant 3 s), an integrator converting rudder rate into angle, the ±45° mechanical limit, and a 1-second delay on the angle sensor. A PID controller closes the loop.

Simulink model: PID controller, voltage limit, motor, gearbox, integrator, rudder range and 1 s feedback delay
Simulink model: PID controller, voltage limit, motor, gearbox, integrator, rudder range and 1 s feedback delay

Tuning for the mission

For a submarine, a quiet and smooth response matters more than raw speed. Overshoot wastes energy, makes noise and wears out a mechanism that can't be serviced at depth.

  • Input 1, a 40° step: five trials took it from a 5° steady-state error to zero overshoot and zero error (P=2, I=0.001, D=7).
  • Input 2, a ramp to −45°: raised derivative gain to D=10 to soften the change, protecting the rudder mechanism.
  • Input 3, a −35° to 10° step: balanced P and D (P=3, I=0.05, D=10) for a fast response with minimal overshoot.
Final responses for all three inputs, re-simulated from my Simulink model and gains
Final responses for all three inputs, re-simulated from my Simulink model and gains

Beyond the lab

The wider module also covered industrial control: open- and closed-loop motor speed control with P and PI controllers, and PLC ladder-logic programming in Zelio Soft for automated sequences.

Looking back

What went well

Tuning methodically, changing one gain at a time and recording the effect, which led to responses with zero overshoot and no steady-state error. Framing each goal around what the submarine actually needs, such as stealth and protecting the rudder mechanism, kept the tuning purposeful.

Even better if

I'd start from a structured method such as Ziegler–Nichols or MATLAB's PID Tuner rather than pure trial and error. I'd also add disturbances like ocean currents and sensor noise to test how robust the controller really is.