Method of controlling vehicle to perform soft landing, and related controller and system
10858017 ยท 2020-12-08
Inventors
Cpc classification
Y02T10/64
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
B61L27/04
PERFORMING OPERATIONS; TRANSPORTING
B61L15/0062
PERFORMING OPERATIONS; TRANSPORTING
B61L27/16
PERFORMING OPERATIONS; TRANSPORTING
G06F17/16
PHYSICS
Y02T10/72
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
G06F17/12
PHYSICS
B61L15/0058
PERFORMING OPERATIONS; TRANSPORTING
International classification
B61L27/04
PERFORMING OPERATIONS; TRANSPORTING
B61L27/00
PERFORMING OPERATIONS; TRANSPORTING
G06F17/12
PHYSICS
G06F17/16
PHYSICS
B61L3/00
PERFORMING OPERATIONS; TRANSPORTING
B60L15/20
PERFORMING OPERATIONS; TRANSPORTING
Abstract
A method of controlling a vehicle to soft-land at a target destination includes: determining a terminal set, which is a set of system states of the vehicle under which the vehicle will converge to a target set under constant zero control input; determining a sequence of polytopes, each polytope being an approximation of a backward reachable set of system states of the vehicle; and controlling the vehicle to reach the destination based on the determined polytopes. The method may be performed by one or more controllers.
Claims
1. A method of controlling a vehicle to soft-land at a target destination represented by a target set, the vehicle being controllable according to a control input set, the method being performed by one or more controllers and comprising: determining a terminal set of system states of the vehicle under which the vehicle will converge to the target set under a constant zero control input state, each of the system states of the terminal set including a position-and-velocity state of the vehicle that is within a state constraint set, the state constraint set defining minimum and maximum velocities of the vehicle to reach the target set from respective positions; determining a sequence of polytopes, each of the polytopes representing a respective plurality of system states of the vehicle that are backward reachable from a respective target-state set, which is the terminal set for a first polytope in the sequence and is a previous-in-sequence polytope for each subsequent polytope in the sequence, wherein each respective polytope in the sequence of polytopes is determined by a polytope-determining process comprising determining a backward reachable set from which the respective target-state set is reachable by an input or a sequence of inputs within the control input set, and approximating the backward reachable set with an approximate polytope that is a subset of the backward reachable set, the approximate polytope being determined as the respective polytope in the sequence of polytopes, and the determined sequence of polytopes includes a polytope including a current system state of the vehicle; controlling the vehicle to drive the vehicle from the current system state, through a trajectory of system states of the vehicle, and to a state in the terminal set, the trajectory passing through system states of the vehicle respectively represented by polytopes of a reverse sequence of the sequence of polytopes; and upon determining that the vehicle has reached the terminal set, controlling the vehicle to a constant zero control input state such that the vehicle arrives at the target set.
2. The method according to claim 1, wherein the vehicle comprises one or more engine and brake systems, each having a quantized input, the control input set is a set of all combinations of input states of the one or more engine and brake systems, and each system state, among the system states of the vehicle of the terminal set and among the plurality of system states represented by each of the polytopes in the sequence of polytopes, includes a position-and-velocity state of the vehicle and a state of at least one of the one or more engine and brake systems.
3. The method according to claim 2, wherein the vehicle is a train moving along a fixed track, and the one or more engine and brake systems comprises two engine and brake systems.
4. The method according to claim 1, wherein, in the polytope-determining process, the backward reachable set is a union of polytopes, and the approximating the backward reachable set comprises: determining a convex hull of polytopes in the union of polytopes; determining a reduced-size polytope by shrinking the convex hull into the reduced-size polytope; determining intersections of polytopes in the union of polytopes with the reduced-size polytope; determining whether a union of the intersections is convex; and upon determining that the union of the intersections is convex, determining the union of intersections as the approximate polytope.
5. The method according to claim 1, wherein, in the polytope-determining process, the determining the backward reachable set comprises: determining a first backward reachable set from which the respective target-state set is reachable by one or more inputs within the control input set; and determining a second backward reachable set from which the first backward reachable set is reachable by one or more inputs within the control input set, the second backward reachable being determined as the backward reachable set used in the approximating the backward reachable set.
6. The method according to claim 1, wherein the controlling the vehicle comprises controlling the vehicle to transition system states by: determining that a current system state of the vehicle is within a polytope .sup.(k), which is a polytope in the sequence of polytopes; and controlling the vehicle to drive the vehicle from the current system state to a new system state within the respective target-state set of the polytope
.sup.(k).
7. The method according to claim 1, comprising, for each respective polytope in the sequence of polytopes: selecting a plurality of state-space points in a state space within the respective polytope; and for each respective state-space point among the plurality of state-space points, determining a minimum cost-to-go function among cost-to-go functions among all possible inputs to sequences of the state-space points within a predetermined length, to drive the vehicle from the respective point to a system state of the vehicle within the respective target-state set of the respective polytope, each of the inputs to all possible sequences of the state-space points being within the control input set.
8. The method according to claim 7, wherein the controlling the vehicle to drive the vehicle comprises controlling the vehicle to transition from one system state to another system state by: determining that a current system state of the vehicle is represented by a state-space point among the respective plurality of state-space points in a polytope .sup.(k) in the sequence of polytopes; determining a control input sequence corresponding to the minimum cost-to-go function for the state-space point representing the current system state; and controlling the vehicle to drive the vehicle from the current system state to a new system state within the respective target-state set of the polytope
.sup.(k), by applying the control input to drive the vehicle.
9. The method according to claim 8, wherein the controlling the vehicle to drive the vehicle comprises repeatedly performing the controlling the vehicle to transition system states until the new system state is included in the terminal set.
10. The method according to claim 1, wherein the one or more controllers comprise a controller off-board the vehicle and a controller on-board the vehicle, the determining the terminal set and the determining the sequence of polytopes are performed by the controller off-board the vehicle, and the controlling the vehicle to drive the vehicle and the controlling the vehicle to the constant zero control input state are performed by the controller on-board the vehicle.
11. A system to control a vehicle to soft-land at a target destination represented by a target set, the vehicle being controllable according to a control input set, the system comprising: one or more controllers configured to perform operations including: determining a terminal set of system states of the vehicle under which the vehicle will converge to the target set under a constant zero control input state, each of the system states of the terminal set including a position-and-velocity state of the vehicle that is within a state constraint, the state constraint set defining minimum and maximum velocities of the vehicle to reach the target set from respective positions; determining a sequence of polytopes, each of the polytopes representing a respective plurality of system states of the vehicle that are backward reachable from a respective target-state set, which is the terminal set for a first polytope in the sequence and is a previous-in-sequence polytope for each subsequent polytope in the sequence, wherein each respective polytope in the sequence of polytopes is determined by a polytope-determining process comprising determining a backward reachable set from which the respective target-state set is reachable by an input or a sequence of inputs within the control input set, and approximating the backward reachable set with an approximate polytope that is a subset of the backward reachable set, the approximate polytope being determined as the respective polytope in the sequence of polytopes, and the determined sequence of polytopes includes a polytope including a current system state of the vehicle; controlling the vehicle to drive the vehicle from the current system state, through a trajectory of system states of the vehicle, and to a state in the terminal set, the trajectory passing through system states of the vehicle respectively represented by polytopes of a reverse sequence of the sequence of polytopes; and upon determining that the vehicle has reached the terminal set, controlling the vehicle to a constant zero control input state such that the vehicle arrives at the target set.
12. The system according to 11, wherein, in the polytope-determining process, the backward reachable set is a union of polytopes, and the approximating the backward reachable set comprises: determining a convex hull of polytopes in the union of polytopes; determining a reduced-size polytope by shrinking the convex hull into the reduced-size polytope; determining intersections of polytopes in the union of polytopes with the reduced-size polytope; determining whether a union of the intersections is convex; and upon determining that the union of the intersections is convex, determining the union of intersections as the approximate polytope.
13. The system according to 11, wherein, in the polytope-determining process, the determining the backward reachable set comprises: determining a first backward reachable set from which the respective target-state set is reachable by one or more inputs within the control input set; and determining a second backward reachable set from which the first backward reachable set is reachable by one or more inputs within the control input set, the second backward reachable being determined as the backward reachable set used in the approximating the backward reachable set.
14. The system according to 11, wherein the controlling the vehicle comprises controlling the vehicle to transition system states by: determining that a current system state of the vehicle is within a polytope .sup.(k), which is a polytope in the sequence of polytopes; and controlling the vehicle to drive the vehicle from the current system state to a new system state within the respective target-state set of the polytope
.sup.(k).
15. The system according to 11, wherein the operations comprise, for each respective polytope in the sequence of polytopes: selecting a plurality of state-space points in a state space within the respective polytope; and for each respective state-space point among the plurality of state-space points, determining a minimum cost-to-go function among cost-to-go functions among all possible sequences, within a predetermined length, of inputs to drive the vehicle from the respective point to a system state of the vehicle within the respective target-state set of the respective polytope, each of the all possible sequences of inputs comprising inputs within the control input set.
16. The system according to 15, wherein the controlling the vehicle to drive the vehicle comprises controlling the vehicle to transition from one system state to another system state by: determining that a current system state of the vehicle is represented by a state-space point among the respective plurality of state-space points in a polytope .sup.(k) in the sequence of polytopes; determining a control input sequence corresponding to the minimum cost-to-go function for the state-space point representing the current system state; and controlling the vehicle to drive the vehicle from the current system state to a new system state within the respective target-state set of the polytope
.sup.(k), by applying the control input to drive the vehicle.
17. The system according to 16, wherein the controlling the vehicle to drive the vehicle comprises repeatedly performing the controlling the vehicle to transition system states until the new system state is included in the terminal set.
18. The system according to 11, wherein the one or more controllers comprise: a controller off-board the vehicle, configured to perform the determining the terminal set and the determining the sequence of polytopes; and a controller on-board the vehicle, configured to perform the controlling the vehicle to drive the vehicle and the controlling the vehicle to the constant zero control input state are performed.
19. A method performed by a controller of a system to control a vehicle to soft-land at a target destination, the method comprising: determining a terminal set of system states of the vehicle under which the vehicle will converge to a target set under a constant zero control input state, each of the system states of the terminal set including a position-and-velocity state of the vehicle that is within a state constraint set, wherein the target set represents a target destination at which the vehicle is to soft-land, and the state constraint set defines minimum and maximum velocities of the vehicle to reach the target set from respective positions.
20. The method according to claim 19, wherein each of the system states of the vehicle includes a position state of the vehicle that is greater than or equal to a lower bound position p and less than or equal to an upper bound position
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5) .sup.(3) of the terminal set, for an example implementation of Algorithms 1 and 2.
(6) .sup.(1) used to approximate the backward reachable set
.sup.(3) shown in
(7) .sup.(2) of the polytope
.sup.(1) shown in
(8) .sup.(2) generated as an approximation of the backward reachable set
.sup.(2) shown in
(9) .sup.(1) and
.sup.(2) shown in
(10)
(11)
(12)
(13)
(14)
(15)
DESCRIPTION OF EMBODIMENTS
(16) Hereinafter, various embodiments will be described. The description and illustrations are illustrative in nature and are not intended to limit the scope of the claims. Furthermore, it should be understood that details may be omitted when not necessary to understand the embodiments.
(17) In this disclosure, the symbol and the term subset generally do not require a proper (i.e., strict) subset, and may be satisfied by the two sets being equal. For example, AB and A is a subset of B are satisfied when the set A is be less than or equal to the set B. Nonetheless, whenever a set is described as being subset of a second set using the above symbol or the term subset, the description is considered to have also specifically disclosed the situation in which the set is a proper subset of the second set.
(18) In this disclosure, the singular forms of terms (including terms preceded by a or an) have a scope of one or more of the referents, unless the context clearly indicates otherwise. The term or generally has the meaning of an inclusive or, as opposed to a mutually-exclusive or, unless the context clearly indicates otherwise. The phrase a position-and-velocity state of a vehicle refers to a state defined by the combination of at least a position of the vehicle and a velocity of the vehicle.
(19) In this disclosure, a polytope may be satisfied by any set or collection of mathematical quantities and/or mathematical relations that is sufficient to define a polytope for purposes of practicing embodiments of this disclosure, such as a set or collection of the vertices of the polytope and/or a set or collection of mathematical inequalities that define the faces of the polytope. For example, the operation of determining a polytope may be satisfied by determining the vertices of the polytope (e.g., in the form of a set of points within a certain space, such as a state space), and may also be satisfied by determining a set of inequalities that define the faces of the polytope.
(20) Embodiments of this disclosure relate to controlling a transportation vehicle to soft-land at a target destination. The vehicle may have quantized inputs for its propulsion and braking system. An example of a vehicle with quantized inputs for propulsion and braking is a train moving along a fixed track.
(21)
(22)
(23) The one or more sensors 230 are configured to obtain information, pertaining to movement-related parameters of the vehicle, that enable detection of the position and speed (or velocity) of the vehicle by the controller 210, and to provide the information to the controller 210. The one or more sensors 230 may sense speed, direction, and/or distance (to a certain object), for example. Such sensors may be attached to or integrated into the vehicle so as to be moving together with the vehicle, but may also be off-board (external to the vehicle). The one or more sensors 230 may be implemented as a combination of attached/integrated sensors and off-board sensors, and may be a combination of sensors configured to track different parameters of the vehicle. An off-bard sensor may, for example, be mounted to a train station or other fixed structure, and may be coupled to a transmitter to transmit the information the controller 210 or any component on the train.
(24) Each of the one or more engine and brake systems 220 may comprise an engine (or motor) and a drivetrain to propel the vehicle forward, and brakes to slow down the vehicle. Both the engine and the brakes are controlled by the controller 210. Neither the engine nor the brakes are limited to any particular type. Additionally, within an engine and brake system, the brakes and engine may have separate, shared, and/or the same components. For example, the brakes may be an engine break. For example, the engine may be an electric engine that is able to generate a torque to actively cause the vehicle to decelerate.
(25) In this disclosure, the term actuator is sometimes used to denote an engine and brake system, since an engine and brake system actuates the vehicle by propelling it forward or slowing it down. An engine and brake system may also be referred to as a propulsion and braking system. If the vehicle is embodied as a train, the one or more engine and brake systems 220 may also be referred to as one or more traction and brake systems. The train may also have multiple engines, each with its own braking system, so as to have a plurality of engine and brake systems 220.
(26) The one or more engine and brake systems may be a plurality of actuators including a first actuator and a second actuator, each having quantized actuator inputs. The first actuator may be a pneumatic actuator, and the second actuator may be an electric actuator. The plurality of actuators may have different characteristics. For example, the pneumatic actuator may act slower than the electric actuator but have a higher force (a higher gain) than that of the electric actuator. For example, the pneumatic actuator may comprise a pneumatic braking system and a first engine of the vehicle. The electric actuator may comprise an electric engine, serving as a second engine of the vehicle and having the ability to engine brake.
(27) The controller 210 may comprise at least one hardware processor 211 configured (e.g., programmed) to implement various functionalities of the controller. For example, the at least one processor may be configured to compute drive signals for driving the one or more engine and brake systems 220. The controller 210 may have interfaces to input signals from the one or more sensors 230, and to output drive signals to the one or more engine and brake systems 220. The controller 210 may include a memory 212 to which the at least one processor is coupled. The particular type of controller may depend on the type of vehicle. If the vehicle is embodied as a train, the controller 210 (or part thereof located on the vehicle) may be a train control system. If the vehicle is embodied as a road vehicle, the controller 210 (or part thereof located on the vehicle) may include one or more electronic control units (ECU). Examples of ECUs include a engine control module (ECM), a powertrain control module (PCM), a transmission control module (TCM), and a brake control module.
(28)
(29) For the example of a train moving along a fixed track and having a pneumatic actuator and an electric actuator, the system dynamics of the train may be represented using the following expression, which appears in C. Danielson and S. Di Cairano, Robust soft-landing control with quantized input, IFAC-PapersOnLine, vol. 49, no. 18, pp. 35-40, 2016:
(30)
where the system state x(t)=[x.sub.m,1(t) x.sub.m,2(t) x.sub.m,2(t)].sup.T.sup.3, the control input u(t)=[q.sub.e(t) q.sub.a(t)].sup.T
, and the time index t0. x.sub.m,1(t) and x.sub.m,2(t) are the position and velocity of the vehicle, respectively, and q.sub.e(t) is the control input of the electric actuator. x.sub.q(t) and q.sub.a(t) are the state and the control input of the pneumatic actuator, respectively. x(t), as expressed above, is an example of a system state of the vehicle, and x.sub.q(t) is an example of a state of at least one engine and braking system of the vehicle. m, b, .sub.a, k.sub.a, k.sub.e are parameters of the vehicle as follows: m is the mass of the vehicle, b is the viscous friction coefficient, .sub.a is the time-constant of the pneumatic acutator, k.sub.a is the gain of the penumatic actuator, and k.sub.e is the gain of the electric actuator. In example embodiments, k.sub.a is larger than k.sub.e. The control input set
.sup.2 is discrete. An example control input set is
={0,1, 1}{0,1, 1,0.5, 0.5}, where
represents that the electric actuator can switch between forward (1), idle (0), and braking (1); similarly, the pneumatic actuator can switch between full forward (1), half forward (0.5), idle (0), half braking (0.5), and full braking (1).
(31) In the following description, the system as defined by equation (1) above is sometimes referred to as system (1) and is used as an non-limiting example to illustrate the various operations of the method of controlling a transportation vehicle according to the present disclosure.
(32) It is noted that the although system (1) models two actuators (two engine and braking systems), the system is reducible to the situation of one actuator only (i.e., only one engine and braking system). In the case of one actuator, the parameters associated with one of the two actuators in system (1) would be removed or set to zero.
(33) An objective of soft-landing is to drive the vehicle to reach a target set while satisfying a state constraint. The target set represents the destination and may be a window (represented as a range of positions) within which the vehicle is desired to soft-land. The target set may be represented as a set of one or more one or more position-and-velocity states of the vehicle, where each state includes a position of the vehicle (the position being a destination position) and a velocity of the vehicle (the velocity being zero, since the vehicle is stopped at the destination position). In the following discussion, the target set is sometimes denoted by (tau).
(34) For system (1) discussed above, the target set may be defined as
(35)
Recall that x.sub.m,1(t) and x.sub.m,2(t) are the position and velocity of the vehicle, respectively. The target set as defined in equation (2) represents that the objective of soft-landing is to stop the vehicle within a small window [x.sub.min, x.sub.max] around the origin, such as a window of several meters.
(36) The state constraint set, X, enforces that the vehicle approaches the target stopping window (representing the desired destination of the vehicle) neither too fast nor too slow. For system (1) discussed above, X may be defined as
(37)
(38)
(39)
(40) The Soft-Landing Control Design Problem
(41) In general, the soft-landing control design problem pertains to designing a set (denoted by in examples below) and a causal control input sequence (denoted by u(t) in the examples below) for controlling the vehicle such that for any initial state of the vehicle within this set, the following two conditions are satisfied: First, the vehicle is controlled such that the velocity and position of the vehicle remain within the constraint set (the condition of constraint satisfaction). Second, the vehicle is controlled such that the velocity and position state of the vehicle eventually reaches a state within the target set (the condition of attractivity).
(42) For the preceding example setup of equations (1), (2) and (3), the soft-landing control design problem can be formulated as follows:
(43) Formulation of the soft-landing control design problem. Given a system (1) and its constraint set X (3) and target set (2), with the assumption that x(t) is available, design a set and a causal control input sequence u(t) such that for every x(0)
, the following two conditions are satisfied:
(44)
Terminal Set Construction
(45) One aspect of the present disclosure is the transformation of the standard soft-landing problem of controlling the vehicle to stop within a small window at zero velocity (i.e., controlling the vehicle so as to reach target set ) into the problem of controlling the vehicle to reach a different small window at velocity that may be a low (but non-zero) velocity. This different small window is called a terminal set, which can thus be understood as an alternate target set.
(46) Referring again to the method depicted in
(47) In general, the terminal set, which is denoted X.sub., includes a set of systems states of the vehicle such that each of the system states in the terminal set is a subset of the state constraint set X and is a system state of the vehicle under which the vehicle will eventually arrive at the target set under a constant zero input.
(48) In other words, the terminal set X.sub.X is constructed such that if x(t)X.sub. for some t, then x(t) will converge to eventually under a constant zero input. Consequently, the soft-landing control design problem is transformed into designing a control input to reach X.sub..
(49) System (1) can be written in discrete-time form as follows:
(50)
where k is the discrete-time index. In the above the short-hand notation, x(k)=x(t.sub.k), where t.sub.k=kt and t, is the sampling period. Matrices A and B can be computed given the system parameters as stated in (1). Given the specific form of system (1), matrix A in (4) can be written as:
(51)
(52) Matrices A and B may be calculated based on the dynamics of the train as in equation (1) and a sampling period. These calculations of matrices A and matrix B may involve matrix exponential computations used in control theory.
(53) Next, a terminal set X.sub. can be constructed according to the following Lemma.
(54) Lemma 1. Given system (4), the target set (2), and the state constraint set X (3) with the origin in its interior, if the parameters in matrix A (5) satisfy 0<.sub.2<.sub.1<1, and a, b, and c are all positive reals, then there exist p, .sup.3 of the form
(55)
such that if x(k*)X.sub. for some k*, then under constant zero input [q.sub.e(k) q.sub.a(k)].sup.T[0 0].sup.T, kk*, the state trajectory of system (4) satisfies [x.sub.m,1(k) x.sub.m,2(k)].sup.TX for all kk*, and lim.sub.k.fwdarw.[x.sub.m,1(k) x.sub.m,2(k)].sup.T. .square-solid.
(56) The terminal set X.sub. is a subset of the constraint set X (i.e., X.sub.X) in that for any (x.sub.m,1, x.sub.m,2, x.sub.q) within X.sub., the (x.sub.m,1, x.sub.m,2) is also within X. That is, all position-and-velocity states of vehicle in the terminal set are within the constraint set. Additionally, the expression 0x.sub.m,2
(57) A proof of the above lemma is provided as follows. Assume that the hypothesis of the lemma holds and X.sub. is of the form (6) where p,
x.sub.q(k)=.sub.2r.sup.kk*x.sub.q(k*),kk*.(7)
(58) Consequently, for every kk*,
(59)
(60) Since .sub.2/.sub.1<1 by assumption,
(61)
Since c>0, qx.sub.q(k*)0, and q>0 by assumption,
(62)
(63) Recall (8). Since 0<.sub.1<1 and 0x.sub.m,2(k*)
(64)
(65) Next, by (4) and (5),
x.sub.m,1(k)=x.sub.m,1(k*)+.sub.l=k*.sup.k1ax.sub.m,2(l)+.sub.l=k*.sup.k1bx.sub.q(l),kk*.(10)
(66) Recall (8). For all kk*+1,
(67)
Therefore,
(68)
Note that since 0x.sub.m,2(k*)
(69)
Recalling (7),
(70)
Recalling (10) and noting that x(k*)X.sub.,
(71)
(72) Since the origin is in the interior of X, there is some >0 such that {x.sup.2:x.sub.1<}X. Recall (9) and (11). p,
(73)
then, [x.sub.m,1(k) x.sub.m,2(k)].sup.TX for all kk*. It is noted that that when selecting the terminal set, the choice of values for the parameters p,
(74) Recall (8) and note that both x.sub.m,2 (k*) and
(75)
are bounded and that .sub.1 is less than 1. Thus, x.sub.m,2(k) is convergent and lim.sub.k.fwdarw.x.sub.m,2(k)=0. Recall (10) and note that lim.sub.l.fwdarw.(x.sub.m,2(l)).sup.1/l=<1 and that x.sub.q(l)=.sub.2.sup.lk*x.sub.q(k*). Thus, x.sub.m,1(k) is convergent. Recalling (11), choose p,
(76)
then x.sub.min<lim.sub.k.fwdarw.X.sub.m,1(k)<x.sub.max.
(77) One example systematic way of choosing the parameters p, .sup.2:x|.sub.1<}X. Next, choose
(78)
and |
(79)
by halving or otherwise reducing the value of
(80)
by halving or otherwise reducing the value of q multiple times if necessary. Finally, test this choice of parameters p,
(81) Consequently, lim.sub.k.fwdarw.[x.sub.m,1(k) x.sub.m,2(k)].sup.T. .square-solid.
(82) Backward Reachability Computation with Linear Complexity
(83) By Lemma 1, the soft-landing control design problem is transformed into finding a control input sequence that can drive the system state to reach the terminal set X.sub. (6). A possible approach is to compute a sequence of backward reachable sets of X.sub..
(84) For a given a time horizon N.sub.+, the sequence of backward reachable sets may be defined as {
.sup.(k)}.sub.k=0.sup.N, where k represents the index in the sequence. The first backward reachable set,
.sup.(0), is the terminal set X.sub.. Then, each next backward reachable set in the sequence is the set of all x belonging to the state constraint set X from which the previous backward reachable set is reachable using some input u that is within the control input set
. The sequence {
.sup.(k)}.sub.k=0.sup.N may be defined as
.sup.(0)=X.sub.,(13)
.sup.(k+1)={xX:Ax+Bu
.sup.(k), for some u
},(14)
for k=0, . . . , N1. An immediate issue with the above approach is that the required computation grows exponentially with N: Computing .sup.N could potentially require |
|.sup.N elementary polytopic operations. In this particular example of system (1) where |
|=15, if N=20, then the required number of operations could reach the order of 10.sup.23, which is computationally undesirable.
(85) To avoid exponential computational complexity, this disclosure provides a process to approximately compute the backward reachable sets such that the required number of operations grows linearly with N.
(86) Referring again to the method depicted in .sup.(0) in Algorithm 1 below), which is the terminal set (e.g., terminal set X.sub.) for a first polytope in the sequence and is a previous-in-sequence polytope for each subsequent polytope in the sequence.
(87) The sequence of polytopes may be determined using a process of computing approximate backward reachable sets. Each respective polytope in the sequence of polytopes may be determined by a polytope-determining process that includes: determining a backward reachable set from which the respective target-state set is reachable by one or more inputs within the control input set, and approximating the backward reachable set with an approximate polytope that is a subset of the backward reachable set, the approximate polytope being determined as the respective polytope in the sequence of polytopes. The determined sequence of polytopes includes a polytope that represents a current system state of the vehicle.
(88) A proposed technique for computing approximate backward reachable sets is as follows. First, compute the backward reachable sets of for only a few steps. The computed reachable set, say .sup.(2) or
.sup.(3), is a union of polytopes. next, use a single large polytope (also referred to as an approximate polytope) to approximate this union of polytopes. Iteratively, compute the backward reachable sets of this approximate polytope for a few steps, and use another large polytope to approximate the computed union of polytopes. This process is repeated until the time horizon N is reached. This process may be implemented in accordance with Algorithm 1 shown below. In the algorithm, S indicates the number of steps. Typically, S is a small integer, for instance 2 or 3.
(89) TABLE-US-00001 Algorithm 1: Algorithm for computing approximate backward reachable sets to determine a sequence of polytopes 1: Initialize: (0) = .sub., k = 1. 2: while kS N do 3: Compute backward reachable sets
.sup.(1), ... ,
.sup.(S) as in (14) 4: Approximate
.sup.(S) with a polytope
.sup.(k) satisfying
.sup.(k)
.sup.(S). 5: Update
.sup.(0)
.sup.(k). 6: k k + 1. 7: end while 8: Return: Polytopes
.sup.(1),
.sup.(2), ... ,
.sup.(N/S)
(90) In Algorithm 1, the amount of required computation grows linearly with the time horizon N.
(91) Note that Line 3 of Algorithm 1 shows an operation of determining a first backward reachable set .sup.(1) from which the respective target-state set (i.e.,
.sup.(0), which is X.sub. in the first iteration of the while loop) is reachable by one or more inputs within the control input set
, and then determining a second backward reachable set
.sup.(S) from which the first backward reachable set is reachable by a certain number of inputs within the control input set
of the vehicle. The number of inputs is equal to or less than the number of steps, S.
(92) S, the number of steps, may be of an arbitrary number, such as 1, 2, 3, 4, 5, 6, etc. For example, if the number of steps is 2, then line 2 of Algorithm 1 would be while 2kN do and line 4 of Algorithm 1 would be Approximate .sup.(2) with a polytope
.sup.(k) satisfying
.sup.(k)
.sup.(2). For example, if the number of steps is 3, then line 2 of Algorithm 1 would be while 3kN do and line 4 of Algorithm 1 would be Approximate
.sup.(3) with a polytope
.sup.(k) satisfying
.sup.(k)
.sup.(3). Increasing the number of steps results in higher accuracy but greater complexity for each iteration.
(93) For purposes of discussing additional computations that utilize the polytopes calculated according to Algorithm 1, it is sometimes assumed for convenience that S=2, in which case the sequence of polytopes returned by Algorithm 1 is .sup.(1),
.sup.(2), . . . ,
.sup.(N/2).
(94) Line 4 of Algorithm 1 refers to the process of approximating the backward reachable set with an approximate polytope. This process, which finds a large polytope to approximate a union of polytopes, may include: determining a convex hull of polytopes in the union of polytopes; determining a reduced-size polytope by shrinking the convex hull into the reduced-size polytope; determining respective intersections of the polytopes in the union of polytopes with the reduced-size polytope; determining whether a union of the intersections is convex; and upon determining that the union of the intersections is convex, determining the union of intersections as the approximate polytope.
(95) To illustrate, consider the following problem: Given a union of polytopes U.sub.i=1.sup.N.sup.
(96) TABLE-US-00002 Algorithm 2: Algorithm for approximating a union of polytopes with one polytope 1: Input: .sub.i=1.sup.N.sup.
(97) Note that the R that is returned by Algorithm 2 at line 11 is a subset of U.sub.i=1.sup.N.sup.
(98) In line 2 of Algorithm 2, hull refers to a function that computes the convex hull of the input points. To illustrate hull, consider a polytope Q, let q.sub.2, q.sub.N be its vertices. Then, Q=hull(q.sub.1, q.sub.2, . . . , q.sub.N). Next, let Q.sub.1, Q.sub.2, . . . , Q.sub.NQ be NQ polytopes, and let Q.sub.i have vertices q.sub.1,i, q.sub.2,i, . . . , q.sub.Ni,i, where 1iNQ. Then, V=hull(Q.sub.1, . . . , Q.sub.NQ)=hull(q.sub.1,1, q.sub.2,1, . . . , q.sub.N1,1, q.sub.1,2, q.sub.2,2, . . . , q.sub.N2,2, . . . , q.sub.1,NQ, q.sub.2,NQ, . . . , q.sub.NNQ,NQ). That is, the output V returned by hull is the convex hull of all of vertices of all of the polytopes Q.sub.1 through Q.sub.N.sub.
(99) .sup.(3) (402).
.sup.(1) computed as an approximation of
.sup.(3).
(100) As shown in .sup.(3) of was computed for three steps according to (13) and (14). Since
.sup.(3) is a union of polytopes and this union is connected, a single polytope
.sup.(1) was used to approximate it, as shown in
.sup.(1) was generated by inspecting
.sup.(3). While inspection is one way of generating the approximate polytope, the process is implemented on a controller, the controller would follow an algorithm, such as Algorithm 2.
(101) .sup.(1) for 2 steps and its approximation. Given
.sup.(1), its backward reachable sets for two steps was computed as stated in line 3 in Algorithm 1. As shown in
.sup.(2) of
.sup.(1) is a union of polytopes, and Algorithm 2 was run to generate a polytope
.sup.(2) (shown in
.sup.(2).
(102) Repeating the preceding computation according to the while loop in Algorithm 1, a sequence of polytopes .sup.(1),
.sup.(2), . . . ,
.sup.(10) was generated such that U.sub.i.sup.10
.sup.(i) is an approximation of the backward reachable set
.sup.(N) starting from the terminal set X.sub. with N=21. The computed polytopes are shown in
.sup.(1), . . . ,
.sup.(10).
(103) In this illustration, when computing the backward reachable sets, only the situation where x.sub.q(t) is bounded was considered because .sub.2<1 in (4), (5), and the input set is bounded. Therefore, x.sub.q(t) would be bounded.
(104) Computation and Implementation of Control Input
(105) Referring to .sup.(1),
.sup.(2), . . . ,
.sup.(10), discussed above); and upon determining that the vehicle has reached the terminal set, controlling the vehicle to a constant zero control input state such that the vehicle arrives at the target set.
(106) The operation of controlling the vehicle to soft-land may include generating a quantized control input commands to approximately minimize a cost function and, at the same time, driving the vehicle (e.g., train) such that the vehicle stays within the constraint set X and eventually stops within the target set . As will be more apparent from the following discussion, a feature of the computation is that the computation complexity is linear with respect to the control input sequence length, while a brute force solution to this integer optimization problem would require exponential complexity.
(107) Assuming the hypothesis in Lemma 1 is satisfied, it is possible to construct the terminal set X.sub. and compute the backward reachable sets
(108)
as discussed above. This construction of terminal set and backward reachable set establishes the feasibility of a solution to the aforementioned formulation of the soft-landing control design problem, as explained below.
(109) Particularly, by Algorithm 1, for every x.sup.(i+1) there exists (u.sub.1, u.sub.2)
.sup.2 such that
Ax+Bu.sub.1X,
A.sup.2x+Bu.sub.2+ABu.sub.1.sup.(i).(15)
(110) Next, define set as
(111)
(112) Lemma 2. Given system (4), the constraint set X (3), and the target set (2), assume the hypothesis in Lemma 1 are satisfied. Let .sup.(1), . . . ,
.sup.(N/2) be computed using Algorithm 1, and let
be defined as in (16). For all x(0)
, there exists a control input sequence {u.sub.k}.sub.k=0.sup.N1
.sup.N such that items 1) and 2) in the formulation of the soft-landing control design problem are satisfied. .square-solid.
(113) Essentially, Lemma 2 states that for all initial states x(0), the existence of a control input sequence that solves the formulation of the soft-landing control design problem is mathematically guaranteed.
(114) With the existence of the solution established, an optimal control approach is formulated below. Principles in dynamic programming may be used to actually find the control input sequence. Dynamic programming is especially useful in this case because of the discrete nature of the input set (see A. E. Bryson, Applied optimal control: optimization, estimation and control. CRC Press, 1975, p. 136). In particular, consider the following optimal control problem:
(115) For x(0) (16), determine t.sub.f
and {u(t)}.sub.t=0.sup.t.sup.
.sup.t.sup.
J=.sub.t=0.sup.t.sup.
subject to
x(t+1)=Ax(t)+Bu(t),t=0,1, . . . ,t.sub.f,
x(t)X,t=0,1, . . . ,t.sub.f,
x(t.sub.f)X.sub..(18)
(116) In (17), positive symmetric definite matrices Q, R correspond to state cost and input cost respectively, and L>0 corresponds to the time cost.
(117) The optimal control problem as formulated above can be sub-optimally solved as follows. Start by defining a cost-to-go function V(x). Specifically, for x, define a function V(x) recursively as:
V(x)=0,VxX.sub.,(19)
and for k1, let f(x,u) denote Ax+Bu. Recall in Algorithm 1 where S is the number of steps, for any 1MS, write u=(u.sub.1, u.sub.2, . . . , u.sub.M).sup.M, and define V(x) on the set
.sup.(k)\((U.sub.i=1.sup.k1
.sup.(i)))X.sub.) as the following equation (20):
(118)
(119) For example, in the case of S=2, the right-hand side of equation (20) becomes:
(120)
By (15), V(x) is well-defined for all x. The formulation in (20) is based on the principle of the Bellman equation.
(121) The value function V(x) may be computed a priori on a discretized state space (rather than a continuous state space) by generating a grid {x.sub.i.sup.D}.sub.i=1.sup.N.sup. and computing V(x.sub.i.sup.D), i=1, . . . , N.sub.x accordingly. That is, the state space in each of the polytopes in the sequence of polytopes may be discretized into state-space points in the state space, and the domain x of V(x) may be the combination of all discretized points across all of the polytopes in the sequence of polytopes. The number of discretized points may be the same among each of the polytopes, but may also be different.
(122) With the cost-to-go function V(x) computed, the controller 210 and 210a of
(123) To determine the control input sequence, the controller may select the control input sequence corresponding to the minimum cost-to-go function for the state-space point that is or represents the current state of the vehicle. By the computation of the cost-to-go function V(x), this control input sequence was predicted as being capable of driving the vehicle from a system state representing the current state to a system state in the next polytope. This system state in the next polytope is a system state that is within the respective target-state set associated with the aforementioned polytope. For example, for polytopes .sup.(N/2) to
.sup.(2), the respective target-state set is the polytope that is earlier-in-sequence (i.e., having a lower index) than the aforementioned polytope; for polytope
.sup.(1), the respective target-state set is the terminal set X.sub.. The length of the control input sequence is equal to or less than the number of steps, S (which is 2 in the instant discussion of polytopes
.sup.(N/2) to
.sup.(2)), in the computation of backward reachable sets.
(124) To drive the vehicle to the aforementioned new system state of the vehicle, the controller may select the control input sequence corresponding to the minimum cost-to-go function for the state-space point that is or represents the current state of the vehicle, and apply, to the one or more engine and brake systems 220, the determined control input sequence. If the vehicle's movement is perfectly modeled by the computations, the new system state of the vehicle would simply be equal to the next system state mentioned above. However, the new system state may be somewhat different from the next system state as a result of discretization or other perturbations.
(125) The above operations (a), (b), and (c) may be repeated until the vehicle reaches a position-and-velocity state included in the terminal set (e.g., the terminal set X.sub.i).
(126) When the controller 220 determines that the vehicle has reached the terminal set (by, for example, determining that the current state of the vehicle is within the terminal set), the controller 220 applies a zero control input state to the one or more engine and brake systems 220, such that the vehicle arrives at the target set.
(127) The following Algorithm 3 provides an example implementation of the operations of the controller in solving the soft landing problem:
(128) TABLE-US-00003 Algorithm 3: Algorithm for a controller for soft-landing 1: Input: x(0) 2: Initialize x x(0). 3: while x .Math. .sub. do 4: Determine k = min{k
: x
.sup.(k)} 5: Compute u* = argmin.sub.u.sub.
6: Apply u* to system (4) to reach the state x 7: Update x x 8: end while 9: Apply constant zero control input to system (4).
(129) For the purpose of the following exposition, the number of steps S is taken to be 2. A controller configured to perform Algorithm 3 has the following property: Given system (4), the constraint set X (3), and the target set (2), assume the hypothesis in Lemma 1 are satisfied and the terminal set X.sub. is constructed accordingly. Let the design parameters N, Q, R, L be given, and let .sup.(1), . . . ,
.sup.(N/2) be computed using Algorithm 1, and the value function V(x) be computed recursively based on (19), (20). Let
(130)
then for all x(0) the control input sequence generated by Algorithm 3 solves the aforementioned formulation of the soft-landing control design problem and sub-optimally minimizes the cost function J (17). .square-solid.
(131) As noted above, the value function V(x) may be computed a priori on a discretized state space (instead of a continuous state space) by generating a grid {x.sub.i.sup.D}.sub.i=1.sup.N.sup. and computing V(x.sub.i.sup.D), i=1, . . . , N.sub.x accordingly. Then in the implementation of the controller, whenever the controller needs to evaluate V(x) (as in line 5 of Algorithm 3), it uses the approximate value V(x)V(x.sub.i*.sup.D) where i*=argmin.sub.ixx.sub.i.sup.D.
(132) By the method according to the present disclosure, a process of controlling a vehicle to soft-land can be carried out with linear computational complexity for computations involved in the process. Accordingly, the controller (controller 210 of
(133) Among the operations discussed in this disclosure, operation 101 of
(134) As noted, the controller 210 of
(135) The functionalities of controller 210
(136) The at least one hardware processor 211 of the controller 210 may be configured (e.g., programmed) to implement functionalities of the controller 210, including the computation of the terminal set X.sub., the sequence of polytopes, and the value function V(x), the selection of the input (u.sub.1*, u.sub.2*) in Algorithm 3, and any other operations (arithmetic, logical, etc.) to implement functionalities of the controller 210. If the functionalities of controller 210 are separately performed between the on-board controller 210a and off-board controller 210b, then the at least one hardware processor 211a and the at least one processor 211b would be configured (e.g., programmed) to implement functionalities of the controller 210 respectively performed by the on-board controller 210a and off-board controller 210b.
(137) Each of the at least one hardware processor 211, 211a, 211b may perform its respectively associated functions by executing instructions (in the form of a program or software, for example) stored in a non-transitory computer-readable storage medium, which may be any data storage device that can store data which can be thereafter read by the respective at least one hardware processor.
(138) That is, the non-transitory computer-readable storage medium for the at least one hardware processor 211 may store instruction that, when executed by the at least one hardware processor 211, causes the controller 210 to control components the system 200 to perform the methods, computations, control operations discussed in this disclosure, including the method shown in
(139) The memory 212, 212a, 212b may include any combination of volatile memory and/or non-volatile memory, and may include memory used in the computations and other operations performed by the respective at least one hardware processor and/or memory that may serve as the non-transitory computer-readable storage medium. The memory 212, 212a, 212b may be used to store any parameter discussed in this disclosure. For example, parameters such as m, b, k.sub.a, k.sub.e, and .sub.a may be stored prior to the method of
(140) Any component referred to as a hardware processor may include a central processing unit (CPU), a graphics processing unit (GPU), a microcontroller, a microprocessor, and/or a programmable processing component (e.g., a field-programmable gate array (FGPA), and/or an applications-specific integrated circuit (ASIC)). Any component referred to as at least one hardware processor may be a plurality of processors in communication with each other through a communication system, such as a controller area network (CAN) bus if the vehicle is embodied as a road vehicle. When a process is performed by a plurality of processors, individual operations within the process may be carried by different individual processors or carried out simultaneously by multiple processors.
(141) Although the processes for backward reachability computation with linear complexity discussed above (including Algorithms 1 and 2) were applied to terminal set X.sub. as defined earlier, this terminal set may be replaced with a different set, according to other embodiments of this disclosure. In other words, the processes for backward reachability computation with linear complexity discussed above (including Algorithms 1 and 2) can be used to calculate backward reachability from an arbitrary set (of system states of the vehicle to which the vehicle is desired to be controlled), without limitation to X.sub.. This arbitrary set of system states would replace X.sub. in Algorithm 1.
EXAMPLES
(142) Consider a system (vehicle, such as a train) characterized by the expression of system (1), with parameters: m=1000, b=75, k.sub.a=400, k.sub.e=200, .sub.a=1.5, and a cost function J characterized by (17), where R=I.sub.22, L=3, and Q is the zero matrix (no state cost). The discrete-time system (4) is generated by taking the sampling period to be t=1. The target set (2) has the parameters x.sub.min=2, x.sub.max=2 and the constraint set X has the parameters .sub.min= 1/15, .sub.max=. As for the parameters for the controller, the time horizon is chosen to be N=20. The terminal set X.sub. and the backward reachable sets .sup.(1),
.sup.(2), . . . ,
.sup.(10) are computed accordingly and shown in
(143) An example of a computation process for the system (a train) with the parameters, target set , and the constraint set X given in the above paragraph is provided below.
(144) First, the matrix A in equation (4) is computed as
(145)
(146) That is, in the representation of A in equation (5), a=0.963, b=0.158, c=0.280, .sub.1=0.928, and .sub.2=0.513.
(147) Since the above matrix A satisfies the hypothesis in Lemma 1, the target set X.sub. is constructed. Based on the derivation of Lemma 1, especially equations (9) and (11), choose the parameters for in the form of (6) as follows: p=0.7,
(148) Next, the backward reachable sets are computed based on Algorithm 1. Specifically, as in line 1 in Algorithm 1, initialize .sup.(0)=X.sub.. Next, in accordance with line 3 of Algorithm 1,
.sup.(1) is computed based on equation (14).
.sup.(1).
(149) The computation of .sup.(1) involves elementary polytope operations such as translation and computing the pre-image under a linear transformation, i.e. matrix multiplication. In a similar fashion,
.sup.(2) and
.sup.(3) are computed based on equation (14).
.sup.(2).
.sup.(3).
(150) Note that .sup.(3) is a union of many polytopes. A single polytope
.sup.(1) is used to approximate
.sup.(3) as stated in line 4 of Algorithm 1. Although Algorithm 2 can be used in constructing this approximation, for purposes of illustration, Algorithm 2 is not used in this particular step of this example. The construction of
.sup.(1) is done by inspection of
.sup.(3) and finding a polytope inside this polytope union, while Algorithm 2 will be used in later steps discussed below to automatically generate approximations of polytope unions.
.sup.(1) (see also
.sup.(1) by inspection of
.sup.(3) is for illustrative purposes. When the process is implemented on a controller, the controller would follow an algorithm, such as Algorithm 2.
(151) Next, proceeding as in Algorithm 1, lines 5 and 6, .sup.(0) is set so that
.sup.(0)=
.sup.(1) and k is incremented to 2. Then, as in Algorithm 1, go to the front of the while loop in Algorithm 1, line 3, and computing backward reachable sets
.sup.(1) and
.sup.(2) given the updated
.sup.(0).
.sup.(2) (see also
(152) Note that .sup.(2) is a union of many polytopes. A single polytope
.sup.(2) is used to approximate
.sup.(2) as stated in line 4 of Algorithm 1. This time, Algorithm 2 is used to compute
.sup.(2).
(153) As in line 1 of Algorithm 2, the input is set to be .sup.(2), which is a union of polytopes. Next, as in line 2 of Algorithm 2, the polytope V is constructed, the polytype V being centered at the point (2.22, 0.46, 0.90).
(154) Next, proceeding to the loop in Algorithm 2, and line 4 of Algorithm 2, polytyope V was shrunk to a smaller polytope V.
(155) There are many ways to shrink a polytope. In this example, the polytope is shrunk with respect to its center point (2.22, 0.46, 0.90) by multiplying its vertices by a factor of 0.7 along the x.sub.1 and x.sub.2 axes, while the x.sub.3 dimension remains unchanged.
(156) Next, as stated in lines 5 through 8 in Algorithm 2, given the computed V, the intersection of V with the input Q_i, for all i=1, . . . , 225 (line 5) is computed, and whether the union of these intersections is convex or not is checked (line 6).
(157) In this particular case as shown in
(158) Since the union of these intersections is convex (as shown in the previous plot), it can be represented using a single polytope .sup.(2) and is returned as an approximation of
.sup.(2), as in line 4 of Algorithm 1.
(159) In a similar fashion as the computation of .sup.(2), stay within the while loop in Algorithm 1 and continue to compute
.sup.(3),
.sup.(4), . . . ,
.sup.(10) all of which are computed using Algorithm 2, in a manner similar to the computation of
.sup.(2) (i.e., Algorithm 2 is executed whenever line 4 of Algorithm 1 is encountered). The final result of this computation is shown in
(160) Next, as in equation (16), the union of .sup.(1),
.sup.(2), . . . ,
.sup.(10) is computed and assigned as the set
, thereby completing the computation of
. Next, for any initial state x(0) within
, a control input sequence is designed such that the soft-landing problem is solved. The computation of the control input is discussed below.
(161) A controller may perform Algorithm 3. In order to perform the algorithm, first compute the cost-to-go function V(x) as defined in equations (19) and (20). Compute V(x) on a grid of the state space, namely x{x.sub.i.sup.D}.sub.i=1.sup.N.sup.
(162) First, choose a discretization of the state space, i.e., choose the set {x.sub.i.sup.D}.sub.i=1.sup.N.sup..sup.(1)\X.sub.,
.sup.(2)\/
.sup.(1),
.sup.(3)\
.sup.(2), . . . ,
.sup.(10)\
.sup.(9), so there are about 2000 discrete points. This is the set {x.sub.i.sup.D}.sub.i=1.sup.N.sup.
(163) Note that {x.sub.i.sup.D}.sub.i=1.sup.N.sup..sup.(1)\X.sub. and
.sup.(10)\
.sup.(9), but
.sup.(10)\
.sup.(9) is much larger than
.sup.(1)\X.sub..
(164) Next, compute the cost-to-go function V(x) for each point in the set {x.sub.i.sup.D}.sub.i=1.sup.N.sup..sup.(1) as discussed earlier. For any point x in
.sup.(1)\X.sub., there is an input sequence of length 3 that drives x into the set X.sub.. For instance, for the point (0.922, 0.120, 0.671), which is an element in both {x.sub.i.sup.D}.sub.i=1.sup.N.sup.
.sup.(1)\X.sub., under a length 3 input sequence: {[1 1]{circumflex over ()}T, [0 1]{circumflex over ()}T, [0 0]{circumflex over ()}T}, the final state (after applying this 3 step input) is: (0.621, 0.122, 0.037), which is inside the target set X.sub.. The cost for this particular input sequence {[1 1]{circumflex over ()}T, [0 1]{circumflex over ()}T, [0 0]{circumflex over ()}T} can be computed as (see equation (20), but here, 3 steps are used instead of 2): V(x)=x.*Q*x+x_next1.*Q*x_next1+x_next2.*Q*x_next2+u1.*R*u1+u2.*R*u2+u3.*R*u3+3*L, where x=(0.922, 0.120, 0.671), x_next1=A*x+B*u1, x_next2=A*x_next1+B*u2, u1=[1 1]{circumflex over ()}T, u2=[0 1]{circumflex over ()}T, u3=[0 0]{circumflex over ()}T,
(165)
Q is the zero matrix, R is the identity matrix, L=3. Consequently, x_next1=(0.835, 0.001, 0.141), x_next2=(0.759, 0.154, 0.072), and V(x)=12. In this way, the cost for the point (0.922, 0.120, 0.671) under the input sequence {[1 1]{circumflex over ()}T, [0 1]{circumflex over ()}T, [0 0]{circumflex over ()}T} is computed as 12.
(166) Next, in a similar fashion, enumerate all the possible length-3, length-2, and length-1 input sequences (note that it is possible to drive a point in .sup.(1)\X.sub. into X.sub. in less than 3 steps), compute the cost for each input sequence, and choose the smallest of these cost as the cost function V(x) for the point (0.922, 0.120, 0.671). This exact process is described in equation (20) (again, 3 steps are used instead of 2). For the point (0.922, 0.120, 0.671), the smallest cost is attained under the input sequence {[1 0]{circumflex over ()}T, [0 0]{circumflex over ()}T}, and the cost for this input sequence is 7, which is less than 12 in the previous calculation. Thus, assign the value 7 as the cost-to-go for the point (0.922, 0.120, 0.671) and store this value in the computer memory. By repeating this computation for all the points in both {x.sub.i.sup.D}.sub.i=1.sup.N.sup.
.sup.(1)\X.sub., the computation for the cost-to-go functions for the set
.sup.(1)\X.sub. is completed. Next, compute the cost-to-go function for the set
.sup.(2)\
.sup.(1).
(167) For every point x in the set .sup.(2)\
.sup.(1), its cost-to-go function is calculated the same way as it's calculated for a point in the set
.sup.(1)\X.sub., as discussed above. The only difference here is that when calculating the cost, there is an additional term V(f(f(x, u1), u2)) or V(f(x,u1)), as stated in expression (21). Since f(f(x, u1), u2) or f(x,u1) is inside
.sup.(1)X.sub., and the cost-to-go function has already been calculated (or defined) on
.sup.(1)\X.sub. and X.sub., the controller can read the computer memory to get the values of either V(f(f(x, u1), u2)) or V(f(x,u1)). For instance, for the point x=(2.238, 0.696, 0.571) which is in both {x.sub.i.sup.D}.sub.i=1.sup.N.sup.
.sup.(2)\
.sup.(1), under a length 2 input sequence: u1=[1 0]{circumflex over ()}T, u2=[1 1]{circumflex over ()}T, x_next1 and x_next2 are as follows: x_next1=A*x+B*u1=(1.619, 0.591, 0.193), x_next2=A*x_next1+B*u2=(1.153, 0.305, 0.387). Since x_next2 is in the set
.sup.(1), the cost-to-go for this particular length-2 is input as: V(x)=x.*Q*x+x_next1.*Q*x_next1+u1.*R*u1+u2.*R*u2+2*L+V(x_next2), where the term V(x_next2) is approximated by V(x)V(x.sub.i*.sup.D) where i*=argmin.sub.ixx.sub.i.sup.D. Particularly, the closest point to x_next2, (1.153, 0.305, 0.387), in the set {x.sub.i.sup.D}.sub.i=1.sup.N.sup.
.sup.(2)\
.sup.(1), the computation for the cost-to-go functions for the set
.sup.(2)\
.sup.(1) is completed.
(168) In the same fashion as the computation of the cost-to-go function on the set .sup.(2)\
.sup.(1), the cost-to-go function is computed on the sets
.sup.(3)\
.sup.(2), . . . ,
.sup.(10)\
.sup.(9). This completes the computation of the cost-to-go function V(x) for Algorithm 3.
(169) Suppose the vehicle is at an initial state of x(0)=(60, 5.5, 0), which is not in the target set X.sub.. Next, as stated in line 4 of Algorithm 3, compute that x is in .sup.(10), i.e. k=10. Next, as stated in line 5 of Algorithm 3, enumerate all possible length-2 and length-1 input sequences and find the one that minimizes the cost-to-go function V(x) as defined in equation (20). In this case, the minimizing control input sequence is the length-1 input: u1=[1 0]{circumflex over ()}T. Under this input, the state transition to the point x(1)=A*x(0)+B*u1=(54.663, 5.207, 0.486). This state transition is plotted in
(170) Next, as in line 7 in Algorithm 3, update x(1) to x. Since x(1) is not in the target set, stay within the while loop and goes to line 4 of Algorithm 3. Compute that x(1) is in .sup.(9), and the next optimal control input sequence is a length-2 input: u1=[0 0.5]{circumflex over ()}T, u2=[0 0.5]{circumflex over ()}T. Apply this input to the state x(1), and compute the next states: x(2)=(49.521, 5.064, 0.249), and x(3)=(44.553, 4.864, 0.128). This state transition is plotted in
(171) The above process is repeated until the state reaches the target set X.sub.. The state trajectory is plotted in
(172) The optimal control input sequence for this example scenario can be found in
(173) Although certain embodiments have been shown and described, it would be appreciated by those skilled in the art that changes may be made in these embodiments without departing from the principles and spirit of the invention, the scope of which is defined in the claims and their equivalents.