Level 2 — RecallGuidance, Navigation & Control (GNC)

Guidance, Navigation & Control (GNC)

30 minutes50 marksprintable — key stays hidden on paper

Level: 2 — Recall (definitions, standard problems, short derivations) Time limit: 30 minutes Total marks: 50


Q1. State the definition of a unit quaternion q=(q0,q1,q2,q3)q=(q_0,q_1,q_2,q_3) and write the constraint it must satisfy. If q=(0.5,0.5,0.5,c)q=(0.5,\,0.5,\,0.5,\,c) with c>0c>0, find cc. (4 marks)

Q2. Explain what gimbal lock is in the context of Euler angles using the 3-2-1 convention. At what pitch angle θ\theta does it occur, and physically what is lost? (5 marks)

Q3. For the 3-2-1 (yaw–pitch–roll) Euler sequence, the direction cosine matrix is C=R1(ϕ)R2(θ)R3(ψ)C = R_1(\phi)\,R_2(\theta)\,R_3(\psi). Write the elementary rotation matrix R3(ψ)R_3(\psi) about the 3-axis. (4 marks)

Q4. State the DCM kinematic equation and identify each symbol. Given angular velocity ω=(ω1,ω2,ω3)T\omega=(\omega_1,\omega_2,\omega_3)^T, write out the skew-symmetric matrix [ω×][\omega\times]. (5 marks)

Q5. Write the standard state-space representation of a linear time-invariant system. Define each matrix (A,B,C,DA,B,C,D) and state which quantity determines system stability. (5 marks)

Q6. A PID controller has output u(t)=Kpe+Ki ⁣edt+Kde˙u(t)=K_p e + K_i\!\int e\,dt + K_d \dot e. Name each of the three terms and briefly state what each contributes to closed-loop behaviour. (6 marks)

Q7. For proportional navigation guidance, state the guidance law equation and define each symbol. Give a typical value range for the navigation constant NN. (5 marks)

Q8. A continuous-time system x˙=Ax\dot x = Ax has A=(2005)A=\begin{pmatrix}-2 & 0\\ 0 & -5\end{pmatrix}. State its eigenvalues and determine whether the system is stable. Justify. (4 marks)

Q9. Write the Kalman filter predict step equations (state and covariance propagation) for the linear model xk+1=Fxk+wkx_{k+1}=Fx_k+w_k, wkN(0,Q)w_k\sim\mathcal N(0,Q). Define each symbol. (6 marks)

Q10. Define GPS pseudorange and explain in one sentence why it differs from true geometric range. State the minimum number of satellites needed for a 3-D position fix and why. (6 marks)


End of paper

Answer keyMark scheme & solutions

Q1. (4 marks)

  • A unit quaternion represents attitude: q=(q0,q1,q2,q3)q=(q_0,q_1,q_2,q_3) with scalar part q0q_0 and vector part (q1,q2,q3)(q_1,q_2,q_3). (1)
  • Constraint: q02+q12+q22+q32=1q_0^2+q_1^2+q_2^2+q_3^2=1. (1)
  • With q=(0.5,0.5,0.5,c)q=(0.5,0.5,0.5,c): 0.25+0.25+0.25+c2=1c2=0.250.25+0.25+0.25+c^2=1\Rightarrow c^2=0.25. (1)
  • c=0.5c=0.5 (positive root). (1) Why: attitude quaternions must lie on the unit 3-sphere to represent a pure rotation.

Q2. (5 marks)

  • Gimbal lock is the loss of one rotational degree of freedom when two of the three Euler rotation axes align. (2)
  • In 3-2-1 convention it occurs at pitch θ=±90\theta=\pm90^\circ. (1)
  • At this point the roll and yaw axes become parallel, so roll and yaw produce the same motion. (1)
  • The DCM-to-Euler inversion becomes singular (division by cosθ=0\cos\theta=0), only ϕ±ψ\phi\pm\psi is defined. (1)

Q3. (4 marks) R3(ψ)=(cosψsinψ0sinψcosψ0001)R_3(\psi)=\begin{pmatrix}\cos\psi & \sin\psi & 0\\ -\sin\psi & \cos\psi & 0\\ 0 & 0 & 1\end{pmatrix}

  • Correct 2×2 rotation block (2), correct sign convention (rotating reference→body, active-passive) (1), third row/column identity (1).

Q4. (5 marks)

  • Kinematic equation: C˙=[ω×]C\dot C = -[\omega\times]\,C. (2) (CC = DCM inertial→body, ω\omega = body angular velocity)
  • Skew matrix: (3) [ω×]=(0ω3ω2ω30ω1ω2ω10)[\omega\times]=\begin{pmatrix}0 & -\omega_3 & \omega_2\\ \omega_3 & 0 & -\omega_1\\ -\omega_2 & \omega_1 & 0\end{pmatrix}

Q5. (5 marks)

  • x˙=Ax+Bu\dot x = Ax + Bu,   y=Cx+Du\;y = Cx + Du. (2)
  • AA = system/dynamics matrix, BB = input matrix, CC = output matrix, DD = feedthrough matrix. (2)
  • Stability determined by eigenvalues of AA (all with negative real part ⇒ stable). (1)

Q6. (6 marks)

  • Proportional KpeK_p e: acts on present error; increases speed of response, reduces (not eliminates) steady-state error. (2)
  • Integral KiedtK_i\int e\,dt: acts on accumulated past error; eliminates steady-state error but can add lag/overshoot. (2)
  • Derivative Kde˙K_d\dot e: acts on rate of change (predictive); adds damping, reduces overshoot, sensitive to noise. (2)

Q7. (5 marks)

  • Law: ac=NVcλ˙a_c = N\,V_c\,\dot\lambda (commanded lateral acceleration). (2)
  • NN = navigation constant, VcV_c = closing velocity, λ˙\dot\lambda = line-of-sight (LOS) rate. (2)
  • Typical N[3,5]N\in[3,5]. (1)

Q8. (4 marks)

  • Diagonal matrix ⇒ eigenvalues λ1=2\lambda_1=-2, λ2=5\lambda_2=-5. (2)
  • Both have negative real part. (1)
  • Therefore the system is (asymptotically) stable. (1)

Q9. (6 marks)

  • State prediction: x^k+1=Fx^k+\hat x_{k+1}^- = F\hat x_k^+. (2)
  • Covariance prediction: Pk+1=FPk+FT+QP_{k+1}^- = F P_k^+ F^T + Q. (2)
  • Symbols: FF = state transition matrix, PP = state error covariance, QQ = process noise covariance, superscript - = a-priori (predicted), ++ = a-posteriori (updated). (2)

Q10. (6 marks)

  • Pseudorange = measured distance from receiver to satellite computed as c×c\times(signal travel time) using receiver clock. (2)
  • It differs from geometric range because of the unknown receiver clock bias (and atmospheric delays). (2)
  • Minimum 4 satellites: 3 for the position coordinates (x,y,z)(x,y,z) plus 1 to solve for the receiver clock bias. (2)
[
  {"claim":"Unit quaternion c=0.5 for q=(0.5,0.5,0.5,c)","code":"c=sqrt(1-3*Rational(1,4)); result = (c==Rational(1,2))"},
  {"claim":"Eigenvalues of diag(-2,-5) are -2,-5 and stable","code":"A=Matrix([[-2,0],[0,-5]]); ev=list(A.eigenvals().keys()); result = (set(ev)=={-2,-5}) and all(re(e)<0 for e in ev)"},
  {"claim":"Skew matrix times own axis vector is zero (omega x omega =0)","code":"w1,w2,w3=symbols('w1 w2 w3'); S=Matrix([[0,-w3,w2],[w3,0,-w1],[-w2,w1,0]]); w=Matrix([w1,w2,w3]); result = simplify(S*w)==zeros(3,1)"},
  {"claim":"R3(psi) is orthogonal with determinant 1","code":"p=symbols('psi'); R=Matrix([[cos(p),sin(p),0],[-sin(p),cos(p),0],[0,0,1]]); result = simplify(R.det())==1 and simplify(R*R.T)==eye(3)"}
]