Exercises: Guidance, Navigation, and Control
Work these with a calculator. Use $c = 3.0\times10^{5}\ \text{km/s}$ for the speed of light and
$g_0 = 9.81\ \text{m/s}^2$ where needed. Difficulty: ⭐ foundational, ⭐⭐ intermediate, ⭐⭐⭐ challenging.
Worked solutions to the daggered (†) and odd-numbered problems are in the appendix
answers-to-selected.md — try each one cold before you peek. For the "implement it" problems, do not run
the code: hand-trace it and record the result in an # Expected output: comment, exactly as the chapter
does. Recall that the Kalman scalar update
($K = \sigma_{\text{pred}}^2/(\sigma_{\text{pred}}^2+\sigma_{\text{meas}}^2)$,
$\hat{x}^+ = \hat{x}^- + K(z-\hat{x}^-)$, $(\sigma^+)^2 = (1-K)\sigma_{\text{pred}}^2$) is defined in
Chapter 13; you use it here.
Part A — Warm-ups: calculate it (⭐)
27.1 † A navigation filter predicts an altitude with variance $\sigma_{\text{pred}}^2 = 9\ \text{m}^2$ and receives a radar measurement with variance $\sigma_{\text{meas}}^2 = 3\ \text{m}^2$. If the prediction is $\hat{x}^- = 100\ \text{m}$ and the measurement is $z = 112\ \text{m}$, compute the Kalman gain $K$, the updated estimate $\hat{x}^+$, and the updated standard deviation $\sigma^+$.
27.2 A PID controller has $K_p = 2$, $K_i = 0.5$, $K_d = 1$, and time step $\Delta t = 1\ \text{s}$. At the current step the error is $e = 4$, the previous error was $5$, and the running error-integral before this step is $\sum e\,\Delta t = 6$. Compute the controller output $u$ (add the current error to the integral first, as the discrete law does).
27.3 † An upper stage must reach $8{,}000\ \text{m/s}$; navigation reports $7{,}100\ \text{m/s}$. The stage masses $40{,}000\ \text{kg}$, thrusts $F = 800{,}000\ \text{N}$, and has $v_e = 3{,}400\ \text{m/s}$. Find the velocity-to-be-gained, the naive constant-acceleration cutoff time, and the rocket-equation cutoff time. Which is shorter, and why?
27.4 An engine of thrust $F = 1{,}000{,}000\ \text{N}$ can gimbal $\delta = 4^{\circ}$, mounted $L = 10\ \text{m}$ from the center of mass. What control torque can it produce? (Use $\sin 4^{\circ} = 0.0698$.)
27.5 † A spacecraft is $3.0\times10^{8}\ \text{km}$ from Earth. Compute the one-way and round-trip light-time in minutes. If an event onboard lasts $7\ \text{minutes}$, can the ground possibly react to its start before it ends? Justify.
27.6 A reaction-wheel attitude loop runs at $50\ \text{Hz}$. What is its time step $\Delta t$ in milliseconds? Using the rough rule "the loop should run at least $10\times$ the fastest disturbance frequency," is it fast enough to control a $5\ \text{Hz}$ slosh disturbance?
Part B — The PID loop and stability (⭐⭐)
27.7 † Hand-trace a proportional-only pointing loop with $K_p = 0.4$ against a constant disturbance $w = +1^{\circ}$ per step, model $\theta_{n+1} = \theta_n + (K_p e_n + w)$ with $e_n = -\theta_n$, starting at $\theta_0 = 0$. Compute $\theta_1$ through $\theta_4$, and find the steady-state droop $\theta_{ss}$ analytically.
27.8 Repeat 27.7 but add an integral term with $K_i = 0.4$ (command $u_n = K_p e_n + K_i\sum_{k\le n} e_k$). Trace three steps and describe qualitatively what the integral term does to the droop you found in 27.7.
27.9 † The discrete proportional loop of 27.7 (with the disturbance folded in) reduces to $\theta_{n+1} = (1 - K_p)\theta_n + 1$. For what range of $K_p$ is this loop stable? What value gives the fastest, non-oscillatory settling, and what happens at $K_p = 2$ and $K_p > 2$?
27.10 A derivative term computes $K_d\,(e_n - e_{n-1})/\Delta t$ with $K_d = 2$ and $\Delta t = 0.5$. For the error sequence $e = 5, 3, 2, 1.5$, compute the derivative term at the second, third, and fourth samples. What does the shrinking magnitude tell you about the loop's approach to its setpoint?
27.11 † An actuator saturates at $u_{\max} = 5$. A controller with $K_p = 1$, $K_i = 1$, $\Delta t = 1$ holds against a stuck error $e = 3$ for four steps while saturated. Tabulate the running integral and the unclipped commanded $u$ at each step, then explain "integral windup" and why it delays recovery when the error finally clears.
Part C — Implement it in Python (⭐⭐)
Write each function, then hand-trace it and record the result in an # Expected output: comment. Do not
run it.
27.12 † Write kalman_step(x, var, Q, z, R) that first predicts (grows the variance by process noise
Q, leaving x unchanged) then updates with measurement z of variance R, returning
(x_new, var_new, K). Trace it for kalman_step(500.0, 16.0, 9.0, 530.0, 4.0).
27.13 Write a PID(kp, ki, kd, dt) class with a step(error) method, and drive a proportional-only
pointing loop ($K_p = 0.5$, disturbance $+1$/step, start at $0$) for five steps as in §27.4. Give the list
of angles as expected output.
27.14 † Write cutoff_time(v_target, v_now, F, m, ve) that returns the rocket-equation time-to-cutoff.
Trace it for cutoff_time(7800, 7200, 600000, 30000, 3400) (the chapter's worked example).
Part D — Find the error (⭐⭐)
27.15 † A student writes: "The proportional loop droops to $\theta_{ss} = -1/K_p$, so to remove the droop I will simply set $K_p$ very large — say $K_p = 5$." Using the discrete model of 27.9, show what actually happens, and state the correct cure for droop.
27.16 An operations plan reads: "During Mars entry, descent, and landing, mission control will monitor telemetry and command the parachute deploy and engine ignition in real time." Identify the physical impossibility, with numbers, and state what the plan must say instead.
Part E — Design it (⭐⭐ / ⭐⭐⭐)
27.17 † (Mission project) Write the four-line GN&C approach note for your mission (Track A/B/C/D): navigation (sensors + estimator), guidance (targeting method), control (stabilization + actuators + pointing requirement), and autonomy (level, argued from light-time). Save it to your MDR.
27.18 Your vehicle faces a worst-case disturbance torque of $4\times10^{5}\ \text{N·m}$. Its engine thrusts $F = 900{,}000\ \text{N}$ on a moment arm $L = 11\ \text{m}$. What minimum gimbal angle $\delta$ gives a control authority ratio of at least $3$ (control torque $\ge 3\times$ disturbance)? Is that within a typical $\pm 8^{\circ}$ gimbal range?
27.19 † A space telescope requires pointing knowledge of $2\ \text{arcseconds}$ and pointing stability far tighter than a comsat's. Choose a sensor-and-actuator suite for it from Chapter 14's menu, and justify each choice in one sentence. Which sensor sets the knowledge, and which actuator family avoids the jitter of thrusters?
Part F — Back of the envelope & "why can't you just…" (⭐⭐⭐)
27.20 † Why can't you just navigate on the IMU alone, skipping star trackers and GNSS? Frame your answer in terms of what an IMU measures and what integration does to its errors.
27.21 Why can't you just use a proportional controller for everything — it is simplest? Name the two failings it has and the PID terms that fix each.
27.22 † A launch vehicle has a propellant-slosh disturbance near $1\ \text{Hz}$ and a first structural bending mode near $3\ \text{Hz}$. Estimate the minimum rate its attitude control loop should run at, and explain why running too fast (into the bending mode) can be as dangerous as running too slow.
27.23 Why can't you just fly the whole ascent on a stored, pre-computed pitch-and-throttle program (open-loop), given a perfectly optimized trajectory? Name three disturbances the open-loop plan cannot handle and the one thing that can.
Part G — Interleaved & synthesis (⭐⭐ / ⭐⭐⭐)
27.24 † (Ch. 13) Two independent estimates of a range are $100\ \text{km}$ (variance $16$) and $106\ \text{km}$ (variance $9$). Fuse them with the scalar Kalman update (treat the first as the prediction, the second as the measurement). Find $K$, the fused estimate, and the fused variance, and confirm the fused variance is smaller than both inputs via inverse-variance addition.
27.25 (Ch. 14) After a burn, a three-axis satellite holds attitude on reaction wheels against a steady $1\times10^{-4}\ \text{N·m}$ disturbance torque; each wheel stores up to $4\ \text{N·m·s}$. How long until a wheel saturates, and what must the vehicle do before then? Which chapter's actuator performs it?
27.26 † (Ch. 3, Ch. 16 synthesis) A stage with $F = 700{,}000\ \text{N}$, $v_e = 3{,}200\ \text{m/s}$, and current mass $35{,}000\ \text{kg}$ must gain $v_{\text{go}} = 500\ \text{m/s}$. Find the cutoff time. Then answer: does thrust $F$ appear anywhere in the rocket equation itself, and if not, what role does it play in when cutoff occurs?
Solutions to † and odd-numbered exercises are in appendices/answers-to-selected.md. Reference code for
the "implement it" problems is in code/exercise-solutions.py. For design problems, the rubric rewards:
correct identification of the loop element (N/G/C), explicit units, a sanity check on every number, and —
for autonomy questions — an argument grounded in light-time.