# Patent

## Title
System and method for determining effective road grade characteristic

## Abstract

A vehicle system includes a computer in a vehicle, and the computer includes a processor and a memory. The computer is configured to determine an operational state of a vehicle, calculate a road grade value from data from a first sensor, calculate an effective road grade value from a torque demand value, update modeling variables to map the road grade value substantially to the effective grade value when the operation state is determined to be a steady-state condition, and calculate a road grade characteristic with the road grade value and the modeling variables.

## Background
CROSS-REFERENCE TO RELATED APPLICATION
This application claims priority to U.S. Provisional Patent Appl. No. 61/915,365, filed Dec. 12, 2013 entitled “Rule Based Smart Cruise Control”, the complete contents of which is hereby incorporated herein by reference in its entirety.


BACKGROUND
Vehicle control operations, such as automobile cruise control, may depend upon environmental conditions and related forces affecting the motion of the vehicle. For example, road grade is an environmental condition that may oppose or promote the longitudinal motion of a vehicle, and, therefore, a control operation such as cruise control may adjust according to the resultant effect from a particular road grade on the vehicle. Other conditions that may affect the motion of a vehicle, alone or in combination with road grade and each other, include forces acting on the vehicle from headwinds, changes in vehicle mass, and other aerodynamic effects. It is desirable, but currently difficult, for a vehicle control system to accurately and efficiently model a total of such forces acting on the vehicle.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates an exemplary vehicle system for determining an effective road grade characteristic.
FIG. 2 is a flowchart of one exemplary process that may be implemented by the vehicle system.



DETAILED DESCRIPTION
Road grade is one of many conditions with associated forces that may oppose or promote the longitudinal motion of a vehicle. To account for unmeasured forces—such as headwinds, changes in vehicle mass, unknown aerodynamic effects, etc.—in addition to road grade, an effective road grade can be calculated or modeled. In applications such as cruise control, knowledge of the unknown resistive forces opposing vehicle motion are critical for velocity profile planning.
According to this disclosure, during steady-state power-on maneuvers, the effective grade can be computed from the difference between the measured, sensed or estimated torque and the known torque required to maintain the vehicle at steady-state on a flat road. During transient torque or power-off maneuvers, the force balance is non-zero, therefore, the effective grade cannot be efficiently computed from the estimated torque, e.g., such a calculation would require a much more complex model to capture all of the dynamic effects, that would, therefore, be relatively more susceptible to errors, and/or an estimate of vehicle acceleration through a relatively more complex computer operation, such as numerically differentiating the velocity of vehicle. According to this disclosure, road grade is also computed, during all conditions, through an accelerometer-based measurement, and the accelerometer-based road grade and the measured torque-based effective grade are both utilized through an online mapping or update of a road grade characteristic, this model is updated based on the effective grade calculation during steady-state, power on maneuvers.
FIG. 1 schematically illustrates an exemplary vehicle 100. The exemplary system may take many different forms and include multiple and/or alternate components and facilities. It is to be understood that the exemplary components illustrated are not intended to be limiting, and that additional or alternative components and/or implementations may be used. For example, the vehicle 100 may be any passenger or commercial vehicle such as a car, a truck, sport-utility vehicle, a bus, train, a boat, or an airplane.
With further reference to FIG. 1, an exemplary vehicle 100 includes a vehicle computing device or computer 105 that generally includes a processor and a memory, the memory including one or more forms of computer-readable media, and storing instructions executable by the processor for performing various operations, including as disclosed herein. The computer 105 of the vehicle 100 receives information, e.g., collected data, from one or more data collectors 110 related to various components or conditions of the vehicle 100, e.g., components such as an accelerometer sensor system, a torque sensor system, a braking system, a steering system, a powertrain, etc., and/or conditions such as vehicle 100 torque demand, speed, acceleration, pitch, yaw, roll, etc. The computer 105 may include more than one computing device, e.g., controllers or the like included in the vehicle 100 for monitoring and/or controlling various vehicle components, e.g., a controller module 106, an engine control unit (ECU), transmission control unit (TCU), etc. The computer is generally configured for communications on a controller area network (CAN) bus or the like. The computer may also have a connection to an onboard diagnostics connector (OBD-II). Via the CAN bus, OBD-II, and/or other wired or wireless mechanisms, the computer may transmit messages to various devices in a vehicle and/or receive messages from the various devices, e.g., controllers, actuators, sensors, etc. Alternatively or additionally, in cases where the computer actually comprises multiple devices, the CAN bus or the like may be used for communications between the multiple devices that comprise the vehicle computer. In addition, the computer may be configured for communicating with a network, which may include various wired and/or wireless networking technologies, e.g., cellular, Bluetooth, wired and/or wireless packet networks, etc.
Generally included in instructions stored in and executed by the computer 105 is a controller module 106. Using data received in the computer 105, e.g., from data collectors 110, data included as stored parameters 116, etc., the module 106 may control various vehicle 100 systems or equipment. For example, the module 106 may be used to accelerate, decelerate or maintain the velocity of vehicle 100, such as in conjunction with a cruise-control operation of vehicle 100.
Data collectors 110 may include a variety of devices. For example, various controllers in a vehicle may operate as data collectors 110 to provide data 115 via the CAN bus, e.g., data 115 relating to torque demand and/or output, vehicle speed, acceleration, etc. Further, sensors or the like, global positioning system (GPS) equipment, etc., could be included in a vehicle and configured as data collectors 110 to provide data directly to the computer 105, e.g., via a wired or wireless connection. Sensor data collectors 110 could include communication devices to send and receive information from other vehicles, such as path intentions from vehicles surrounding vehicle 100. Sensor data collectors 110 could include mechanisms such as RADAR, LADAR, sonar, etc. sensors that could be deployed to measure a distance between the vehicle 100 and other vehicles or objects. Yet other sensor data collectors 110 could include accelerometer sensors. In addition, data collectors 110 may include sensors to detect a position, change in position, rate of change in position, etc., of vehicle 100 components such as a steering wheel, brake pedal, accelerator, gearshift lever, etc.
A memory of the computer 105 generally stores collected data 115. Collected data 115 may include a variety of data collected in a vehicle 100. Examples of collected data 115 are provided above, and moreover, data 115 is generally collected using one or more data collectors 110, and may additionally include data calculated therefrom in the computer 105. In general, collected data 115 may include any data that may be gathered by a collection device 110 and/or computed from such data. Accordingly, collected data 115 could include a variety of data related to vehicle 100 operations and/or performance, data received from another vehicle, as well as data related to environmental conditions, road conditions, etc. relating to the vehicle 100. For example, collected data 115 could include data concerning a vehicle 100 torque demand, measured or sensed torque, position, speed, acceleration, pitch, yaw, roll, braking, presence or absence of precipitation, tire pressure, tire condition, etc.
A memory of the computer 105 may further store parameters 116. A parameter 116 generally governs control of a system or component of vehicle 100. These parameters may vary due to an environmental condition, road condition, vehicle 100 condition, or the like. For example, a parameter 116 may specify expected torque demands for vehicle 100 under certain conditions, e.g. a flat vehicle path, a certain vehicle weight or mass, to enable comparison of demanded or output torque during operation of vehicle 100 towards modeling or calculating the conditions in which vehicle 100 is operating.
As discussed in further detail below, the computer 105 and/or controller module 106 may compute or model an updated effective road grade characteristic, which can be stored as one of parameters 116, through an online mapping incorporating an accelerometer-based road grade calculation and, during steady-state and power-on maneuvers, a torque-based calculation of effective grade computed from the difference between the measured, sensed or estimated torque and the known torque required to maintain the vehicle at steady-state on a flat road, saved as a stored parameter 116. In one particular example, the effective road grade characteristic is determined by the computer 105 with the accelerometer-based road grade calculation and modeling variables or parameters, i.e. road grade characteristic model coefficients, each of which may be stored as part of parameters 116. In this example, the modeling variables, i.e. road grade characteristic model coefficients, are updated by the computer 105 during steady-state and power-on operating conditions of vehicle 100 according to the torque-based effective grade calculation, which may also be stored as one of parameters 116. The online update of the modeling variables is switched-off, or otherwise not performed, when the effective grade estimate is inaccurate, i.e. during transient maneuvers, and, therefore, the last update of the modeling variables is used to continue to determine the effective road grade characteristic, based on the accelerometer based grade calculation, during transient conditions. Updating the modeling variables allows the method to account for variation in the unmeasured forces over time. As such, according to this disclosure, the effective road grade characteristic may be calculated and updated throughout operation of vehicle 100, while including at least an estimate of the effective grade—and therefore the unmeasured forces affecting vehicle 100 in addition to the actual road grade itself—as well as avoiding relatively more complex derivative operations.
In one example implementation, the torque-based calculation of the computer 105 is identified where k is the time-step, m(k) is the vehicle mass, a(k) is the vehicle acceleration, T(k) is the torque demand, r is the effective radius, V(k) is the vehicle velocity, PSS(V (k)) is the steady-state power required to maintain the vehicle velocity V(k), g is the acceleration due to gravity, δtrue(k) is the road grade and Fu(k) is the sum of all unmeasured forces in the plane, e.g. head/tail winds. True road grade δtrue(k) can be obtained from the force balance in the forward path of a vehicle, specifically, the force balance is




  
    
      
        
          
            m
            ⁡
            
              (
              k
              )
            
          
          ⁢
          
            a
            ⁡
            
              (
              k
              )
            
          
        
        =
        
          
            
              T
              ⁡
              
                (
                k
                )
              
            
            r
          
          +
          
            
              
                P
                ss
              
              ⁡
              
                (
                
                  V
                  ⁡
                  
                    (
                    k
                    )
                  
                
                )
              
            
            
              V
              ⁡
              
                (
                k
                )
              
            
          
          +
          
            
              m
              ⁡
              
                (
                k
                )
              
            
            ⁢
            g
            ⁢
            
              
            
            ⁢
            
              sin
              ⁡
              
                (
                
                  
                    δ
                    true
                  
                  ⁡
                  
                    (
                    k
                    )
                  
                
                )
              
            
          
          +
          
            
              
                F
                u
              
              ⁡
              
                (
                k
                )
              
            
            .
          
        
      
    
    
      
        (
        1
        )
      
    
  




In this exemplary implementation, with the range of road grade being small, the small angle theorem, namely, sin (δtrue(k))≈δtrue(k) is applied; therefore equation (1) can be rewritten as





  
    
      
        
          
            m
            ⁡
            
              (
              k
              )
            
          
          ⁢
          
            a
            ⁡
            
              (
              k
              )
            
          
        
        =
        
          
            
              T
              ⁡
              
                (
                k
                )
              
            
            r
          
          +
          
            
              
                P
                ss
              
              ⁡
              
                (
                
                  V
                  ⁡
                  
                    (
                    k
                    )
                  
                
                )
              
            
            
              V
              ⁡
              
                (
                k
                )
              
            
          
          +
          
            
              m
              ⁡
              
                (
                k
                )
              
            
            ⁢
            g
            ⁢
            
              
            
            ⁢
            
              
                δ
                true
              
              ⁡
              
                (
                k
                )
              
            
          
          +
          
            
              
                F
                u
              
              ⁡
              
                (
                k
                )
              
            
            .
          
        
      
    
    
      
        (
        2
        )
      
    
  




The true road grade can be calculated by rearranging (2) as





  
    
      
        
          
            δ
            true
          
          ⁡
          
            (
            k
            )
          
        
        =
        
          
            -
            
              
                T
                ⁡
                
                  (
                  k
                  )
                
              
              
                
                  m
                  ⁡
                  
                    (
                    k
                    )
                  
                
                ⁢
                gr
              
            
          
          -
          
            
              
                P
                ss
              
              ⁡
              
                (
                
                  V
                  ⁡
                  
                    (
                    k
                    )
                  
                
                )
              
            
            
              V
              ⁡
              
                (
                k
                )
              
            
          
          -
          
            
              F
              u
            
            ⁡
            
              (
              k
              )
            
          
          +
          
            
              m
              ⁡
              
                (
                k
                )
              
            
            ⁢
            
              
                a
                ⁡
                
                  (
                  k
                  )
                
              
              .
            
          
        
      
    
    
      
        (
        3
        )
      
    
  




Assuming a steady-state condition (m(k)a(k)=0), a nominal vehicle mass mn, i.e. the curb weight and the standard occupant weight of vehicle 100 stored as one of parameters 116, and that Fu (k) is unknown, equation (3) can be written in terms of effective grade δτ(k) as,





  
    
      
        
          
            δ
            τ
          
          ⁡
          
            (
            k
            )
          
        
        ⁢
        
          =
          Δ
        
        ⁢
        
          
            -
            
              
                T
                ⁡
                
                  (
                  k
                  )
                
              
              
                
                  m
                  n
                
                ⁢
                gr
              
            
          
          -
          
            
              
                
                  P
                  ss
                
                ⁡
                
                  (
                  
                    V
                    ⁡
                    
                      (
                      k
                      )
                    
                  
                  )
                
              
              
                
                  V
                  ⁡
                  
                    (
                    k
                    )
                  
                
                ⁢
                
                  m
                  n
                
                ⁢
                g
              
            
            .
          
        
      
    
    
      
        (
        4
        )
      
    
  




Accordingly, the computer 105 and/or controller module 106 of the vehicle 100 computes an effective road grade characteristic as a function of the torque demand T(k), which is retrieved or estimated from collected data 115, values for PSS(V(k)), V(k), mn, g and r retrieved from collected data 115, saved as stored parameters 116, and/or derived from collected data 115 and/or parameters 116.

The effective grade equation (4) can be written as a sum of the true road grade and the unknown forces Fu(k) modeled as grade δunmodeled(k), specifically:

δτ(k)=δtrue(k)+δunmodeled(k)  (5)

where δunmodeled(k) is the effective road grade increase/decrease through Fu(k) and the difference between m(k) and mn, specifically,





  
    
      
        
          
            
              δ
              _
            
            unmodeled
          
          ⁡
          
            (
            k
            )
          
        
        =
        
          
            
              [
              
                
                  1
                  
                    m
                    ⁡
                    
                      (
                      k
                      )
                    
                  
                
                -
                
                  1
                  
                    m
                    n
                  
                
              
              ]
            
            ⁡
            
              [
              
                
                  
                    T
                    ⁡
                    
                      (
                      k
                      )
                    
                  
                  gr
                
                +
                
                  
                    
                      P
                      ss
                    
                    ⁡
                    
                      (
                      
                        V
                        ⁡
                        
                          (
                          k
                          )
                        
                      
                      )
                    
                  
                  
                    
                      V
                      ⁡
                      
                        (
                        k
                        )
                      
                    
                    ⁢
                    g
                  
                
              
              ]
            
          
          +
          
            
              
                F
                u
              
              ⁡
              
                (
                k
                )
              
            
            .
          
        
      
    
    
      
        (
        6
        )
      
    
  




As such, Fu(k) and the true vehicle mass mn may be determined from the effective grade δτ(k).

This exemplary method for computing δτ(k) does not cover transient or power-off conditions of operation of vehicle 100, since the condition m(k)a(k)=0 is not applicable. In this exemplary implementation, the computer 105 and/or module 106 of vehicle 100 estimates an accelerometer-based grade δa(k), which is affine proportional to δtrue(k), through collected data 115 from an accelerometer sensor 110. However, this determination does not take into account any information about m or Fu(k).
For example, to derive road grade from vehicle speed and longitudinal acceleration measurements among collected data 115, the accelerometer data in the longitudinal axis is integrated and compared to the true vehicle speed, and any difference between the values is proportional to grade. For a flat grade, the integral of the accelerometer data in the longitudinal axis is equal to the vehicle velocity. On uphill grades, since a component of acceleration due to gravity is opposing the forward acceleration of the vehicle, the integral of accelerometer data in the longitudinal axis will result in a velocity lower than the true vehicle speed. The difference is proportional to the road grade. For downhill grade, the integral of the sensor data will result in a higher vehicle speed estimate than the true vehicle speed since the component of gravity is acting in the same direction as the vehicle motion. Again the difference is proportional to the road grade. However, the true vehicle speed, and accelerometer data are unaffected by vehicle mass and unmodeled forces (e.g. wind); therefore such calculations of road grade are independent of such additional variables.
Accordingly, in this exemplary implementation, the corrected effective grade, or updated road grade characteristic, {circumflex over (δ)}τ(k) is defined as

{circumflex over (δ)}τ(k)α(k)φ(k),  (7)

where the regressor φ[1 δa(k)]T and the model coefficients α(k)[α0(k) α1(k)]. As set forth below, according to this disclosure, the parameters a(k) are determined such that during the time intervals when m(k)a(k)=0, ∥{circumflex over (δ)}τ(k)−δτ(k)∥ is small. When m(k)a(k) is nonzero, i.e. non steady state conditions, the mapping a(k) is not updated, and α(k) is updated when the vehicle is in steady-state.

In this example, the mapping update switch variable is β(k)ε{0, 1}. Specifically, β(k)=1 when m(k)a(k)=0. Furthermore, when m(k)a(k) is not equal to zero, β(k)=0.
Next, α(k) is determined using, for example, recursive least squares, that is,




  
    
      
        
          α
          ⁡
          
            (
            k
            )
          
        
        =
        
          {
          
            
              
                
                  
                    
                      α
                      ⁡
                      
                        (
                        
                          k
                          -
                          1
                        
                        )
                      
                    
                    +
                    
                      
                        L
                        ⁡
                        
                          (
                          k
                          )
                        
                      
                      ⁡
                      
                        [
                        
                          
                            
                              δ
                              τ
                            
                            ⁡
                            
                              (
                              k
                              )
                            
                          
                          -
                          
                            
                              α
                              ⁡
                              
                                (
                                
                                  k
                                  -
                                  1
                                
                                )
                              
                            
                            ⁢
                            
                              φ
                              ⁡
                              
                                (
                                k
                                )
                              
                            
                          
                        
                        ]
                      
                    
                  
                  ,
                
              
              
                
                  
                    
                      β
                      ⁡
                      
                        (
                        k
                        )
                      
                    
                    =
                    1
                  
                  ,
                
              
            
            
              
                
                  
                    α
                    ⁡
                    
                      (
                      
                        k
                        -
                        1
                      
                      )
                    
                  
                  ,
                
              
              
                
                  
                    
                      β
                      ⁡
                      
                        (
                        k
                        )
                      
                    
                    =
                    0
                  
                  ,
                
              
            
          
        
      
    
    
      
        (
        8
        )
      
    
  




where the variable L(k) is defined as:





  
    
      
        
          
            L
            ⁡
            
              (
              k
              )
            
          
          ⁢
          
            =
            Δ
          
          ⁢
          
            
              
                P
                ⁡
                
                  (
                  
                    k
                    -
                    1
                  
                  )
                
              
              ⁢
              
                φ
                ⁡
                
                  (
                  k
                  )
                
              
            
            
              λ
              +
              
                
                  
                    φ
                    T
                  
                  ⁡
                  
                    (
                    k
                    )
                  
                
                ⁢
                
                  P
                  ⁡
                  
                    (
                    
                      k
                      -
                      1
                    
                    )
                  
                
                ⁢
                
                  φ
                  ⁡
                  
                    (
                    k
                    )
                  
                
              
            
          
        
        ,
      
    
    
      
        (
        9
        )
      
    
  




and P(0)ε2×2 is positive definite and λε(0, 1] is the forgetting factor. When β(k)=1, the map is updated, whereas, when β(k)=0, the model is fixed. P(k) is updated by





  
    
      
        
          P
          ⁡
          
            (
            k
            )
          
        
        =
        
          {
          
            
              
                
                  
                    
                      
                        1
                        λ
                      
                      ⁢
                      
                        (
                        
                          
                            P
                            ⁡
                            
                              (
                              
                                k
                                -
                                1
                              
                              )
                            
                          
                          -
                          
                            
                              
                                P
                                ⁡
                                
                                  (
                                  
                                    k
                                    -
                                    1
                                  
                                  )
                                
                              
                              ⁢
                              
                                φ
                                ⁡
                                
                                  (
                                  k
                                  )
                                
                              
                              ⁢
                              
                                
                                  φ
                                  T
                                
                                ⁡
                                
                                  (
                                  k
                                  )
                                
                              
                              ⁢
                              
                                P
                                ⁡
                                
                                  (
                                  
                                    k
                                    -
                                    1
                                  
                                  )
                                
                              
                            
                            
                              λ
                              +
                              
                                
                                  
                                    φ
                                    T
                                  
                                  ⁡
                                  
                                    (
                                    k
                                    )
                                  
                                
                                ⁢
                                
                                  P
                                  ⁡
                                  
                                    (
                                    
                                      k
                                      -
                                      1
                                    
                                    )
                                  
                                
                                ⁢
                                
                                  φ
                                  ⁡
                                  
                                    (
                                    k
                                    )
                                  
                                
                              
                            
                          
                        
                        )
                      
                    
                    ,
                  
                
                
                  
                    
                      
                        β
                        ⁡
                        
                          (
                          k
                          )
                        
                      
                      =
                      1
                    
                    ,
                  
                
              
              
                
                  
                    
                      P
                      ⁡
                      
                        (
                        
                          k
                          -
                          1
                        
                        )
                      
                    
                    ,
                  
                
                
                  
                    
                      
                        β
                        ⁡
                        
                          (
                          k
                          )
                        
                      
                      =
                      0
                    
                    ,
                  
                
              
            
            ⁢
            
              

            
            ⁢
            
              
            
            ⁢
            where
          
        
      
    
    
      
        (
        10
        )
      
    
  
  
    
      
        
          
        
        ⁢
        
          
            
              P
              ⁡
              
                (
                0
                )
              
            
            =
            
              [
              
                
                  
                    
                      γ
                      1
                    
                  
                  
                    0
                  
                
                
                  
                    0
                  
                  
                    
                      γ
                      2
                    
                  
                
              
              ]
            
          
          ,
          
            and
            ⁢
            
              
            
            ⁢
            
              γ
              1
            
          
          ,
          
            
              γ
              2
            
            >
            0.
          
        
      
    
    
      
        (
        11
        )
      
    
  




Accordingly, as set forth in this example implementation, the vehicle 100 may utilize the computer 105 and/or controller module 106 to compute and update an effective road grade characteristic, based on an accelerometer-based road grade calculation and the existing mapping variables during transient and power-off conditions and, during steady-state and power-on maneuvers, incorporating a torque-based calculation of effective grade into the updated mapping variables. As such, according to this disclosure, the effective road grade may be calculated and updated throughout operation of vehicle 100 while avoiding potentially more complex derivative operations. It should be understood, that the particular calculations and models are exemplary. For example, the model may be updated using any least-squares method such as batch, or any method for solving a linear system of equations. Furthermore, in this implementation, the model was chosen to be a line. The model could be any structure which provides good residual error, for example, nonlinear (polynomial, radial basis, etc.), dynamic or both.
In general, computing systems and/or devices, such as the computer 105 and/or controller module 106 of the vehicle 100, may employ any of a number of computer operating systems, including, but by no means limited to, versions and/or varieties of the Ford SYNC® operating system, the Microsoft Windows® operating system, the Unix operating system (e.g., the Solaris® operating system distributed by Oracle Corporation of Redwood Shores, Calif.), the AIX UNIX operating system distributed by International Business Machines of Armonk, N.Y., the Linux operating system, the Mac OS X and iOS operating systems distributed by Apple Inc. of Cupertino, Calif., and the Android operating system developed by the Open Handset Alliance. Examples of computing devices include, without limitation, a vehicle computer or control unit, a computer workstation, a server, a desktop, notebook, laptop, or handheld computer, or some other computing system and/or device.
Computing devices generally include computer-executable instructions, where the instructions may be executable by one or more computing devices such as those listed above. Computer-executable instructions may be compiled or interpreted from computer programs created using a variety of programming languages and/or technologies, including, without limitation, and either alone or in combination, JavaTM, C, C++, Visual Basic, Java Script, Perl, etc. In general, a processor (e.g., a microprocessor) receives instructions, e.g., from a memory, a computer-readable medium, etc., and executes these instructions, thereby performing one or more processes, including one or more of the processes described herein. Such instructions and other data may be stored and transmitted using a variety of computer-readable media.
A computer-readable medium (also referred to as a processor-readable medium) includes any non-transitory (e.g., tangible) medium that participates in providing data (e.g., instructions) that may be read by a computer (e.g., by a processor of a computer). Such a medium may take many forms, including, but not limited to, non-volatile media and volatile media. Non-volatile media may include, for example, optical or magnetic disks and other persistent memory. Volatile media may include, for example, dynamic random access memory (DRAM), which typically constitutes a main memory. Such instructions may be transmitted by one or more transmission media, including coaxial cables, copper wire and fiber optics, including the wires that comprise a system bus coupled to a processor of a computer. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH-EEPROM, any other memory chip or cartridge, or any other medium from which a computer can read.
Databases, data repositories or other data stores described herein may include various kinds of mechanisms for storing, accessing, and retrieving various kinds of data, including a hierarchical database, a set of files in a file system, an application database in a proprietary format, a relational database management system (RDBMS), etc. Each such data store is generally included within a computing device employing a computer operating system such as one of those mentioned above, and are accessed via a network in any one or more of a variety of manners. A file system may be accessible from a computer operating system, and may include files stored in various formats. An RDBMS generally employs the Structured Query Language (SQL) in addition to a language for creating, storing, editing, and executing stored procedures.
In some examples, system elements may be implemented as computer-readable instructions (e.g., software) on one or more computing devices (e.g., servers, personal computers, etc.), stored on computer readable media associated therewith (e.g., disks, memories, etc.). A computer program product may comprise such instructions stored on computer readable media for carrying out the functions described herein.
FIG. 2 is a flowchart of an exemplary process 200 that may be implemented by the computer 105 and/or controller module 106 of the vehicle 100 to determine an updated effective road grade characteristic, stored among parameters 116, for use, e.g., in a cruise-control operation.
At a block 205, the vehicle 100 may receive information from one or more sensors 110, such as velocity of the vehicle 100, acceleration of the vehicle 100, towards determining the operational state of vehicle 100. At a block 210, the computer 105 may receive accelerometer sensor data from collected data 115. Next, at a block 215, the computer 105 may calculate road grade according to the accelerometer sensor data. For example, as set forth above, the road grade can be determined from the difference between the integral of the accelerometer data along the longitudinal axis of vehicle 100 and the true vehicle speed, which may be measured by one of the sensors 110. According to the information collected at the block 205, next, at a block 220, the computer 105 may determine whether the vehicle 100 is operating in a steady-state condition, i.e. maintaining a substantially constant velocity, or is otherwise in a transient condition, e.g. accelerating or decelerating.
If the vehicle 100 is not in a steady-state condition, at block 225, computer 105 skips or suspends updating of the modeling variables or road grade characteristic model coefficients, such as set forth in the exemplary model or mapping herein.
If the vehicle 100 is in a steady-state condition, at block 230, the computer 105 may receive torque demand data, such as information from sensors 110, such as, for example, data from a torque sensor, or may receive a torque demand estimate based on other sensors 110. Next, at a block 235, the computer 105 compares the torque demand data collected to stored torque requirements among parameters 116. Next, at block 240, the computer 105 may calculate an effective road grade according to the comparison of the measured or estimated torque demand data saved as or derived from collected data 115 and the stored torque requirements among parameters 116. Next, at a block, 245, the computer 105 may update the one or more road grade characteristic model coefficients, or modeling variables, based on the calculated effective grade, such as set forth in the exemplary implementation herein.
Next, with the updated one or more modeling variables (i.e. road grade characteristic model coefficients) from block 245, or having suspended the update of the road grade characteristic model coefficients at block 225, the road grade characteristic is updated at a block 250. After the calculation of the road grade characteristic at the block 250, the computer 105 determines whether it is to continue updating the road grade characteristic at the block 260. If so, e.g. the vehicle 100 is continuing to operate in cruise-control mode, the process 200 returns to block 205. If not, e.g. the vehicle 100 has reached its destination, the process 200 ends.
With regard to the processes, systems, methods, heuristics, etc. described herein, it should be understood that, although the steps of such processes, etc. have been described as occurring according to a certain ordered sequence, such processes could be practiced with the described steps performed in an order other than the order described herein. It further should be understood that certain steps could be performed simultaneously, that other steps could be added, or that certain steps described herein could be omitted. In other words, the descriptions of processes herein are provided for the purpose of illustrating certain embodiments, and should in no way be construed so as to limit the claims.
Accordingly, it is to be understood that the above description is intended to be illustrative and not restrictive. Many embodiments and applications other than the examples provided would be apparent upon reading the above description. The scope should be determined, not with reference to the above description, but should instead be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. It is anticipated and intended that future developments will occur in the technologies discussed herein, and that the disclosed systems and methods will be incorporated into such future embodiments. In sum, it should be understood that the application is capable of modification and variation.
All terms used in the claims are intended to be given their broadest reasonable constructions and their ordinary meanings as understood by those knowledgeable in the technologies described herein unless an explicit indication to the contrary in made herein. In particular, use of the singular articles such as “a,” “the,” “said,” etc. should be read to recite one or more of the indicated elements unless a claim recites an explicit limitation to the contrary.
The Abstract of the Disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in various embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separately claimed subject matter.

## Claims

1. A system comprising a computer in a vehicle, the computer comprising a processor and a memory, wherein the computer is configured to:
determine an operational state of a vehicle;
calculate a road grade value from data from an accelerometer;
calculate an effective grade value from a torque demand value;
determine a correction coefficient to adjust the road grade value to substantially match the effective grade value when the operation state is determined to be a steady-state condition;
determine a corrected effective grade based at least in part on the correction coefficient and the road grade value; and
adjust a velocity of the vehicle with a cruise control system based at least in part on the corrected effective grade when the operation state is a transient condition;
wherein the correction coefficient is based at least in part on the road grade value and the effective grade value.

2. The vehicle system of claim 1, wherein the computer is further configured to estimate the torque demand value from collected data.

3. The vehicle system of claim 2, wherein the collected data includes at least one of vehicle speed data, requested torque data, and vehicle acceleration data.

4. The vehicle system of claim 1, wherein the road grade value is calculated from data from the accelerometer and a vehicle speed sensor.

5. The vehicle system of claim 1, wherein the correction coefficient is determined with a least-squares calculation.

6. A method comprising:
determining an operational state of a vehicle;
calculating a road grade value from data from an accelerometer;
calculating an effective grade value from a torque demand value;
determining a correction coefficient to adjust the road grade value to substantially match the effective grade value when the operation state is determined to be a steady-state condition,
determining a corrected effective grade based at least in part on the correction coefficient and the road grade value; and
adjusting a velocity of the vehicle with a cruise control system based at least in part on the corrected effective grade when the operation state is a transient condition;
wherein the correction coefficient is based at least in part on the road grade value and the effective grade value.

7. The method of claim 6, further comprising estimating the torque demand value from collected data.

8. The method of claim 7, wherein the collected data includes at least one of vehicle speed data, requested torque data, and vehicle acceleration data.

9. The method of claim 6, wherein the road grade value is calculated from data from the accelerometer and a vehicle speed sensor.

10. The method of claim 6, where the correction coefficient is determined with a least-squares calculation.

11. A non-transitory computer-readable medium tangibly embodying computer-executable instructions that cause a processor to execute operations comprising:
determining an operational state of a vehicle;
calculating a road grade value from data from an accelerometer;
calculating an effective grade value from a torque demand value;
determining a correction coefficient to adjust the road grade value to substantially match the effective grade value when the operation state is determined to be a steady-state condition,
determining a corrected effective grade based at least in part on the correction coefficient and the road grade value; and
adjusting a velocity of the vehicle with a cruise control system based at least in part on the corrected effective grade when the operation state is a transient condition;
wherein the correction coefficient is based at least in part on the road grade value and the effective grade value.

12. The non-transitory computer-readable medium of claim 11, the operations further comprising estimating the torque demand value from collected data.

13. The non-transitory computer-readable medium of claim 12, wherein the collected data includes at least one of vehicle speed data, requested torque data, and vehicle acceleration data.

14. The non-transitory computer-readable medium of claim 11, wherein the road grade value is calculated from data from the accelerometer and a vehicle speed sensor.

15. The non-transitory computer-readable medium of claim 11, wherein the correction coefficient is determined with a least-squares calculation.