A submarine's outer pressure hull displaces a fixed volume of water no matter what its ballast tanks hold — flooding a tank does not shrink the hull, it just adds mass. So the net vertical force is simply the difference between the constant buoyant force and the boat's changing weight:
F_net = ρ_water · g · V_hull − (m_dry + m_fore + m_aft)
a = F_net / m_total (minus quadratic drag)
Flooding a tank lets seawater in through vents driven by ambient pressure, so it happens at roughly a fixed rate. Blowing a tank pushes water back out using stored high-pressure (HP) air, and that only works while the air reservoir's pressure exceeds the ambient sea pressure pushing back:
P_ambient = 1 atm + ρ_water · g · depth
blow effectiveness = clamp((P_air − P_ambient) / P_air, 0, 1)
This is why every real submarine has a rated "blow depth" — past it, the HP air can no longer overcome the sea and emergency blow stops working, which is why boats manage depth mainly with the planes and thrust, saving a full blow for shallower emergencies.
Trim (pitch) comes from any imbalance between the fore and aft tanks: more water aft than forward makes the stern heavy and the bow rides up, and vice versa — exactly the fine trim adjustment real crews use to hold a level boat while cruising submerged.
- Fore / aft target sliders — commanded fill level for each trim tank.
- Valve / vent rate — how fast each tank can move toward its target.
- HP air reserve — reservoir pressure available to blow tanks; a low reserve caps how deep a blow still works.
- Blow all / Flood all / Neutral trim — quick presets for surfacing, crash-diving, and level trim.