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=Hx=0,λ˙y=Hy=0,λ˙u=Hu=λx,λ˙v=Hv=λ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 λu0\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+c4c1t+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β=c2tc4.\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β0ct.\boxed{ \tan\beta(t) = \tan\beta_0-ct. }

This is the linear tangent steering law.

Control Reconstruction

Let

q(t)=tanβ(t)=q0ct,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=1cdq.\,\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)=acq0q(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)=acq0q(t)q1+q2dq.\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+q2dq=1+q2,\int \frac{q}{\sqrt{1+q^2}} \,\mathrm{d} q = \sqrt{1+q^2},

we obtain

v(t)=ac[secβ0secβ(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β0secβ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β0secβ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β0tanβ)(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β0tanβ)(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β0cT,\tan\beta(T)=\tan\beta_0-cT,

we have

tanβ0=tanβ0cT.-\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(12tT).\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β0ln(secβ0+tanβ0secβ0tanβ0)2tan2β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β0tanβ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β0tanβ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(12tT).\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(12tT);\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.