GENERATION OF APPROACH AND LANDING TRAJECTORIES WITH OPERATIONAL CONSTRAINTS FOR AIRCRAFT WITH MULTIPLE DEGREES OF FREEDOM

A system can include a processing device and a memory having instructions that are executable by the processing device for causing the processing device to perform operations. The operations may involve receiving or determine one or more operational constraints corresponding to an aircraft having multiple degrees of freedom. The operations may involve performing an optimization method to obtain a set of trajectory data for the aircraft subject to the one or more operational constraints, the set of trajectory data including a set of temporal state parameters that describe a state of the aircraft and a set of control input signals that are usable to control the aircraft. The operations may involve transmitting the set of trajectory data to a flight computer, the flight computer being configured to control the aircraft based on the set of trajectory data.

BACKGROUND

Approach and landing trajectories for an aircraft may be generated using any number of conventional approaches. Generating these trajectories can enable an operator of the aircraft or a computer associated with the aircraft to provide the aircraft with instructions to safely land the aircraft. Conventional trajectory generation approaches may produce trajectories that are unrealistic considering physical limitations of aircrafts and conditions present in a landing environment.

BRIEF SUMMARY

A system can include a processing device and a memory having instructions that are executable by the processing device for causing the processing device to perform operations. The operations may involve receiving or determine one or more operational constraints corresponding to an aircraft having at least six degrees of freedom. In some examples, the aircraft may have fewer than six degrees of freedom. For example, the operations described herein may be applicable to aircraft models having three degrees of freedom, two degrees of freedom, and the like. The operations may involve performing an optimization method to obtain a set of trajectory data for the aircraft subject to the one or more operational constraints, the set of trajectory data including a set of temporal state parameters that describe a state of the aircraft and a set of control input signals that are usable to control the aircraft. The operations may involve transmitting the set of trajectory data to a flight computer, the flight computer being configured to control the aircraft based on the set of trajectory data.

In some examples, the optimization method can involve formulating an optimal control problem for the aircraft, converting the optimal control problem into one or more convex sub-problems, and solving the one or more convex sub-problems to determine the set of trajectory data. The set of temporal state parameters can include at least one of: a position of the aircraft, a velocity of the aircraft, one or more Euler angles associated with an angular orientation of the aircraft, an angular velocity of the aircraft, or an actual thrust associated with the aircraft. The set of control input signals can include at least one of an aileron command, an elevator command, a rudder command, a thrust command associated with the aircraft.

In some examples, the optimization method comprises a sequential convex programming (SCP) method, such as an extrapolated penalized trust region (xPTR) method. The system of claim 1, wherein the one or more operational constraints may include one or more state-triggered constraints that may be enforced based on the set of temporal state parameters.

A computer-implemented method can involve receiving or determining one or more operational constraints corresponding to an aircraft having at least six degrees of freedom. The method can involve performing an optimization method to obtain a set of trajectory data for the aircraft subject to the one or more operational constraints, wherein the set of trajectory data includes a set of temporal state parameters that describe a state of the aircraft and a set of control input signals that are usable to control the aircraft. The method can involve transmitting the set of trajectory data to a flight computer that is configured to control the aircraft based on the set of trajectory data.

The method can involve accessing a set of modeled dynamics for the aircraft. The one or more operational constraints can include the set of modeled dynamics for the aircraft. The one or more operational constraints can include a runway alignment constraint. The one or more operational constraints can include an obstacle avoidance constraint. The one or more operational constraints can include a continuous time constraint that may prevent inter-sample constraint violations. The one or more operational constraints can include one or more limits on the set of control input signals.

A non-transitory computer-readable medium may have instructions that are executable by a processing device for causing the processing device to receive one or more operational constraints corresponding to an aircraft having at least six degrees of freedom. The instructions may be executable to perform an optimization method to obtain a set of trajectory data for the aircraft subject to the one or more operational constraints, wherein the set of trajectory data includes a set of temporal state parameters that describe a state of the aircraft and a set of control input signals that are usable to control the aircraft. The instructions may be executable to transmit the set of trajectory data to a flight computer, the flight computer being configured to control the aircraft based on the set of trajectory data. In some examples, the instructions are further executable by the processing device to determine the one or more operational constraints based a six degree-of-freedom computational model of the aircraft.

DETAILED DESCRIPTION

Generating approach and landing trajectories for aircraft with multiple degrees of freedom (M-DoF) (e.g., a two-degree-of-freedom (2-Dof), three-degree-of-freedom (3-DoF), six-degree-of-freedom (6-DoF), etc.) can be challenging. First, trajectory generation problems are typically expressed as continuous-time (and infinite-dimensional) optimal control problem over function spaces, possibly having no analytical solutions. Second, trajectory generation problems for M-DoFaircraft can involve complex high-dimensional aircraft dynamics that can involve nonlinear aerodynamic effects. Third, it has been difficult to ensure that generated trajectories are realistic.

The techniques described herein address various issues with conventional trajectory generation methods. Certain aspects of the present disclosure can involve a computer-implemented method of formulating the aircraft approach and landing trajectory optimization problem and generating dynamically feasible trajectories and implementing an optimization method, such as sequential convex programming (SCP), to solve the formulated problem. To properly formulate the problem, a computing device can first model the M-DoF aircraft dynamics using a research civil aircraft model (RCAM) or any other suitable M-DoFmodel and then impose the modeled dynamics as a constraint to generate dynamically feasible trajectories. This can ensure that the trajectories are physically possible to attain by preventing trajectories that violate the aircraft's equation of motion from being generated.

The techniques described herein also include a runway alignment constraint that requires the aircraft to be kept aligned with a runway centerline once the aircraft enters the final approach phase. The runway alignment constraint is useful to generate realistic trajectories for aircraft approach and landing in order to follow standard landing procedures and to reduce possible safety risks. To impose the runway alignment constraint, the computing device can incorporate a multi-phase trajectory planning scheme that separates the entire flight into two phases: the base leg and the final approach. Then, the alignment constraint may be imposed for the final approach phase, while preserving the convexity of the constraint and enabling exact temporal triggering. The method may involve state-triggered constraints (STCs) that are dynamically enforced. For example, the runway alignment condition may only be enforced when the altitude of the aircraft is less than a user-specified value, resulting in a nonconvex constraint. Further, the computing device can implement an extrapolated penalized trust region method (xPTR) that adopts and extends a penalized trust-region (PTR) method by employing an extrapolation update.

Techniques described herein improve the functioning of computing devices that compute trajectories, while also providing trajectories that are more realistic, reliable, and safe. The techniques constitute a technical improvement because using the additional constraints described herein enable the optimization problem to converge quicker and more reliably than conventional approaches, thereby conserving computing resources, memory resources, bandwidth resources, and the like. In addition, the techniques described herein constitute a practical application of the claimed subject matter in the form of computing trajectories that are used to control real-world aircraft. For example, the output from the optimization method may include parameters that can be used by an aircraft to control multiple different control functions of the aircraft.

Turning now to figures, FIG. 1 is a high-level diagram of a system 100 and process 101 for generating trajectory data for an aircraft having six degrees of freedom according to certain aspects of the present disclosure. A computing device 104 may perform the process 101.

As noted above, the computing device 104 that is tasked with generating trajectory data 106 for an aircraft 109 can receive one or more operational constraints 102, as shown in block 110 of the process 101. The operational constraints 102 can define limitations both on the state and on the control of the aircraft 109. The aircraft 109 may have six degrees of freedom-that is, the aircraft 109 may include forward, lateral, and vertical thrust in addition to the conventional pitch, yaw, and roll degrees of freedom. In some examples, the computing device 104 can be housed separately from the aircraft 109. Alternatively, the computing device 104 can be onboard the aircraft 109 or may be communicatively coupled with systems onboard the aircraft 109. In some examples, the computing device 104 may be tasked with determining or generating the operational constraints 102. The operational constraints 102 may include, but are not limited to, a set of modeled dynamics for the aircraft, a runway alignment constraint, an obstacle avoidance constraint, limits on the control input signals, and a continuous time constraint that can prevent inter-sample constraint violations. In some examples, the continuous time constraint may be linearized. In some examples, the computing device 104 may generate an initial guess trajectory prior to performing optimization. For example, the computing device 104 may implement a conventional trajectory generation algorithm to create a smooth curvilinear path between a takeoff location and landing location as a reference trajectory. The reference trajectory may not satisfy the operational constraints 102 and may be adjusted to do so.

The computing device 104 can perform an optimization method subject to the operational constraints 102 to generate a set of trajectory data 106, as shown as block 120. The trajectory data 106 can include a set of temporal state parameters that describe a state of the aircraft 109 and a set of control input signals for the aircraft 108. The trajectory data 106 may also include time-relevant information, such as a length of time between each temporal state parameter value. For example, the temporal state parameters may include a position associated with the aircraft 109, a velocity associated with the aircraft 109, one or more Euler angles associated with the aircraft 109, an angular velocity of the aircraft 109, a thrust associated with the aircraft 109 and any other relevant temporal state parameters that are usable to determine the state of the aircraft 109. The control input signals may include commands that can be issued to the aircraft 109 by an onboard flight computer. For example, the control input signals can include an aileron command, an elevator command, a rudder command, a thrust command, or any other suitable command that can be issued by the flight computer to control the aircraft 109.

In some examples, the computing device 104 may iteratively perform the optimization method on an initial guess trajectory to generate the trajectory data 106, thereby adjusting the initial guess trajectory and ensuring that the resulting trajectory data 106 complies with the operational constraints 102. The optimization method may be a sequential convex programming method, such as an extrapolated penalized trust region (xPTR) method. For example, the optimization method may involve converting a nonconvex optimal control problem for the aircraft 109 into solvable convex sub-problems, then solving the convex sub-problems to generate the trajectory data 106.

Once the computing device 104 has generated the trajectory data 106, the computing device 104 can transmit the trajectory data 106 to a flight computer 108 that can control the aircraft 109, as shown in block 130. This can be done wirelessly (e.g., via Bluetooth or Wi-Fi), or through a wired connection (e.g., through a serial bus.) The flight computer 108 can ingest the trajectory data 106 and issue commands to the aircraft 109 based on the trajectory data 106.

FIG. 2 is a block diagram of a system 200 for generating trajectory data 106 for an aircraft 109 having six degrees of freedom according to certain aspects of the present disclosure.

The system 200 includes the computing device 104, which can include a processing device 202 and a memory 204. The processing device 202 may include one or more processors. The processing device 202 can fetch and execute instructions in the memory 204. In some examples, the computing device 104 may be a server or a personal computer that is separate from the aircraft 109. In other examples, the computing device 104 may be situated onboard the aircraft 109 and communicatively coupled with a flight computer 108 associated therewith. The computing device 104 may be implemented using a cloud computing platform or other suitable server system.

The computing device 104 can generate the trajectory data 106 for an aircraft 109 having six degrees of freedom. For example, the computing device 104 can perform an optimization method 206 subject to the operational constraints 102 to generate the trajectory data 106. In some examples, the computing device 104 can generate the trajectory data 106 for aircraft approach and landing maneuvers within a range of about 70 kilometers from the final landing site, with a corresponding flight horizon of about 10 minutes. In other examples, the computing device 104 may generate the trajectory data 106 at a range greater than or less than 70 kilometer and/or with a corresponding flight horizon of less than or greater than 10 minutes. Prior to generating the trajectory data, the computing device 104 can model the dynamics of the aircraft 109. In cases where the flight horizon and the distance are not too large (e.g., with a range of 100 or fewer kilometers, and a time horizon of 15 minutes or fewer), the computing device 104 can make several simplifying assumptions to simplify the complexity of one or more control problems associated with the aircraft 109. In some examples, the computing device 104 may assume that the effect of planetary rotation of the earth is negligible, that the atmosphere is a relatively stationary atmosphere with constant air density, a flat non-rotating earth model, and a uniform gravitational field for the derivation of the aircraft dynamics. In some examples, the computing device 104 may assume a constant wind field without wind shear and a rigid-body aircraft model to simplify the system dynamics when formulating an optimal control problem for the aircraft 109.

The following nomenclature is applicable to the description below.

A
   I
   B
  
  ,
  
   A
   B
   I

rotation matrices between inertial frame and the body-fixed frame

N
  q
  r

The computing device 104 may generate a 6-DoF aircraft model that can be expressed in state-space form as follows:

The computing device 104 may generate the trajectory data 106 in accordance with the 6-DoF aircraft model. The trajectory data 106 can include temporal state parameters 212 and control input signals 214. In some examples, the temporal state parameters 212 may be expressed as a state vector x(·)∈13 and a control input vector u(·)∈4 that may be given by:

The computing device 104 may impose certain operational constraints 102 on the aircraft 109. For example, the computing device 104 may require that the altitude of the aircraft is positive at all times in a given set of trajectory data 106 to prohibit the aircraft from colliding with the ground. The altitude constraint can be written as:

In some examples, the computing device 104 may impose operational constraints 106 on the minimum and maximum velocity constraints, which may be given by:

where the vectors vmin, vmax∈3 are the component-wise minimum and maximum velocity. The Euler angles and the angular velocities have the following constraints:

where ϕmin, θmin∈, and Ωmin∈3 are the minimum allowable roll angle, pitch angle, and angular velocity, respectively, and ϕmax, θmax∈, and Ωmax∈3 are the maximum allowable roll angle, pitch angle, and angular velocity, respectively. To prevent the wings from stalling and having a negative lift force, we impose the upper and lower bounds on the angle of attack as follows:

where

These constraints are equivalent to

The computing device 104 can impose the following box constraint on the input u:

where umin, umax∈R4 are the minimum and maximum allowable control inputs, respectively. The computing device 104 can impose the following constraints on the thrust:

where δT, min∈R and δT, max∈R may be defined as the minimum and maximum throttle, respectively, and δ¤min∈R and δ¤max∈R are the minimum and maximum throttle rates, respectively. The initial conditions can be given by:

where t0∈R+ is the start time, and pi∈R3, vi∈R3, Φi∈R3, and Ωi∈R3 are the initial position, velocity, Euler angles, and angular velocity, respectively. The terminal boundary conditions are given by:

where tf∈R++ is the final time. The final position at which the aircraft touches down may be set to the origin of inertial frame I. The airspeed v at the final time should be less than vf∈R3+ component-wise to make sure that the velocity of the aircraft on the runway is not too large.

As the aircraft descends towards the touch down point, the aircraft may align with the runway in order to prevent an approach that is either too steep or too shallow for passenger comfort. This alignment constraint can be described using simple linear constraints that ensure that the position of the aircraft is aligned with the runway during the final approach phase. One additional consideration is that the switching time, which determines when the alignment constraint is activated and when the final approach phase starts, may need to be optimized alongside the entire trajectory. Hence, this constraint differs from pointwise state and input constraints that are enforced at all times during the entire flight.

The runway alignment constraint with the switching time ts can be mathematically stated as:

where hc∈++ is the user-specified altitude. The alignment constraint function c: 3→4 is defined as:

where angles

representing the angles between the runway and the projected positions of the aircraft onto the xy-plane and the xz-plane, respectively, in the inertial frame. The parameters

are the minimum and maximum values of θlat and θver, respectively.

The alignment constraint in (16) showcases an instance of existential quantification in the form of “there exists a time

The existential quantifier can complicate the optimization problem since it does not specify a precise switching time ts, but instead it indicates that such a time ts exists within the given interval t0, tf. In the next section, we discuss how this constraint can be incorporated into our SCP framework by using time-interval dilation variables. An alternative way to express the runway alignment constraint is to utilize the state-triggered constraint (STC) formulation. The alignment constraint can then be given as the following logical statement:

As a consequence of STC (19), if the aircraft satisfies a trigger condition that is −pD<hc, the aircraft should align with the runway by satisfying the condition c(p)≤0. On the other hand, if the trigger condition is not activated, which means the altitude is greater than hc, the alignment condition is not necessarily satisfied. The alignment constraint given by STC (19) is not equivalent to (16). As an example, having both −pD<hc and c(p)>0 before the switch time ts does not violate the original condition (16), whereas the same condition violates (19). Hence, the alignment constraint in the STC form is conservative. However, if it is assumed that the height of the altitude is monotonically decreasing, the two conditions (16) and (19) are equivalent.

One way to impose the STC (19) is to use a min function as follows:

where the function g: 3→4 is introduced to compactly denote the constraint. One can find that the condition (20) is equivalent to the original STC condition (19).

The computing device 104 can implement obstacle avoidance by imposing additional constraints. The obstacles could be other aircraft or areas where the weather is so severe that it could be detrimental to flight safety, for example. The obstacles can be modeled as three-dimensional ellipsoids, and the obstacle avoidance constraints can be written as

where Hi∈R3×3 is the shape matrix for the ellipse, ri∈R3 is the center of the ellipse, nobs∈Z is the number of obstacles, where subscript i represents the index of the obstacle under consideration.

The computing device 104 can use two performance indices to evaluate the quality of trajectory data: minimum-time and minimum-thrust. The cost function for each index can be formally written as:

The computing device 104 may levy a penalty on the rate of the control input commands δA, δE, and δR to ensure that the resulting control input profiles are smooth. The cost function for this penalty is given as

The computing device 104 may penalize the angular velocity to prohibit rapid changes in the attitude of the aircraft. The corresponding cost function is given as

Also, the computing device 104 may penalize the angular velocity to prohibit rapid changes in the attitude of the aircraft. Hence, the objective function for the aircraft landing problem can be given by:

where wt, wthr, wr, wΩ∈R are the weighting factors for the final time, the thrust, the rate of the control input commands, and the angular velocity, respectively.

Trajectories computed without the runway alignment constraint may either be too steep or too shallow during the final landing phase, neither of which are reasonable in practice. The cost function values for the cases without the alignment constraint are smaller on average than those for the cases with the alignment constraint. This is expected since a trajectory with fewer constraints can be expected to have a lower cost.

To accomplish approach and landing in the presence of crosswinds, some sets of trajectory data can employ the crab method and the wing-low method. For example, under the left crosswind condition, the aircraft initially shifts to the east side slightly due to the left wind, and then maintains a negative yaw angle that makes a heading toward the wind to make the ground velocity vg aligned with and forward to the runway. This discrepancy between the aircraft's longitudinal direction and the direction of its ground velocity gives the appearance that the aircraft is performing a crabbing maneuver. Furthermore, once the aircraft gets closer to the runway during the final approach, the aircraft lowers the upwind wing (left wing), resulting in a negative roll angle. This wing-low method helps keep the aircraft's heading aligned with the runway under the crosswind condition, so that the aircraft can satisfy the zero-yaw angle condition at touch down.

FIG. 3 is a sequential convex programming optimization method that can be used for generating trajectory data for an aircraft having six degrees of freedom according to certain aspects of the present disclosure.

The computing device 104 may implement an SCP-based optimization method such as the optimization method 300 to solve a free-final-time continuous-time nonconvex optimal control problem. The SCP optimization method 300 can sequentially construct fixed-final-time discrete-time convex subproblems that approximate the original problem. The optimization method 300 involves iteratively solving these subproblems until it converges to a solution, wherein the nonconvex constraints at the current iteration are linearized about the solution from the previous iteration. The xPTR optimization method 300 employs multiple shooting discretization, in which the continuous-time input signal is represented by a finite number of parameters. Further, a time scaling transformation known as time-interval dilation is adopted. With discretization and dilation, it becomes possible to convert the free-final-time continuous- time problem into a fixed-final-time discrete-time problem. Then, to construct the convex subproblems approximating the original nonconvex problem, all nonconvex constraints including the system dynamics are linearized around the solution to the previous subproblem, i.e., around the reference trajectory, as shown in block 306. Given the solution to this convex subproblem, the optimization method 300 performs an extrapolation to update the reference trajectory. The entire procedure is repeated until convergence, at which the solution is dynamically feasible, i.e., the nonlinear dynamics are exactly satisfied up to integration tolerances.

To numerically solve a continuous-time optimal control problem, the computing device 104 may perform multiple-shooting discretization, as shown in block 310. That is, the computing device 104 may parameterize the control input, choose a time mesh, and define the state and input nodes as follows:

where N∈R+ is the number of subintervals. Then, the control input signal u(·) may be parameterized using a first-order hold (FOH) (piecewise continuous and affine) interpolation between successive input nodes as follows:

Then, the state signal x(·) in each subinterval is given by the solution to the following equation:

The computing device 104 may determine a continuous-time state trajectory x(t) for each subinterval t∈[tk, tk+1) is computed by solving (27) from the point xk at t=tk with the input signal u(t) in (26), and then this computation is restarted at each discrete temporal node xk. The original optimal control problem in II.H is a free-final-time problem, i.e., the time of flight tf is a decision variable and not a fixed constant. To convert it into an equivalent fixed-final-time problem, we introduce a time scaling variable τk∈[0, 1] that has a bijective mapping with the original time variable t∈[tk, tk+1) as follows:

The expression sk may be a time-interval dilation variable that can be defined as the length of the subinterval sk B tk+1−tk. With the conversion expressed in equation 28, the time-scaling variable τk represents the normalized time in [0, 1] for each subinterval [tk, tk+1]. □(τk) B□(skτk+tk), where □ is a placeholder for any time-varying variable, for brevity. Equation 27 can be equivalently expressed with respect to τk∈[0, 1] as

As discussed earlier, certain aspects and features of the present disclosure can involve linearizing all nonconvex constraints around a reference trajectory, which is either the solution to the subproblem at the previous iteration or the initial guess trajectory 302. The reference trajectory consists of the state profile x−k and the control input profile u−k for all k∈N0N, and the time-interval dilation variable s−k for all k∈N0N−1 that will be denoted together as {x−k, u−k, s−k} for notational simplicity. Similarly, {xk, uk, sk} denotes the solution trajectory at the current iteration.

To ensure continuity of the state trajectory x(τk) at each discrete-time node, the computing device 104 may impose the following continuity constraint for all k∈N0N.

With first-order hold interpolation (26), the right-hand side of (29b) is a nonconvex function of xk, uk, uk+1, sk, and evaluating this function involves solving the ordinary differential equation (ODE). To impose the continuity constraint in the SCP framework, the computing device 104 may linearize the constraint with respect to the reference trajectory {x−k, u−k, s−k}. One way to linearize (29) is to use the variational method that employs the sensitivity equation given as the variational differential equation along the reference trajectory. Then, the linearization of the dynamics constraint (29) yields:

x
       
        k
        +
        1
       
      
      =
      
       
        
         A
         k
        
        ⁢
        
         x
         k
        
       
       +
       
        
         B
         k
         m
        
        ⁢
        
         u
         k
        
       
       +
       
        
         B
         k
         p
        
        ⁢
        
         u
         
          k
          +
          1
         
        
       
       +
       
        
         z
         k
        
        ⁢
        
         s
         k
        
       
       +
       
        w
        k
       
      
     
     ,
    
   
   
    
     (
     30
     )

The state and input constraints given in (8)-(13) may be convex constraints, and as a result, it may not be necessary to linearize them. The state and input constraints can be imposed at each node point as follows:

As mentioned earlier, the runway alignment constraint derived in (16) involves the existential quantifier for the switching time ts. To incorporate this in the finite-dimensional optimization framework, the computing device 104 may first specify a node point ks such that the time at the node may be equal to the switching time, i.e., ts:=tks. Then, the runway alignment constraint can be represented as:

The computing device 104 may impose an alignment condition starting at ks-th node, and is imposed at all succeeding nodes. Note that although node point corresponding to ks is determined in advance, the switching time itself is not predetermined. Instead, the switching time is obtained by solving the optimization problem because the time-interval dilation variable sk is treated a decision variable. The switching time can be represented in terms of tks and sk as

t
   s
  
  :=
  
   
    t
    
     k
     s
    
   
   =
   
    
     
      ∑
       
     
     
      k
      =
      0
     
     
      k
      s
     
    
    ⁢
    
     
      s
      k
     
     .

By imposing constraint (32), we can guarantee that there exists a time after which the alignment condition is activated, thereby satisfying the original runway alignment constraint (16). It is also worth noting that the constraint (32) is convex, and hence will not be linearized.

Additionally, the computing device 104 can utilize uniform meshes for each base leg phase and final approach phase. To be more specific, all nodes from the start to ks−1 have identical time-interval dilation values sk, that is:

The computing device 104 can use Equation 33 to maintain a uniform mesh during the base leg phase. Similarly, all nodes from ks to N−1 also share the same sk values:

This ensures uniformity during the final approach phase. These constraints (33)-(34) help to improve the convergence behavior by restricting the solution space.

Since the runway alignment constraint given by the STC in (19) and the obstacle avoidance constraint in (21) are nonconvex, they need to be linearized. The linear approximation of the runway alignment STC may be given as follows:

where pk∈3 is the position component of the reference state vector xk. The obstacle avoidance constraint is linearized as follows:

Enforcing constraints only at the node points does not guarantee their satisfaction in the subinterval between the node points, thereby leading to the inter-sample constraint violation. Therefore, the computing device 104 can define a vector-valued function h representing constraints that need to be satisfied in continuous-time. Specifically, the computing device 104 may focus on constraints related to roll and pitch angles. Violations of these constraints within a subinterval can lead to highly erratic and undesirable aircraft motion, unlike the other constraints in (31). The computing device 104 can define the function h: Rnx→Rnh as

With nh=4. Given the continuously differentiable function h and the continuous-time state solution x(·), the following two expressions are equivalent [45]:

Equation 38 shows that the pointwise inequality constraint in terms of time t can be equivalently written as a single equality constraint with the integral representation. Using this equivalence, the computing device 104 may impose the following constraint:

The nonconvex constraint (39) can be linearized via the variational method, as applied to (30). After linearization, with

As shown in block 308, virtual control terms and a trust region penalty may be incorporated to prevent artificial infeasibility, wherein the convex subproblem may be rendered infeasible even if the original nonconvex problem may be feasible, and artificial unboundedness, wherein the subproblem cost function is unbounded from below. The virtual controls vd∈Rnx and vkc∈Rnh are additional terms added to the linearized dynamics constraint (30) and the continuous time constraints (40), respectively, as follows:

x
       
        k
        +
        1
       
      
      =
      
       
        
         A
         k
        
        ⁢
        
         x
         k
        
       
       +
       
        
         B
         k
         m
        
        ⁢
        
         u
         k
        
       
       +
       
        
         B
         k
         p
        
        ⁢
        
         u
         
          k
          +
          1
         
        
       
       +
       
        
         z
         k
        
        ⁢
        s
       
       +
       
        w
        k
       
       +
       
        v
        k
        d
       
      
     
     ,
         
     
      ∀
      
       k
       ∈
       
        N
        0
        
         N
         -
         1
        
       
      
     
     ,
    
   
   
    
     (
     41
     )

This modification with the virtual control terms ensures that the subproblem is feasible. However, for the solution to be feasible with respect to the original nonlinear dynamics, the value of these terms should go to zero as the solution converges. To encourage this behavior, the computing device 104 may impose the following penalty terms:

The trust region penalty may be set as follows:

The trust region penalty plays a role in keeping the solution in the vicinity of the reference trajectory around which the system is linearized, to ensure that the subproblem cost is not unbounded. Then, the conditions Jvc≈0 and Jtr≈0 are included in the stopping criteria, which will be discussed in the following subsection.

The cost functions for the final time and the thrust command in equation (22) are defined as follows:

Next, the computing device 104 may consider the cost function for the rate of the control input commands in (23). Since the control input command rates δ¤A, δ¤E, and δ¤R may not be explicitly treated as control inputs, penalize the change of the input commands, δA, δE, and δR, as follows:

Finally, the cost function for the angular velocity may be:

The overall objective function for the convex subproblem, based on (43)-(47), may be formulated as:

J
       d
      
      =
      
       
        
         w
         t
        
        ⁢
        
         J
         time
         d
        
       
       +
       
        
         w
         thr
        
        ⁢
        
         J
         thr
         d
        
       
       +
       
        
         w
         r
        
        ⁢
        
         J
         r
         d
        
       
       +
       
        
         w
         Ω
        
        ⁢
        
         J
         Ω
         d
        
       
       +
       
        
         w
         vc
        
        ⁢
        
         J
         vc
        
       
       +
       
        
         w
         tr
        
        ⁢
        
         J
         tr
        
       
      
     
     ,
    
   
   
    
     (
     48
     )

where wvc∈R++ and wtr∈R++ are weights for the virtual control and trust region penalties, respectively. Let {x{circumflex over ( )}k, u{circumflex over ( )}k, s{circumflex over ( )}k} be the solution obtained by solving a convex subproblem. Then, the extrapolation step may be used to update the solution as follows:

where γ≥1 is an extrapolation parameter. With (49), the computing device may not merely accept the solution to the subproblem. Instead, the computing device 104 may obtain the solution {xk, uk, sk} at the current solution by extrapolating the current subproblem solution {x{circumflex over ( )}k, u{circumflex over ( )}k, s{circumflex over ( )}k} based on the reference solution {x−k, u−k, s−k}. The initial trajectory guess may be a user-specified trajectory that need not be dynamically feasible. The initial trajectory guess is used as a reference trajectory at the first iteration. The typical approach is to use a straight-line guess obtained by linearly interpolating between the initial and final boundary points. Here, the computing device 104 may employ the straight-line interpolation approach to construct the initial guess for the state and control input trajectory x−k, u−k as follows:

where the vectors x−i and x−f are (pi, vi, Φi, Ωi) and (0, vf, @f, 0), respectively, and u−i∈R4 may be the constant control input vector. Additionally, it may be also necessary to set the initial guess for the time-interval dilation variable s−k. For instance, one can choose the following value:

where s−T represents the average of the flight-times considering minimum speed and maximum speed in a straight line between the initial point and the final point.

One particular example implementation of the optimization method 300 is outlined in the code snippet below:

8:
 end if

10:
end for

Prior to running the optimization method, the computing device 104 may generate an initial guess trajectory. Alternatively, the computing device 104 may receive the initial guess trajectory from a user. In some examples, the optimization method may be the sequential convex programming optimization method 300 described in FIG. 3. The optimization method can start with the generation of an initial guess trajectory {x−k, u−k, s−k}. Then linearization and discretization are performed to obtain {Ak, Bmk, Bp, zk, wk} and {A−k, B−m, B−kp, z−k, w− k}. Next, the computing device 104 solves the convex subproblem to obtain: {x{circumflex over ( )}k, u{circumflex over ( )}k, s{circumflex over ( )}k}. The extrapolation step computes the updated solution {xk, uk, sk}. The termination criteria to determine convergence of the solution is set as {(Jvc<ϵvc) and (Jxtr<ϵtr)}, where ϵvc, ϵtr∈R++ are user-specified tolerances for the virtual controls and the trust region, respectively. This procedure can be repeated until the termination criterion is satisfied or the iteration count reaches the maximum defined value Nmax∈R++. To solve the convex subproblem the computing device can use a solver or convex optimizer using a parser interface in a programming language, such as Python.

FIG. 4 is a flow diagram of a process 400 for generating trajectory data for an aircraft having six degrees of freedom according to certain aspects of the present disclosure. The process 400 may be executed computing device 104 discussed in the previous figures. The process 400 may make use of the optimization method 300 described in the previous figure.

At block 402 of the process 400, the computing device may model aircraft dynamics associated with the aircraft. Modelling the aircraft dynamics associated may involve generating a space-state model, such as the space-state model shown in equation (7). The computing device may model the aircraft dynamics by generating rotational and translational equations of motion that can describe the motion of the aircraft.

At block 404 of the process 400, the computing device may receive one or more operational constraints. The operational constraints can include the aircraft dynamics, and when imposed, may require that a generated trajectory satisfies the equation(s) of motion associated with the aircraft. The aircraft dynamics can be expressed using equation (41). The operational constraints can include state constraints. Examples of state constraints can include limitations on altitude, airspeed, roll angle, pitch angle, yaw, or any other state variable associated with the aircraft. The state constraints can be expressed using equation (31). In some examples, the operational constraints can include a runway alignment constraint, as shown in equations (32) and (35). The runway alignment constraint can ensure that the aircraft is aligned with the runway during takeoff and/or landing. The operational constraints can include a time mesh uniformity constraint as shown in equations (33) and (34) that can ensure equally spaced intervals of time between discrete sample points in the trajectory data. In some examples, the operational constraints may include an obstacle avoidance constraint as shown in equation (36) to enable the aircraft to avoid collision with obstacles such as contrails, structures, or other aircraft. The operational constraints may also include a continuous time constraint as shown in equation (42) to prevent inter-sample constraint violations in the trajectory data. In some examples, the operational constraints may state triggered constraints that may be enforced based on the temporal state parameters.

At block 406 of the process 400, the computing device may generate an initial guess trajectory. In some examples, the computing device 104 may implement a conventional trajectory generation algorithm to create an initial path between a takeoff location and landing location as a reference trajectory. The reference trajectory may not satisfy the operational constraints 102 and may be iteratively adjusted to do so during optimization.

At block 408 of the process 400, the computing device may iteratively perform an optimization method (e.g., the optimization method 300) subject to the operational constraints to obtain trajectory data associated with the aircraft. The optimization method may involve formulating an optimal control problem for the aircraft and converting the optimal control problem into one or more convex sub-problems. The optimization method may involve solving the one or more convex sub-problems to determine the trajectory data. For example, to generate the trajectory data, the computing device may minimize equation (44) subject to one or more of the aforementioned operational constraints. In some examples, the trajectory data may be a series of vectors, tensors, matrices, or any other data structures suitable for containing the trajectory data. The trajectory data can include temporal state parameters and control input signals associated with the aircraft. The temporal state parameters can include a position of the aircraft, a velocity of the aircraft, one or more Euler angles of the aircraft, an angular velocity of the aircraft, a thrust associated with the aircraft, or any combination thereof. The control input signals may include an aileron command, an elevator command, a rudder command, a thrust command, or any combination thereof. In some examples, the optimization method may be a sequential convex programming method, such as an extrapolated penalized trust region method.

At block 410 of the process 400, the computing device may transmit the trajectory data to a flight computer. The flight computer may receive the trajectory data and issue commands to control the aircraft based on the trajectory data.

FIG. 5 is a block diagram for a computing device for generating trajectory data for an aircraft having six degrees of freedom according to certain aspects of the present disclosure.

The computer system 500 can be used as a node in a computer network, where this node provides one or more computing components of an underlay network of the computer network and/or one or more computing components of an overlay network of the computer network. Additionally or alternatively, the components of the computer system 500 can be used in an endpoint. Although the components of the computer system 500 are illustrated as belonging to a same system, the computer system 500 can also be distributed (e.g., between multiple user devices). The computer system 500 may be the same as the computing device 104, and may be capable of performing an optimization method to generate trajectory data for an aircraft having six degrees of freedom.

The computer system 500 can include at least a processor 502, a memory 504, a storage device 506, input/output peripherals (I/O) 508, communication peripherals 510, and an interface bus 512. The interface bus 512 is configured to communicate, transmit, and transfer data, controls, and commands among the various components of the computer system 500. The memory 504 and the storage device 506 include computer-readable storage media, such as RAM, ROM, electrically erasable programmable read-only memory (EEPROM), hard drives, CD-ROMs, optical storage devices, magnetic storage devices, electronic non-volatile computer storage; for example, Flash® memory, and other tangible storage media. Any of such computer-readable storage media can be configured to store instructions or program codes embodying aspects of the disclosure. The memory 504 and the storage device 506 also include computer-readable signal media. A computer-readable signal medium includes a propagated data signal with computer-readable program code embodied therein. Such a propagated signal takes any of a variety of forms including, but not limited to, electromagnetic, optical, or any combination thereof. A computer-readable signal medium includes any computer-readable medium that is not a computer-readable storage medium and that can communicate, propagate, or transport a program for use in connection with the computer system 500.

Further, the memory 504 includes an operating system, programs, and applications. The processor 502 is configured to execute the stored instructions and includes, for example, a logical processing unit, a microprocessor, a digital signal processor, and other processors. The memory 504 and/or the processor 502 can be virtualized and can be hosted within another computer system of, for example, a cloud network or a data center. The I/O peripherals 508 include user interfaces, such as a keyboard, screen (e.g., a touch screen), microphone, speaker, other input/output devices, and computing components, such as graphical processing units, serial ports, parallel ports, universal serial buses, and other input/output peripherals. The I/O peripherals 508 are connected to the processor 502 through any of the ports coupled to the interface bus 512. The communication peripherals 510 are configured to facilitate communication between the computer system 500 and other systems over a communications network and include, for example, a network interface controller, modem, wireless and wired interface cards, antenna, and other communication peripherals.

Disjunctive language such as the phrase “at least one of X, Y, or Z,” unless specifically stated otherwise, is otherwise understood within the context as used in general to present that an item, term, etc., may be either X, Y, or Z, or any combination thereof (e.g., X, Y, and/or Z).

Thus, such disjunctive language is not generally intended to, and should not, imply that certain examples require at least one of X, at least one of Y, or at least one of Z to each be present.

Use herein of the word “or” is intended to cover inclusive and exclusive OR conditions. In other words, A or B or C includes any or all of the following alternative combinations as appropriate for a particular usage: A alone; B alone; C alone; A and B only; A and C only; B and C only; and all three of A and B and C.

The use of the terms “a” and “an” and “the” and similar referents in the context of describing the disclosed examples (especially in the context of the following claims) are to be construed to cover both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context. The terms “comprising,” “including,” “having,” and the like are synonymous and are used inclusively, in an open-ended fashion, and do not exclude additional elements, features, acts, operations, and so forth. Also, the term “or” is used in its inclusive sense (and not in its exclusive sense) so that when used, for example, to connect a list of elements, the term “or” means one, some, or all of the elements in the list. The use of “adapted to” or “configured to” herein is meant as open and inclusive language that does not foreclose devices adapted to or configured to perform additional tasks or steps. The term “connected” is to be construed as partly or wholly contained within, attached to, or joined together, even if there is something intervening. Recitation of ranges of values herein are merely intended to serve as a shorthand method of referring individually to each separate value falling within the range, unless otherwise indicated herein, and each separate value is incorporated into the specification as if it were individually recited herein. Additionally, the use of “based on” is meant to be open and inclusive, in that a process, step, calculation, or other action “based on” one or more recited conditions or values may, in practice, be based on additional conditions or values beyond those recited. Similarly, the use of “based at least in part on” is meant to be open and inclusive, in that a process, step, calculation, or other action “based at least in part on” one or more recited conditions or values may, in practice, be based on additional conditions or values beyond those recited. Headings, lists, and numbering included herein are for ease of explanation only and are not meant to be limiting.