Intuition The one-sentence picture
The flight computer asks for a nozzle angle δ c \delta_c δ c , but the physical gimbal servo can only
deliver that angle after a small delay and only if you don't ask it to move faster than
its bandwidth allows . TVC dynamics is the story of the gap between "commanded" and "actual"
nozzle deflection — and that gap is what eats your control margin.
Definition Thrust Vector Control (TVC)
A rocket steers by gimballing its engine nozzle by an angle δ \delta δ , so the thrust vector
T T T points slightly off-axis and produces a torque about the vehicle centre of mass.
The actuator (a hydraulic/electromechanical servo ) is what physically rotates the nozzle.
Definition Gimbal servo model
The servo is the transfer function relating actual deflection δ \delta δ to commanded
deflection δ c \delta_c δ c . To first approximation it is a second-order lag plus a pure time delay :
δ ( s ) δ c ( s ) = e − s τ ω n 2 s 2 + 2 ζ ω n s + ω n 2 \frac{\delta(s)}{\delta_c(s)} = e^{-s\tau}\,\frac{\omega_n^2}{s^2 + 2\zeta\omega_n s + \omega_n^2} δ c ( s ) δ ( s ) = e − s τ s 2 + 2 ζ ω n s + ω n 2 ω n 2
WHY second order? A servo is a motor (torque) driving an inertia (nozzle mass) against a
spring-like load and damping — mass–spring–damper ⇒ \Rightarrow ⇒ 2nd order.
WHY a pure delay e − s τ e^{-s\tau} e − s τ ? Sensor sampling, computation, digital-to-analog conversion,
and valve transport lag all shift the response in time without changing its shape.
Model the nozzle as a rotational inertia J J J acted on by an actuator torque M a M_a M a , a damping
c δ ˙ c\dot\delta c δ ˙ , and a restoring stiffness k δ k\delta k δ (structural + control):
J δ ¨ + c δ ˙ + k δ = M a J\ddot\delta + c\dot\delta + k\delta = M_a J δ ¨ + c δ ˙ + k δ = M a
The servo commands torque proportional to the error between commanded and actual angle,
M a = K ( δ c − δ ) M_a = K(\delta_c - \delta) M a = K ( δ c − δ ) (a proportional inner loop). Substitute:
J δ ¨ + c δ ˙ + k δ = K ( δ c − δ ) J\ddot\delta + c\dot\delta + k\delta = K(\delta_c - \delta) J δ ¨ + c δ ˙ + k δ = K ( δ c − δ )
J δ ¨ + c δ ˙ + ( k + K ) δ = K δ c J\ddot\delta + c\dot\delta + (k+K)\delta = K\delta_c J δ ¨ + c δ ˙ + ( k + K ) δ = K δ c
Divide by J J J and take Laplace transform (zero initial conditions):
( s 2 + c J s + k + K J ) δ ( s ) = K J δ c ( s ) \Big(s^2 + \tfrac{c}{J}s + \tfrac{k+K}{J}\Big)\,\delta(s) = \tfrac{K}{J}\,\delta_c(s) ( s 2 + J c s + J k + K ) δ ( s ) = J K δ c ( s )
Now define the natural frequency and damping by matching to the standard form:
So the pure lag part is
G servo ( s ) = ω n 2 s 2 + 2 ζ ω n s + ω n 2 . G_{\text{servo}}(s)=\frac{\omega_n^2}{s^2+2\zeta\omega_n s + \omega_n^2}. G servo ( s ) = s 2 + 2 ζ ω n s + ω n 2 ω n 2 .
ω B \omega_B ω B
The frequency at which ∣ G ( j ω ) ∣ |G(j\omega)| ∣ G ( j ω ) ∣ has dropped to 1 / 2 1/\sqrt2 1/ 2 (− 3 -3 − 3 dB) of its DC value.
It's the fastest oscillation the servo can faithfully follow .
Compute ∣ G ( j ω ) ∣ 2 |G(j\omega)|^2 ∣ G ( j ω ) ∣ 2 : substitute s = j ω s=j\omega s = j ω , so s 2 = − ω 2 s^2=-\omega^2 s 2 = − ω 2 :
∣ G ∣ 2 = ω n 4 ( ω n 2 − ω 2 ) 2 + ( 2 ζ ω n ω ) 2 |G|^2=\frac{\omega_n^4}{(\omega_n^2-\omega^2)^2+(2\zeta\omega_n\omega)^2} ∣ G ∣ 2 = ( ω n 2 − ω 2 ) 2 + ( 2 ζ ω n ω ) 2 ω n 4
Set = 1 / 2 =1/2 = 1/2 and let x = ( ω / ω n ) 2 x=(\omega/\omega_n)^2 x = ( ω / ω n ) 2 :
( 1 − x ) 2 + 4 ζ 2 x = 2 ⇒ x 2 − 2 x ( 1 − 2 ζ 2 ) − 1 = 0 (1-x)^2+4\zeta^2 x = 2 \;\Rightarrow\; x^2 -2x(1-2\zeta^2)-1=0 ( 1 − x ) 2 + 4 ζ 2 x = 2 ⇒ x 2 − 2 x ( 1 − 2 ζ 2 ) − 1 = 0
x = ( 1 − 2 ζ 2 ) + ( 1 − 2 ζ 2 ) 2 + 1 x=(1-2\zeta^2)+\sqrt{(1-2\zeta^2)^2+1} x = ( 1 − 2 ζ 2 ) + ( 1 − 2 ζ 2 ) 2 + 1
Intuition WHY a delay is dangerous
A pure delay changes phase , not amplitude. Control loops go unstable when total phase lag
hits − 180 ° -180° − 180° at the gain-crossover frequency. The delay silently spends your phase margin.
A pure delay e − s τ e^{-s\tau} e − s τ at frequency ω \omega ω contributes magnitude ∣ e − j ω τ ∣ = 1 |e^{-j\omega\tau}|=1 ∣ e − j ω τ ∣ = 1 and phase:
∠ e − j ω τ = − ω τ (radians) \angle e^{-j\omega\tau} = -\omega\tau \quad\text{(radians)} ∠ e − j ω τ = − ω τ (radians)
Worked example Example 1 — Find
ω n , ζ , ω B \omega_n,\ \zeta,\ \omega_B ω n , ζ , ω B
A gimbal has J = 0.8 kg⋅m 2 J=0.8\ \text{kg·m}^2 J = 0.8 kg⋅m 2 , damping c = 40 N⋅m⋅s c=40\ \text{N·m·s} c = 40 N⋅m⋅s , combined stiffness
k + K = 2000 N⋅m/rad k+K=2000\ \text{N·m/rad} k + K = 2000 N⋅m/rad .
ω n = ( k + K ) / J = 2000 / 0.8 = 2500 = 50 rad/s \omega_n=\sqrt{(k+K)/J}=\sqrt{2000/0.8}=\sqrt{2500}=50\ \text{rad/s} ω n = ( k + K ) / J = 2000/0.8 = 2500 = 50 rad/s .
Why this step? Directly from ω n 2 = ( k + K ) / J \omega_n^2=(k+K)/J ω n 2 = ( k + K ) / J — the stiffness/inertia ratio sets speed.
ζ = c 2 ( k + K ) J = 40 2 2000 ⋅ 0.8 = 40 2 ⋅ 40 = 0.5 \zeta=\dfrac{c}{2\sqrt{(k+K)J}}=\dfrac{40}{2\sqrt{2000\cdot0.8}}=\dfrac{40}{2\cdot40}=0.5 ζ = 2 ( k + K ) J c = 2 2000 ⋅ 0.8 40 = 2 ⋅ 40 40 = 0.5 .
Why? 1600 = 40 \sqrt{1600}=40 1600 = 40 ; damping ratio compares actual to critical damping.
1 − 2 ζ 2 = 1 − 0.5 = 0.5 1-2\zeta^2=1-0.5=0.5 1 − 2 ζ 2 = 1 − 0.5 = 0.5 , so ω B = 50 0.5 + 0.25 + 1 = 50 0.5 + 1.118 = 50 1.618 = 63.6 rad/s \omega_B=50\sqrt{0.5+\sqrt{0.25+1}}=50\sqrt{0.5+1.118}=50\sqrt{1.618}=63.6\ \text{rad/s} ω B = 50 0.5 + 0.25 + 1 = 50 0.5 + 1.118 = 50 1.618 = 63.6 rad/s .
Why? Under-damped systems have ω B > ω n \omega_B>\omega_n ω B > ω n (they resonate a bit before rolling off).
Worked example Example 2 — How much phase does a delay eat?
Loop crossover ω c = 15 rad/s \omega_c=15\ \text{rad/s} ω c = 15 rad/s , servo+computation delay τ = 20 ms \tau=20\ \text{ms} τ = 20 ms .
Phase lost = ω c τ = 15 × 0.02 = 0.30 rad = 17.2 ° =\omega_c\tau=15\times0.02=0.30\ \text{rad}=17.2° = ω c τ = 15 × 0.02 = 0.30 rad = 17.2° .
Why this step? ∠ e − j ω c τ = − ω c τ \angle e^{-j\omega_c\tau}=-\omega_c\tau ∠ e − j ω c τ = − ω c τ ; convert rad→ \to → deg by × 57.3 \times57.3 × 57.3 .
If your design phase margin was 45 ° 45° 45° , the delay leaves only ≈ 28 ° \approx28° ≈ 28° — thin.
Why it matters: under 30 ° 30° 30° margin the vehicle rings and can go unstable in gusts.
Worked example Example 3 — Bandwidth budget rule of thumb
Designers want servo bandwidth ω n ≳ 5 × \omega_n \gtrsim 5\times ω n ≳ 5 × the rigid-body control frequency
ω c \omega_c ω c so the servo lag looks "instantaneous" to the loop.
If ω c = 15 \omega_c=15 ω c = 15 rad/s, require ω n ≳ 75 \omega_n\gtrsim75 ω n ≳ 75 rad/s.
Why? At ω c = ω n / 5 \omega_c=\omega_n/5 ω c = ω n /5 , the servo's own phase lag ≈ 2 ζ ( ω c / ω n ) ⋅ 57.3 \approx 2\zeta(\omega_c/\omega_n)\cdot57.3 ≈ 2 ζ ( ω c / ω n ) ⋅ 57.3
≈ 2 ( 0.7 ) ( 0.2 ) ( 57.3 ) ≈ 16 ° \approx 2(0.7)(0.2)(57.3)\approx16° ≈ 2 ( 0.7 ) ( 0.2 ) ( 57.3 ) ≈ 16° — small enough not to threaten stability.
Common mistake "Delay just makes the response slower, so I'll add more gain."
Why it feels right: more gain speeds up other lags, so surely it fixes delay too.
The fix: A pure delay is pure phase , magnitude = 1 =1 = 1 . Adding gain raises ω c \omega_c ω c , which
increases ω c τ \omega_c\tau ω c τ — you lose more phase. Delay problems are fixed by reducing τ \tau τ
(faster computer, higher sample rate) or lowering bandwidth, never by brute gain.
Common mistake "Higher servo bandwidth is always better."
Why it feels right: high ω n \omega_n ω n = fast, accurate tracking.
The fix: If ω n \omega_n ω n reaches into the structural bending / slosh frequencies, the servo
starts driving flexible modes — TVC becomes an oscillator. Bandwidth must sit below the first
bending mode (or you need a notch filter). Fast, but not too fast.
ω B \omega_B ω B with ω n \omega_n ω n .
Why it feels right: for ζ = 0.7 \zeta=0.7 ζ = 0.7 they're equal, so people assume always.
The fix: They coincide only at ζ = 1 / 2 \zeta=1/\sqrt2 ζ = 1/ 2 . For ζ = 0.5 \zeta=0.5 ζ = 0.5 , ω B ≈ 1.27 ω n \omega_B\approx1.27\omega_n ω B ≈ 1.27 ω n ;
for ζ = 1 \zeta=1 ζ = 1 , ω B ≈ 0.64 ω n \omega_B\approx0.64\omega_n ω B ≈ 0.64 ω n . Always check ζ \zeta ζ first.
Recall Feynman: explain to a 12-year-old
Imagine steering a boat with an oar. Your brain (the computer) says "turn the oar 10°."
But your arm (the servo) takes a moment to react and can't twist super fast. If you keep
yelling "left! right! left!" quicker than your arm can move, the boat wobbles and might tip.
So engineers make sure the arm is fast enough (bandwidth) and that the delay between
deciding and doing is tiny. TVC dynamics is just: don't ask the nozzle to do more than its
muscle can, and account for its reaction time.
"BAND-DELAY: Big-N Answers, Delayed Eats Loop's phase, Ask-Yes-below-bending."
B andwidth ↑ with N (ω n = ( k + K ) / J \omega_n=\sqrt{(k+K)/J} ω n = ( k + K ) / J ).
DELAY E ats phase: Δ ϕ = − ω c τ \Delta\phi=-\omega_c\tau Δ ϕ = − ω c τ .
Keep bandwidth below bending modes.
What two effects make up the gimbal servo transfer function? A second-order lag
ω n 2 s 2 + 2 ζ ω n s + ω n 2 \frac{\omega_n^2}{s^2+2\zeta\omega_n s+\omega_n^2} s 2 + 2 ζ ω n s + ω n 2 ω n 2 times a pure time delay
e − s τ e^{-s\tau} e − s τ .
Why is a servo modelled as second order? It's a motor torque driving a nozzle inertia against damping and stiffness → a mass–spring–damper → 2nd-order ODE.
Give ω n \omega_n ω n in terms of physical parameters. ω n = ( k + K ) / J \omega_n=\sqrt{(k+K)/J} ω n = ( k + K ) / J — stiffness (plus loop gain) over inertia.
Give ζ \zeta ζ in terms of physical parameters. ζ = c 2 ( k + K ) J \zeta=\dfrac{c}{2\sqrt{(k+K)J}} ζ = 2 ( k + K ) J c .
At what ζ \zeta ζ does bandwidth equal natural frequency? ζ = 1 / 2 ≈ 0.707 \zeta=1/\sqrt2\approx0.707 ζ = 1/ 2 ≈ 0.707 , since then
1 − 2 ζ 2 = 0 1-2\zeta^2=0 1 − 2 ζ 2 = 0 gives
ω B = ω n \omega_B=\omega_n ω B = ω n .
How much phase does a delay τ \tau τ contribute at frequency ω \omega ω ? − ω τ -\omega\tau − ω τ radians (
= − 57.3 ω τ =-57.3\,\omega\tau = − 57.3 ω τ degrees); magnitude stays 1.
Why can't you fix delay problems by adding gain? Gain doesn't change delay's phase; it raises the crossover
ω c \omega_c ω c , increasing
ω c τ \omega_c\tau ω c τ and losing MORE phase margin.
What is the first-order Padé approximation of e − s τ e^{-s\tau} e − s τ ? 1 − ( τ / 2 ) s 1 + ( τ / 2 ) s \dfrac{1-(\tau/2)s}{1+(\tau/2)s} 1 + ( τ /2 ) s 1 − ( τ /2 ) s ; it introduces a RHP zero at
s = 2 / τ s=2/\tau s = 2/ τ .
Why does a RHP zero matter physically? It makes the output initially move the wrong way — the destabilising signature of transport delay.
Rule of thumb for servo bandwidth vs control-loop crossover? Make
ω n ≳ 5 ω c \omega_n\gtrsim5\,\omega_c ω n ≳ 5 ω c so servo lag looks negligible to the rigid-body loop.
Why must servo bandwidth stay below the first bending mode? Otherwise TVC drives flexible structural/slosh modes, exciting oscillations (needs a notch filter).
Second-order systems — natural frequency & damping
Bode plots & phase margin
Padé approximation of transport delay
Structural bending modes & notch filters
Rigid-body attitude control loop (autopilot)
Digital control — sampling & computational delay
Thrust Vector Control geometry & torque
from sampling and transport lag
Flight computer commands delta_c
Mass-spring-damper nozzle J c k
Proportional inner loop M_a=K delta_c minus delta
Natural frequency omega_n
Gap between commanded and actual
Intuition Hinglish mein samjho
Dekho, rocket steer karta hai apne engine nozzle ko thoda gimbal (tilt) karke. Flight computer
bolta hai "nozzle ko δ c \delta_c δ c degree ghumao", lekin jo actuator (servo motor) hai woh turant
exactly utna nahi ghuma sakta. Do problems aati hain: ek to servo ki apni bandwidth — matlab
woh kitni tezi se follow kar sakta hai. Yeh ek second-order system hai (mass-spring-damper jaisa),
jiska natural frequency ω n = ( k + K ) / J \omega_n=\sqrt{(k+K)/J} ω n = ( k + K ) / J hai. Zyada stiffness ya inertia kam ho to ω n \omega_n ω n
bada, matlab servo faster.
Doosri, aur zyada khatarnaak, problem hai time delay τ \tau τ — sensor sampling, computation,
valve lag sab milke ek chhota sa deri banate hain, mathematically e − s τ e^{-s\tau} e − s τ . Iska magnitude to
1 hi rehta hai, lekin yeh phase ko kha jaata hai: har frequency par − ω τ -\omega\tau − ω τ phase lag.
Aur control loop tab unstable hota hai jab total phase − 180 ° -180° − 180° tak pahunch jaaye. Isliye chhota sa
delay bhi aapka phase margin chura leta hai.
Ek badi galti jo log karte hain: "delay slow kar raha hai, to gain badha do." Galat! Gain
badhane se crossover frequency ω c \omega_c ω c upar chali jaati hai, aur phir ω c τ \omega_c\tau ω c τ aur bada
ho jaata hai — matlab aur zyada phase loss, aur zyada instability. Delay ka ilaaj hai faster
computer (kam τ \tau τ ), ya bandwidth kam karna. Aur ek aur baat: bandwidth itna high mat rakho ki
woh rocket ke structural bending modes ko excite kar de — warna pura rocket vibrate karne lagega.
Isiliye rule: ω n \omega_n ω n ko control loop se ~5x rakho, par bending mode se neeche.