3.5.46Guidance, Navigation & Control (GNC)
Reaction control system — thruster selection, plume impingement limits
2,302 words10 min readdifficulty · medium1 backlinks
1. What an RCS actually does
WHY fixed thrusters and not one steerable engine? Gimballing a nozzle is heavy, slow, and fails as a single point. A cluster of cheap on/off jets is redundant, fast, and lets you command torque about any axis by combining them.
Each thruster has:
- a mount position (from the center of mass, CoM),
- a thrust direction (the way exhaust leaves ⇒ force is opposite the exhaust, but we bake that into ),
- a magnitude (throttle or on-time fraction).
2. Deriving the wrench (force + torque) map from first principles
HOW each thruster contributes. One thruster firing with magnitude gives:
\boldsymbol\tau_i = \mathbf r_i \times \mathbf F_i = F_i\,(\mathbf r_i\times\hat{\mathbf u}_i).$$ **Why the cross product?** Torque is *lever arm × force*. A force through the CoM ($\mathbf r_i \parallel \hat{\mathbf u}_i$) gives zero torque — pure translation. A force offset from CoM twists the body. Sum over all thrusters and factor out the magnitudes $\mathbf f=[F_1,\dots,F_N]^T$: $$\boxed{\;\mathbf w=\begin{bmatrix}\mathbf F\\ \boldsymbol\tau\end{bmatrix} =\underbrace{\begin{bmatrix}\hat{\mathbf u}_1 & \cdots & \hat{\mathbf u}_N\\ \mathbf r_1\times\hat{\mathbf u}_1 & \cdots & \mathbf r_N\times\hat{\mathbf u}_N\end{bmatrix}}_{\textstyle B\ (6\times N)}\,\mathbf f\;}$$ > [!formula] Thruster allocation > $$\mathbf w = B\,\mathbf f,\qquad \mathbf f\ge 0.$$ > $B$ is the **influence (allocation) matrix**. Columns = each thruster's unit > wrench. **Selection = find $\mathbf f$ that hits commanded $\mathbf w_{\rm cmd}$.** **The one-sidedness constraint.** A thruster can only *push* ($F_i\ge0$); it cannot suck. This is why you need thrusters in **opposing** directions — you can't reverse a jet, you fire its opposite. --- ## 3. Thruster selection = constrained optimization Given $\mathbf w_{\rm cmd}$, we usually have **more thrusters than DOFs** ($N>6$), so the solution isn't unique. We pick the *best* one: > [!formula] Minimum-propellant selection (linear program) > $$\min_{\mathbf f}\ \sum_i F_i\quad\text{s.t.}\quad B\mathbf f=\mathbf w_{\rm cmd},\ \ \mathbf f\ge 0.$$ > Objective $=\sum F_i$ ∝ propellant flow (mass rate $\propto$ thrust for fixed > $I_{sp}$). **Why linear?** Force and mass-rate both scale linearly with on-time. If you only need *pure torque* (no net force), add $\mathbf F=\sum F_i\hat{\mathbf u}_i=\mathbf 0$ as a constraint — this is a **couple**: two equal opposite jets whose forces cancel but whose torques add. > [!example] Pure roll couple — worked > Two thrusters on a wheel of radius $r$, at $\mathbf r_1=(0,+r,0)$, $\mathbf r_2=(0,-r,0)$, > firing in $\pm x$ so their forces cancel. > **Step 1** $\mathbf F=F\hat{\mathbf x}+F(-\hat{\mathbf x})=0$. *Why?* Opposite > directions ⇒ zero net push (no drift). > **Step 2** $\boldsymbol\tau_1=(0,r,0)\times(F,0,0)=(0,0,-rF)$; > $\boldsymbol\tau_2=(0,-r,0)\times(-F,0,0)=(0,0,-rF)$. > **Step 3** $\boldsymbol\tau=(0,0,-2rF)$. *Why add?* Both twist the same way about > $z$. **Torque $=2rF$ with zero drift** — the ideal attitude control. --- ## 4. Plume impingement — the limit that shapes the whole design > [!intuition] WHY plumes are dangerous > Exhaust doesn't vanish at the nozzle exit; it fans out into near-vacuum as a > **cone** (it's under-expanded, so it keeps spreading). If that cone touches a > solar panel, star tracker, docking target, or the ship's own skin it delivers > **heat flux**, **pressure force**, and **chemical contamination**. Two failures: > (1) you *damage* hardware, (2) the impingement force is a hidden **disturbance > torque** that fights your own maneuver. **Deriving how the plume thins out.** Model the plume as gas expanding from the throat/exit into vacuum. Mass is conserved through spherical shells centered near the nozzle exit, so number density falls as $\propto 1/d^2$. The angular spread is captured by a **plume shape function** $f(\theta)$ peaked on the axis (often $\cos^k\theta$). Then the **local pressure / dynamic pressure** an impinged surface sees: $$P_{\rm imp}(d,\theta)\;\approx\; P_0\left(\frac{d_0}{d}\right)^{2} f(\theta),\qquad f(\theta)=\cos^{k}\theta.$$ - $d$ = distance from nozzle exit to the target patch. *Why $1/d^2$?* Same flux through ever-bigger spherical caps. - $\theta$ = angle off the plume centerline. *Why $\cos^k$?* Density is highest on axis and drops toward the edges of the cone; larger $k$ = tighter plume. **Impingement force & heat** on a patch of area $A$ tilted at angle $\alpha$ to the flow: $$F_{\rm imp}\approx P_{\rm imp}\,A\cos\alpha,\qquad \dot q_{\rm imp}\approx \tfrac12\rho v^3\, C_h\, f(\theta)\left(\tfrac{d_0}{d}\right)^2.$$ > [!formula] Plume impingement limit (the design constraint) > A thruster/attitude choice is **allowed** only if for **every** thruster $i$ that > fires and **every** sensitive surface $s$: > $$P_{\rm imp}(d_{is},\theta_{is}) \le P_{\max,s} > \quad\text{and}\quad \dot q_{\rm imp}(d_{is},\theta_{is}) \le \dot q_{\max,s}.$$ > Practically enforced as a **keep-out cone**: no sensitive surface may lie inside > each nozzle's half-angle $\theta_{\rm KO}$ within range $d_{\rm KO}$. **HOW this changes selection.** The optimizer's feasible set shrinks: some thrusters get **inhibited** (locked to $F_i=0$) whenever the geometry (e.g., panels deployed, another vehicle nearby during docking) would violate a limit. The LP now runs over the *remaining* thrusters — sometimes forcing a less efficient combination. ![[3.5.46-Reaction-control-system-—-thruster-selection,-plume-impingement-limits.png]] > [!example] Impingement rules out a docking thruster — worked > During docking, the target vehicle sits $d=2\,$m ahead along the $+x$ axis. A > forward thruster's plume centerline points straight at it ($\theta=0$). > Reference: $P_0=500\,$Pa at $d_0=0.1\,$m, panel limit $P_{\max}=1\,$Pa, $k=4$. > **Step 1** On-axis $f(0)=\cos^4 0=1$. *Why?* Worst case is dead-center. > **Step 2** $P_{\rm imp}=500\,(0.1/2)^2\cdot1=500\times0.0025=1.25\,$Pa. > **Step 3** $1.25>1.0\Rightarrow$ **violation**. That thruster is inhibited. > **Step 4** Selection must instead use **off-axis pairs** whose plumes clear the > target, accepting a small propellant penalty. *Why acceptable?* Hardware safety > outranks fuel efficiency. --- ## 5. Steel-manned mistakes > [!mistake] "More thrusters firing = more control authority, always fire all of them." > **Why it feels right:** more jets ⇒ more total thrust. **The flaw:** firing all of > them usually produces a wrench in the *wrong* direction (their torques partly > cancel or add unwanted force). Control authority is about *net* $\mathbf w$, not > total $\sum F_i$. **Fix:** select the *subset/combination* solving $B\mathbf f=\mathbf w_{\rm cmd}$. > [!mistake] "Plume force is negligible, ignore it." > **Why it feels right:** the exhaust is thin gas far from the nozzle. **The flaw:** > $1/d^2$ falloff means *close* surfaces (deployed panels, docking targets, the > ship's own belly) see large pressure; the resulting torque can exceed the > command. **Fix:** impose keep-out cones and treat impingement as a modeled > disturbance. > [!mistake] "One thruster gives a pure torque." > **Why it feels right:** offset thruster ⇒ torque, yes. **The flaw:** it *also* > gives net force $F\hat{\mathbf u}$ ⇒ the ship translates (drifts). **Fix:** use an > opposing **couple** so forces cancel and only torque remains. --- ## 6. Active recall > [!recall] Test yourself > - Write $B$ for one thruster. What are its two column-blocks? > - Why does one-sidedness ($F_i\ge0$) force redundant, opposing thrusters? > - Derive the pressure falloff exponent for an expanding plume. > - Why can plume impingement *increase* your propellant use? #flashcards/physics What is the thruster allocation equation? ::: $\mathbf w = B\mathbf f$, with $\mathbf f\ge0$; $B$'s columns are each thruster's unit wrench $[\hat{\mathbf u}_i;\ \mathbf r_i\times\hat{\mathbf u}_i]$. Why must a thruster's magnitude satisfy $F_i\ge0$? ::: A jet can only push (expel mass), never pull; reversing thrust requires an oppositely-mounted thruster. ::: What is a control couple? ::: Two equal opposite thruster forces that cancel net force but add torque, giving pure rotation with no drift. How does plume dynamic pressure fall with distance? ::: As $1/d^2$, from conservation of mass flux through expanding spherical shells into vacuum. What is $f(\theta)=\cos^k\theta$ in a plume model? ::: The angular shape function: density peaks on the centerline ($\theta=0$) and drops toward the cone edge; larger $k$ = narrower plume. State the plume impingement limit. ::: For every firing thruster and sensitive surface, $P_{\rm imp}\le P_{\max}$ and $\dot q_{\rm imp}\le\dot q_{\max}$; enforced as a keep-out cone. Why can impingement raise propellant use? ::: Inhibiting the most efficient thrusters forces a less-efficient allowed combination to hit the same commanded wrench. Objective of minimum-propellant selection? ::: Minimize $\sum_i F_i$ subject to $B\mathbf f=\mathbf w_{\rm cmd}$, $\mathbf f\ge0$. Why does firing all thrusters not maximize control? ::: Control depends on the NET wrench; opposing thrusters cancel, so many combinations give small or wrong-direction $\mathbf w$. > [!recall]- Feynman: explain to a 12-year-old > Imagine you're floating in space wearing a backpack full of tiny spray cans > pointing in different directions. To spin left, you spray the cans that push you > that way. If you spray two opposite cans equally, you *spin without floating off*. > But the spray shoots out as a cone of hot gas — if a can points right at your solar > "wings," the spray could melt them and even push you the wrong way. So you learn > which cans you're *allowed* to spray, and you use the fewest sprays to do the job. > [!mnemonic] Remember the RCS job > **"WRENCH, then FEWEST, then KEEP CLEAR."** > — hit the commanded **Wrench** ($B\mathbf f=\mathbf w$), use the **fewest** puffs > (min $\sum F_i$), and **keep the plume clear** of anything sensitive (keep-out cone). ## Connections - [[Attitude Dynamics — Euler's Equations]] (the torques $\boldsymbol\tau$ drive $\dot{\boldsymbol\omega}$) - [[Rocket Equation & Specific Impulse]] (why $\sum F_i$ ∝ propellant) - [[Cross Product & Rigid-Body Torque]] - [[Control Allocation & Pseudo-inverse]] - [[Rendezvous and Docking]] (where impingement limits bite hardest) - [[Rarefied Gas Dynamics / Plume Modeling]] ## 🖼️ Concept Map ```mermaid flowchart TD N3[Newtons third law] -->|basis for| RCS[Reaction Control System] RCS -->|cluster of| THR[Fixed thrusters] THR -->|each has| PARAMS[Position r_i, direction u_i, magnitude F_i] PARAMS -->|force| FORCE[F_i = F_i u_i] PARAMS -->|torque via cross product| TORQUE[tau_i = r_i x F_i] FORCE -->|stacked into| WRENCH[Wrench w = F, tau in R6] TORQUE -->|stacked into| WRENCH WRENCH -->|assembled by| BMAT[Influence matrix B, 6xN] BMAT -->|allocation w = B f| SELECT[Thruster selection] SELECT -->|constrained by| ONESIDED[One-sided f >= 0] SELECT -->|minimizes| PROP[Propellant use] SELECT -->|limited by| PLUME[Plume impingement limits] PLUME -->|protects| TARGETS[Solar panels, sensors, optics] ``` ## 🔊 Hinglish (regional understanding) > [!intuition]- Hinglish mein samjho > Dekho, space mein koi zameen ya hawa nahi hai jispe push kar sako. Toh spacecraft > apne aap ko ghumane ya thoda hilane ke liye chhote-chhote **thrusters** se gas bahar > phenkta hai, aur Newton ke third law se ulti taraf force milta hai. Har thruster ki > position $\mathbf r_i$ aur direction $\hat{\mathbf u}_i$ fixed hoti hai. Force milta > hai $F_i\hat{\mathbf u}_i$ aur torque milta hai $\mathbf r_i\times\mathbf F_i$. Sab > thrusters ko jodo toh **wrench** $\mathbf w=B\mathbf f$ ban jaata hai — yehi poori > game hai. Ek important baat: thruster sirf **push** kar sakta hai ($F_i\ge0$), pull > nahi, isliye ulti direction ke liye alag thruster chahiye. > > Thruster **selection** ka matlab hai: commanded wrench $\mathbf w_{\rm cmd}$ ko hit > karo, lekin **kam se kam propellant** kharch karke — yeh ek linear optimization hai > ($\min\sum F_i$). Ek smart trick hai **couple**: do opposite thrusters chalao, unke > forces cancel ho jaate hain lekin torque add ho jaata hai — pure rotation, bina drift > ke. Yaad rakho, saare thrusters ek saath chalane se control nahi badhta, kyunki net > wrench galat direction mein ja sakta hai. > > Ab asli twist: **plume impingement**. Nozzle se nikli hui hot gas cone ki tarah > faelti hai, aur uska pressure distance ke saath $1/d^2$ se girta hai ($P=P_0(d_0/d)^2 > \cos^k\theta$). Agar yeh gas solar panel ya docking ke time saamne wale vehicle pe > lag jaye, toh heat aur force damage kar sakta hai, aur wahi force tumhare maneuver ko > disturb bhi karta hai. Isliye **keep-out cone** banate hain — jo thruster kisi > sensitive cheez pe spray karega usko band (inhibit) kar dete hain. Iska matlab kabhi > kabhi thoda zyada fuel lagta hai, par hardware ki safety pehle. Bas yaad rakho: > **Wrench hit karo, fewest puffs use karo, plume ko clear rakho.** ![[audio/3.5.46-Reaction-control-system-—-thruster-selection,-plume-impingement-limits.mp3]]