Cruise control apparatus and method
BACKGROUND OF THE INVENTION 
     This invention relates to a cruise control apparatus for an automotive vehicle. A cruise control apparatus is a device that enables the driver of a vehicle to select a desired target speed for the vehicle and then controls the output of the engine of the vehicle so as to maintain the selected target speed without the driver having to depress the accelerator pedal. A typical cruise control apparatus controls the engine output by varying the opening of the throttle valve of the engine. 
     Conventional cruise control apparatuses are able to perform fairly good control of vehicle speed when the vehicle is travelling on a level road. However, when the vehicle is travelling on a road which is not level, and particularly on one with a succession of upwards and downwards slopes, with a conventional cruise control apparatus, the deviation of the vehicle speed from the target speed becomes large, hunting of the engine frequently occurs, and the ride becomes uncomfortable for the passengers of the vehicle. 
     SUMMARY OF THE INVENTION 
     Accordingly, it is an object of the present invention to provide a cruise control apparatus for an automotive vehicle which can accurately maintain a target vehicle speed even when the vehicle is travelling on a road with a series of slopes. 
     It is another object of the present invention to provide a cruise control apparatus that can respond rapidly to deviation of the vehicle speed from a target speed. 
     It is still another object of the present invention to provide a cruise control apparatus that can provide a comfortable ride for passengers of the vehicle. 
     A cruise control apparatus for a vehicle according to the present invention has deviation determining means for determining the deviation ε of the vehicle speed from a target speed and an acceleration determining means for determining the acceleration α of the vehicle. A coefficient calculating means calculates a control coefficient G that increases with an increase in the length of time since a change in the sign of the acceleration α or a change in the sign of the rate of change of the acceleration α. A throttle adjusting means adjusts the opening of a throttle valve of the vehicle based on the speed deviation ε, the amount of adjustment increasing as the value of the control coefficient G increases. 
     In a preferred embodiment, the throttle valve opening is adjusted in a step-wise manner at prescribed intervals. The amount of each adjustment is proportional to K·ε+G·α, wherein K is a predetermined coefficient. 
     Because the amount of adjustment of the throttle valve opening depends on the time history of the acceleration of the vehicle, the throttle valve can be rapidly adjusted in response to deviations from the target speed, and the vehicle speed can be accurately maintained at the target speed. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram conceptually illustrating an embodiment of a cruise control apparatus according to the present invention. 
     FIG. 2 is a schematic diagram of a concrete example of the embodiment of FIG. 1. 
     FIG. 3 is a timing diagram showing the control signals applied to the actuator and the resulting operation of the throttle valve of FIG. 2. 
     FIG. 4 is a flow chart of a main program executed by the control circuit of FIG. 2. 
     FIGS. 5A and 5B are flow charts of interrupt routines performed by the control circuit of FIG. 2. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     A preferred embodiment of a cruise control apparatus according to the present invention will now be described while referring to the accompanying drawings. FIG. 1 is a block diagram conceptually illustrating this embodiment. It includes a speed calculator 1 that calculates the speed V of an unillustrated vehicle, such as a passenger car, on which the cruise control apparatus is mounted and generates a corresponding electrical output signal. A speed setter 2, which is a device operated by the driver of the vehicle, generates an electrical output signal indicative of a target speed V o  at which the driver wishes the vehicle to run. The output signals from the speed calculator 1 and the speed setter 2 are input to a speed deviation calculator 3, which calculates the deviation ε of the actual vehicle speed V, indicated by the output signal of the speed calculator 1, from the target speed V o , indicated by the output signal from the speed setter 2, and generates a corresponding electrical output signal. The output signal from the speed calculator 1 is also input to an acceleration calculator 4 that calculates the vehicle acceleration α based on the vehicle speed determined by the speed calculator 1 and generates a corresponding output signal. The output signal from the acceleration calculator 4 is input to an acceleration rate of change calculator 5 that calculates the time rate of change β of the acceleration α and generates a corresponding output signal. 
     The output signals from the speed deviation calculator 3, the acceleration calculator 4, and the acceleration rate of change calculator 5 are input to a pulse width calculator 6 that generates a control signal having a prescribed pulse width for controlling an actuator 7. The actuator 7 opens and closes the throttle valve 8 of an unillustrated carburetor for the engine of the vehicle in accordance with the control signal. The pulse width of the control signal from the pulse width calculator 6 determines the amount by which the actuator 7 changes the degree of opening of the throttle valve 8. 
     The output signal from the acceleration calculator 4 is input to an acceleration sign memory 9, an acceleration sign integrator 10, and a control coefficient calculator 12. The acceleration sign memory 9 stores a value indicating the sign (positive or negative) of the vehicle acceleration α during a prescribed period. The acceleration sign integrator 10 calculates an acceleration sign counter Cα that indicates the length of time since a change in the sign of the acceleration α. The acceleration sign counter Cα is incremented at regular intervals when the sign of the acceleration α remains constant. 
     The output signal from the acceleration rate of change calculator 5 is input to an acceleration rate of change sign integrator 11 and the control coefficient calculator 12. The acceleration rate of change sign integrator 11 calculates an acceleration rate of change sign count Cβ that indicates the length of time since a change in the sign of the acceleration rate of change β. The acceleration rate of change sign count Cβ is incremented at regular intervals when the sign of the acceleration rate of change remains constant. 
     The control coefficient calculator 12 calculates a control coefficient G based on the acceleration sign count Cα and the acceleration rate of change sign count Cβ and provides the control coefficient G to the pulse width calculator 6. The pulse width calculator 6 then generates a control signal in the form of a pulse having a pulse width T c  given by the formula 
     
         T.sub.c =K·ε+G·α 
    
     wherein K is a predetermined control coefficient. In the present embodiment, K is a constant. 
     FIG. 2 is a block diagram of a more concrete example of the structure of the embodiment of FIG. 1. In this example, elements 1-6 and 8-12 of FIG. 1 comprise an electronic control unit 13 comprising an electronic processor such as a microcomputer 14, an input circuit 15 for processing input signals and providing them to the microcomputer 14, and an output circuit 16 that actually operates the actuator 7 in response to command signals from the microcomputer 14. The microcomputer 14 includes various memories for storing programs and data. The driver of the vehicle can initiate cruise control by momentarily closing a set switch 24. The vehicle speed at the time the set switch 24 is closed becomes a target speed. Cruise control is cancelled when a cancel switch 25 is momentarily closed. The cancel switch 25 can be linked to the brake pedal of the vehicle so that cruise control is automatically halted whenever the brake is depressed. The control unit 13 receives a speed signal from a speed sensor 26 comprising a rotating magnet 27 having a plurality of poles (four, for example) and a reed switch 28 that can be opened and closed magnetically. The magnet 27 is connected to some portion of the vehicle so as to rotate at a speed proportional to the vehicle speed. For example, the magnet 27 can be attached to a speedometer cable so as to rotate at a speed proportional to the rotational speed of the wheels of the vehicle. The reed switch 28 opens and closes as the magnet 27 rotates and generates an electrical output signal having a frequency proportional to the rotational speed of the magnet 27 and therefore proportional to the speed of the vehicle. In the illustrated embodiment, the speed sensor 26 generates four output pulses for each rotation of the magnet 27. Power is supplied to the control unit 13 from a battery 29 of the vehicle via a power switch 30. 
     The actuator 7 is a pneumatic device having two chambers 19 and 20 that are separated and hermetically sealed from one another by a movable diaphragm 18. The diaphragm 18 is linked to the throttle valve 8 so that movement of the diaphragm 18 to the left in FIG. 2 will cause the throttle valve 8 to open while movement to the right will cause the throttle valve 8 to close. The diaphragm 18 is biased towards the right in FIG. 2 by a biasing spring 21. Chamber 19 communicates with the atmosphere, while chamber 20 can be connected either to an unillustrated source of negative pressure or to the atmosphere by a first solenoid valve 22 or a second solenoid valve 23, respectively. The solenoid valves 22 and 23 are individually controlled by output signals from the control unit 13. 
     The actuator 7 has three different modes of operation: an open mode in which the degree of opening of the throttle valve 8 is increased, a close mode in which the degree of opening of the throttle valve 8 is decreased, and a maintenance mode in which the degree of opening of the throttle valve 8 is maintained constant. In the open mode, the first solenoid valve 22 is opened and the second solenoid valve 23 is closed. As a result, chamber 20 communicates with the source of negative pressure, so the diaphragm 18 is moved to the left and the throttle valve 8 moves towards an open position. In the close mode, the second solenoid valve 23 is opened and the first solenoid valve 22 is closed. Accordingly, chamber 20 communicates with the atmosphere, so the diaphragm 18 is moved to the right and the throttle valve 8 moves towards a closed position. In the maintenance mode, both solenoid valves 22 and 23 are closed. Therefore, chamber 20 is sealed and the pressure within chamber 20 remains constant, so the positions of the diaphragm 18 and the throttle valve 8 remain unchanged from their positions at the start of the maintenance mode of operation. 
     FIG. 3 is a timing diagram illustrating the operation of the throttle valve 8. At regular time intervals T s , the control unit 13 generates a control pulse for the actuator 7 having a pulse width T c . If the control pulse is applied to the first solenoid valve 22, the degree of opening of the throttle valve 8 is increased, and if the control pulse is applied to the second solenoid valve 23, the degree of opening of the throttle valve 8 is decreased. If no control pulse is applied to either solenoid valve, the throttle valve opening remains unchanged. Furthermore, since both solenoid valves are closed upon the falling edge of a pulse, the degree of opening of the throttle valve 8 is maintained constant until the next pulse is generated. The amount of change in the degree of opening of the throttle valve 8 produced by each control pulse corresponds to the pulse width T c . The greater the pulse width T c , the larger the amount of change. 
     FIG. 4 is a flow chart illustrating an example of a main program that can be run by the microcomputer 14 of the embodiment of FIG. 2 to perform cruise control of a vehicle. In Step 100, the power switch 30 is closed, and the control unit 13 is energized by an unillustrated power-on circuit. In Step 101, the control unit 13 initializes its internal memories, the input and output circuits 15 and 16, and the like. Until the completion of initialization, the main program does not respond to interrupt requests. 
     Steps 102-112 of FIG. 4 comprises a loop that is performed at intervals of T s  seconds. In Step 102, the vehicle speed V n  during the current cycle of the loop is calculated based on the period Δt between consecutive input pulses from the speed sensor 26. The period Δt is calculated by an interrupt routine shown in FIG. 5A (to be described later) each time a pulse is received from the speed sensor 26. Since the magnet 27 of the speed sensor 26 is secured to the speedometer cable, the distance travelled by the vehicle between output pulses of the speed sensor 26 is a predetermined constant. Accordingly, the vehicle speed V n  can be calculated by dividing this distance by the period Δt. In Step 103, the acceleration α n  of the vehicle during the current cycle of the loop is calculated based on the vehicle speed V n  found in Step 102 and the vehicle speed during the preceding cycle. Since the loop is performed every T s  seconds, the acceleration is found by the formula 
     
         α.sub.n =(V.sub.n -V.sub.n -1)/T.sub.s 
    
     wherein V n-1  is the vehicle speed during the previous cycle of the loop. 
     In Step 104, the rate of change of acceleration β n  (also referred to as the acceleration change rate) during the current cycle is found from the acceleration using the formula 
     
         β.sub.n=(α.sub.n-α.sub.n-1)/T.sub.s 
    
     wherein α n-1  is the acceleration during the previous cycle of the loop. 
     In Step 105, the deviation e of the vehicle speed V n  from a target speed V o  is found by the formula 
     
         ε=V.sub.n -V.sub.o. 
    
     The target speed V o  is determined by an interrupt routine illustrated in FIG. 5B that is performed each time the set switch 24 is closed. 
     In Step 106, based on the sign of the acceleration α n  calculated in Step 103, the acceleration sign count Cα n  is corrected. The acceleration sign count Cα n  indicates the length of time since a change in the sign (positive or negative) of the acceleration α. It is calculated according to the following method: 
     (a) When α n  and α n-1  are of the same sign (for example, both positive or both negative), then 
     
         Cα.sub.n =Cα.sub.n -1-1 
    
      wherein Cα n-1  is the value of the acceleration sign count during the previous cycle of the loop. 
     (b) When α n  and α n-1  are of different signs, then 
     
         Cα.sub.n =0. 
    
     (c) When α is zero, then 
     
         Cα.sub.n =Cα.sub.n -1. 
    
     Next, in Step 107, the acceleration rate of change sign count Cβ is calculated based on the sign of the acceleration rate of change β calculated in Step 104. The acceleration rate of change count Cβ indicates the length of time since a change in the sign (positive or negative) of the acceleration rate of change β and is calculated in the following manner: 
     (a) When β n  and β n-1  are of the same sign, then 
     
         Cβ.sub.n=Cβ.sub.n-1+ 1 
    
     wherein Cβ n-1  is the value of the acceleration rate of change sign count and β n-1  is the acceleration rate of change during the previous cycle of the loop. 
     (b) When β n  and β n-1  are of different signs, then 
     
         Cβ.sub.n =0. 
    
     (c) When β n=  0, then 
     
         Cβ.sub.n =Cβ.sub.n -1. 
    
     Next, in Step 108, the pulse width T c  of the control signal applied to the actuator 7 is calculated. As mentioned above, T c  is expressed by the formula T c  =K·ε+G·α, wherein K is a control coefficient having a predetermined constant value and G is a control coefficient determined on the basis of Cα and Cβ. More specifically, in this example, G can have one of 4 values G 1  -G 4  depending on the magnitude of Cα and Cβ. The value of T c  is expressed as follows: 
     (a) When Cα&lt;N 1 , then 
     
         T.sub.c =K·ε+G.sub.1 ·α (when Cβ&lt;N.sub.2) and 
    
     
         T.sub.c =K·ε+G.sub.2 ·α (when Cε&lt;N.sub.2) 
    
     (b) When Cα≧N 1 , then 
     
         T.sub.c =K·ε+G.sub.3 ·α (when Cε&lt;N.sub.2) and 
    
     
         T.sub.c =K·ε+G.sub.4 ·α (when Cε≧N.sub.2). 
    
     In these equations, N 1  and N 2  are predetermined constants. Furthermore, G 1  &lt;G 2  &lt;G 3  &lt;G 4 . 
     When the value of T c  given by the above equations is positive, a pulse have a pulse width of T c  is output to the first solenoid valve 22 to increase the degree of opening of the throttle valve 8. When the value of T c  is negative, then a pulse having a pulse width equal to the absolute value of T c  (|T c  |) is applied to the second solenoid valve 23 to decrease the degree of opening of the throttle valve 8. When T c  =0, both solenoid valves remain closed, and the previous setting of the throttle valve 8 is maintained. 
     In Step 109, it is checked whether a cruise control flag is set, indicating that cruise control is being performed. If the flag is set, then in Step 110, a pulse having a pulse width |T c  | is output to the appropriate solenoid valve of the actuator 7 to adjust the setting of the throttle valve 8. If the cruise control flag is not set, then in Step 111, cruise control is cancelled. The cancellation of cruise control can include a step such as controlling the actuator 7 so as to decrease the degree of opening of the throttle valve 8. Then, in Step 112, the program waits until a length of time T s  has elapsed since the start of the present cycle of the loop. When time T s  elapses, the program recycles to Step 102, and the loop of steps 102-112 is performed once again. 
     FIGS. 5A and 5B illustrate interrupt routines performed by the microcomputer 14 of the control unit 13 during the execution of the program of FIG. 4. Each time a pulse is input from the speed sensor 26, the interrupt routine of FIG. 5A is performed. In Step 120, the routine is entered from the main program of FIG. 4. In Step 121, the time t of the most recent output pulse of the speed sensor 26 is read from an internal timer. In Step 122, the time difference Δt between the time t of the most recent output pulse and the time t n-1  of the preceding output pulse of the speed sensor 26 is calculated and stored in memory. The difference Δt is used in Step 102 of FIG. 4 to calculate the vehicle speed. In Step 123, the present time t is stored in a register as the previous time t n-1  for use the next time the interrupt routine is performed, and in Step 124, a return is performed to the main program. 
     FIG. 5B illustrates an interrupt routine performed by the microcomputer 14 each time either one of switches 24 or 25 is closed. In Step 140, the routine is entered from the main program of FIG. 4. In Step 141, it is determined whether it was the set switch 24 that was closed. If it was, then in Step 142, the present vehicle speed is stored in memory as a target speed V o  and cruise control initiation (such as initiation of the actuator 7) is carried out. In Step 143, a cruise control flag is set to indicate that cruise control is being performed, and then a return is performed in Step 146. If in Step 141 it is determined that it was not the set switch 24 that was closed, it follows that the cancel switch 25 was closed, so in Step 144, cancel processing is carried so as to cancel cruise control. The cancel processing can comprise, for example, controlling the actuator 7 to fully close the throttle valve 7. In Step 145, the cruise control flag is cleared to indicate that cruise control is not being performed, and in Step 146 a return is performed. 
     The larger the magnitude of the absolute value of T c , the faster the rate at which the degree of opening of the throttle valve 8 is adjusted. From the above equations for T c , it can be seen that the larger the value of the deviation ε or the acceleration α, the faster is the rate of adjustment of the throttle valve 8 (and of the vehicle speed). Furthermore, the rate of adjustment of the throttle valve 8 (and the vehicle speed) also increases as Cα or Cβ increases. 
     As a result, when the vehicle speed continuously deviates from the target speed during cruise control due to variations in resistance to vehicle movement and other causes, i.e., when the drive force of the engine becomes much larger or smaller than the resistance to vehicle movement, the value of the acceleration sign counter Cα and the acceleration rate of change sign counter Cβ will increase. As a result, the pulse width T c  of the control pulse applied to the actuator 7 will increase, and the speed deviation can be promptly reduced. 
     The acceleration sign count Cα and the acceleration rate of change sign count Cβ give the past history of speed variations of the vehicle, so in effect, the opening of the throttle valve 8 is adjusted based on the speed history of the vehicle. 
     In the above-described embodiment, the control coefficient G can have one of four discrete values G 1  -G 4  depending on the values of Cα and Cβ. However, the control coefficient G need not be limited to only four different values, and a larger or smaller number of values is possible. In addition, it is possible for the control coefficient G to be a continuous function of Cα and Cβ rather than a step-wise function as in the preceding example. 
     Furthermore, in the above-described embodiment, the control coefficient K which is multiplied by the speed deviation ε has a constant value. However, this control coefficient can also be varied in accordance with Cα and Cβ, in which case the responsiveness of the cruise control apparatus can be further increased. 
     The embodiment of FIG. 2 employs a pneumatic actuator 7 to control the movement of the throttle valve 8, but the present invention is not restricted to a specific type of actuator. For example, the throttle valve 8 can be opened and closed by an electric motor controlled by the control unit 13.