Abstract:
There is obtained a throttle learning control apparatus that raises the reliability of throttle fully closed and opened learning even when a self-shutoff delay abnormality occurs and can suppress various defects that occur when a throttle fully closed learning value or a throttle fully opened learning value is not updated. After a self-shutoff delay abnormality occurs, an electronic control unit implements fully closed learning 1 and fully opened learning 1 while the engine is operated in a non-engine-stall period and implements fully closed learning 2 and fully opened learning 2 for compensating the fully closed learning 1 and fully opened learning 1. Fully closed learning is completed when the fully closed learning 1 or the fully closed learning 2 has once been implemented; similarly, fully opened learning is completed when the fully opened learning 1 or the fully opened learning 2 has once been implemented.

Description:
BACKGROUND OF THE INVENTION 
     Field of the Invention 
     The present invention relates to an apparatus that performs fully closed position learning control and fully opened position learning control of an electronically-controlled throttle mounted in an automobile. 
     Description of the Related Art 
     Automobiles equipped with an electronically-controlled throttle (hereinafter, also referred to as a throttle) have become widespread. It is known that throttle control is implemented through PID control based on the difference between a desired throttle opening degree and a throttle opening degree detection value. In other words, while monitoring the throttle opening degree sensor detection value, a throttle control apparatus supplies a driving current having a suitable direction and magnitude to a throttle driving motor in a direction in which the difference from the desired throttle opening degree is decreased so that the throttle opening degree detection value coincides with the desired throttle opening degree. 
     Several kinds of methods are known in which for the purpose of ensuring a throttle opening degree detection value, the mechanical throttle fully closed position is utilized as a reference position and a throttle control apparatus learns (hereinafter, this learning is referred to as fully closed learning and the stored value is referred to as a fully closed learning value) a throttle opening degree sensor detection value at the throttle fully closed position. 
     Similarly, several kinds of methods are known in which a throttle control apparatus learns (hereinafter, this learning is referred to as fully opened learning and the stored value is referred to as a fully opened learning value) a throttle opening degree sensor detection value at the mechanical throttle fully opened position. 
     Meanwhile, a method is known in which the fully closed learning and the fully opened learning are implemented during a self-shutoff delay period that is set immediately after the ignition key switch of an automobile has been turned off (for example, refer to Patent Document 1). 
     In addition, a technology is also known in which in an automobile having an idling stop function, the fully closed learning is implemented during an idling stop period (for example, refer to Patent Document 2). 
     PATENT DOCUMENT 
     [Patent Document 1] Japanese Patent Application Laid-Open No. 2005-155351 
     [Patent Document 2] Japanese Patent Application Laid-Open No. 2006-046103 
     The technology disclosed in Patent Document 1 has a problem that when an abnormality occurs in the self-shutoff delay, the power supply to the throttle control apparatus may be cut off immediately after the ignition key switch is turned off and hence the fully closed learning and the fully opened learning are not implemented. 
     The technology disclosed in Patent Document 2, which can solve the foregoing problem, has three problems stated below. 
     It is the first problem that in engine operation after an abnormality has occurred in the self-shutoff delay, the fully closed learning value is not updated when the idling stop never takes place. 
     It is the second problem that when an idling stop period that is shorter than a necessary time for updating the fully closed learning value occurs recurrently, the fully closed learning value cannot be updated. 
     It is the third problem that because the fully closed learning is implemented each time the idling stop occurs, the throttle fully closed driving for learning causes the power consumption to increase. 
     The problem at a time when the fully closed learning value is not updated will be explained with reference to  FIG. 1 . In  FIG. 1 , the unupdated throttle fully closed learning position is indicated by a double-dashed line, and the updated throttle fully closed learning position is indicated by a dashed line. The solid line indicates the desired throttle opening degree, and the dotted line indicates the throttle opening degree sensor detection value. 
     At a time point t1, the throttle starts closing operation, and at a time t2, the throttle reaches the mechanical fully closed position. However, in a direction in which the steady difference between the throttle opening degree sensor detection value and the desired throttle opening degree is cancelled, the throttle control apparatus continuously drives the throttle driving motor in a direction in which the throttle is being closed. 
     As a result, there has been a latent problem that continuous driving of the throttle driving motor causes the power consumption to increase and, in the worst case, causes the throttle driving motor or the motor drive circuit to overheat and burn out. This problem is posed also in the case where the fully opened learning value is left unupdated. 
     SUMMARY OF THE INVENTION 
     The present invention has been implemented in order to solve the foregoing problems; the objective thereof is to obtain a throttle learning control apparatus that can solve the latent problem in the fully closed learning and the fully opened learning to be implemented during an idling stop period. 
     After a self-shutoff delay abnormality occurs, fully closed learning and fully opened learning are implemented while an engine is operated, and the fully closed learning and the fully opened learning are implemented during an engine stall period. 
     The present invention relates to fully closed learning or fully opened learning and makes it possible to raise the reliability of an electronically-controlled throttle system. In addition, there can be suppressed waste of electric power, overheat burning of a throttle driving motor and a motor drive circuit, which occur when because a fully closed learning value or a fully opened learning value is not updated, the throttle driving motor is continuously driven. The fully closed learning or the fully opened learning is completed when it has been once implemented in a trip and, thereafter, the fully closed learning or the fully opened learning is not required in the trip, so that superfluous learning operation is suppressed and hence power consumption can be reduced. 
     The foregoing and other object, features, aspects, and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a timing chart representing throttle full closing operation at a time when fully closed learning value has not been updated; 
         FIG. 2  is a block diagram illustrating the configuration including an engine and an electronically-controlled throttle system according to Embodiment 1 of the present invention; 
         FIG. 3  is a block diagram illustrating the control in a throttle learning control apparatus according to Embodiment 1 of the present invention; 
         FIG. 4  is a flowchart representing the flow of a constant-time interruption processing routine performed in an embodiment of the present invention; 
         FIGS. 5A and 5B  together form a flowchart representing the flow of a main processing routine performed in an embodiment of the present invention; 
         FIG. 6  is a flowchart representing the flow of a throttle fully closed learning processing routine performed in an embodiment of the present invention; 
         FIG. 7  is a flowchart representing the flow of a self-shutoff delay processing routine performed in an embodiment of the present invention; 
         FIG. 8  is a flowchart representing the flow of the processing routine in a throttle fully closed learning 1 performed in an embodiment of the present invention; 
         FIG. 9  is a flowchart representing the flow of the processing routine in a throttle fully closed learning 2 performed in an embodiment of the present invention; 
         FIG. 10  is a timing chart representing the operation of fully closed learning 1 according to the present invention; 
         FIG. 11  is a timing chart representing the operation of fully closed learning 2 according to the present invention; 
         FIG. 12  is a timing chart representing the operation of fully closed learning within one trip according to the present invention; 
         FIG. 13  is a flowchart representing the flow of a throttle fully opened learning processing routine performed in an embodiment of the present invention; 
         FIG. 14  is a flowchart representing the flow of the processing routine in a throttle fully opened learning 1 performed in an embodiment of the present invention; 
         FIG. 15  is a flowchart representing the flow of the processing routine in a throttle fully opened learning 2 performed in an embodiment of the present invention; 
         FIG. 16  is a timing chart representing the operation of fully opened learning 1 according to the present invention; 
         FIG. 17  is a timing chart representing the operation of fully opened learning 2 according to the present invention; 
         FIG. 18  is a timing chart representing the operation of fully opened learning within one trip according to the present invention; and 
         FIG. 19  is a timing chart representing the relationship between fully closed learning and fully opened learning according to the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Embodiment 1 
       FIG. 2  is a block diagram illustrating the configuration including an engine and an electronically-controlled throttle system according to Embodiment 1 of the present invention. In each of the following drawings, the same reference characters denote the same or similar constituent elements. In Embodiment 1, throttle fully closed learning will be explained. 
     An engine/electronically-controlled throttle system according to the present invention includes an engine  1 , an electronic control unit (hereinafter, referred to as ECU)  2  that performs throttle control and engine control including idling stop control, a throttle driving motor  3  that operates in accordance with a command from ECU  2 , a throttle valve (hereinafter, referred to as a throttle)  4  that is opening/closing-driven by the throttle driving motor  3 , and a throttle opening degree sensor  5  that outputs a voltage as a throttle valve opening degree. ECU  2  is configures with various types of input/output interface circuits (unillustrated), a power-supply circuit (unillustrated), a clock oscillation circuit (unillustrated), a one-chip microcomputer (unillustrated), and the like. The one-chip microcomputer is configured with an A/D converter (unillustrated) that converts analogue signals inputted from various kinds of sensors into digital signals, various types of engine control programs including an idling stop control program, various types of engine control parameters, a ROM (unillustrated) that stores various types of tables and the like, a processor (unillustrated) that performs a control program, a RAM (unillustrated) that stores a variable and the like required at a time when a control program is implemented, a nonvolatile memory (unillustrated) that can hold information even when power supply to ECU  2  is cut off, and the like. ECU  2  updates a crank angle position with reference to a signal from a crank (rotating) position sensor  6  and drives a fuel injection device (unillustrated) at an appropriate crank angle position so as to inject and supply a fuel into the engine  1 . ECU  2  drives an ignition apparatus (unillustrated) at an appropriate crank angle position and ignites a fuel-air mixture created from intake air and injection fuel so as to cause the crankshaft to generate combustion torque. When turned on, an ignition key switch  7  starts to supply electric power to ECU  2 . 
       FIG. 3  is a block diagram illustrating the control in a throttle learning control apparatus according to Embodiment 1 of the present invention. 
     The throttle driving motor  3 , the throttle opening degree sensor  5 , the crank (rotating) position sensor  6 , and the ignition key switch  7  are connected with ECU  2 . A constant-time interruption processing routine  10  and a main processing routine  20  are stored in a ROM (unillustrated) incorporated in the one-chip microcomputer in ECU  2 . The main processing routine  20  includes a throttle fully closed learning processing routine  30 , a throttle fully opened learning processing routine  40 , and a self-shutoff delay processing routine  50 . The throttle fully closed learning processing routine  30  includes a processing routine  31  of a throttle fully closed learning 1 (hereinafter, referred to as a first throttle fully closed learning) and a processing routine  32  of a throttle fully closed learning 2 (hereinafter, referred to as a second throttle fully closed learning); the throttle fully opened learning processing routine  40  includes a processing routine  41  of a throttle fully opened learning 1 (hereinafter, referred to as a first throttle fully opened learning) and a processing routine  42  of a throttle fully opened learning 2 (hereinafter, referred to as a second throttle fully opened learning). 
     When the ignition key switch  7  of an automobile is turned on and power supply to ECU  2  is started, the constant-time interruption processing routine  10  and the main processing routine  20  are separately performed by ECU  2 ; however, priority of processing is given to the constant-time interruption processing routine  10 . Then, when the ignition key switch  7  is turned off, ECU  2  performs for a predetermined time the self-shutoff delay processing routine  50  in the main processing routine  20 ; after the predetermined time has elapsed, power supply to ECU  2  is cut off. 
     Next, the constant-time interruption processing routine  10  will be explained with reference to  FIG. 4 . The constant-time interruption processing routine  10  is called, for example, every 2.5 [ms]. 
     At first, in the step S 401 , ECU  2  sets a throttle opening degree sensor detection value (n−3), as the four times previous throttle opening degree sensor detection value (n−4). 
     Similarly, in the step S 402 , ECU  2  sets a throttle opening degree sensor detection value (n−23), as the thrice previous throttle opening degree sensor detection value (n−3). 
     Similarly, in the step S 403 , ECU  2  sets a throttle opening degree sensor detection value (n−1), as the twice previous throttle opening degree sensor detection value (n−2). 
     Similarly, in the step S 404 , ECU  2  sets a throttle opening degree sensor detection value (n), as the immediately previous throttle opening degree sensor detection value (n−1). 
     Here, (n−4), (n−3), (n−2), and (n−1) denote the four times previous (10 [ms] previous), thrice previous (7.5 [ms] previous), twice previous (5 [ms] previous), and immediately previous (2.5 [ms] previous) throttle opening degree sensor detection values, respectively; the after-mentioned (n) denotes the present throttle opening degree sensor detection value. 
     The processing in each of the steps S 401  through  404  is performed based on the following reasons. 
     That is to say, immediately before the step  401  is implemented, the contents of the throttle opening degree sensor detection value (n−3) is the four times previous (10 [ms] previous) throttle opening degree detection value; similarly, immediately before the step  402  is implemented, the contents of the throttle opening degree sensor detection value (n−2) is the thrice times previous (7.5 [ms] previous) throttle opening degree detection value; similarly, immediately before the step  403  is implemented, the contents of the throttle opening degree sensor detection value (n−1) is the twice times previous (5 [ms] previous) throttle opening degree detection value; similarly, immediately before the step  404  is implemented, the contents of the throttle opening degree sensor detection value (n) is the immediately previous (2.5 [ms] previous) throttle opening degree detection value. 
     Next, in the step S 405 , ECU  2  calculates the throttle opening degree sensor detection value (n) at the present constant-time interruption processing timing, based on an input signal from the throttle opening degree sensor  5 . 
     Next, in the step S 406 , in accordance with the equation (1) below, ECU  2  calculates the average value Th AVE  of throttle opening degree sensor detection values, based on the throttle opening degree sensor detection values (n) through (n−4). 
     
       
         
           
             
               
                 
                   
                     Th 
                     AVE 
                   
                   = 
                   
                     
                       1 
                       5 
                     
                     ⁢ 
                     
                       
                         ∑ 
                         
                           i 
                           = 
                           0 
                         
                         4 
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         throttle 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         opening 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         sensor 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         detection 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         value 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           ( 
                           
                             n 
                             - 
                             i 
                           
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
           
         
       
     
     In the equation (1), when i=0, the throttle opening degree sensor detection value is described as (n−0); it is assumed that this denotes the throttle opening degree sensor detection value (n) in the step S 405 . This applies to the following explanation. 
     Next, in the step S 407 , ECU  2  calculates the maximum value of throttle opening degree sensor detection values, based on the throttle opening degree sensor detection values (n) through (n−4). 
     Next, in the step S 408 , ECU  2  calculates the minimum value of throttle opening degree sensor detection values, based on the throttle opening degree sensor detection values (n) through (n−4). 
     At last, in the step S 409 , in accordance with the equation (2) below, ECU  2  calculates the variance σ 2  of throttle opening degree sensor detection values and ends the routine. A variance is an index that expresses how data pieces are converged; the smaller a variance is, the higher the convergence level of throttle opening degree detection values is. 
     
       
         
           
             
               
                 
                   
                     σ 
                     2 
                   
                   = 
                   
                     
                       1 
                       5 
                     
                     ⁢ 
                     
                       
                         ∑ 
                         
                           i 
                           = 
                           0 
                         
                         4 
                       
                       ⁢ 
                       
                         
                           ( 
                           
                             
                               throttle 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               opening 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               sensor 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               detection 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               value 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               
                                 ( 
                                 
                                   n 
                                   - 
                                   i 
                                 
                                 ) 
                               
                             
                             - 
                             
                               Th 
                               AVE 
                             
                           
                           ) 
                         
                         2 
                       
                     
                   
                 
               
               
                 
                   ( 
                   2 
                   ) 
                 
               
             
           
         
       
     
     Next, the main processing routine  20  will be explained with reference to  FIG. 5 . The main processing routine  20  is called, for example, every 10 [ms]. 
     At first, in the step S 501 , ECU  2  determines whether or not the ignition key switch is on; in the case where the ignition key switch is on (“Y” in S 501 ), the step S 501  is followed by the step S 502 , and in the case where the ignition key switch is not on (“N” in S 501 ), the step S 501  is followed by the step S 514 . 
     In the step S 514 , ECU  2  calls the self-shutoff delay processing routine  50 , described later, and then ends the routine. 
     In the step S 502 , ECU  2  determines whether or not the main processing routine  20  is not implemented for the first time; in the case where the main processing routine  20  is not implemented for the first time (“Y” in S 502 ), the step S 502  is followed by the step S 503 , and in the case where the main processing routine  20  is implemented for the first time (“N” in S 502 ), the step S 502  is followed by the step S 512 . 
     Next, in the step S 503 , ECU  2  determines whether or not the main processing routine  20  is implemented for the first time after the ignition key switch has turned on; in the case where the main processing routine  20  is implemented for the first time after the ignition key switch has turned on (“Y” in S 503 ), the step S 503  is followed by the step S 504 , and in the case where the main processing routine  20  is not implemented for the first time after the ignition key switch has turned on (“N” in S 503 ), the step S 503  is followed by the step S 506 . 
     Next, in the step S 504 , ECU  2  sets all of a throttle fully closed learning 1 completion flag, a throttle fully opened learning 1 completion flag, a throttle fully closed learning 2 completion flag, and a throttle fully opened learning 2 completion flag to 0 (uncompleted). 
     Next, in the step S 505 , ECU  2  stores the value of an after-mentioned self-shutoff delay completion flag in a learning determination flag. 
     Next, in the step S 506 , ECU  2  reads the value of the learning determination flag; in the case where the value of the learning determination flag is “1 (completed)” (“Y” in S 506 ), the step S 506  is followed by the step S 511 , and in the case where the value of the learning determination flag is “0 (uncompleted)” (“N” in S 506 ), the step S 506  is followed by the step S 507 . 
     The self-shutoff delay completion flag is information to be stored in a nonvolatile memory (unillustrated); when the value of the self-shutoff delay completion flag is “1 (completed)”, it suggests that the self-shutoff delay processing in the immediately previous trip has normally be completed. 
     Accordingly, in general, with regard to the self-shutoff delay completion flag, the value thereof at a time when the step S 506  is established is read; however, when the value of the self-shutoff delay completion flag is “0 (uncompleted)”, it suggests that the self-shutoff delay processing in the immediately previous trip has abnormally be completed. 
     Next, in the step S 511 , ECU  2  clears the self-shutoff delay completion flag to “0 (uncompleted)” and then ends the routine. 
     In the step S 507 , ECU  2  reads the values of the throttle fully closed learning 1 completion flag and the throttle fully closed learning 2 completion flag; in the case where both the values of the throttle fully closed learning 1 completion flag and the throttle fully closed learning 2 completion flag are “0 (uncompleted)” (“Y” in S 507 ), the step S 507  is followed by the step S 508 ; in the case where any one of the values of the throttle fully closed learning 1 completion flag and the throttle fully closed learning 2 completion flag is not “0” (“N” in S 507 ), the step S 507  is followed by the step S 509 . 
     Next, in the step S 508 , ECU  2  calls the throttle fully closed learning processing routine  30 , described later, and then ends the routine. 
     Next, in the step S 509 , ECU  2  reads the values of the throttle fully opened learning 1 completion flag completion flag and the throttle fully opened learning 2 completion flag; in the case where both the values of the throttle fully opened learning 1 completion flag and the throttle fully opened learning 2 completion flag are “0 (uncompleted)” (“Y” in S 509 ), the step S 509  is followed by the step S 510 ; in the case where any one of the values of the throttle fully opened learning 1 completion flag and the throttle fully opened learning 2 completion flag is not “0” (“N” in S 509 ), the step S 509  is followed by the step S 511 . 
     Next, in the step S 510 , ECU  2  calls the throttle fully opened learning processing routine  40 , described later, and then ends the routine. 
     In the step S 512 , ECU  2  substitutes a throttle fully closed learning initial value for the fully closed learning value; the fully closed learning value is information to be stored in a nonvolatile memory (unillustrated). 
     Next, in the step S 513 , ECU  2  substitutes a throttle fully opened learning initial value for the fully opened learning value and then ends the routine; the fully opened learning value is also information to be stored in a nonvolatile memory (unillustrated). 
       FIG. 6  is the flow of the throttle fully closed learning processing routine  30 . 
     At first, in the step S 601 , ECU  2  determines whether or not the present engine stall is the first one after the ignition key switch has turned on; in the case where the present engine stall is the first one after the ignition key switch has turned on (“Y” in S 601 ), the routine is ended; in the case where the present engine stall is not the first one after the ignition key switch has turned on (“N” in S 601 ), the step S 601  is followed by the step S 602 . 
     Next, in the step S 602 , ECU  2  determines whether or not a being-in-an-engine-stall determination has been established. 
     As an example, the being-in-an-engine-stall determination is established when the period in which the crank (rotating) position sensor  6  does not input a crank signal to ECU  2  has continued for a predetermined time. 
     In the case where the being-in-an-engine-stall determination has not been established (“N” in S 602 ), the step S 602  is followed by the step S 603 , and ECU  2  calls the throttle fully closed learning 1 processing routine  31 , described later, and then ends the routine. In contrast, in the case where the being-in-an-engine-stall determination has been established (“Y” in S 602 ), the step S 602  is followed by the step S 604 , and ECU  2  calls the throttle fully closed learning 2 processing routine  32 , described later, and then ends the routine. 
     Next, the self-shutoff delay processing routine  50 , which is called at the end of the trip, will be explained. 
     When the driver turns off the ignition key switch  7 , the determination result of the step S 501  in the main processing routine  20  becomes “N”; then, the self-shutoff delay processing routine  50  in the step S 514  is called. 
     In the self-shutoff delay processing routine represented in  FIG. 7 , only the processing items, among various processing items implemented during the self-shutoff delay period, that are related to the fully closed learning and the fully opened learning are described. When a self-shutoff delay abnormality occurs, the self-shutoff delay processing routine  50  is not completely implemented. 
     At first, in the step S 701 , ECU  2  drives the throttle valve to the fully closed position and then updates the fully closed learning value. It is described that in the step S 701 , the throttle fully closed learning processing routine is called; however, because this is a publicly known technology, the detailed explanation for the processing will be omitted. 
     Next, in the step S 702 , ECU  2  drives the throttle valve to the fully opened position and then updates the fully opened learning value. It is described that in the step S 702 , the throttle fully opened learning processing routine is called; however, because this is a publicly known technology, the detailed explanation for the processing will be omitted, as is the case with the fully closed learning. 
     At last, in the step S 703 , ECU  2  sets the self-shutoff delay completion flag to “1 (completed)” and then ends the routine. 
       FIG. 8  is the flow of the throttle fully closed learning 1 processing routine  31 . 
     At first, in the step S 801 , ECU  2  determines whether or not a predetermined determination on the normality of the throttle driving motor has been established and the throttle desired opening degree has coincided with the fully closed learning value. 
     In the case where the determination on the normality of the throttle driving motor has been established and the throttle desired opening degree has coincided with the fully closed learning value (“Y” in S 801 ), the step S 801  is followed by the step S 802 ; however, in the case where the determination on the normality of the throttle driving motor has not been established or the throttle desired opening degree has not coincided with the fully closed learning value (“N” in S 801 ), the step S 801  is followed by the step S 809 . 
     When as an example, ECU  2  detects an abnormality such as a short-to-power fault, a short-to-ground fault, or the like of the output terminal (unillustrated) of the throttle driving motor  3 , the determination on the normality of the throttle driving motor is not established; however, the detailed explanation therefor will be omitted here. 
     In the step S 809 , ECU  2  sets a throttle full closing waiting time to an initial value (e.g., 0.2 [sec]) and then ends the routine. 
     On the other hand, ECU  2  decrements the throttle full closing waiting time in the step S 802 . 
     Next, in the step S 803 , ECU  2  determines whether or not the throttle full closing waiting time has reached “0”; in the case where the throttle full closing waiting time has reached “0” (“Y” in S 803 ), the step S 803  is followed by the step S 804 , and in the case where the throttle full closing waiting time has not reached “0” (“N” in S 803 ), the routine is ended. 
     In the step S 804 , ECU  2  outputs a throttle full closing press-driving command to the throttle driving motor  3 . 
     As a result, the throttle valve  4  is pressed to the mechanical fully closed position; however, because the throttle has already been stabilized at the fully closed position or approximately at the fully closed position before the step S 804  is implemented, the implementation of the step S 804  provides no effect to the engine control. 
     Next, in the step S 805 , ECU  2  refers to the variance of throttle opening degree sensor detection values calculated in the immediately previous constant-time interruption processing routine  10 ; in the case where the variance is the same as or smaller than a determination value (e.g., 0.005) (“Y” in S 805 ), ECU  2  determines that the sampled throttle opening degree sensor detection values have sufficiently converged, and the step S 805  is followed by the step S 806 ; however, in the case where the variance exceeds the determination value (e.g., 0.005) (“N” in S 805 ), ECU  2  determines that the sampled throttle opening degree sensor detection values have not sufficiently converged, and then ends the routine. 
     Next, in the step S 806 , ECU  2  sets the fully closed learning value to the throttle opening degree sensor detection minimum value calculated in the immediately previous constant-time interruption processing routine  10 . In this step, the fully closed learning value is updated. 
     Next, in the step S 807 , ECU  2  sets the throttle fully closed learning 1 completion flag to “1 (completed)”. 
     At last, in the step S 808 , ECU  2  cancels the throttle full closing press-driving command that has been issued to the throttle driving motor  3 , and then ends the routine. 
       FIG. 9  is the flow of the throttle fully closed learning 2 processing routine  32 . 
     At first, in the step S 901 , ECU  2  outputs the throttle full closing press-driving command to the throttle driving motor  3 . 
     As a result, the throttle valve  4  is pressed to the mechanical fully closed position; however, because the engine  1  has already been stabilized to the engine stall condition before the step S 901  is implemented, the implementation of the step S 901  provides no effect to the control. 
     Next, in the step S 902 , ECU  2  refers to the variance of throttle opening degree sensor detection values calculated in the immediately previous constant-time interruption processing routine  10 ; in the case where the variance is the same as or smaller than a determination value (e.g., 0.005) (“Y” in S 902 ), ECU  2  determines that the sampled throttle opening degree sensor detection values have sufficiently converged, and the step S 902  is followed by the step S 903 ; however, in the case where the variance exceeds the determination value (e.g., 0.005) (“N” in S 902 ), ECU  2  determines that the sampled throttle opening degree sensor detection values have not sufficiently converged, and then ends the routine. 
     Next, in the step S 903 , ECU  2  sets the fully closed learning value to the throttle opening degree sensor detection minimum value calculated in the immediately previous constant-time interruption processing routine  10 . In this step, the fully closed learning value is updated. 
     Next, in the step S 904 , ECU  2  sets the throttle fully closed learning 2 completion flag to “1 (completed)”. 
     At last, in the step S 905 , ECU  2  cancels the throttle full closing press-driving command that has been issued to the throttle driving motor  3 , and then ends the routine. 
     An example of operation of Embodiment 1 described above will be represented in  FIGS. 10 through 12 . Each of  FIGS. 10 through 12  represents the trip at a time after a self-shutoff delay abnormality has been detected. 
       FIG. 10  represents an operation timing chart of the fully closed learning 1 based on the throttle fully closed learning 1 processing routine  31 . In  FIG. 10 , it is assumed that the dashed line after the time point t3 is a throttle fully closed learning position that is newly learned by the ECU  2 . 
     In the case where in the main processing routine  20 , neither the fully closed learning 1 nor the fully closed learning 2 has been completed (“Y” in S 507 ), the throttle fully closed learning processing routine  30  in the step S 508  is always called. At a time point t1 in  FIG. 10 , the being-in-an-engine-stall determination is not established (“N” in S 602 ); therefore, the throttle fully closed learning 1 processing routine  31  in the step S 603  is called. 
     In the case where in the throttle fully closed learning 1 processing routine  31 , the throttle desired opening degree coincides with the fully closed learning value and the throttle driving motor is normal (“Y” in S 801 ), ECU  2  starts to decrement the throttle full closing waiting time (S 802  is implemented). After that, when at a time point t2 in  FIG. 10 , the throttle full closing waiting time reaches “0” (“Y” in S 803 ), ECU  2  outputs the throttle full closing press-driving command to the throttle driving motor  3  (S 804  is implemented). Then, when at the time point t3 in  FIG. 10 , the throttle opening degree detection values converge (“Y” in S 805 ), ECU  2  updates the fully closed learning value (S 806  is implemented) and, at the same time, sets the fully closed learning 1 completion flag (S 807  is implemented); then, the throttle full closing press-driving command is cancelled (S 808  is implemented). 
     Next,  FIG. 11  represents a timing chart of the fully closed learning 2 based on the throttle fully closed learning 2 processing routine  32 . In  FIG. 11 , it is assumed that the dashed line after a time point t2 is a throttle fully closed learning position that is newly learned by the ECU  2 . 
     In the case where in the main processing routine  20 , neither the fully closed learning 1 nor the fully closed learning 2 has been completed (“Y” in S 507 ), the throttle fully closed learning processing routine  30  in the step S 508  is called. At a time point t1 in  FIG. 11 , the being-in-an-engine-stall determination is established (“Y” in S 602 ); therefore, the throttle fully closed learning 2 processing routine  32  in the step S 604  is called. 
     In the throttle fully closed learning 2 processing routine  32 , ECU  2  outputs the throttle full closing press-driving command to the throttle driving motor  3  (S 901  is implemented). Then, when at the time point t2 in  FIG. 11 , the throttle opening degree detection values converge (“Y” in S 902 ), ECU  2  updates the fully closed learning value (S 903  is implemented) and, at the same time, sets the fully closed learning 2 completion flag (S 904  is implemented); then, the throttle full closing press-driving command is cancelled (S 905  is implemented). 
     Next,  FIG. 12  represents an example of whether or not the fully closed learning 1 and the fully closed learning 2 are implemented in one trip.  FIG. 12  represents a situation in which the fully closed learning 1 is firstly started. 
     Here, it is defined that a trip is the section between the timing at which the ignition key switch is turned on and the timing at which the ignition key switch is turned off and hence the power supply relay in the electronic control unit is cut off. 
     In the case where in the main processing routine  20 , neither the fully closed learning 1 nor the fully closed learning 2 has been completed (“Y” in S 507 ), the throttle fully closed learning processing routine  30  in the step S 508  is always called. The being-in-an-engine-stall determination is not established (“N” in S 602 ); therefore, the throttle fully closed learning 1 processing routine  31  in the step S 603  is called. 
     When at a time point t1 in  FIG. 12 , the throttle full closing waiting time reaches “0” (“Y” in S 803 ), ECU  2  outputs the throttle full closing press-driving command to the throttle driving motor  3  (S 804  is implemented). Then, when at a time point t2, the throttle opening degree detection values converge (“Y” in S 805 ), ECU  2  updates the fully closed learning value (S 806  is implemented) and, at the same time, sets the fully closed learning 1 completion flag (S 807  is implemented); then, the throttle full closing press-driving command is cancelled (S 808  is implemented), so that the throttle fully closed learning 1 processing routine  31  is ended. 
     After that, at a time point t3 in  FIG. 12 , the throttle is opened again; then at a time point t4, the engine stall condition is established due to an idling stop. However, because at the time point t4, the throttle fully closed learning 1 completion flag has already been set to “1”, the result of the step S 507  of the main processing routine  20  becomes “N”; thus, the fully closed learning 2 included in the step S 508  of the main processing routine  20  is not implemented. As a result, ECU  2  can suppress superfluous fully closed learning. 
     After that, when at a time point t5 in  FIG. 12 , the ignition key switch  7  is turned off, power supply to ECU  2  is cut off due to a self-shutoff delay abnormality and hence the value of the fully closed learning 1 becomes indeterminate (indicated by a dotted line); however, the value of the fully closed learning 1 is reset to “0” (uncompleted) at a time point t6, which is the foremost point of the next trip (in S 504  of the main processing routine  20 ). 
     Embodiment 2 
     In Embodiment 2, throttle fully opened learning will be explained. 
       FIGS. 2 through 7  and  FIG. 7  are block diagrams illustrating the configurations of an electronically-controlled throttle system and an engine, and flowcharts representing a constant-time interruption processing routine, a main processing routine, and a self-shutoff delay processing routine, respectively, according to Embodiment 2; however, because these are the same as those in Embodiment 1, the explanation therefor will be omitted. 
       FIG. 13  is the flow of the throttle fully opened learning processing routine  40 . 
     At first, in the step S 1301 , ECU  2  determines whether or not the present engine stall is the first one after the ignition key switch has turned on; in the case where the present engine stall is the first one after the ignition key switch has turned on (“Y” in S 1301 ), the routine is ended; in the case where the present engine stall is not the first one after the ignition key switch has turned on (“N” in S 1301 ), the step S 1301  is followed by the step S 1302 . 
     Next, in the step S 1302 , ECU  2  determines whether or not a being-in-an-engine-stall determination has been established. 
     In the case where the being-in-an-engine-stall determination has not been established (“N” in S 1302 ), the step S 1302  is followed by the step S 1303 , and ECU  2  calls the throttle fully opened learning 1 processing routine  41 , described later, and then ends the routine. In contrast, in the case where the being-in-an-engine-stall determination has been established (“Y” in S 1302 ), the step S 1302  is followed by the step S 1304 , and ECU  2  calls the throttle fully opened learning 2 processing routine  42 , described later, and then ends the routine. 
       FIG. 14  is the flow of the throttle fully opened learning 1 processing routine  41 . 
     At first, in the step S 1401 , ECU  2  determines whether or not a predetermined determination on the normality of the throttle driving motor has been established and the throttle desired opening degree has coincided with the fully opened learning value. 
     In the case where the determination on the normality of the throttle driving motor has been established and the throttle desired opening degree has coincided with the fully opened learning value (“Y” in S 1401 ), the step S 1401  is followed by the step S 1402 ; however, in the case where the determination on the normality of the throttle driving motor has not been established or the throttle desired opening degree has not coincided with the fully opened learning value (“N” in S 1401 ), the step S 1401  is followed by the step S 1409 . 
     In the step S 1409 , ECU  2  sets the throttle full closing waiting time to an initial value (e.g., 0.2 [sec]) and then ends the routine. 
     On the other hand, ECU  2  decrements the throttle full opening waiting time in the step S 1402 . 
     Next, in the step S 1403 , ECU  2  determines whether or not the throttle full opening waiting time has reached “0”; in the case where the throttle full opening waiting time has reached “0” (“Y” in S 1403 ), the step S 1403  is followed by the step S 1404 , and in the case where the throttle full opening waiting time has not reached “0” (“N” in S 1403 ), the routine is ended. 
     In the step S 1404 , ECU  2  outputs a throttle full opening press-driving command to the throttle driving motor  3 . 
     As a result, the throttle valve  4  is pressed to the mechanical fully opened position; however, because the throttle has already been stabilized at the fully opened position or approximately at the fully opened position before the step S 1404  is implemented, the implementation of the step S 1404  provides no effect to the engine control. 
     Next, in the step S 1405 , ECU  2  refers to the variance of throttle opening degree sensor detection values calculated in the immediately previous constant-time interruption processing routine  10 ; in the case where the variance is the same as or smaller than a determination value (e.g., 0.005) (“Y” in S 1405 ), ECU  2  determines that the sampled throttle opening degree sensor detection values have sufficiently converged, and the step S 1405  is followed by the step S 1406 ; however, in the case where the variance exceeds the determination value (e.g., 0.005) (“N” in S 1405 ), ECU  2  determines that the sampled throttle opening degree sensor detection values have not sufficiently converged, and then ends the routine. 
     Next, in the step S 1406 , ECU  2  sets the fully opened learning value to the throttle opening degree sensor detection maximum value calculated in the immediately previous constant-time interruption processing routine  10 . 
     Next, in the step S 1407 , ECU  2  sets the throttle fully opened learning 1 completion flag to “1 (completed)”. 
     At last, in the step S 1408 , ECU  2  cancels the throttle full opening press-driving command that has been issued to the throttle driving motor  3 , and then ends the routine. 
       FIG. 15  is the flow of the throttle fully opened learning 2 processing routine  42 . 
     At first, in the step S 1501 , ECU  2  outputs the throttle full opening press-driving command to the throttle driving motor  3 . 
     As a result, the throttle valve  4  is pressed to the mechanical fully opened position; however, because the engine  1  has already been stabilized to the engine stall condition before the step S 1501  is implemented, the implementation of the step S 1501  provides no effect to the control. 
     Next, in the step S 1502 , ECU  2  refers to the variance of throttle opening degree sensor detection values calculated in the immediately previous constant-time interruption processing routine  10 ; in the case where the variance is the same as or smaller than a determination value (e.g., 0.005) (“Y” in S 1502 ), ECU  2  determines that the sampled throttle opening degree sensor detection values have sufficiently converged, and the step S 1502  is followed by the step S 1503 ; however, in the case where the variance exceeds the determination value (e.g., 0.005) (“N” in S 1502 ), ECU  2  determines that the sampled throttle opening degree sensor detection values have not sufficiently converged, and then ends the routine. 
     Next, in the step S 1506 , ECU  2  sets the fully closed learning value to the throttle opening degree sensor detection maximum value calculated in the immediately previous constant-time interruption processing routine  10 . In this step, the fully opened learning value is updated. 
     Next, in the step S 1504 , ECU  2  sets the throttle fully opened learning 2 completion flag to “1 (completed)”. 
     At last, in the step S 1505 , ECU  2  cancels the throttle full opening press-driving command that has been issued to the throttle driving motor  3 , and then ends the routine. 
     An example of operation of Embodiment 2 described above will be represented in  FIGS. 16 through 18 . Each of  FIGS. 16 through 18  represents the trip at a time after a self-shutoff delay abnormality has been detected. 
       FIG. 16  represents an operation timing chart of the fully opened learning 1 based on the throttle fully opened learning 1 processing routine  41 . In  FIG. 16 , it is assumed that the dashed line after a time point t3 is a throttle fully opened learning position that is newly learned by the ECU  2 . 
     In the case where in the main processing routine  20 , the fully closed learning 1 or the fully closed learning 2 has been completed (“N” in S 507 ) and neither the fully opened learning 1 nor the fully opened learning 2 has been completed (“Y” in S 509 ), the throttle fully opened learning processing routine  40  in the step S 510  is called. At a time point t1 in  FIG. 16 , the being-in-an-engine-stall determination is not established (“N” in S 1302 ); therefore, the throttle fully opened learning 1 processing routine  41  in the step S 1303  is called. 
     In the case where in the throttle fully opened learning 1 processing routine  41 , the throttle desired opening degree coincides with the fully opened learning value and the throttle driving motor is normal (“Y” in S 1401 ), ECU  2  starts to decrement the throttle full opening waiting time (S 1402  is implemented). After that, when at a time point t2 in  FIG. 16 , the throttle full opening waiting time reaches “0” (“Y” in S 1403 ), ECU  2  outputs the throttle full opening press-driving command to the throttle driving motor  3  (S 1404  is implemented). Then, when at the time point t3, the throttle opening degree detection values converge (“Y” in S 1405 ), ECU  2  updates the fully opened learning value (S 1406  is implemented) and, at the same time, sets the fully opened learning 1 completion flag (S 1407  is implemented); then, the throttle full opening press-driving command is cancelled (S 1408  is implemented). 
     Next,  FIG. 17  represents a timing chart of the fully opened learning 2 based on the throttle fully opened learning 2 processing routine  42 . In  FIG. 17 , it is assumed that the dashed line after a time point t2 is a throttle fully opened learning position that is newly learned by the ECU  2 . 
     In the case where in the main processing routine  20 , the fully closed learning 1 or the fully closed learning 2 has been completed (“N” in S 507 ) and neither the fully opened learning 1 nor the fully opened learning 2 has been completed (“Y” in S 509 ), the throttle fully opened learning processing routine  40  in the step S 510  is called. At a time point t1 in  FIG. 17 , the being-in-an-engine-stall determination is established (“Y” in S 1302 ); therefore, the throttle fully opened learning 2 processing routine  42  in the step S 1304  is called. 
     In the throttle fully opened learning 2 processing routine  42 , ECU  2  outputs the throttle full opening press-driving command to the throttle driving motor  3  (S 1501  is implemented). Then, when at the time point t2 in  FIG. 17 , the throttle opening degree detection values converge (“Y” in S 1502 ), ECU  2  updates the fully opened learning value (S 1503  is implemented) and, at the same time, sets the fully opened learning 2 completion flag (S 1504  is implemented); then, the throttle full opening press-driving command is cancelled (S 15905  is implemented). 
     Next,  FIG. 18  represents an example of whether or not the fully opened learning 1 and the fully opened learning 2 are implemented in one trip.  FIG. 18  represents a situation in which the fully opened learning 2 is firstly started. 
     In the case where in the main processing routine  20 , the fully closed learning 1 or the fully closed learning 2 has been completed (“N” in S 507 ) and neither the fully opened learning 1 nor the fully opened learning 2 has been completed (“Y” in S 509 ), the throttle fully opened learning processing routine  40  in the step S 510  is called. At a time point t1 in  FIG. 18 , the being-in-an-engine-stall determination is established (“Y” in S 1302 ); therefore, the throttle fully opened learning 2 processing routine  42  in the step S 1304  is called. 
     At the time point t1 in  FIG. 18 , ECU  2  outputs the throttle full closing press-driving command to the throttle driving motor  3  (S 1501  is implemented). Then, when at a time point t2, the throttle opening degree detection values converge (“Y” in S 1502 ), ECU  2  updates the fully opened learning value (S 1503  is implemented) and, at the same time, sets the fully opened learning 2 completion flag (S 1504  is implemented); then, the throttle full opening press-driving command is cancelled (S 1505  is implemented), so that the throttle fully opened learning 2 processing routine  42  is ended. 
     After that, at a time point t3 in  FIG. 18 , the throttle is opened again; then at a time point t4, the engine stall condition is established due to an idling stop. However, because at the time point t4, the throttle fully opened learning 2 completion flag has already been set to “1”, the result of the step S 509  of the main processing routine  20  becomes “N”; thus, the fully closed learning 1 included in the step S 510  of the main processing routine  20  is not implemented. As a result, ECU  2  can suppress superfluous fully opened learning. 
     After that, when at a time point t5 in  FIG. 18 , the ignition key switch  7  is turned off, power supply to ECU  2  is cut off due to a self-shutoff delay abnormality and hence the value of the fully opened learning 2 becomes indeterminate (indicated by a dotted line); however, the value of the fully closed learning 1 is reset to “0” (uncompleted) at a time point t6, which is the foremost point of the next trip (in S 504  of the main processing routine  20 ). 
     Embodiment 3 
     In Embodiment 3, improvement of the opportunity of throttle fully opened learning will be explained. 
       FIGS. 2 through 7  and  FIGS. 9, 13, and 15  are block diagrams illustrating the configurations of an electronically-controlled throttle system and an engine, and flowcharts representing a constant-time interruption processing routine, a main processing routine, a self-shutoff delay processing routine, a throttle fully closed learning 2 processing routine, and a throttle fully opened learning 2 processing routine, respectively, according to Embodiment 3. 
       FIG. 19  represents an operation timing chart of the fully closed learning 2 and the fully opened learning 2 based on Embodiment 3.  FIG. 19  represents the trip at a time after a self-shutoff delay abnormality has been detected. 
     In the case where in the main processing routine  20 , neither the fully closed learning 1 nor the fully closed learning 2 has been completed (“Y” in S 507 ), the throttle fully closed learning processing routine  30  in the step S 508  is always called. At a time point t1 in  FIG. 19 , the being-in-an-engine-stall determination is established (“Y” in S 602 ); therefore, the throttle fully closed learning 2 processing routine  32  in the step S 604  is called. The operation of the throttle fully closed learning 2 processing routine  32  is the same as that described above with respect to  FIG. 9 ; therefore, the explanation therefor will be omitted. When at a time point t2, the fully closed learning 2 is completed, an engine stall due to an idling stop is cancelled at a time point t3. 
     Next, at a time point t4 in  FIG. 19  at which the engine stall occurs due to an idling stop, the throttle fully opened learning 2 processing routine  42  is called. The operation of the throttle fully opened learning 2 processing routine  42  is the same as that described above with respect to  FIG. 15 ; therefore, the explanation therefor will be omitted. After that, when at a time point t5, the fully opened learning 2 is completed, the engine stall due to an idling stop is cancelled at a time point t6. In Embodiment 3, when a plurality of relatively long engine stalls occur due to frequent idling stops, both the fully closed learning and the fully opened learning are completed in the corresponding trip; therefore, neither the fully closed learning nor the fully opened learning is required and hence the reliability of the throttle learning is raised. 
     The respective predetermined values and the respective determination values utilized in the foregoing embodiments are examples; it is required to appropriately adjust these values in accordance with the characteristic of each throttle system. In addition, in the respective calculations of the average of throttle opening degree sensor detection values and the variance of throttle opening degree sensor detection values in the constant-time interruption processing routine  10 , five immediately previous throttle opening degree sensor detection values have been utilized; however, this is also an example, and it is required to appropriately adjust the number of samples in accordance with the characteristic of each throttle system. 
     Various modifications and alterations of this invention will be apparent to those skilled in the art without departing from the scope and spirit of this invention, and it should be understood that this is not limited to the illustrative embodiments set forth herein.