Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Bilinear Tangent Steering Law for Fixed-Time Ascent

This section develops an analytical optimal control solution for a fixed-time planar steering problem. The objective is to steer an accelerating object from the origin to a prescribed terminal altitude while maximizing its terminal horizontal velocity and forcing the terminal vertical velocity to zero.

The example illustrates several central ideas:

Problem Statement

Consider the planar dynamics

x˙=u,y˙=v,u˙=acos⁡β,v˙=asin⁡β,\begin{aligned} \dot{x} &= u,\\ \dot{y} &= v,\\ \dot{u} &= a\cos\beta,\\ \dot{v} &= a\sin\beta, \end{aligned}

where:

The final time TT is fixed.

The initial conditions are

x(0)=0,y(0)=0,u(0)=0,v(0)=0.x(0)=0,\qquad y(0)=0,\qquad u(0)=0,\qquad v(0)=0.

The terminal conditions are

y(T)=H,v(T)=0.y(T)=H, \qquad v(T)=0.

The terminal horizontal position x(T)x(T) and terminal horizontal velocity u(T)u(T) are free.

The objective is

max⁡β(⋅)u(T).\max_{\beta(\cdot)} u(T).

Equivalently,

min⁡β(⋅)Φ=−u(T).\boxed{ \min_{\beta(\cdot)} \Phi=-u(T). }

Physical Interpretation

The acceleration vector has constant magnitude aa and direction β\beta:

a=a[cos⁡βsin⁡β].\boldsymbol{a} = a \begin{bmatrix} \cos\beta\\ \sin\beta \end{bmatrix}.

Thus, the control does not independently choose horizontal and vertical acceleration. It chooses the direction of a vector whose magnitude is fixed.

The terminal constraint

v(T)=0v(T)=0

requires the final velocity to be horizontal.

Hamiltonian

Since there is no running cost,

L=0.L=0.

The Hamiltonian is

H=λxu+λyv+λuacos⁡β+λvasin⁡β.\begin{aligned} \mathcal{H} &= \lambda_x u + \lambda_y v + \lambda_u a\cos\beta + \lambda_v a\sin\beta. \end{aligned}

Therefore,

H=λxu+λyv+aλucos⁡β+aλvsin⁡β.\boxed{ \mathcal{H} = \lambda_x u + \lambda_y v + a\lambda_u\cos\beta + a\lambda_v\sin\beta. }

Costate Equations

The costate equations are

λ˙x=−∂H∂x=0,λ˙y=−∂H∂y=0,λ˙u=−∂H∂u=−λx,λ˙v=−∂H∂v=−λy.\begin{aligned} \dot{\lambda}_x &= -\frac{\partial\mathcal{H}}{\partial x} = 0,\\ \dot{\lambda}_y &= -\frac{\partial\mathcal{H}}{\partial y} = 0,\\ \dot{\lambda}_u &= -\frac{\partial\mathcal{H}}{\partial u} = -\lambda_x,\\ \dot{\lambda}_v &= -\frac{\partial\mathcal{H}}{\partial v} = -\lambda_y. \end{aligned}

Hence,

λx(t)=c1,λy(t)=c2,λu(t)=−c1t+c3,λv(t)=−c2t+c4.\begin{aligned} \lambda_x(t)&=c_1,\\ \lambda_y(t)&=c_2,\\ \lambda_u(t)&=-c_1t+c_3,\\ \lambda_v(t)&=-c_2t+c_4. \end{aligned}

Optimal Control Condition

For an interior solution,

∂H∂β=0.\frac{\partial\mathcal{H}}{\partial\beta}=0.

Therefore,

−aλusin⁡β+aλvcos⁡β=0.-a\lambda_u\sin\beta + a\lambda_v\cos\beta = 0.

Assuming λu≠0\lambda_u\neq0,

λvcos⁡β=λusin⁡β.\lambda_v\cos\beta = \lambda_u\sin\beta.

Thus,

tan⁡β=λvλu.\boxed{ \tan\beta = \frac{\lambda_v}{\lambda_u}. }

Using the costate expressions,

tan⁡β(t)=−c2t+c4−c1t+c3.\boxed{ \tan\beta(t) = \frac{-c_2t+c_4} {-c_1t+c_3}. }

The right-hand side is a linear function divided by another linear function.

Transversality Conditions

The terminal cost is

Φ=−u(T).\Phi=-u(T).

The terminal constraints are

ψ1=y(T)−H=0,ψ2=v(T)=0.\begin{aligned} \psi_1 &= y(T)-H=0,\\ \psi_2 &= v(T)=0. \end{aligned}

Introduce terminal multipliers νy\nu_y and νv\nu_v. The transversality condition is

λ(T)=∂Φ∂x(T)+(∂ψ∂x(T))Tν.\boldsymbol{\lambda}(T) = \frac{\partial\Phi}{\partial\boldsymbol{x}(T)} + \left( \frac{\partial\boldsymbol{\psi}}{\partial\boldsymbol{x}(T)} \right)^{\mathsf{T}} \boldsymbol{\nu}.

Therefore,

λx(T)=0,λy(T)=νy,λu(T)=−1,λv(T)=νv.\begin{aligned} \lambda_x(T)&=0,\\ \lambda_y(T)&=\nu_y,\\ \lambda_u(T)&=-1,\\ \lambda_v(T)&=\nu_v. \end{aligned}

Since λx\lambda_x is constant,

λx(t)≡0.\boxed{ \lambda_x(t)\equiv0. }

Therefore,

c1=0.c_1=0.

Then

λu(t)=c3.\lambda_u(t)=c_3.

Since

λu(T)=−1,\lambda_u(T)=-1,

we obtain

λu(t)≡−1.\boxed{ \lambda_u(t)\equiv-1. }

The control law becomes

tan⁡β=−λv.\tan\beta = -\lambda_v.

Since

λv=−c2t+c4,\lambda_v=-c_2t+c_4,

we have

tan⁡β=c2t−c4.\tan\beta = c_2t-c_4.

Define constants

c=−c2,tan⁡β0=−c4.c=-c_2, \qquad \tan\beta_0=-c_4.

Then

tan⁡β(t)=tan⁡β0−ct.\boxed{ \tan\beta(t) = \tan\beta_0-ct. }

This is the linear tangent steering law.

Control Reconstruction

Let

q(t)=tan⁡β(t)=q0−ct,q(t)=\tan\beta(t)=q_0-ct,

where

q0=tan⁡β0.q_0=\tan\beta_0.

Then

cos⁡β=11+q2,sin⁡β=q1+q2.\begin{aligned} \cos\beta &= \frac{1}{\sqrt{1+q^2}},\\ \sin\beta &= \frac{q}{\sqrt{1+q^2}}. \end{aligned}

Also,

q˙=−c.\dot{q}=-c.

Hence,

 dt=−1c dq.\,\mathrm{d} t=-\frac{1}{c}\,\mathrm{d} q.

Analytical Horizontal Velocity

The horizontal velocity satisfies

u˙=acos⁡β=a1+q2.\dot{u} = a\cos\beta = \frac{a}{\sqrt{1+q^2}}.

Using  dt=− dq/c\,\mathrm{d} t=-\,\mathrm{d} q/c,

u(t)=−ac∫q0q(t) dq1+q2.\begin{aligned} u(t) &= -\frac{a}{c} \int_{q_0}^{q(t)} \frac{\,\mathrm{d} q}{\sqrt{1+q^2}}. \end{aligned}

Since

∫ dq1+q2=arsinh⁡(q)=ln⁡(q+1+q2),\int \frac{\,\mathrm{d} q}{\sqrt{1+q^2}} = \operatorname{arsinh}(q) = \ln\left(q+\sqrt{1+q^2}\right),

we obtain

u(t)=acln⁡[q0+1+q02q(t)+1+q2(t)].\begin{aligned} u(t) = \frac{a}{c} \ln \left[ \frac{ q_0+\sqrt{1+q_0^2} }{ q(t)+\sqrt{1+q^2(t)} } \right]. \end{aligned}

Using q=tan⁡βq=\tan\beta and 1+q2=sec⁡β\sqrt{1+q^2}=\sec\beta,

u(t)=acln⁡[tan⁡β0+sec⁡β0tan⁡β(t)+sec⁡β(t)].\boxed{ u(t) = \frac{a}{c} \ln \left[ \frac{ \tan\beta_0+\sec\beta_0 }{ \tan\beta(t)+\sec\beta(t) } \right]. }

Analytical Vertical Velocity

The vertical velocity satisfies

v˙=asin⁡β=aq1+q2.\dot{v} = a\sin\beta = a\frac{q}{\sqrt{1+q^2}}.

Therefore,

v(t)=−ac∫q0q(t)q1+q2 dq.\begin{aligned} v(t) &= -\frac{a}{c} \int_{q_0}^{q(t)} \frac{q}{\sqrt{1+q^2}} \,\mathrm{d} q. \end{aligned}

Since

∫q1+q2 dq=1+q2,\int \frac{q}{\sqrt{1+q^2}} \,\mathrm{d} q = \sqrt{1+q^2},

we obtain

v(t)=ac[sec⁡β0−sec⁡β(t)].\boxed{ v(t) = \frac{a}{c} \left[ \sec\beta_0-\sec\beta(t) \right]. }

Analytical Horizontal Position

The horizontal position is

x(t)=∫0tu(τ) dτ.x(t)=\int_0^t u(\tau)\,\mathrm{d}\tau.

After integration,

x(t)=ac2[sec⁡β0−sec⁡β−tan⁡βln⁡(tan⁡β0+sec⁡β0tan⁡β+sec⁡β)].\begin{aligned} x(t) ={}& \frac{a}{c^2} \Bigg[ \sec\beta_0-\sec\beta \nonumber\\ &- \tan\beta \ln \left( \frac{ \tan\beta_0+\sec\beta_0 }{ \tan\beta+\sec\beta } \right) \Bigg]. \end{aligned}

Therefore,

x(t)=ac2[sec⁡β0−sec⁡β−tan⁡βln⁡(tan⁡β0+sec⁡β0tan⁡β+sec⁡β)].\boxed{ x(t) = \frac{a}{c^2} \left[ \sec\beta_0-\sec\beta - \tan\beta \ln \left( \frac{ \tan\beta_0+\sec\beta_0 }{ \tan\beta+\sec\beta } \right) \right]. }

Analytical Vertical Position

Similarly,

y(t)=a2c2[(tan⁡β0−tan⁡β)(sec⁡β0+sec⁡β)−ln⁡(tan⁡β0+sec⁡β0tan⁡β+sec⁡β)].\begin{aligned} y(t) ={}& \frac{a}{2c^2} \Bigg[ (\tan\beta_0-\tan\beta) (\sec\beta_0+\sec\beta) \nonumber\\ &- \ln \left( \frac{ \tan\beta_0+\sec\beta_0 }{ \tan\beta+\sec\beta } \right) \Bigg]. \end{aligned}

Therefore,

y(t)=a2c2[(tan⁡β0−tan⁡β)(sec⁡β0+sec⁡β)−ln⁡(tan⁡β0+sec⁡β0tan⁡β+sec⁡β)].\boxed{ y(t) = \frac{a}{2c^2} \left[ (\tan\beta_0-\tan\beta) (\sec\beta_0+\sec\beta) - \ln \left( \frac{ \tan\beta_0+\sec\beta_0 }{ \tan\beta+\sec\beta } \right) \right]. }

Terminal Vertical-Velocity Condition

The terminal condition

v(T)=0v(T)=0

gives

sec⁡β0=sec⁡β(T).\sec\beta_0=\sec\beta(T).

For the nontrivial symmetric solution,

β(T)=−β0.\boxed{ \beta(T)=-\beta_0. }

Since

tan⁡β(T)=tan⁡β0−cT,\tan\beta(T)=\tan\beta_0-cT,

we have

−tan⁡β0=tan⁡β0−cT.-\tan\beta_0 = \tan\beta_0-cT.

Thus,

c=2tan⁡β0T.\boxed{ c = \frac{2\tan\beta_0}{T}. }

The steering law becomes

tan⁡β(t)=tan⁡β0(1−2tT).\boxed{ \tan\beta(t) = \tan\beta_0 \left( 1-\frac{2t}{T} \right). }

This law is antisymmetric in tangent space about t=T/2t=T/2.

Altitude Equation

Substituting the terminal conditions into the expression for y(T)y(T) gives an implicit equation for β0\beta_0:

4HaT2=2tan⁡β0sec⁡β0−ln⁡(sec⁡β0+tan⁡β0sec⁡β0−tan⁡β0)2tan⁡2β0.\boxed{ \frac{4H}{aT^2} = \frac{ 2\tan\beta_0\sec\beta_0 - \ln \left( \frac{ \sec\beta_0+\tan\beta_0 }{ \sec\beta_0-\tan\beta_0 } \right) }{ 2\tan^2\beta_0 }. }

This nonlinear scalar equation determines the initial steering angle.

Once β0\beta_0 is found, the constant cc follows from

c=2tan⁡β0T.c=\frac{2\tan\beta_0}{T}.

Maximum Terminal Horizontal Velocity

The terminal horizontal velocity is

u(T)=acln⁡[tan⁡β0+sec⁡β0−tan⁡β0+sec⁡β0].u(T) = \frac{a}{c} \ln \left[ \frac{ \tan\beta_0+\sec\beta_0 }{ -\tan\beta_0+\sec\beta_0 } \right].

Using

c=2tan⁡β0T,c=\frac{2\tan\beta_0}{T},

we obtain

umax⁡=aT2tan⁡β0ln⁡[sec⁡β0+tan⁡β0sec⁡β0−tan⁡β0].\boxed{ u_{\max} = \frac{aT}{2\tan\beta_0} \ln \left[ \frac{ \sec\beta_0+\tan\beta_0 }{ \sec\beta_0-\tan\beta_0 } \right]. }

Terminal Horizontal Position

Using the symmetry condition,

x(T)=T2u(T).x(T) = \frac{T}{2}u(T).

Therefore,

umax⁡=2x(T)T.\boxed{ u_{\max} = \frac{2x(T)}{T}. }

This relation follows from the symmetry of the steering law and the resulting horizontal-velocity profile.

Qualitative Behavior of the Solution

The tangent of the steering angle varies linearly:

tan⁡β(t)=tan⁡β0(1−2tT).\tan\beta(t) = \tan\beta_0 \left( 1-\frac{2t}{T} \right).

Therefore:

Trajectory Sketch

Conceptual terminal-altitude steering problem.

Figure 1:Conceptual terminal-altitude steering problem.

Numerical Solution Procedure

For specified aa, TT, and HH:

  1. solve the scalar altitude equation for β0\beta_0;

  2. compute

c=2tan⁡β0T;c=\frac{2\tan\beta_0}{T};
  1. evaluate

tan⁡β(t)=tan⁡β0(1−2tT);\tan\beta(t)=\tan\beta_0\left(1-\frac{2t}{T}\right);
  1. reconstruct u(t)u(t), v(t)v(t), x(t)x(t), and y(t)y(t);

  2. verify y(T)=Hy(T)=H and v(T)=0v(T)=0;

  3. compute umax⁡=u(T)u_{\max}=u(T).

MATLAB Implementation

function session34_solution(a,T,H)

    target = 4*H/(a*T^2);

    altitude_equation = @(beta0) ...
        (2*tan(beta0)*sec(beta0) ...
        - log((sec(beta0)+tan(beta0)) ...
        /(sec(beta0)-tan(beta0)))) ...
        /(2*tan(beta0)^2) ...
        - target;

    beta0 = fzero(altitude_equation,[1e-4,1.4]);

    c = 2*tan(beta0)/T;

    t = linspace(0,T,500);
    tan_beta = tan(beta0).*(1-2*t/T);
    beta = atan(tan_beta);
    sec_beta = sqrt(1+tan_beta.^2);

    ratio = (tan(beta0)+sec(beta0)) ...
        ./ (tan_beta+sec_beta);

    u = a/c .* log(ratio);

    v = a/c .* (sec(beta0)-sec_beta);

    x = a/c^2 .* (sec(beta0)-sec_beta ...
        - tan_beta.*log(ratio));

    y = a/(2*c^2) .* ( ...
        (tan(beta0)-tan_beta) ...
        .* (sec(beta0)+sec_beta) ...
        - log(ratio));

    umax = u(end);

    fprintf('beta0 = %.12f rad\n',beta0);
    fprintf('c     = %.12f\n',c);
    fprintf('x(T)  = %.12f\n',x(end));
    fprintf('y(T)  = %.12f\n',y(end));
    fprintf('u(T)  = %.12f\n',u(end));
    fprintf('v(T)  = %.12f\n',v(end));

    figure;
    plot(x,y,'LineWidth',1.5);
    xlabel('x');
    ylabel('y');
    grid on;

    figure;
    plot(t,beta,'LineWidth',1.5);
    xlabel('Time');
    ylabel('\beta(t)');
    grid on;

    figure;
    plot(t,u,'LineWidth',1.5);
    hold on;
    plot(t,v,'LineWidth',1.5);
    xlabel('Time');
    ylabel('Velocity');
    legend('u','v');
    grid on;
end

Verification of the Minimum Principle

The steering-dependent Hamiltonian term is

aλucos⁡β+aλvsin⁡β.a\lambda_u\cos\beta+a\lambda_v\sin\beta.

It can be written as

aλu2+λv2cos⁡(β−θλ),a \sqrt{\lambda_u^2+\lambda_v^2} \cos(\beta-\theta_\lambda),

where

θλ=atan2⁡(λv,λu).\theta_\lambda = \operatorname{atan2}(\lambda_v,\lambda_u).

Depending on the sign convention used for the Hamiltonian and whether the problem is posed as minimization or maximization, the minimizing or maximizing steering direction must be selected consistently.

The stationary relation

tan⁡β=λvλu\tan\beta=\frac{\lambda_v}{\lambda_u}

must therefore be checked against the appropriate branch of the minimum principle.

Why the Solution Is Historically Important

The control law has the same basic form as steering laws used in powered-flight guidance. Its practical importance comes from the fact that:

Lessons from Analytical Optimal Control

  1. The structure of the Hamiltonian reveals the structure of the steering law.

  2. Transversality conditions can eliminate unknown costate constants.

  3. Terminal constraints may generate symmetry conditions.

  4. Analytical integration can reduce a trajectory optimization problem to a scalar nonlinear equation.

  5. A physically meaningful control law may emerge from a highly simplified model.

  6. Mathematical structure is often more valuable than brute-force computation.

Common Errors

Summary

  1. The system has four states and one steering control.

  2. The objective is to maximize terminal horizontal velocity.

  3. The Hamiltonian contains no running-cost term.

  4. Two costates are constant and two are affine in time.

  5. Stationarity gives a bilinear tangent law.

  6. Transversality forces λx=0\lambda_x=0 and λu=−1\lambda_u=-1.

  7. The control reduces to a linear tangent law.

  8. For constant acceleration, all state trajectories can be integrated analytically.

  9. The terminal vertical-velocity constraint implies β(T)=−β0\beta(T)=-\beta_0.

  10. The initial angle is determined by a scalar altitude equation.

  11. The maximum terminal horizontal velocity follows explicitly once β0\beta_0 is known.

Connection. Soft lunar landing adds a bounded thrust and fuel objective, illustrating how physical limits shape the necessary conditions.