Abstract:
A predictive cruise control system utilizes information about the current vehicle position, as well as upcoming terrain in order to save fuel and increase driving comfort. A vehicle operating cost function is defined, based on a plurality of environmental parameters, vehicle parameters, vehicle operating parameters and route parameters. As the vehicle travels over a particular route for which route parameters, such as road gradient and curvature, are stored in a road map, sensors aboard the vehicle detect environmental and vehicle operating parameters, including at least vehicle speed and its position relative to the road map. As the vehicle proceeds, an onboard computer iteratively calculates and stores in a memory vehicle control parameters that optimize the vehicle operating cost function for a predetermined Prediction Horizon along the route ahead of the vehicle. The optimal vehicle control parameters for the Prediction Horizon are then stored in a memory and continuously updated and replaced by new data as the vehicle moves along, thereby adjusting the “optimal” control parameters to reflect actual vehicle historical operating experience during the journey. The vehicle is then controlled by reading the optimized updated vehicle control parameters from the memory, corresponding to the current position of the vehicle.

Description:
BACKGROUND AND SUMMARY OF THE INVENTION  
         [0001]    The present invention is directed to a cruise control unit for a motor vehicle, which minimizes vehicle operating costs, based on an analysis of vehicle operating parameters and route information regarding a route section ahead of the vehicle.  
           [0002]    Conventional cruise control systems seek to maintain vehicle speed at a preset value, which is ordinarily input to the system by an operator of the vehicle. For this purpose, the system includes sensors for detecting actual vehicle speed, which is fed to a controller and compared with the desired vehicle speed. The vehicle throttle is then adjusted based on an error signal and a control algorithm. Such closed loop control systems, which may utilize P, PI, or PID control are well known. In addition, such systems may (but need not) also include sensors for detecting obstacles in the path of the vehicle, and for adjusting the vehicle speed accordingly.  
           [0003]    One disadvantage of conventional cruise control systems is that they fail to take into account, environmental parameters regarding the route which is being traveled, such as road gradient and road curvature. Thus, the conventional cruise control system seeks to maintain a vehicle speed at the set value, regardless of whether the vehicle is on an uphill or a downhill grade, or is approaching a sharp curve in the road. However, if a vehicle maintains its speed at a desired value on an uphill grade, then it will pick up speed, possibly exceeding the desired speed on the downhill segment such that the vehicle operator must intervene and apply the vehicle brakes. Similarly, since the cruise control system also maintains vehicle speed when entering a curve, it will frequently be necessary for the vehicle operator once again to intervene by applying the brakes, in order to accommodate the curve. Such wide variations in vehicle speed, as well as the necessity for human intervention in order to apply the vehicle brakes, are wasteful.  
           [0004]    Accordingly, it would be advantageous to provide a cruise control system which utilizes information about the current position of the vehicle, as well as stored information concerning upcoming terrain along the route currently being traveled, in order to save fuel and increase driving comfort. In such a system, the current vehicle position may be determined, for example, by means of a Global Positioning System (GPS), and information about the upcoming terrain can be taken from a three-dimensional digital road map for the purpose of controlling vehicle operation.  
           [0005]    A system of this generic type is disclosed, for example, in U.S. Pat. No. 6,370,472 B1, in which an optimal set of vehicle control parameters are initially established by having a driver of particularly high skill in the conservation of fuel, drive the vehicle over a predetermined course. As the vehicle proceeds, sensors collect throttle voltage information, as well as time position and elevation data from a GPS receiver. The latter information is stored, together with vehicle speed data in a digital map. Thereafter, when the vehicle once again travels over the same route, an onboard computer uses the previously created optimal driving profile to control the throttle position of the vehicle. For this purpose, the onboard computer uses information read from a GPS sensor to compare the current vehicle position and throttle voltage to the historical data, reads the previously recorded “optimal” data from the digital map, and uses adaptive techniques to match the current throttle voltage to the throttle voltage at the same location based on the historical data established during the optimizing initial run.  
           [0006]    For the latter purpose, the &#39;472 system provides for matching the slope of the historical (optimum) run to the current run. That is, the system “looks ahead” a specified distance or time, and determines the slope of the “historical throttle voltage versus time/distance curve”, and applies that slope to the current data to adjust the current throttle position.  
           [0007]    One disadvantage to the known prior art systems, such as the &#39;472 patent, is that they require at least one “record drive” to be performed prior to operation of the system. This in turn requires that every route in the road network contained within a potential operating area of the vehicle must first be transited by an expert driver. Furthermore, control of the vehicle throttle based on such historical driver generated information is only as good as the “expert driver” who first traveled the route, establishing the historical profile to control throttle position. To the extent that such driver deviates from the actual optimum operating parameters during the initial “record drive” subsequent vehicles traveling the same route will deviate from the optimum in a corresponding manner.  
           [0008]    In addition, unforeseeable driving situations which occurred during driving with automatic throttle control are not considered in the recorded historical throttle profile. Such a situation might arise, for example, where the driver manually overrules the cruise control system (for example, by applying the vehicle brakes) when the vehicle approaches a slower vehicle ahead, or when the cruise control is overruled by another driving system, such as an adaptive cruise control system with distance control. In such situations, it is necessary to adjust the subsequent driving parameters according to a profile which differs from an historical profile in order yet to achieve optimum vehicle operation. However, the prior art systems, such as the &#39;472 patent contain no provision for reconfiguring the system to return to the record/preselected throttle control profile, since the recorded control values are not modified, and do not themselves adapt to changing driving situations in this manner.  
           [0009]    Accordingly, one purpose of the present invention is to provide a vehicle control system which continually adjusts vehicle control parameters to optimum values based on current vehicle operating conditions as well as stored route information, using an analytic function to determine an optimal velocity of the vehicle.  
           [0010]    Another object of the invention is to provide a vehicle control system which exhibits a high degree of flexibility, and is able to adapt the velocity control to changing driving situations which result from the intervention of external constraints on driving behavior as the vehicle transits a particular route.  
           [0011]    Still another object of the invention is to provide such a system which eliminates the need for an initial “record drive” by an expert, as well as the human error introduced into the system as a result of failure by the expert to achieve optimal driving conditions during the record drive.  
           [0012]    Yet another object of the invention is to provide a vehicle control system in which optimal vehicle control values are continuously calculated online during operation of the vehicle, taking into account the current vehicle velocity as it transits a particular route.  
           [0013]    Finally, another object of the present invention is to provide a vehicle control system which takes into account road curvature information, to adjust the vehicle throttle position.  
           [0014]    These and other objects and advantages are achieved by the predictive cruise control system according to the invention, which utilizes information about the current vehicle position, as well as upcoming terrain in order to save fuel and increase driving comfort. The current position is determined by means of a signal received from a Global Positioning System (GPS), and possibly by integration of the vehicle speed over the course of the journey, and information about the upcoming terrain is taken from a three dimensional digital map. The vehicle velocity is then controlled in order to follow an analytically computed optimal driving strategy, based on this information. No previous “record” drive is therefore required.  
           [0015]    In the predictive cruise control system according to the invention, a vehicle operating cost function is defined, based on a plurality of environmental parameters, vehicle parameters, vehicle operating parameters and route parameters. As the vehicle travels over a particular route for which route parameters, such as road gradient and curvature, are stored in a road map, sensors aboard the vehicle detect environmental and vehicle operating parameters, including at least vehicle speed and position relative to the road map. As the vehicle proceeds, an onboard computer iteratively calculates and stores in a memory vehicle control parameters that optimize the vehicle operating cost function for a predetermined distance (referred to as a “Prediction Horizon”) along the route ahead of the vehicle. The optimal vehicle control parameters for the Prediction Horizon are then stored in a memory and continuously updated and replaced by new data as the vehicle (and hence the Prediction Horizon) moves along, thereby adjusting the “optimal” control parameters to reflect actual vehicle historical operating experience during the journey. The vehicle is then controlled by reading the optimized vehicle control parameters from the memory, corresponding to the current position of the vehicle.  
           [0016]    Other objects, advantages and novel features of the present invention will become apparent from the following detailed description of the invention when considered in conjunction with the accompanying drawings. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0017]    [0017]FIG. 1 is a graphic illustration of the operation of the Predictive Cruise Control System according to the invention, maintaining vehicle speed within a permitted range;  
         [0018]    [0018]FIG. 2 is a graphic depiction of a vehicle transiting a hill;  
         [0019]    [0019]FIG. 3 is a graphic depiction of vehicles traveling in a curve;  
         [0020]    [0020]FIG. 4 shows the structure of the overall PCC system according to the invention;  
         [0021]    [0021]FIG. 5 is a block diagram which shows the linear controller in FIG. 4;  
         [0022]    [0022]FIG. 6 is a block diagram which shows the structure of the Predictive Cruise Control module in the system according to the invention;  
         [0023]    [0023]FIG. 7 is a graphic illustration of the forces which act on a vehicle traveling on an incline;  
         [0024]    [0024]FIG. 8 is a graphic depiction of a look-up table defining the relationship between engine speed, fuel consumption and engine output torque;  
         [0025]    [0025]FIG. 9 is a graphic depiction of the relationship between engine speed and engine friction;  
         [0026]    [0026]FIG. 10 shows the formatting of data for the Prediction Horizon according to the invention;  
         [0027]    [0027]FIG. 11 illustrates the ring buffer memory used for performing the calculations according to the invention;  
         [0028]    [0028]FIGS. 12 a - c  show the ring buffer memory status during an initialization state prior to operation of the vehicle;  
         [0029]    [0029]FIGS. 13 a - d  show the operation of the optimization algorithm during driving of the vehicle; and  
         [0030]    [0030]FIG. 14 shows an implementation of the PCC system according to the invention in a vehicle. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0031]    The basic idea of Predictive Cruise Control (PCC) is to replace or supplement the set speed of a conventional cruise control with a speed band. Forward-looking terrain information is used to determine, as a function of position, a desired speed inside the speed band (as shown in FIG. 1 for example), in order to maximize fuel savings. In the ideal case, the vehicle that is equipped with PCC slows down as it moves uphill until it reaches a minimum speed on top of the hill, and regains speed on the downhill part, thus completely converting the potential energy into kinetic energy. (See FIG. 2.) This strategy prevents unnecessary braking, or delays braking until it is unavoidable.  
         [0032]    In addition, road curvature information can also be used to reduce vehicle speed in curves in order to avoid high lateral acceleration which can lead to vehicle rollover. As the vehicle approaches a curve, the speed can automatically be reduced as shown in FIG. 3.  
         [0033]    The PCC System  
         [0034]    A block diagram of the PCC vehicle control system according to the invention is shown in FIG. 4. It includes a conventional controller  2 , which may (but need not) be a closed loop cruise control system in which the throttle of the vehicle  1  is controlled based on an error signal between actual and desired vehicle speed. Such systems are well known, as discussed below in regard to FIG. 5. In addition, the system according to the invention also includes a PCC block  3 ,which receives the following inputs:  
         [0035]    GPS: The Global Positioning System  4  supplies the PCC block  3  with information about the current position of the vehicle.  
         [0036]    Current Velocity: The vehicle velocity is used to estimate the current vehicle position if no GPS signal is available, and is also used to update the desired vehicle speed.  
         [0037]    In turn, the PCC block generates as outputs:  
         [0038]    Desired Velocity v desired    
         [0039]    Desired Throttle: The Throttle Pedal Position controls the fuel injection to the motor. This output may take on negative values if the PCC system requests a deceleration of the vehicle.  
         [0040]    Controller Gain: If a linear controller is utilized to allow the vehicle to follow the optimal velocity trajectories this PCC output supplies the appropriate optimal gain value.  
         [0041]    All these output signals are inputs for the controller  2  which controls the vehicle to follow the calculated velocity trajectory.  
         [0042]    It should be noted in this regard that there are many ways in which the desired vehicle velocity can be realized by the controller, but they are all fundamentally the same. Eventually a command signal must be given to the engine so that it attempts to achieve the desired speed. This command is referred to herein as the “throttle position”. In reality, the command need not be a true throttle position. In its most general sense the process is: the desired vehicle speed is converted to a desired engine speed, which is sent to the engine and the engine achieves it via its own controller or using a separate adaptive cruise controller. In the case of a diesel engine, the engine determines how much fuel to inject. (The amount of fuel injected can be mapped to a pedal or throttle position, which is why it is referred to in this way.) On the other hand, if the system is implemented with a gasoline engine, the command could actually be a throttle angle.  
         [0043]    [0043]FIG. 5 shows a linear controller of a type which may be included in the system of FIG. 4. In the subtraction unit  21 , the actual vehicle speed v act  is compared with the desired speed v des , and multiplied by the input controller gain in a multiplier unit  22 , to generate a throttle error signal Δth. The latter is then added to a desired throttle input in an adder  23  to generate a throttle signal th, that is applied to vehicle throttle and braking characteristics  24   a,b , which are used to control the vehicle throttle and brakes.  
         [0044]    In practice, the functionality of the linear controller represented by block  2  in FIG. 4 may already be present in the vehicle so that a set speed determined in the PCC block  3  is provided to the vehicle, which applies it using its own control algorithms implemented by its own engine controller.  
         [0045]    The basic structure of the PCC block is shown in FIG. 6. it includes four basic modules:  
         [0046]    Position Estimator  25 : This module (which may be present in the vehicle navigation system) determines the current position of the vehicle on the road by integrating the vehicle velocity and taking into account the incoming GPS messages.  
         [0047]    Look-up Table  26 : The look-up table is a memory where desired velocity, throttle pedal, and controller gain values are stored for an area (the Prediction Horizon) around the current vehicle position. The outputs of the PCC block are determined by reading out the values belonging to the vehicle position supplied by the Position Estimator.  
         [0048]    Optimization Algorithm Module  27 : This is the main module, in which optimal velocity trajectory, the optimal throttle pedal positions, and the controller gains are calculated for the approaching road within the Prediction Horizon, based on optimization of a cost function, as described hereinafter. These series are then stored in the look-up table. The start of a new calculation is triggered every time the vehicle has covered a specified distance. It may also be triggered by other events, such as the vehicle driver&#39;s changing the set vehicle speed.  
         [0049]    3D Digital Road Map  28 : The Optimization Algorithm (described hereinafter) uses information read from the digital map to determine the gradient angles and curve radii of the upcoming road; and the Position Estimator module uses information about the area surrounding the current position to determine the most likely position on the road for a new GPS message to initialize its integrator.  
         [0050]    The Vehicle+Road Model  
         [0051]    In order to optimize operation of the vehicle in an adaptable analytical manner based on actual current vehicle operation as the journey progresses, a mathematical model of a vehicle driving on the road is needed. This model can be derived from Newton&#39;s third law  
                   m   ·                         t            v     =       ∑   i          F                 i         ,           (     Eq   .              1     )                               
 
         [0052]    wherein F i  are the external and internal forces affecting the vehicle.  
         [0053]    [0053]FIG. 7 shows a vehicle operated on an incline, as well as the forces that act on it. These forces include:  
         [0054]    F roll =−μg cos—the grade of the street. μ—friction coefficient of the street, g—gravitation constant, φ—the grade of the street measured in radiant)  
         [0055]    F grade —g sin φ: The force caused by the gravity.  
         F   drag     =       -     1   2            C   w                     ρ   air                   A                     v   2     :                             
 
         [0056]    The turbulent friction. (c w ,—the characteristic shape coefficient, ρ air—the density of the air, A—the surface area of the vehicle, v—velocity)  
         [0057]    F motor : The force caused by the engine.  
         [0058]    F brake : The decelerating force by the brake.  
         [0059]    Combining these forces, the equation of motion then becomes:  
               m               v                       t         =       F   motor     +     F   brake     +     F   drag     +     F   grade     +     F   roll               (     Eq   .              2     )                               
 
         [0060]    In the system equation there is no extra brake force considered. This is done since the partial derivatives of the system equation are presumed to exist. In order to take the decelerating effect of the brakes in account, the throttle pedal is allowed to assume negative positions, and so the motor is capable of generating a decelerating torque. These negative throttle values are converted to respective brake signals by a controller following the PCC system.  
         [0061]    The accelerating or decelerating force caused by the motor is calculated by Eq. 3 from the engine torque.  
               F   motor     =     η            i   D          i   T         r   w            T   motor               (     Eq   .              3     )                               
 
         [0062]    where  
         [0063]    η is the effectiveness of the drive train.  
         [0064]    i T  is the transmission coefficient.  
         [0065]    i D  is the axle transmission coefficient.  
         [0066]    r w  is the radius of the wheels.  
         [0067]    T motor  is the applied torque by the engine.  
         [0068]    The engine torque is composed of the decelerating or accelerating torque T use  and the engine friction torque T friction .  
           T   motor   =T   use   −T   friction    (Eq. 4)  
         [0069]    T use  is determined by the motor look-up table, such as in FIG. 8, which shows engine torque in relation to engine speed n and fuel consumption per engine revolution measured in mg. The relation between the throttle pedal position th and the fuel value is assumed to be static and linear. That is,  
         fuel=fuel max   ·th    (Eq. 5)  
         [0070]    where th≦1 and fuel max  is the maximum value of ‘fuel’ in the look-up table. As can be seen in FIG. 8, the look-up table can be approximated by a plane, as follows:  
           T   use   =K   1 ·fuel+ K   2   ·n+K   3 .   (Eq. 6)  
         [0071]    Also the characteristic curve of the engine friction is approximated by a straight line, as shown in FIG. 9. That is, the relationship between friction torque and engine speed is given by:  
           T   friction   =R   1   ·n+R   2 .   (Eq. 7)  
         [0072]    And finally, the relation for the engine speed is:  
             n   =     30            i   D          i   T           r   w        π          v             (     Eq   .              8     )                               
 
         [0073]    Combining Equations 4-8 yields the following expression for motor torque:  
               T   motor     =         K   1                   f                 u                 e                   l   max                   t                 h     +         30        i   D          i   T           r   w        π            (       K   2     -     R   1       )                   v     +     K   3     -       R   2     .               (     Eq   .              9     )                               
 
         [0074]    And combining all of the preceding results together in the motion equation (Eq. 1):  
                     m                            t            v        (   t   )         =                  30      η                   i   D   2            i   T   2          (       K   2     -     R   1       )             r   w   2        π          v     +                              η                   i   D            i   T          (         K   1                   f                 u                 e                   l   max                   t                 h     +     K   3     -     R   2       )           r   w       -                              1   /   2                     c     w                     ρ                 A                   v   2       -     m                 μ                 g                   cos        (   φ   )         -     m                 g                     sin        (   φ   )       .                       (     Eq   .              10     )                               
 
         [0075]    It is convenient to change Eq. 10 such that it is differentiated with respect to distance rather than time. This is achieved with the substitution:  
                    t     =       1   v             s         ,           (     Eq   .              11     )                               
 
         [0076]    where s is the driven distance from a specified start point on the current street. Applying Eq. 11 to Eq. 10:  
                                           s            v        (   s   )         =                    c   w        ρ                 A         2      m            =     :     A   1               ·     v        (   s   )         +                              30      η                   i   T   2            i   D   2          (       K   2     -     R   1       )             m                   r   w   2        π            =.     A   2             +                                η                   i   T            i   D          (       K   3     -     R   2       )         -       r   w        m                   g        (       μ                 cos                   ϕ        (   s   )         +     sin                   ϕ        (   s   )           )               m                   r   w                =   .            A   3          (   s   )               ·                            1   v     +         η                   i   T          i   D        f                 u                 e                   l   max          K   1           m                   r   w                =   .        B           ·       t                 h     v                       (     Eq   .              12     )                               
 
         [0077]    With the position independent coefficients A 1 , A 2  B and the position dependent coefficient A 3  (S), the system equation becomes  
                                           s            v        (   s   )         =                A   1        v     +     A   2     +         A   3          (   s   )            1   v       +       B   v        t                 h                   =              f        (     s   ,     v        (   s   )       ,     t                   h        (   s   )           )       .                   (     Eq   .              13     )                               
 
         [0078]    In practice application, a discrete model is needed. This is obtained by Euler approximation,  
                     v        (     s     k   +   1       )       =              v        (     s   k     )       +       ∫     s   k       x     s   +   1              f        (     s   ,     v        (   s   )       ,     t                   h        (   s   )           )                       ≈              v        (     s   k     )       +         (       s     k   +   1       -     s   k       )            =.   h         ·     f        (       s   k     ,     v        (     s   k     )       ,     t                   h        (     s   k     )           )                         v        (     s     k   +   1       )       =              v        (     s   k     )       +     h   ·       f        (       s   k     ,     v        (     s   k     )       ,     t                   h        (     s   k     )           )       .                       (     Eq   .              14     )                               
 
         [0079]    where the constant h is called the Integration Step Size.  
         [0080]    The Cost Function  
         [0081]    If a system is to be controlled in an ‘optimal’ manner, it is first necessary to define what optimal means. Usually in optimal control theory a “cost” function is defined. A system is later called optimal if the calculated control sequence minimizes the cost function. The cost function should be chosen in order to let the system behave in a desired way. Accordingly, for the purpose of the Predictive Cruise Control according to the invention, the following goals were established to define “optimal operation”:  
         [0082]    The vehicle should consume less fuel and should activate the brakes as little as possible.  
         [0083]    The vehicle should attempt to maintain a specified velocity (Set Speed).  
         [0084]    The vehicle&#39;s velocity should neither exceed an upper limit nor undershoot a lower velocity limit.  
         [0085]    The total travel time should be minimized.  
         [0086]    The lateral acceleration while driving in curves should not be so high as to impair driving comfort and safety.  
         [0087]    It should be possible to stress the different aspects mentioned above individually.  
         [0088]    These demands are expressed in an analytic cost function, together with the further requirements that the mathematical expression for the cost function should be:  
         [0089]    Differentiable to calculate a “stationary” point at which its slope is zero (min/max point); and  
         [0090]    Easy for a computer to process.  
         [0091]    Hereinafter, discrete expressions for the individual demands are derived.  
         [0092]    Fuel and Braking  
         [0093]    As mentioned previously, the brakes are considered by allowing ‘negative’ throttle pedal positions. So it is necessary to take negative throttle values th into consideration in deriving a characteristic expression for the fuel consumption and the brake activity. The fuel consumption per second can be calculated by  
               Q        (   t   )       =           f                 u                 e                   l   max          i   D          i   T             2   ·     10   6          π                   r   W          ρ   fuel              =.     ψ             ·     v        (   t   )       ·   t                     h        (   t   )                 (     Eq   .              15     )                               
 
         [0094]    where ρ fuel  is the density of the fuel (measured in  
         (     measured                 in                   kg     m   3         )     .                         
 
         [0095]    Since negative values for the throttle pedal position also occur, one possible expression for the cost function is  
                 J   fuel     =       1   2            ∫   0   t          S                   Q   2             t             ,           (     Eq   .              16     )                               
 
         [0096]    where S is a constant weighting factor. Substituting Equations 11 and 15 into Equation 16 yields:  
                 J   fuel     =       1   2            ∫   0   t          S                 ψ                 v                 t                   h   2             s             ,           (     Eq   .              17     )                               
 
         [0097]    For discrete computations, the integral must be replaced by a summation, which can be achieved by the Euler approximation.  
                 J   fuel     =       1   2     ·   h   ·       ∑     k   =   0       N   -   1                       S                 ψ                   v   k                   t                   h   k   2             ,           (     Eq   .              18     )                               
 
         [0098]    where N is the number of base points in the considered prediction horizon and  h=S   k+1   −S   k  is the Integration Step Size.  
         [0099]    Set Speed  
         [0100]    To reduce drifts from the desired Set Speed, v desired , an term for the cost function is  
               J   velocity     =       1   2            ∫     χ   0     χ              q        (     v   -     v   desired       )       2             s                   (     Eq   .              19     )                               
 
         [0101]    where q is also a constant factor which determines the weight of the collective cost function. Again, adapting this or discrete computation yields:  
               J   velocity     =       1   2     ·   h   ·       ∑     k   =   0       N   -   1              q        (     v   -     v   desired       )       2                 (     Eq   .              20     )                               
 
         [0102]    Lower Velocity Limit  
         [0103]    Since the objective is to keep the velocity within certain limits, a cost function term is defined to penalize exceeding Equation 21 shows such a penalty function:  
               J   penalty     =       1   2     ·       ∑     k   =   0       N   -   1            (             Γ   1          (       v   lower     -   v     )       2          σ        (       v   lower     -   v     )         +           Γ   2          (     v   -     v   upper       )       2          σ        (     v   -     v   upper       )           )                 (     Eq   .              21     )                               
 
         [0104]    Here Γ 1/2  are constant weighting factors. These values ge in respect to the other weighting factors to make the velocity remain between the lower velocity limit, v lower , and the upper velocity limit V upper . σ (ξ) is defined as  
               σ        (   ξ   )       =     {         1         ξ   ≥   0             0         ξ   &lt;   0                     (     Eq   .              22     )                               
 
         [0105]    Travel Time  
         [0106]    The total travel time is calculated by  
               T   total     =       ∫   0   t                        t               (     Eq   .              23     )                               
 
         [0107]    By changing the total differential, and applying the Euler approximation this can be expressed as  
                     T   total     =              ∫     χ   0     χ            1   v             x                     ≈              ∑     k   =   0       N   =   1            h   v                     (     Eq   .              24     )                               
 
         [0108]    Thus, a term considering the total travel time in the cost function is  
               J   time     =       ∑     k   =   0       N   -   1                         h                 T     v               (     Eq   .              25     )                               
 
         [0109]    where T is the weighting factor.  
         [0110]    Lateral Acceleration  
         [0111]    To maintain comfort and safety while driving through a the lateral acceleration of the vehicle should remain predetermined value which is considered safe. The steady state lateral acceleration of the vehicle in the plane of the road can be approximated by:  
         α lateral =ν 2   ·c ( s )− g  sin Θ( s )  
         [0112]    For small values of Θ, sin Θ≠Θ. Therefore, this expression may simplified as follows:  
         α lateral =ν 2   ·c ( s )− g ·Θ( s )   (Eq. 26)  
         [0113]    where  
         [0114]    c is the curvature of the road (inverse of the radius) at distance s along the road;  
         [0115]    g is the acceleration due to gravity; and  
         [0116]    θ is the cross-slope or superelevation of the road at distance s along the road  
         [0117]    A cost function which attempts to keep the lateral acceleration maximum value is:  
               J   lateral_accel     =       1   2     ·   h   ·   R   ·       ∑     k   =   0       N   -   1                           (         v   k   2     ·     c   k       -     g   ·     Θ   k       -     a   max       )     2     ·     σ        (         v   k   2     ·     c   k       -     g   ·     Θ   k       -     a   max       )                     (     Eq   .              27     )                               
 
         [0118]    where:  
         [0119]    R is a constant weighting factor;  
         [0120]    σ is defined in Eq. 22; and  
         [0121]    a max  is the predefined maximum acceptable lateral acceleration.  
         [0122]    Final State Cost Function  
         [0123]    If the final state is not fixed, an additional cost function must be defined for it.  
             Φ   =       1   2            M        (       v   N     -     v   desired       )       2               (     Eq   .              28     )                               
 
         [0124]    M is again a constant weighting factor. It should not be chosen so small that numerical difficulties are encountered in further calculations.  
         [0125]    The Discrete Cost Function  
         [0126]    The cost function is formed by combining the preceding results in a manner which depends on the response which it is desired to control. For example, a system which takes all of the above factors into account would be defined by the equation:  
         
       J=Φ+J 
       time 
       +J 
       fuel 
       +J 
       velocity 
       +J 
       lateral —accel 
       +J 
       penalty  
     
         [0127]    Using this formulation results in the following expression for the cost function J, which is used in the minimization analysis hereinbelow:  
                                     J   =                1   2            M        (       v   N     -     v   desired       )       2       +                   ∑     k   =   0       N   -   1            {       h                 T        1     v   k         +       1   2        h                 S                 φ                   v   k        t                   h   k   2       +       1   2        q                     h        (       v   k     -     v   desired       )       2       +                           1   2     ·   h   ·   R   ·       ∑     k   =   0       N   -   1                           (         v   k   2     ·     c   k       -     g   ·     Θ   k       -     a   max       )     2     ·                           σ        (         v   k   2     ·     c   k       -     g   ·     Θ   k       -     a   max       )       +                                   1                             2                Γ   1          (       v   lower     -     v   k       )       2          σ        (       v   lower     -     v   k       )         +                       Γ   2          (       v   k     -     v   upper       )       2          σ        (       v   k     -     v   upper       )         }                  =     :   L                       (     Eq   .              29     )                               
 
         [0128]    On the other hand, it is also possible, within the scope of the invention, to control the system response in other ways simply by zeroing out (that is, applying a zero coefficient to) some of the terms. For example, for predictive cruise control focusing on fuel savings due to elevation changes (without taking into account lateral acceleration), the cost function is given by:  
           J=Φ+J   time   ++J   fuel    +J   velocity   +J   penalty .  
         [0129]    On the other hand, the cost function implemented for focusing on rollover prevention is:  
         
       J =Φ+J 
       fuel 
       +J 
       velocity 
       +J 
       lateral —accel  
     
         [0130]    with each of the above terms being given by the expressions drived previously.  
         [0131]    Minimization of the Cost Function  
         [0132]    Considering both the cost function J, and the vehicle model of Equation 14, in order to minimize vehicle operating “costs” (as defined), it is necessary to calculate a sequence of control values th k (k=0 . . . N−1) so that the cost function:  
             J   =         Φ        (     v   N     )       +       ∑     k   =   0       N   -   1                       L        (       s   k     ,     v        (     s   k     )       ,     t                   h        (     s   k     )           )           →   min             (     Eq   .              30     )                               
 
         [0133]    while keeping the equality constraints  
         ν( s   k+1 )= f ( s   k   ,νs   k ), th ( s   k ))   (Eq. 32)  
         [0134]    and  
         ν( s   0 )=ν 0 (initial velocity)   (Eq. 32)  
         [0135]    For the purpose of the analysis which follows, ν k =ν(X k ), th k =th(X k ) and φ k  is just set to φ.  
         [0136]    Optimization problems with equality constraints are frequently solved by means of the Lagrangian multiplier, which may be understood as follows: Assume a function h(x,y), where x and y are constrained by g(x,y)=0. Adding g multiplied by a scalar factor λ to h yields a new function L(x,y,λ)=f(x,y)+λ g(x,y). L and h have the same minimum value since this is not changed by adding zero. (g(x,y)=0.) So a stationary point (slope=0) of L is also a stationary point of h, and the constraints are kept since  
           ∂   L       ∂   λ       =       g        (     x   ,   y     )       =   0.                           
 
         [0137]    Defining for every equality constraint a Lagrangian multiplier, and adding it to the cost function J results in the following expression:  
             J   =       Φ        (     v   N     )       +       ∑     k   =   0       N   -   1            (                  L        (       x   k     ,     v        (     x   k     )       ,     t                   h        (     x   k     )           )       +       λ     k   +   1            {       f        (       x   k     ,     v   x     ,     t                   h   k         )       -     v     k   +   1         }         )                 (     Eq   .              33     )                               
 
         [0138]    It is useful to define a scalar sequence H k :  
           H   k ( x   k ,ν k ,λ k+1 ) +λ k+1   f ( x   k , ν k   ,th   k )   (Eq. 34)  
         [0139]    Changing indices of summation on the last term in Eq. 33,  
             J   =       Φ        (     v   N     )       -       λ   N          v   N       +       ∑     k   =   1       N   -   1            (       H   k     -       λ   k          v   k         )       +     H   0               (     Eq   .              35     )                               
 
         [0140]    In order to obtain a stationary point the first derivative 6J of the cost function must be equal to zero.  
               δ                 J     =           ∑     k   =   0       N   -   1                ∂   J       ∂     v   k            δ                   v   k         +       ∑     k   =   0       N   -   1                ∂   J         ∂   t                     h   k            δ                 t                   h   k         +       ∑     k   =   0       N   -   1                ∂   J       ∂     λ     k   +   1              δ                   λ     k   +   1             =   0             (     Eq   .              36     )                               
 
         [0141]    After calculating the partial derivatives we get  
                     δ                 J     =                [         ∂   Φ       ∂     v   N         -     λ   N       ]        δ                   v   N       +       ∑     k   =   1       N   -   1            {         [         ∂     H   k         ∂     v   k         -     λ   k       ]        δ                   v   k       +                                      ∂     H   k           ∂   t                     h   k            δ                 t                   h   k       }     +         ∂     H   0         ∂     v   0            δ                   v   0       +         ∂     H   0           ∂   t                     h   0            δ                 t                   h   0       +                          ∑     k   =   0       N   -   1              [         ∂     H   k         ∂     λ     k   +   1           -     x     k   +   1         ]        δ                   λ     k   +   1                         (     Eq   .              37     )                               
 
         [0142]    Since the initial velocity is determined by Eq. 32, the derivative δν 0  vanishes. The derivative δJ vanishes for all possible variations in the state variable, δν k  in the control variable δ th   k , and in the Lagrangian multiplier δλ k+1  if:  
                 1.                   λ   k       =       ∂     H   k         ∂     v   k           ,     k   =       0                 …                 N     -   1               (     Eq   .              38     )                   2.                   v        (     k   +   1     )         =       ∂     H   k         ∂     λ     k   +   1             ,     k   =       0                 …                 N     -   1               (     Eq   .              39     )                   3.                     ∂     H   k           ∂   t                     h   k           =   0     ,     k   =       0                 …                 N     -   1               (     Eq   .              40     )                 4.                   λ   N       =       ∂     Φ        (   N   )           ∂     v   N                 (     Eq   .              41     )                 5.                   v        (     x   0     )         =     v   0             (     E                   q   .              42       )                               
 
         5. ν( x   0 )=v 0    (Eq. 42)  
         [0143]    Such problems are called two-point boundary-value problems. Since this kind of problem can&#39;t usually be solved analytically, it is necessary to apply numerical methods. For this purpose, a second-order gradient algorithm was chosen. The advantages of this algorithm are:  
         [0144]    The results of every iteration step are improving.  
         [0145]    The algorithm converges faster than other numerical algorithms applied on this issue.  
         [0146]    Interim results are also stable trajectories.  
         [0147]    No adaptation factor need be chosen before starting the algorithm (which otherwise would produce convergence difficulties when applying first order gradient methods, for example).  
         [0148]    The optimal position variant controller gain comes as a by-product of this algorithm.  
         [0149]    The algorithm which is implemented can be described as follows:  
         [0150]    1. Estimate a sequence of control values th k  and solve the systems equation  
         ν k+1   =f ( s   k , ν k   , th   k ), ν( x   0 )=ν 0   , k= 0 , . . ,N− 1.   (Eq. 43)  
         [0151]    In this case, the sequence of control values is determined by controlling the system equation (Eq. 43) with a position variant controller:  
                 th   ^     k     =         v   desired     B          (         -     A   1            v   desired       -     A   2     -         A   3          (     s   k     )         v   desired         )               (     Eq   .              44     )                 th   k     =         th   ^     k     -     G   ·     (       v   k     -     v   desired       )                                                 
 
         [0152]    where A 1 , A 2 , A 3 , and B are determined by Eq. 12 and G is the controller gain factor. While forward calculating of Eq. 43 together with Eq. 44, the values of V k  and th k  must be recorded. 2. Next, determine the appropriate Lagrangian multipliers by backward calculation of Eq. 38 and Eq. 41. Since the sequences of VX and thk are usually not optimal, Eq. 40 is not fulfilled; therefore, the values of  
               H     t                 h     k     =       ∂   H         ∂   t                     h   k                 (     Eq   .              45     )                               
 
         [0153]    must be recorded for further computations.  
         [0154]    3. Now, solve the so called influence equations backward:  
                   P        (   k   )       =         Z     v                 v            (   k   )       -         Z     v                 t                 h            (   k   )              Z   thth     -   1            (   k   )              Z     t                 h                 v            (   k   )             ,       P        (   N   )       =         ∂   2        Φ       ∂     v   N   2                  
              ξ        (   k   )       =         f   v   k          ξ        (     k   +   1     )         -         Z     v                 t                 h            (   k   )              Z   thth     -   1            (   k   )            (         f   th   k          ξ        (     k   +   1     )         -     Δ                   H     t                 h     k         )           ,     
            ξ        (   N   )       =   0            
        where           (     Eq   .              46     )                   f   v   k     =       ∂     f        (       s   k     ,     v   k     ,     t                   h   k         )           ∂     v   k           ,       H     v                 t                 h     k     =         ∂   2          H   k           ∂     v   k            ∂   t                     h   k           ,     e                 t                   c              .               (     Eq   .              47     )               and        
                          Z   thth          (   k   )       =       H   thth   k     +       P        (     K   +   1     )              (     f   th   k     )     2                         Z   thv          (   k   )       =         Z   vth          (   k   )       =       H     th                 v     k     +       f   th   k          P        (     k   +   1     )            f   v   k                                 Z   vv          (   k   )       =       H   vv   k     +       f   v   k          P        (     k   +   1     )              f   v   k     .                         (     Eq   .              48     )                 Δ                   H   th   k                   is                 chosen                 as          
            Δ                   H   th   k       =     -     ∈     H   th   k                   (     Eq   .              49     )                               
 
         [0155]    where 0&lt;ε≦1 is continuously increased every iteration step up to 1 in the last iteration. This choice represents the influence of the first order gradient since −H th   k  is in the direction of steepest descent of the cost function.  
         [0156]    4. Adapt the sequence of control values th k  by  
         ( th   k ) new =( th   k ) old +Δth k    (Eq. 50)  
         [0157]    where  
               Δ                 t                   h   k       =       -       Z   thth     -   1            (   k   )              (           Z   thv          (   k   )          Δ                   v   k       +       f   th   k          ξ        (     k   +   1     )         -     Δ                   H   th   k         )               (     Eq   .              51     )                               
 
         [0158]    and  
         Δν k =( ν   k ) new ( V   k ) Old    (Eq. 52)  
         [0159]    where (V k ) new  is calculated by applying the adapted manipulating variable th k−1  on the system equation.  
         [0160]    5. Repeat steps 1 through 4 until the number of desired iterations or the desired accuracy is achieved.  
         [0161]    Implementation of the Cost Minimizing Algorithm  
         [0162]    For an area around the current vehicle positioned (“Prediction Horizon”), the optimal velocity, throttle pedal positions, and controller gain series are stored in a look-up table (which is contained in a ring buffer memory, as discussed hereinafter). The resolution of this look-up table is thereby the Integration Step Size h. (The optimal velocity is considered to be constant for small distances h.) The output values of the PCC system are then determined by reading out the values corresponding to the estimated vehicle position.  
         [0163]    The look-up table values are calculated online, in real time as the vehicle proceeds along the traveled route. Such online, real time calculation adapts the look-up table during the drive by taking the current vehicle velocity into account. The advantages of such a system (compared to an offline version in which the stored values are determined in advance and are invariable) are:  
         [0164]    Less memory is needed.  
         [0165]    An online determination gives the opportunity to change the route while driving.  
         [0166]    There is no need for a previous “record drive” by an expert driver, and the system can be used on any route, the first time it is traveled.  
         [0167]    When vehicle velocity drifts significantly from the velocity stored in the look-up table for the current position (as might be caused, for example, by a slower vehicle driving ahead), the velocity values for the following positions in the look-up table then can no longer be considered to be optimal. In this case an online version of the algorithm can adapt these values by taking the current velocity into account.  
         [0168]    An on-line version has the advantage of being able to adapt the optimal trajectories to variable vehicle parameters, such as vehicle mass, which has a significant impact on the dynamics of the vehicle.  
         [0169]    It is therefore important to implement the optimization algorithm in a manner which permits online adaptation of the look-up table. While the optimization calculation could be performed for every computational cycle given enough computing power, this approach was not used in the current implementation. Rather, a new optimization calculation only occurs once the vehicle has covered a specified distance, which is referred to hereinafter as a “frame”, or when the set speed is changed. In addition, the calculation is distributed over several computational cycles to reduce the computational burden.  
         [0170]    The whole Prediction Horizon is separated into Frames, so that the Prediction Horizon must be a multiple of the Frame Length (also measured in number of integration steps h). FIG. 10 shows this separation for a Prediction Horizon of 20, the Number Of Frames is 4, and the resulting Frame Length is 5. (This is a simplified version for illustration only.) The parameter “Number of Frames” determines the rate at which the optimal trajectory is updated.  
         [0171]    In the PCC unit according to the invention, the values for vehicle velocity, throttle position and controller gain calculated as described previously are entered into a ring buffer memory having a capacity that corresponds to the length (in frames and integration steps) of the Prediction Horizon, together with the following variables needed for the calculation of the optimization algorithm:  
         [0172]    the Lagrangian multiplier ν 
         [0173]    the influence variables ξ and P,  
         [0174]    the partial derivative of the Hamiltonian by the throttle pedal position H th ,  
         [0175]    the angles φ (representing the grade of the road) and the curve radii r.  
         [0176]    [0176]FIG. 11 shows the resulting memory arrangement of the ring buffer.  
         [0177]    The sequence of the optimization algorithm will now be explained by reference to the example ring buffer of FIG. 11. FIGS. 12 a - c  show an initialization stage in which the whole Prediction Horizon (except for the last frame) is calculated, while FIGS. 13 a - c  illustrate the operation of the ring buffer while the vehicle is driving.  
         [0178]    The initialization of the ring buffer (FIG. 12 a - c ) must be completed before the vehicle reaches the start point on the road where the PCC system is triggered. Two stages of the initialization can be distinguished:  
         [0179]    1. First, the ring buffer memory is filled with angle and radius values from cell zero up to the last cell of the next to last frame. (FIG. 12 a .) (For example, the value φ k  is the grade of the road at the position specified by the driven distance since the start point  S   k   =k ·h  (where again h is the Integration Step Size), as read from the road map (FIG. 6) . While filling these ring buffer cells, also starting values are estimated for the velocity trajectory, and the appropriate throttle pedal positions are computed, as illustrated in FIG. 12 b.    
         [0180]    2 In the second step several optimization iterations are applied on the memory range described above until the algorithm has converged and thus the values are optimal, as shown in FIG. 12 c.    
         [0181]    The white background of the velocity memory cells in FIG. 12 b  indicates that these values are starting estimates obtained by applying a conventional cruise controller, and thus are not optimal. The dark background in FIG. 12 c  indicates that the velocity values are optimal.  
         [0182]    Operation of the Optimization Algorithm module has five different states, as shown in FIG. 14. They are as follows:  
         [0183]    READY (Step 141): The module remains in this state until the initial calculation is started.  
         [0184]    FRAME_INITIALIZATION (Step 142): A frame is filled with road data and estimated starting values of v and th are made for this frame.  
         [0185]    BACKWARD_CALCULATION (Step 143): For a specified range in the ring buffer the series of ν, P, Δ and H th  are calculated simultaneously (as described previously) and stored in the respective ring buffer cells.  
         [0186]    FORWARD_CALCULATION (Step 144): The velocity, throttle and controller gain values are adapted, according to step 4 of the algorithm.  
         [0187]    CALCULATION_FINISHED (Step 145): If all calculations are completed before the vehicle reaches the end of the current frame, then the algorithm module remains in this state until a new calculation is triggered.  
         [0188]    After the vehicle has passed the start point, the output values for the respective vehicle positions are read out of the first frame. Meanwhile, no further calculations are done. When the vehicle reaches the end of the first frame a new calculation is triggered:  
         [0189]    1. The start and final index of the current frame for which initialization is to take place, and the start and final index of the ring buffer range for which optimization iteration is to take place are fixed. The calculation is started by setting the calculation state to FRAME_INITIALIZATION. In the example in FIG. 13, the bounding indices for the frame initialization are the first and the last indices of frame no.  3 . The starting value for the velocity and throttle start estimations is the velocity value stored in the last index of frame no.  2  (FIG. 13. a ).  
         [0190]    2. When the frame initialization is finished, the calculation state switches to BACKWARD_CALCULATION and afterwards to FORWARD_CALCULATION, and thus a whole optimization iteration is applied on the specified range in the ring buffer (FIG. 13. b ). The current vehicle velocity is used as start velocity in order to take the actual vehicle state into account. In FIG. 13 b , the light gray background of the velocity memory cells of frame no.  3  indicate that these values are “more optimal” than the start estimations since one optimization iteration step is applied on them. All these calculations are done while the vehicle is driving in the first frame. The output values of the PCC system (FIG. 6) are read out of the first frame, which constitutes the “look-up table” for this purpose. The calculations must be finished when the vehicle reaches the end of frame  1 ; otherwise the synchronization of the optimization algorithm and vehicle movement fails. If this happens, the PCC system will stop all computations and switch to failure mode.  
         [0191]    3. FIGS. 13 c  and  d  show the state of the ring buffer when the vehicle is driving in frame  2 . This time frame no.  0  is filled with road data and starting value estimates (FIG. 13 c ), and an optimization iteration is applied on frames  2 ,  3 , and  0  (FIG. 13 d ). The background color of the velocity cells of frame  3  are now darker than in the previous step, denoting that now two optimization iterations have been performed for this memory range, and so these values approach closer to the optimal values.  
         [0192]    In the example of FIGS. 12 and 13, the parameters Prediction Horizon and Number of Frames are chosen very small in order to make the basic operation of the ring buffer clear. Realistic values for the Prediction Horizon would be 4000 assuming an Integration Step Size of 1 m, and 200 for the Number of Frames. Thus, nearly 200 optimization iteration steps are performed with regard to the values in one frame before they are actually read out. This number is more than enough for the algorithm to converge to the optimal values. Therefore, it is sufficient to compute one optimization per frame.  
         [0193]    [0193]FIG. 15 shows the PCC system implemented in a vehicle.  
         [0194]    The foregoing disclosure has been set forth merely to illustrate the invention and is not intended to be limiting. Since modifications of the disclosed embodiments incorporating the spirit and substance of the invention may occur to persons skilled in the art, the invention should be construed to include everything within the scope of the appended claims and equivalents thereof.