Level 4 — ApplicationGuidance, Navigation & Control (GNC)

Guidance, Navigation & Control (GNC)

60 marksprintable — key stays hidden on paper

Level: 4 (Application — novel problems, no hints) Time: 60 minutes Total marks: 60

Answer all questions. Show full working. Use ...... / ...... for mathematics. Assume standard 3-2-1 Euler convention unless stated.


Question 1 — Attitude kinematics & quaternion propagation [12 marks]

A microsatellite spins about its body zz-axis at a constant rate ω=(0,0,Ω)T\omega = (0,\,0,\,\Omega)^\mathsf{T} rad/s. At t=0t=0 its attitude quaternion (scalar-first, body-to-inertial) is q(0)=(1,0,0,0)q(0) = (1,0,0,0).

(a) Write the quaternion kinematics q˙=12Ξ(q)ω\dot q = \tfrac12\,\Xi(q)\,\omega explicitly and reduce it to a scalar system in q0q_0 and q3q_3 only. [4]

(b) Solve for q(t)q(t) in closed form. [4]

(c) A star tracker requires the yaw angle ψ(t)\psi(t). Using the standard 3-2-1 quaternion-to-Euler relation, find ψ(t)\psi(t) and state the spin period in terms of Ω\Omega. [4]


Question 2 — TRIAD attitude determination [12 marks]

A spacecraft measures two unit vectors in its body frame: b1=(1,0,0)T,b2=12(0,1,1)T.\mathbf{b}_1 = (1,0,0)^\mathsf{T},\qquad \mathbf{b}_2 = \tfrac{1}{\sqrt2}(0,1,1)^\mathsf{T}. The corresponding inertial reference directions (Sun, magnetic field) are: r1=(0,0,1)T,r2=12(0,1,1)T.\mathbf{r}_1 = (0,0,1)^\mathsf{T},\qquad \mathbf{r}_2 = \tfrac{1}{\sqrt2}(0,1,1)^\mathsf{T}.

(a) Build the body triad {t1,t2,t3}\{\mathbf{t}_1,\mathbf{t}_2,\mathbf{t}_3\} and reference triad {s1,s2,s3}\{\mathbf{s}_1,\mathbf{s}_2,\mathbf{s}_3\} using b1,r1\mathbf{b}_1,\mathbf{r}_1 as the anchor directions. [6]

(b) Form the attitude matrix C=[t1t2t3][s1s2s3]TC = [\mathbf{t}_1\,\mathbf{t}_2\,\mathbf{t}_3][\mathbf{s}_1\,\mathbf{s}_2\,\mathbf{s}_3]^\mathsf{T} (body-from-inertial). [4]

(c) Verify CC is a valid rotation (detC=+1\det C = +1) and comment on why TRIAD discards information from the second measurement. [2]


Question 3 — Scalar Kalman filter update [12 marks]

A 1-D altitude estimate has prior mean x^=100\hat x^- = 100 m with variance P=9P^- = 9 m². A barometer gives a measurement z=106z = 106 m of the altitude directly (H=1H=1) with noise variance R=4R = 4 m².

(a) Derive the scalar Kalman gain KK that minimizes the posterior variance, and compute its value. [5]

(b) Compute the updated estimate x^+\hat x^+ and posterior variance P+P^+. [4]

(c) A second, independent barometer with the same R=4R=4 then reads z2=103z_2 = 103 m. Update again and give the new x^+,P+\hat x^+, P^+. Comment on the monotonic behaviour of PP. [3]


Question 4 — Controllability, pole placement & LQR [14 marks]

A single-axis reaction-wheel attitude plant is x˙=[0100]Ax+[01]Bu,x=(θ,θ˙)T.\dot{\mathbf{x}} = \underbrace{\begin{bmatrix} 0 & 1\\ 0 & 0\end{bmatrix}}_{A}\mathbf{x} + \underbrace{\begin{bmatrix}0\\1\end{bmatrix}}_{B}u,\qquad \mathbf{x}=(\theta,\dot\theta)^\mathsf{T}.

(a) Form the controllability matrix and show the system is controllable. [3]

(b) Using state feedback u=Kxu=-K\mathbf{x} with K=[k1k2]K=[k_1\,k_2], place the closed-loop poles at 2±j2-2\pm j2. Find k1,k2k_1,k_2. [5]

(c) For the LQR with Q=diag(1,0)Q=\mathrm{diag}(1,0), R=1R=1, write the algebraic Riccati equation ATP+PAPBR1BTP+Q=0A^\mathsf{T}P+PA-PBR^{-1}B^\mathsf{T}P+Q=0 for P=[p1p2p2p3]P=\begin{bmatrix}p_1&p_2\\p_2&p_3\end{bmatrix}, solve for the optimal gain K=R1BTPK^\ast = R^{-1}B^\mathsf{T}P, and state the resulting closed-loop poles. [6]


Question 5 — Proportional navigation intercept [10 marks]

An interceptor uses pure proportional navigation, commanded lateral acceleration ac=NVcλ˙a_c = N\,V_c\,\dot\lambda, with navigation constant N=4N=4. The closing velocity is Vc=1000V_c = 1000 m/s. At an instant the line-of-sight rate is measured as λ˙=0.02\dot\lambda = 0.02 rad/s.

(a) Compute the commanded acceleration and express it in gg (g=9.81g=9.81 m/s²). [3]

(b) Explain physically why PN drives λ˙0\dot\lambda \to 0, and what an increasing λ˙\dot\lambda implies about the engagement. [3]

(c) The target now manoeuvres with constant lateral acceleration aT=30a_T = 30 m/s². State the augmented PN (APN) command law and compute the extra acceleration term it adds. State one practical limit on achievable aca_c. [4]

Answer keyMark scheme & solutions

Question 1

(a) [4] For scalar-first, body-rate quaternion kinematics: q˙=12[q1q2q3q0q3q2q3q0q1q2q1q0][00Ω]=Ω2[q3q2q1q0].\dot q = \tfrac12\begin{bmatrix} -q_1 & -q_2 & -q_3\\ q_0 & -q_3 & q_2\\ q_3 & q_0 & -q_1\\ -q_2 & q_1 & q_0\end{bmatrix}\begin{bmatrix}0\\0\\\Omega\end{bmatrix} = \tfrac{\Omega}{2}\begin{bmatrix}-q_3\\ q_2\\ -q_1\\ q_0\end{bmatrix}. [2] With q1=q2=0q_1=q_2=0 initially, q˙1=q˙2=0\dot q_1=\dot q_2=0, so they stay zero. Remaining system: q˙0=Ω2q3,q˙3=Ω2q0.\dot q_0 = -\tfrac{\Omega}{2}q_3,\qquad \dot q_3 = \tfrac{\Omega}{2}q_0. [2]

(b) [4] This is harmonic with frequency Ω/2\Omega/2. With q0(0)=1,q3(0)=0q_0(0)=1,q_3(0)=0: q0(t)=cos ⁣(Ωt2),q3(t)=sin ⁣(Ωt2).q_0(t)=\cos\!\big(\tfrac{\Omega t}{2}\big),\quad q_3(t)=\sin\!\big(\tfrac{\Omega t}{2}\big). So q(t)=(cosΩt2,0,0,sinΩt2)q(t)=\big(\cos\tfrac{\Omega t}{2},\,0,\,0,\,\sin\tfrac{\Omega t}{2}\big). [2] (This is exactly the axis-angle quaternion for rotation angle Ωt\Omega t about zz.) [2]

(c) [4] For a pure zz-rotation, yaw: ψ=atan2 ⁣(2(q0q3+q1q2),12(q22+q32))=atan2(2q0q3,12q32).\psi = \operatorname{atan2}\!\big(2(q_0q_3+q_1q_2),\,1-2(q_2^2+q_3^2)\big) = \operatorname{atan2}(2q_0q_3,\,1-2q_3^2). Substitute: 2q0q3=2cosΩt2sinΩt2=sinΩt2q_0q_3=2\cos\tfrac{\Omega t}{2}\sin\tfrac{\Omega t}{2}=\sin\Omega t; 12sin2Ωt2=cosΩt1-2\sin^2\tfrac{\Omega t}{2}=\cos\Omega t. [2] ψ(t)=atan2(sinΩt,cosΩt)=Ωt.\psi(t)=\operatorname{atan2}(\sin\Omega t,\cos\Omega t)=\Omega t. Spin period T=2π/ΩT = 2\pi/\Omega. [2]


Question 2

(a) [6] Anchor with vector 1. Body triad:

  • t1=b1=(1,0,0)\mathbf{t}_1=\mathbf{b}_1=(1,0,0).
  • t2=b1×b2\mathbf{t}_2=\dfrac{\mathbf{b}_1\times\mathbf{b}_2}{|\cdot|}. b1×b2=(1,0,0)×12(0,1,1)=12(0101,  0011,  1100)=12(0,1,1)\mathbf{b}_1\times\mathbf{b}_2=(1,0,0)\times\tfrac1{\sqrt2}(0,1,1)=\tfrac1{\sqrt2}(0\cdot1-0\cdot1,\;0\cdot0-1\cdot1,\;1\cdot1-0\cdot0)=\tfrac1{\sqrt2}(0,-1,1). Magnitude =1=1, so t2=12(0,1,1)\mathbf{t}_2=\tfrac1{\sqrt2}(0,-1,1). [2]
  • t3=t1×t2=(1,0,0)×12(0,1,1)=12(0,1,1)\mathbf{t}_3=\mathbf{t}_1\times\mathbf{t}_2=(1,0,0)\times\tfrac1{\sqrt2}(0,-1,1)=\tfrac1{\sqrt2}(0,-1,-1). [1]

Reference triad:

  • s1=r1=(0,0,1)\mathbf{s}_1=\mathbf{r}_1=(0,0,1).
  • r1×r2=(0,0,1)×12(0,1,1)=12(0111,  1001,  0100)=12(1,0,0)\mathbf{r}_1\times\mathbf{r}_2=(0,0,1)\times\tfrac1{\sqrt2}(0,1,1)=\tfrac1{\sqrt2}(0\cdot1-1\cdot1,\;1\cdot0-0\cdot1,\;0\cdot1-0\cdot0)=\tfrac1{\sqrt2}(-1,0,0). Magnitude 1 → s2=12(1,0,0)=(1,0,0)\mathbf{s}_2=\tfrac1{\sqrt2}(-1,0,0)=(-1,0,0). [2]
  • s3=s1×s2=(0,0,1)×(1,0,0)=(0010,  1(1)00,  0)=(0,1,0)\mathbf{s}_3=\mathbf{s}_1\times\mathbf{s}_2=(0,0,1)\times(-1,0,0)=(0\cdot0-1\cdot0,\;1\cdot(-1)-0\cdot0,\;0)=(0,-1,0). [1]

(b) [4] C=[t1t2t3][s1s2s3]T=itisiTC=[\mathbf t_1\,\mathbf t_2\,\mathbf t_3][\mathbf s_1\,\mathbf s_2\,\mathbf s_3]^\mathsf T=\sum_i \mathbf t_i\mathbf s_i^\mathsf T.

t1s1T=(1,0,0)T(0,0,1)=[001000000]\mathbf t_1\mathbf s_1^\mathsf T=(1,0,0)^\mathsf T(0,0,1)=\begin{bmatrix}0&0&1\\0&0&0\\0&0&0\end{bmatrix}

t2s2T=12(0,1,1)T(1,0,0)=[00012001200]\mathbf t_2\mathbf s_2^\mathsf T=\tfrac1{\sqrt2}(0,-1,1)^\mathsf T(-1,0,0)=\begin{bmatrix}0&0&0\\ \tfrac1{\sqrt2}&0&0\\ -\tfrac1{\sqrt2}&0&0\end{bmatrix}

t3s3T=12(0,1,1)T(0,1,0)=[00001200120]\mathbf t_3\mathbf s_3^\mathsf T=\tfrac1{\sqrt2}(0,-1,-1)^\mathsf T(0,-1,0)=\begin{bmatrix}0&0&0\\0&\tfrac1{\sqrt2}&0\\0&\tfrac1{\sqrt2}&0\end{bmatrix}

Sum: C=[0011212012120].C=\begin{bmatrix}0&0&1\\[2pt] \tfrac1{\sqrt2}&\tfrac1{\sqrt2}&0\\[2pt] -\tfrac1{\sqrt2}&\tfrac1{\sqrt2}&0\end{bmatrix}. [4]

(c) [2] detC\det C: expand along column 3 → 1(121212(12))=1(12+12)=11\cdot\big(\tfrac1{\sqrt2}\cdot\tfrac1{\sqrt2}-\tfrac1{\sqrt2}\cdot(-\tfrac1{\sqrt2})\big)=1\cdot(\tfrac12+\tfrac12)=1. Valid proper rotation. [1] TRIAD uses vector 2 only to define the plane (via cross products); its component along t1/s1\mathbf{t}_1/\mathbf{s}_1 is discarded, so measurement-2 noise is only partially used — hence it is not optimal (unlike QUEST/Davenport). [1]


Question 3

(a) [5] Posterior variance for gain KK: P+=(1KH)2P+K2RP^+=(1-KH)^2P^-+K^2R. Minimize dP+dK=0\frac{dP^+}{dK}=0: 2H(1KH)P+2KR=0K=PHH2P+R.-2H(1-KH)P^-+2KR=0\Rightarrow K=\frac{P^-H}{H^2P^-+R}. [3] With H=1H=1: K=99+4=9130.6923.K=\dfrac{9}{9+4}=\dfrac{9}{13}\approx0.6923. [2]

(b) [4] x^+=x^+K(zHx^)=100+913(106100)=100+5413=104.1538\hat x^+=\hat x^-+K(z-H\hat x^-)=100+\tfrac{9}{13}(106-100)=100+\tfrac{54}{13}=104.1538 m. [2] P+=(1K)P=(1913)9=4139=36132.769P^+=(1-K)P^-=(1-\tfrac9{13})\cdot9=\tfrac{4}{13}\cdot9=\tfrac{36}{13}\approx2.769 m². [2]

(c) [3] Now prior P=36/132.769P^-=36/13\approx2.769, R=4R=4. K2=36/1336/13+4=3636+52=3688=0.4091K_2=\dfrac{36/13}{36/13+4}=\dfrac{36}{36+52}=\dfrac{36}{88}=0.4091. [1] x^+=104.1538+0.4091(103104.1538)=104.15380.4720=103.682\hat x^+=104.1538+0.4091(103-104.1538)=104.1538-0.4720=103.682 m. [1] P+=(10.4091)2.769=1.636P^+=(1-0.4091)\cdot2.769=1.636 m². Variance decreases monotonically with each independent measurement — information is additive, never lost. [1]


Question 4

(a) [3] C=[B  AB]\mathcal C=[B\;AB]. AB=[0100][01]=[10]AB=\begin{bmatrix}0&1\\0&0\end{bmatrix}\begin{bmatrix}0\\1\end{bmatrix}=\begin{bmatrix}1\\0\end{bmatrix}. C=[0110]\mathcal C=\begin{bmatrix}0&1\\1&0\end{bmatrix}, det=10\det=-1\neq0 → rank 2 → controllable. [3]

(b) [5] ABK=[01k1k2]A-BK=\begin{bmatrix}0&1\\-k_1&-k_2\end{bmatrix}. Characteristic: s2+k2s+k1=0s^2+k_2 s+k_1=0. [2] Desired poles 2±j2-2\pm j2: (s+2)2+4=s2+4s+8(s+2)^2+4=s^2+4s+8. Match: k2=4,  k1=8k_2=4,\;k_1=8. So K=[8  4]K=[8\;4]. [3]

(c) [6] ARE terms with R1BTP=[p2  p3]R^{-1}B^\mathsf T P = [p_2\;p_3] (since BTP=[p2p3]B^\mathsf T P=[p_2\,p_3]). ATP+PA=[0010][p1p2p2p3]+[p1p2p2p3][0100]=[0p1p12p2].A^\mathsf T P+PA=\begin{bmatrix}0&0\\1&0\end{bmatrix}\begin{bmatrix}p_1&p_2\\p_2&p_3\end{bmatrix}+\begin{bmatrix}p_1&p_2\\p_2&p_3\end{bmatrix}\begin{bmatrix}0&1\\0&0\end{bmatrix}=\begin{bmatrix}0&p_1\\p_1&2p_2\end{bmatrix}. PBR1BTP=[p2p3][p2  p3]=[p22p2p3p2p3p32].PBR^{-1}B^\mathsf TP=\begin{bmatrix}p_2\\p_3\end{bmatrix}[p_2\;p_3]=\begin{bmatrix}p_2^2&p_2p_3\\p_2p_3&p_3^2\end{bmatrix}. Equations (add QQ):

  • (1,1): p22+1=0p2=1-p_2^2+1=0\Rightarrow p_2=1 (take p2>0p_2>0).
  • (1,2): p1p2p3=0p1=p3p_1-p_2p_3=0\Rightarrow p_1=p_3.
  • (2,2): 2p2p32=0p32=2p3=22p_2-p_3^2=0\Rightarrow p_3^2=2\Rightarrow p_3=\sqrt2 (positive for PD). [3]

K=[p2  p3]=[1  2][1  1.414]K^\ast=[p_2\;p_3]=[1\;\sqrt2]\approx[1\;1.414]. [2] Closed loop: ABK=[0112]A-BK^\ast=\begin{bmatrix}0&1\\-1&-\sqrt2\end{bmatrix}; char $