// Offshore & Marine

Dynamic positioning and power management for offshore vessels.

A dynamically positioned drillship has no anchors. It holds over a wellhead in thousands of feet of water on thrusters alone, and the control system re-commands them four times a second against wind, current and waves. We've worked inside these systems: the control laws, the sensor fusion, and the power plant that feeds the thrusters.

SENSE ESTIMATE CONTROL ALLOCATE POWER
// The control problem01

The DP control loop.

Every cycle, the system estimates where the vessel actually is, works out the force needed to hold it there, and splits that force across the thrusters. The power plant has to have the electricity ready to deliver it.

wind feed-forward: counter the gust before the ship moves vessel motion: position · heading · velocity power limit phase-back SENSORS DGPS · gyro · wind + KALMAN FILTER separates drift from waves + PID force & moment + + ALLOCATION per-thruster · azimuth THRUSTERS the vessel POWER MANAGEMENT generators · switchboards · spinning reserve
// the DP control loop: click SENSORS · KALMAN FILTER · PID for the full technical model
// Inside the loop02

Four parts of the control problem.

Each piece is established control engineering that has been in use for decades. Together they keep a hundred thousand tonnes of steel within meters of its setpoint.

Estimate: the Kalman filter

DGPS, acoustics, and gyros all disagree a little, and waves rock the ship several meters with every swell. A Kalman filter blends the sensors, weighs each by its measured noise, and separates true vessel drift from wave motion, so the thrusters correct real drift instead of fighting every wave.

x̂ += K · (z − x̂)

Control: the PID law

Proportional force pulls the ship back toward the setpoint. The integral term slowly learns the steady push of current and holds against it. The derivative term damps the approach. During heading changes the learned force is rotated with the ship, so it keeps holding position through the turn.

F = Kₚ·e + Kᵢ·∫e dt + Kₓ·ė

React first: wind feed-forward

If you wait for a gust to move the ship, you're already late. Anemometers and an aerodynamic model of the hull and superstructure give the wind force directly, and the thrusters push back as it hits, before a position error builds up.

F_w = ½ρ v² Cₜ(θ) A

Allocate: one force, many thrusters

The control law produces a single demand: surge force, sway force and yaw moment. Thrust allocation splits it across the azimuth and tunnel thrusters within each unit's limits, azimuth slew rate and the power actually available, then checks the result by computing the force the thrusters will really produce.

[Fₓ Fᵣ Mₖ] → {Tᵢ, αᵢ}
// the estimation problem: measurement = drift + waves measurement z: what the sensors report wave motion: filtered out, never fought true drift x̂: the only motion PID corrects // the allocation problem: one demand, seven thrusters F: demanded force M: yaw moment Tᵢ, αᵢ: thrust & azimuth, solved per thruster, every cycle
// left: what the estimator keeps vs. discards · right: one demand becoming seven thrust vectors
// The power problem03

Power management.

A DP vessel is diesel-electric, so the thrusters, the drill floor and the hotel all draw from the same generators. The power management system has its own control problem. It keeps utilization in a healthy range, doesn't let demand outrun capacity, and if the plant does black out, brings it back before the ship drifts off the well.

Start before you need it

Everything keys off percent utilization, which is online load divided by online capacity. If it stays above the demand setpoint too long, the next generator in priority starts and synchronizes automatically. Priority is scored from alarms, capacity and run-hour balancing. Above the emergency threshold, the normal warm-up is skipped.

util > 95% for 60 s → emergency start

Limit before you trip

Every big consumer gets a live upper power limit: its own filtered load plus a share of the spinning reserve, recomputed on a 100 ms scan. When reserve runs thin, drilling is phased back first (never below what it needs to secure the well), then each thruster's SCR drive gets its own reduced thrust limit. DP is always cut last.

UPL = P_filt + c · SR

Recover before you drift

A blackout has to be confirmed two ways, by the dead-bus relay and by bus voltage, so one bad sensor can't set off a false recovery. Then a scripted sequence runs. Emergency starts are staggered so starting air pressure recovers between engines, breakers reclose in a timed order, and the thrusters go back to DP exactly as they were before the blackout.

¬dead_bus_ok ∧ V<4 kV → BOR
// engines 1–4 → bus A // engines 5–8 → bus B G1 G2 G3 G4 G5 G6 G7 G8 bus tie 4160 V · BUS A 4160 V · BUS B HOTEL 480 V (uncontrolled) DRILLING SCR drives SCR T1 SCR T2 SCR T3 thrusters 1–3 HOTEL 480 V (uncontrolled) DRILLING SCR drives SCR T4 SCR T5 SCR T6 SCR T7 thrusters 4–7 POWER MANAGEMENT utilization · UPL · blackout recovery kW · V · Hz breaker status start · sync · stop start · sync · stop DR UPL THR UPL DR UPL THR UPL: per-thruster phase-back
// the one-line: 8 engines → two 4160 V buses → hotel · drilling · thrusters; the PMS senses everything, starts what's needed, limits what isn't
// blackout recovery: one scripted sequence, 120-second master timer blackout confirmed dead-bus relay ∧ 0 V · two independent checks t = 0 emergency starts issued priority order · staggered 1.5 s for starting air generators online >4 kV · >56 Hz · breaker closed · wait for minimum count feeders reclose in order hotel 4160→480 V · drill · thrusters · ~15 s script thrusters back to DP same units in the solution as before master timer expires t = 120 s · recovery complete
// detect on two independent signals → restart staggered → reconnect scripted → hand the thrusters back
// The seam04

How DP and power management work together.

The hard part is the seam between the two. DP and power management exchange limits and status continuously over redundant paths, and each side has a fallback if a signal fails.

Vessel Control

Dynamic Positioning

Estimates vessel state, computes forces, allocates thrust, and shapes its demand to the power limit it's given. If the two copies of the limit signal disagree, DP falls back to its own model of the power plant and keeps station without missing a cycle.

power limit (kW, dual channel) per-thruster phase-back thruster load & status heartbeat, both networks
Plant Control

Power Management

Watches every breaker and generator, keeps enough spinning reserve online to cover the hotel load, which it can't limit, and shares the rest between DP and drilling. It also enforces the limits that keep the plant from tripping. After a blackout, it rebuilds the bus and returns each thruster to DP control automatically.

control cycle ~0.25 s power-limit scan 100 ms I/O scan 40 ms controllers redundant, hot standby signal paths dual network + analog class notation DP-2 / DP-3
// Contact05

Tell us about your control system.

It might be a vessel, a rig or a plant onshore. Describe what it has to hold steady and we'll explain how we'd approach it.

Start a conversation