Abstract:
The method for determining a fault in an exhaust gas recirculation system includes comparing the measured exhaust gas flow of the EGR system to an expected exhaust gas recirculation flow. If the two are not the same the time period that the expected exhaust gas recirculation flow deviates from the measured exhaust gas recirculation flow by a calibrated EGR flow amount is determined. A fault condition in the EGR system is indicated if the duration of the deviation exceeds a predetermined amount of time.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention relates to exhaust gas recirculation systems for motor vehicle internal combustion engines. 
     2. Prior Art 
     Hasegawa et al, U.S. Pat. No. 4,409,948, discloses an EGR control system, comprising an electronic control unit (ECU) 5, and EGR control valves 21, 22. ECU 5 includes a comparator 38 and memories 31, 39. This system automatically corrects a detected zero opening value of the EGR valve, as compared to a valve opening command of value read from a map of required valve opening values for a predetermined period of time. 
     Fujimoto, U.S. Pat. No. 4,390,001, discloses an EGR system, including a gas recirculation passage 4, a recirculation control valve 5, solenoid valves 7, 8, a control device 9 and a memory device 15. The memory device 15 stores memories of optimum values. The control device 9 receives a signal corresponding to an optimum value of pressure drop P 0  (col. 3, lines 49-55). 
     Otobe, U.S. Pat. No. 4,665,882, discloses a method of controlling EGR quantity, comprising an EGR valve 16, and a CPU 27 incorporating timers for fault detection, and a RAM 28 and a ROM 29. The ROM 29 stores various maps and tables for calculating the lifting amount of the EGR valve. 16. The October patent teaches a position feedback sensor whereas Applicants teach using a pressure feedback electronic control. 
     U.S. Pat. No. 4,665,882 compares a desired position to an actual position, and uses lack of achieving the desired position as a fault. Applicants use redundant information available from models of the EGR components to obtain an independent calculation of the expected delta pressure. There is no comparison of desired value to actual value. There is a comparison of model value to actual value. 
     The &#39;882 patent teaches keeping track of the time at which the error occurs and triggers if this time exceeds a value. It also teaches keeping track of the number of times an error occurs in a given time. There is no provision to count down. Applicants&#39; error counter, active after several gate conditions are achieved, counts a counter up when there is an error, and also counts down when there is not. 
     However, actual EGR position may not equal the desired position. The most common reason is lack of EGR muscle vacuum at low engine vacuums (high throttle positions). Such a situation can occur at high altitude. Patent &#39;882 teaches a gate on ACT and on ECT. Applicants&#39; invention has neither. 
     Haka et al, U.S. Pat. No. 4,397,289, discloses an EGR system incorporating a transducer 42 and a control system 72. The control system 72 responds to selected engine operating parameters in order to vary the reference pressure with which the control pressure in the zone 53 is compared. 
     U.S. Pat. No. 4,834,054, issued to Hashimoto et al, is a fault detector based on EGR temperature The &#39;054 patent has a gate on barometric pressure (BP) In contrast, Applicants&#39; invention teaches a gate on manifold vacuum which is in turn calculated from BP. 
     SUMMARY OF THE INVENTION 
     Applicant&#39;s invention relates to the exhaust gas recirculation (EGR) system of an internal combustion engine and includes a method for comparing two independent methods of estimating the exhaust gas flow through the EGR system, in order to determine whether one of the EGR system components has become inoperable. If the two estimates deviate by a calibrated amount for a sustained period of time, then a fault condition in the EGR system is indicated. 
     The first estimate of EGR flow, termed DELPR (a pressure typically expressed in inches of H 2  O), is a direct measurement of the pressure drop across an EGR metering orifice within the EGR tube assembly with a pressure sensor. 
     The second estimate, termed DELPR --  NORM in Inches of H20, is a model of the expected pressure drop across the EGR orifice as a function of other inputs and ROM constants stored in an electronic engine control computer. For a specific engine, EGR valve, metering orifice and tube assembly, a characteristic function, DELPR --  NORM, is developed on a dynamometer as a function of the EGR electronic vacuum regulator (EVR) duty cycle and the total pressure drop across the EGR tube assembly (SYS --  DELPR). This total pressure drop is equal to the gauge exhaust pressure, inferred from air mass flow, plus the manifold vacuum, inferred from air mass flow, barometric pressure and other variables. The resulting characteristic function, which is stored in an electronic engine control (EEC --  IV) memory, indicates the expected pressure drop across the metering orifice when a potential pressure drop, SYS --  DELPR, is available and the EGR valve is opened by an amount related to the EVR duty cycle. 
     Deviations of the measured metering orifice pressure drop, DELPR, from the expected pressure drop based on redundant sensors, DELPR --  NORM, indicates various modes of in-range faults in the EGR system. The failures which can be detected include: restricted or plugged EGR valve, restricted or plugged EGR metering orifice, and a stuck open EGR valve. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a schematic view of an exhaust gas recirculation system and associated engine in accordance with an embodiment of this invention; 
     FIG. 2A is a graphical representation of an exhaust gas recirculation system hardware characteristic function stored in read only memory as a table wherein the model of expected metering orifice pressure drop is a function of total pressure drop across the EGR tube/valve assembly and the electronic vacuum regulator duty cycle relative to the start to open value. 
     FIG. 2B is the electronic vacuum regulator start to open value versus the pressure drop across the EGR valve when it is in its closed position, which is SYS --  DELPR; 
     FIGS. 3A, 3B, 3C, 3D and 3E are logic flow diagrams which would be inserted in a normal electronic engine control sequence of background calculations to check EGR operation; 
     FIG. 4 is a data flow diagram of various variables required for the EGR diagnostics; 
     FIG. 5 is a logic flow diagram for the method of detecting a restricted or plugged EGR valve; 
     FIG. 6 is a logic flow diagram for the method of detecting an EGR valve stuck in the open position; 
     FIG. 7 is a logic flow diagram for the method of detecting a restricted EGR metering orifice via higher than normal delta pressure; 
     FIG. 8A is a logic flow diagram for the method of detecting a restricted EGR metering orifice via oscillations in the EGR duty cycle; 
     FIG. 8B is a illustration of such oscillations; 
     FIG. 9A is the logic used to process the fault filters and determine if the malfunction indicator light should be illuminated, and 
     FIG. 9B is a graphical representation of the number of faults versus time. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The invention is used in conjunction with a number of pressure feedback type EGR systems. Such systems may differ in the calculation of DELPR, the pressure drop across the metering orifice. A DPFE system directly measures DELPR. A PFE system measures the downstream pressure, DP, and infers the upstream pressure, PE, from the engine air mass flow. DELPR is calculated as DP-PE. This description of the invention refers to DELPR without regard to which of these two methods are used to determine it. 
     For purposes of discussion and description, the following definitions are useful. The designations for inputs used in the EGR system diagnostics are: 
     RPM--engine speed (revolutions/minute), a sensor input. 
     AM--air mass flow (lbs/minute), a sensor input from a mass air meter, or derived from a vane air meter and barometric pressure, or calculated from manifold pressure and other variables in speed-density systems. 
     AIRCHG--air charge (lbs/cylinder-filling) which equals (AM lbs/minute) divided by the number of cylinder fillings per minute: 
     
         AIRCHG=AM/(RPM*ENGCYL/2) 
    
      ENGCYL is the number of engine cylinders. 
     EGRACT--actual EGR percent (%), a sensor input. 
     BP--barometric pressure (in.Hg.), a sensor input or inferred from other logic. 
     EXHT--exhaust temperature (Deg. K.), a sensor input or inferred from other logic. 
     EGRDC--the duty cycle of the current applied by the EEC-IV to the electronic vacuum regulator, EVR, which in turn passes manifold vacuum to the EGR valve. 
     EGREN--a logical variable indicating that other EEC-IV logic has requested a non-zero amount of EGR. 
     DELPR--a direct sensor input of the delta pressure across the EGR metering orifice. 
     BG --  TMR--a calculated EEC --  IV variable indicating the time between successive background program loops. 
     The designation used for the outputs for the EGR system fault detector are: 
     EGR --  DNHOSE --  CODE--a variable indicating that the downstream hose of the DPFE sensor has become disconnected. 
     EGR --  VLVPLG --  CODE--a variable indicating that the EGR valve is restricted or that the EGR tube is smashed. 
     EGR --  VLVOPN --  CODE--a variable indicating that the EGR valve is stuck in the open position. 
     EGR --  RESORF --  CODE--a variable indicating that the EGR metering orifice is restricted, as indicated by a high DELPR. 
     EGR --  UNSTAB --  CODE--a variable indicating that the EGR metering orifice is restricted, as indicated by a lack of stability. 
     The designation for calibration items used in the EGR system fault detector are: 
     ENGCYL--number of engine cylinder (=8 for 8 cylinder engine). 
     EGRMULT(RPM,AIRCHG)--a table containing the change in manifold pressure, MAP, per percent of exhaust gas recirculation, EGRACT. 
     INT(RPM)--a table containing the manifold pressure, MAP, at zero air charge, AIRCHG. 
     SLOPE(RPM)--a table containing the increase in manifold pressure, MAP, with a unit of air charge, AIRCHG. 
     MULT(BP)--an adjustment to exhaust backpressure, PEXH STP, for barometric pressure, BP. 
     PEXH --  STP(AM)--a table containing the exhaust system backpressure versus engine air mass flow at a standard temperature and pressure. 
     DCSTO(SYS --  DELPR)--a table containing the EGR duty cycle required for the EGR valve to start to open versus the delta pressure across the EGR system, SYS --  DELPR. 
     DELPR --  NORM(SYS --  DELPR, DC --  LKUP)--a table containing the expected delta pressure across the EGR metering orifice, DELPR, for a EGR system with no faults, versus the total pressure drop across the EGR tube/valve assembly, SYS --  DELPR, and the EGR duty cycle, EGRDC, adjusted for the start to open value, DCSTO. 
     MIN --  MVAC --  FOR --  EGR --  TESTS--the minimum manifold vacuum, MVAC, to enable the setting of variable VAC --  RNG --  FLG, which in turn is referenced by some of the EGR fault detectors. 
     MAX --  MVAC --  FOR --  EGR --  TESTS--the maximum manifold vacuum, MVAC, to enable the setting of variable VAC --  RNG --  FLG, which in turn is referenced by some of the EGR fault detectors. 
     RPMMAX --  EGR--the maximum engine RPM to enable the setting of variable ENG --  STDY --  FLG, which in turn is referenced by some of the EGR fault detectors. 
     TCEGRDC --  BAR--the time constant used to smooth the EGR EVR duty cycle, EGRDC, to produce the variable EGRDC --  BAR, the indication of steadiness. 
     EGRDC --  SSTOL--the change in EGRDC over EGRDC --  BAR below which the variable EGR --  STDY --  TMR is incremented. 
     EGR --  STDY --  TM--the time in seconds EGRDC must be below EGRDC --  SSTOL before the variable EGR --  STDY --  FLG is set to 1. EGR --  STDY --  FLG is used by some of the EGR fault detectors. 
     DELPR --  THRES1--the EGR delta pressure, DELPR, above which the downstream hose fault counter is set to zero. 
     EGRDELPR --  TOL--the amount DELPR can deviate from exhaust backpressure, PEXH, in a plus or minus direction, and result in the downstream hose fault counter and the upstream hose fault counter being set to zero. 
     EGR --  DNHOSE --  FAULT --  COUNTER--the number added to the downstream hose fault counter upon meeting all of the fault criteria for one loop through the calculations. 
     DELPR --  THRES2--the negative EGR delta pressure, DELPR, below which the upstream hose fault counter is set to zero. 
     EGR --  UPHOSE --  FAULT --  UPSTEP--the number added to the upstream hose fault counter upon meeting all of the fault criteria for one loop through the calculations. 
     V --  EGRDC --  MAX--the EGRDC below which the EGR valve plugged fault counter is cleared. 
     DC --  VLVPLG--the duty cycle used to determine variable DELPR --  MIN --  VLVPLG from the DELPR --  NORM table for use in the EGR valve plug fault logic. 
     EGR --  VLVPLG --  FAULT --  UPSTEP--the number added to the upstream hose fault counter upon meeting all of the fault criteria for one loop through the calculations. 
     EGRDC --  LIM --  VO--the EGRDC above which the EGR valve stuck open fault counter is cleared. 
     DELPR --  MAX --  VLVOPN--the DELPR above which the EGR valve stuck open fault counter is incremented. 
     EGR --  VLVOPN --  FAULT --  UPSTEP--the number added to the EGR valve stuck open fault counter upon meeting all of the fault criteria for one loop through the calculations. 
     EGRDC --  LIM --  ROU--the EGRDC above which the EGR restricted orifice fault counter is cleared. 
     EGRDC --  LIM --  ROL--the EGRDC below which the EGR restricted orifice fault counter is cleared. 
     DC --  RESORF--the duty cycle used to determine variable DELPR --  MAX --  RESORF from the DELPR --  NORM table for use in the EGR restricted orifice fault logic. 
     EGR --  RESORF --  FAULT --  UPSTEP--the number added to the EGR restricted orifice fault counter upon meeting all of the fault criteria for one loop through the calculations. 
     EGRDC --  LIM --  VU--the amount the EEC-IV commanded EGR duty cycle, EGRDC, can change from one calculation loop to the next, and indicate a potential unstable EGR system. 
     EGR --  UNSTAB --  FAULT --  UPSTEP--the number added to the EGR unstable fault counter upon meeting all of the fault criteria for one loop through the calculations. 
     EGR --  DNHOSE --  FAULT --  THRESHOLD--the number, if exceeded by EGR --  DNHOSE --  FAULT --  COUNTER, causes the malfunction indicator light to be illuminated and the appropriate fault code to the stored for reference by a service technician. 
     EGR --  UPHOSE --  FAULT --  THRESHOLD--the number, if exceeded by EGR --  UPHOSE --  FAULT --  COUNTER, causes the malfunction indicator light to be illuminated and the appropriate fault code to be stored for reference by a service technician. 
     EGR --  VLVPLG --  FAULT --  THRESHOLD--the number, if exceeded by EGR --  VLVFLG --  FAULT --  COUNTER, causes the malfunction indicator light to be illuminated and the appropriate fault code to be stored for reference by a service technician. 
     EGR --  VLVOPN --  FAULT --  THRESHOLD--the number, if exceeded by EGR --  VLVOPN --  FAULT --  COUNTER, causes the malfunction indicator light to be illuminated and the appropriate fault code to be stored for reference by a service technician. 
     EGR --  RESORF --  FAULT --  THRESHOLD--the number, if exceeded by EGR --  RESORF --  FAULT --  COUNTER, causes the malfunction indicator light to be illuminated and the appropriate fault code to be stored for reference by a service technician. 
     EGR --  UNSTAB --  FAULT --  THRESHOLD--the number, if exceeded by EGR --  UNSTAB --  FAULT --  COUNTER, causes the malfunction indicator light to be illuminated and the appropriate fault code to be stored for reference by a service technician. 
     FIG. 1 depicts a pressure feedback electronic (PFE) EGR system installed on an engine. Air enters an air cleaner at barometric pressure (termed BP, units inches Hg.). Air temperature is measured by a temperature sensor and the output is termed ACT in degrees F. Alternately, the temperature sensor is in an intake manifold 6. Air mass flow is measured by a hot-wire air meter 3 and the output is termed MAF in lbs/min. In an electronic engine control module, it is also converted to air charge in lbs/cylinder-filling and termed AIRCHG. The throttle position is measured by a potentiometer and the output is termed TP --  REL in counts. The engine coolant temperature is measured by a temperature sensor and the output is termed ECT in degrees F. The exhaust manifold is shown at numeral 8. The gauge exhaust pressure (termed PE in inches H20) is inferred in the engine control module is a function of engine air mass flow (MAF) which approximately equals the exhaust mass flow by conservation of mass. The EGR tube is fastened by a machine screw fitting 9 to a boss on exhaust manifold 8. 
     If the EGR valve is open, a portion of exhaust gas enters a tube 12. The exhaust gas flows through a PFE EGR metering orifice 10a-b. For a DPFE system, the delta pressure across metering orifice 10 is measured by a DPFE sensor 11 and the variable is termed DELPR in inches of water. For a PFE system, only the upstream pressure is measured via a pressure tap orifice in 10b. EGR valve 13 opens and closes the passage from the EGR tube to intake manifold 6. The EGR flow mixes with the fresh air flow and the percentage of EGR is the quantity that is scheduled and controlled. The percent is termed EGRATE (percent) when it is the desired amount, and is termed EGRACT (percent) when it is calculated based on the pressure drop across EGR metering orifice 10. The degree to which the EGR valve is open is controlled by an electronic vacuum regulator (EVR) 14, which is controlled by an electric current. The current is turned on and off at a duty cycle which is termed EGRDC, a 0-1 number. Manifold vacuum is fed to the EVR via a tube 15 which in turn meters the vacuum to the vacuum motor on the EGR valve to actually open and close the valve. 
     Knowledge of absolute and gauge pressures is used by the invention. Barometric pressure BP (in.Hg.) is inferred using known techniques or can be measured using a barometric pressure sensor. The gauge exhaust backpressure PE (in.H20) at 8 is inferred using known techniques from the measured air mass flow MAF (lbs/min). 
     
         PE=F1(MAF)*29.92/F2(BP), where F1 and F2 are ROM data. 
    
     The manifold pressure INF --  MAP (in.Hg.) at 6 is inferred from measured engine speed and measured air mass using logic in accordance with an embodiment of this invention. ##EQU1## where AIR --  MAP --  B0 to AIR --  MAP --  B4 are regression coefficients sorted in ROM, and N, EGRACT, AIRCHG were described above. The manifold vacuum INF --  MVAC (in. Hg.), also at 6, is calculated from INF --  MAP and BP. 
     
         INF.sub.-- MVAC=BP-INF.sub.-- MAP 
    
     The pressure drop across across the EGR metering orifice DELPR (in.H20) at 10a-10b is measured directly when the system includes the DPFE sensor. Alternately, if the PFE system is used the output of the sensor is DP (in.H20) at 10b. In this case DELPR is calculated by subtracting the DP from the exhaust backpressure PE. 
     
         DELPR=PE-DP 
    
     SYS --  DELPR (in.H20) is calculated from inferred manifold vacuum at 6 plus inferred PE at 8 and equals the pressure drop across the whole EGR tube/valve assembly. 
     
         SYS.sub.-- DELPR=MVAC+PE/13.6 
    
     The above parameters cam be used in various algorithms. First, a restriction in the EGR tube or EGR valve can be detected. Referring to FIG. 2A, if the commanded electronic engine control EGR duty cycle (DC --  LKUP) is higher than a calibrated amount EGRDC --  MIN --  FOR --  EGR --  VALVE --  FAULT, with values on the order of 0.4 or 40 percent, then the EGR valve is assumed to be fully open. If the measured DELPR is less than the characteristic value, DELPR --  NORM, by a calibrated amount, DELPR --  TOL --  FOR --  EGR --  VALVE --  FAULT, for a sustained period of time, then a restricted EGR valve or EGR tube is indicated. Known fault counter methodology is employed to keep track of faults, and light the malfunction indicator light if this condition is sustained. The fault is only checked over a limited range of manifold vacuums (variables MIN --  MVAC --  FOR --  EGR --  TESTS and MAX --  MVAC --  FOR --  EGR --  TESTS) and under relatively steady-state conditions where the signal to noise ratio is favorable. 
     DELPR --  NORM=look-up table of (SYS --  DELPR, EGRDC) which is plotted in FIG. 2A. 
     Second, a restriction can be detected, referring to FIG. 2A., if the measured DELPR is greater than the characteristic value, DELPR --  NORM, by a calibrated amount, DELPR --  TOL --  FOR --  EGR --  ORIFICE --  FAULT, for a sustained period of time, then a restricted EGR metering orifice is indicated. Known fault counter methodology can be employed to keep track of faults, and light a malfunction indicator light if this condition is sustained. The fault is only checked over a limited range of manifold vacuums, and limited range of EGRDCs EGRDC --  MIN --  FOR --  EGR --  ORIFICE --  FAULT to EGRDC --  MAX --  FOR --  EGR --  ORIFICE --  FAULT, and under relatively steady-state conditions where the signal to noise is favorable. 
     Third, an EGR valve stuck in the open position can be detected if the EGRDC is low and the DELPR is very high, then the EGR valve must be stuck open. If the commanded engine control EGR duty cycle (EGRDC) is lower than a calibrated amount, EGRDC --  MIN --  FOR --  EGR --  STUCK --  OPEN --  FAULT known to correspond to a closed EGR valve, then the measured DELPR should be less than a calibrated amount DELPR --  MAX --  FOR --  EGR --  STUCK --  OPEN --  FAULT which is close to zero. If the measured DELPR is larger than this calibrated value for a sustained period of time, then an EGR valve in the stuck open position is indicated. Known counter methodology can be employed to keep track of faults, and light a malfunction indicator light if this condition is sustained. The fault is only checked over a limited range of manifold vacuums (variables MIN --  MVAC and MAX --  MVAC) and under relatively steady-state conditions where the signal to noise is favorable. 
     Fourth, there is a secondary means for detection of EGR metering orifice restrictions. The logic detects restricted EGR metering orifices under relatively steady conditions. Severely plugged orifices will result in out of control oscillations of the feedback control mechanism. These oscillations are caused by the increased sensitivity of the EGR system with small orifices (small changes in valve flow rate change the delta pressure dramatically). Under oscillating conditions, phase shifts can cause the noted logic to malfunction. A secondary fault check is required to detect out of control oscillations. 
     The following logic (summarized in FIG. 6B) detects out of control oscillations in the control duty cycle (EGRDC) as illustrated by FIG. 6A. Oscillations are detected since the fault counter counts up faster than it counts down. Flag EGREN indicates that the EGR system is enabled while flag EGRFLG is used to avoid checking on the first pass through the logic when it is first enabled. 
     Referring to FIGS. 3A through 3E, a logic sequence is presented which determines whether conditions are proper for doing an exhaust gas circulation diagnostic test. In block 301 the test is entered and logic flow goes to block 302 wherein there is a calculation of SYS --  DELPR, INF --  MVAC, PEXH and DCSTO. The logic of block 302 is further explained in FIG. 4 Logic flow then goes to block 303 wherein INF --  MVAC is tested whether it is greater than the minimum vacuum required for an exhaust gas recirculation test. If not, logic flow goes to block 306 wherein a flag is set equal to zero indicating that it is out of the appropriate vacuum range. If yes, logic flow goes to block 304 wherein it is checked if INF --  MVAC is less than the maximum MVAC for an EGR test. If not, logic flow again goes to block 306 where there is an indication that the vacuum is out of range. If yes, logic flow goes to a block 305 wherein a flag is set to one indicating that the vacuum is within range. 
     Logic flow from blocks 305 and 306 both go to a block 309 wherein the actual rpm is compared to a maximum rpm appropriate for an EGR test. If actual rpm is not less, logic flow goes to a block 311 wherein a flag is set equal to zero indicating the engine is not steady. If actual rpm is less, logic flow goes to a block 310 wherein a flag is set equal to one indicating the engine is steady. Logic flow from blocks 310 and 311 goes to a block 312 wherein a rolling average exhaust gas recirculation duty cycle EGRDC --  BAR is a function of the previous rolling average of the exhaust gas circulation duty cycle and a stored scaler time constant. 
     Logic flow from block 312 goes to a block 313 wherein EGRDC is compared to the EGRDC --  BAR plus EGRDC --  SSTOL. If it is not less, logic goes to a block 316 wherein a timer is reset to zero as soon as the system is not steady. If EGRDC is less, logic flow goes to a block 314 wherein an EGRDC is compared with the difference at the same parameters (EGRDC --  BAR-EGRDC --  SSTOL) to see whether it is greater. If not, logic flow again goes to block 316. If yes, logic flow goes to a block 315 wherein EGR steady state timer is incremented using EGR --  STDY --  TMR=EGR --  STDY --  TMR+BG --  TMR. Logic flow from blocks 315 and 316 goes to a block 317 wherein EGR steady state timer is compared to EGR steady state time, if is not greater logic flow goes to a block 319 wherein EGR is defined as being non-steady and the flag is set to zero. If it is greater, logic flow goes to a block 318 wherein EGR is determined to be steady and a flag is set to one. 
     Logic flow from both blocks 318 and 319 goes to a block 320 wherein it is checked for a disconnection of the downstream hose. The logic within block 320 is further explained in FIG. 3D. Logic flow then goes a block 321 wherein a disconnection of the upstream hoses is checked. The logic within block 321 is further explained in FIG. 3E. Logic then goes to a block 323 wherein there is a check for a restricted or plugged EGR valve. The logic within block 323 is further discussed in FIG. 5. Logic flow then goes to a block 324 wherein there is a check for a stuck EGR valve in the open position. The logic within block 324 is further explained in FIG. 6. Logic flow then sequentially goes to a block 325 wherein there is a check for restricted EGR metering orifice by a high delta pressure, (the logic within block 325 is further explained in FIG. 7) a block 326 wherein there is a check for a restricted EGR metering orifice via oscillations in the EGR duty cycle, (the logic within block 326 is further explained in FIG. 8A) a block 327 wherein there is logic to activate the malfunction indicator light if it needs to be illuminated. Logic flow then goes to a block 329 wherein there is return to other electronic engine control logic. 
     Referring to FIG. 3D, there is a more detailed explanation of the logic of block 320 at FIG. 3B. At block 330 there is the start of a check for a downstream hose disconnection. At block 338 there is tested to see if EGR is enabled (EGREN). This flag is EGREN input 424. That is, if a non-zero EGR flow is requested then EGREN is a flag set equal to one. 
     If EGREN is not equal to 1.0, then logic flows to block 334 where variable EGR --  DNHOSE --  FAULT --  COUNTER is set to zero, indicating that fault detection cannot take place. Then logic flow is to block 337, a return to the main logic flow diagram in FIG. 3B. If DELPR is equal to 1.0 than then logic flows to decision block 331. 
     In decision block 331, a comparison is made between DELPR input 408 and calibration variable DELPR --  THRES1. If DELPR is not greater than DELPR --  THRES1, then logic flows to block 336 where variable EGR --  DNHOSE --  FAULT --  COUNTER is decremented by the constant 1.0, since a fault was not indicated for this loop through the logic. If DELPR is greater than DELPR --  THRES1, then logic flows to decision block 332. 
     In decision block 332, a comparison is made between DELPR input 408 and the sum of calculated 
     variable PEXH and the calibration variable EGRDELPR --  TOL. If DELPR is not greater than the quantity (PEXH+EGRDELPR --  TOL) then logic flow goes to block 336. If DELPR is greater than the quantity (PEXH+EGRDELPR --  TOL) then logic flows to decision decision block 333. 
     In decision block 333, a comparison is made between DELPR input 408 and the difference of calculated variable PEXH and the calibration variable EGRDELPR --  TOL. If DELPR is not less than the quantity (PEXH-EGRDELPR --  TOL) then logic flow goes to block 336. If DELPR is less than the quantity (PEXH-EGRDELPR --  TOL) then logic flows to decision block 335, where calculated variable EGR --  DNHOSE --  FAULT --  COUNTER is incremented by calibration variable EGR --  DNHOSE --  UP --  STEP, since a fault was indicated this loop through the logic. Logic then flows to block 337. 
     Referring to FIG. 3B, block 321, logic then flows to FIG. 3E, block 340, wherein logic to check for upstream hose disconnected is initiated. 
     Logic then flows to decision block 348, where a comparison is made between EGREN input 424 and the constant 1.0. If EGREN is not equal to 1.0, then logic flows to block 344 where variable EGR --  UPHOSE --  FAULT --  COUNTER is set to zero, indicating that fault detection cannot take place. Then logic flow to block 347, a return to the main logic diagram in FIG. 3b, block 320. If EGREN is equal to 1.0 then logic flows to decision block 341. 
     In decision block 341, a comparison is made between DELPR input 408 and calibration variable DELPR --  THRES1. If DELPR is not less than negative value of DELPR --  THRES2, then logic flows to block 346 where variable EGR --  UPHOSE --  FAULT --  COUNTER is decremented by the constant 1.0, since a fault was not indicated for this loop through the logic. Then logic flows to block 347, a return to the main logic flow diagram in FIG. 3b, block 321. If DELPR is less than the negative of DELPR --  THRES2, then logic flows to decision block 342. 
     In decision block 342, a comparison is made between DELPR input 408 and the sum of the negative of calculated variable PEXH and the calibration variable EGRDELPR --  TOL. If DELPR is not greater than the quantity (--PEXH+EGRDELPR --  TOL) then logic flow goes to block 346. If DELPR is greater than the quantity (-PEXH+EGRDELPR --  TOL) then logic flows to decision decision block 343. 
     In decision block 343, a comparison is made between DELPR input 408 and the difference of the negative of the calculated variable PEXH and the calibration variable EGRDELPR --  TOL. If DELPR is not less than the quantity (--PEXH--EGRDELPR --  TOL) then logic flow goes to block 346. If DELPR is less than the quantity (--PEXH--EGRDELPR --  TOL) then logic flows to decision block 345, where calculated variable EGR --  UPHOSE --  FAULT --  COUNTER is incremented by calibration variable EGR --  UPHOSE --  UP --  STEP, since a fault was indicated this loop through the logic. Logic then flows to block 347. 
     Referring to FIG. 4, a block diagram shows the method of calculating various variables required for EGR diagnostics. This is a detailed explanation of the logic of block 302 in FIG. 3A. The diagram includes inputs identifying engine speed (401), air charge (402), exhaust gas recirculation actual percentage (403), barometric pressure (404), air mass (405) and exhaust temperature (406). 
     In particular, an electronic control module logic flow includes inputs indicating engine RPM 401, intake air charge AIRCHG 402, exhaust gas recirculation percent EGRACT 403, barometric pressure BP 404, EGR orifice delta pressure DELPR 407, command EGR electronic vacuum regulator duty cycle EGRDC 408, and a variable indicating that a non-zero value of EGR is desired EGREN input 424. Stored look-up tables indicating various engine parameters include a constant EGRMULT versus RPM and AIRCHG in table 409, a constant INT versus RPM in table 410, a constant SLOPE versus RPM in table 411, a constant MULT versus BP in table 412, a constant PEXHSTP versus AM in table 419. 
     Referring to FIG. 4, a block 409 is an adjustment to inferred manifold pressure (INF --  MAP) per percent EGR for engine rpm input 401 and AIRCHG input 402. The output of block 409 is applied to a multiplier 415 which also has input from EGRACT input 403. A block 410 is an adjustment to inferred manifold pressure for engine RPM input 401. A block 411 is an adjustment to inferred manifold pressure per unit of AIRCHG for RPM input 401. The output of block 411 is applied to multiplier 417 which also has input from AIRCHG input 402. A summer 416 has inputs from multiplier 415, block 410, and multiplier 417 to provide inferred manifold pressure INF --  MAP. 
     A multiplier 418 has input from BP input 404 and INF --  MAP from summer 416 to provide inferred manifold vacuum INF --  MVAC. A block 412 is an adjustment to exhaust backpressure for BP input 404. A block 419 is inferred exhaust backpressure at standard temperature and pressure, PEXH --  STP and has input from AM input 405. A multiplier 420 has input from block 412, block 419, and EXHT input 406 to provide exhaust pressure corrected for temperature and barometric pressure PEXH. A summer 421 has inputs from summer 418 and multiplier 420 to provide total pressure drop across the EGR system, SYS --  DELPR. A block 422 has input from summer 421 to provide duty cycle start to open value DCSTO. A block 423 represents other EEC-IV logic and has inputs INF --  MVAC from summer 418, SYS --  DELPR from summer 421, PEXH from multiplier 420, DCSTO from block 422, EGRDC from input 407, DELPR from input 408, and EGREN from input 424. 
     In summary, the diagram includes stored look-up tables including engine speed versus EGR multiplier at various air charges (a block 409), engine speed versus INT (a block 410), engine speed versus slope (a block 411), barometric pressure versus a multiplier (a block 412) and air mass versus PEXHSTP (a block 419) where PEXHSTP is the exhaust pressure at 29.92 barometric pressure and 1000 Deg. F. exhaust temperature. Calculation in accordance with the diagram includes: 
     1) applying inputs indicating engine speed to block 409, block 410 and block 414; 
     2) applying an input indicating air charge to block 409; 
     3) applying an input indicating barometric pressure to block 412; 
     4) applying air mass to block 419; 
     5) applying the output from block 409 and an input indicating exact actual exhaust gas circulation to a multiplier 415; 
     6) applying the output of table 411 to a multiplier 417 and applying input 402 indicating air charge to multiplier 417; 
     7) applying the output from multiplier 415, multiplier 417 and block 410 to a summer 416; 
     8) applying the output of summer 416 to the negative input of a summer 418 and applying input 404 indicating barometric pressure to a positive input of summer 418; 
     9) applying the outputs of tables 412 and 419 to a multiplier 420 and applying input 406 indicating exhaust temperature to multiplier 420; 
     10) applying the outputs of summer 418 and multiplier 420 to a summer 421; applying the output of summer 421 to a block 422 relating system delta pressure to DCSTO. The calculation shown in the diagram furnished provides a DCSTO output from table 422 and a system delta pressure output from summer 421 where DCSTO is the EGR duty cycle EGRDC required overcome the spring force which keeps the EGR valve closed on its seat, versus the pressure drop across the EGR seat which is SYS --  DELPR. 
     Referring to FIG. 3B, block 323, logic then flows to FIG. 5, block 500, wherein logic to check for a restricted or plugged EGR valve is initiated. Logic then flows to decision block 501, where a comparison is made between EGRDC input 407 and calibration variable V --  EGRDC --  MAX. If EGRDC is not greater than V --  EGRDC --  MAX then logic flows to block 504 where variable EGR --  UPHOSE --  FAULT --  COUNTER is set to zero, indicating that fault detection cannot take place. Then logic flow to block 509, a return to the main logic diagram in FIG. 3b, block 323. If EGRDC is greater than V --  EGRDC --  MAX then logic flows to decision block 502. 
     In decision block 502, a comparison is made between calculated variable VAC --  RNG --  FLG and the constant 1. If VAC --  RNG --  FLG equals 1, then logic flows to decision block 503. 
     In decision block 503, a comparison is made between calculated variable ENG --  STDY --  FLG and the constant 1. If ENG --  STDY --  FLG is not equal to 1, then logic flows to block 504. If ENG --  STDY --  FLG equals 1, then logic flows to block 505. 
     In block 505, variable DELPR --  MIN --  VLVPLG is calculated from the DELPR --  NORM function, shown in FIG. 2a, as a function of calculated variable SYS --  DELPR, calculated variable DCSTO, and calibration variable DC --  VLVPLG, resulting is the minimum expected delta pressure for a properly functioning EGR valve at EGR duty cycle greater than V --  EGRDC --  MAX. 
     Logic then flows to decision block 506 where a comparison is made between DELPR input 408 and calculated variable DELPR --  MIN VLVPLG. If DELPR is not less than DELPR --  MIN --  VLVPLG then logic flows to block 508 where variable EGR --  VLVPLG --  FAULT --  COUNTER is decremented by the constant 1.00, since a fault was not indicated for this loop through the logic. Logic then flows to block 509. If DELPR is less than DELPR --  MIN --  VLVPLG, then logic flows to block 507 where variable EGR --  VLVPLG --  FAULT --  COUNTER is incremented by calibration variable EGR --  VLVPLG --  UP --  STEP, since a fault was indicated this loop through the logic. Logic then flows to block 509. 
     Referring to FIG. 3B, block 324, logic then flows to FIG. 6, block 600, wherein logic to check for a EGR valve stuck in the open position is initiated. Logic then flows to decision block 601, where a comparison is made between EGREN input 424 and the constant 1.0. If EGREN is not equal to 1.0, then logic flows to block 605 where variable EGR --  VLVOPN --  FAULT --  COUNTER is set to zero, indicating that fault detection cannot take place. Then logic flow to block 609, a return to the main logic diagram in FIG. 3b, block 324. If DELPR is equal to 1.0 then logic flows to decision block 602. 
     In decision block 604 a comparison is made between EGRDC input 407 and calibration variable EGRDC --  LIM --  VO. If EGRDC is not less than EGRDC --  LIM --  VO then logic flows to block 605. If EGRDC is less than EGRDC --  LIM --  VO then logic flows to decision block 603. 
     In decision block 603, a comparison is made between calculated variable VAC --  RNG --  FLG and the constant 1. If VAC --  RNG --  FLG is not equal to 1, then logic flows to block 605. If VAC --  RNG --  FLG equals 1, then logic flows to decision block 604. 
     In decision block 604, a comparison is made between calculated variable ENG --  STDY --  FLG and the constant 1. If ENG --  STDY --  FLG is not equal to 1, then logic flows to block 605. If ENG --  STDY --  FLG equals 1, then logic flows to decision block 606. 
     In decision block 606, a comparison is made between EGRDC input 407 and calibration variable DELPR --  MAX --  VLVOPN. If DELPR is not greater than DELPR --  MAX --  VLVOPN then logic flows to block 608 where variable EGR --  VLVOPN --  FAULT --  COUNTER is decremented by the constant 1.0, since a fault was not indicated for this loop through the logic. Logic then flows to block 609. If DELPR is greater than DELPR --  MIN --  VLVOPN, then logic flows to block 607 where variable EGR --  VLVOPN --  FAULT --  COUNTER is incremented by calibration variable EGR --  VLVOPN --  UP --  STEP, since a fault was indicated this loop through the logic. Logic then flows to block 609. 
     Referring to FIG. 3B, block 325, logic then flows to FIG. 7, block 700, wherein logic to check for a restricted EGR metering orifice via high DELPR is initiated. 
     In decision block 701 a comparison is made between EGRDC input 407 and calibration variable EGRDC --  LM --  ROU. If EGRDC is not less than EGRDC --  LM --  ROU then logic flows to block 706 where variable EGR --  RESORF --  FAULT --  COUNTER is set to zero, indicating that fault detection cannot take place. Then logic flows to block 711, a return to the main logic diagram in FIG. 3b, block 325. If EGRDC is less than EGRDC --  LM --  ROU then logic flows to decision block 702. 
     In decision block 702 a comparison is made between EGRDC input 407 and calibration variable EGRDC --  LM --  ROL. If EGRDC is greater than EGRDC --  LM --  ROL then logic flows to decision block 703. If EGRDC is not greater logic flow goes to block 706. 
     In decision block 703, a comparison is made between calculated variable VAC --  RNG --  FLG and the constant 1. If VAC --  RNG --  FLG equals 1, then logic flows to decision block 704. If not equal to 1, then logic flows to block 706. 
     In decision block 704, a comparison is made between calculated variable ENG --  STDY --  FLG and the constant 1. If ENG --  STDY --  FLG is not equal to 1, then logic flows to block 706. If ENG --  STDY --  FLG equals 1, then logic flows to decision block 705. 
     In decision block 705, a comparison is made between calculated variable EGR --  STDY --  FLG and the constant 1. If EGR --  STDY --  FLG is not equal to 1, then logic flows to block 706. If EGR --  STDY --  FLG equals 1, then logic flows to decision block 707. 
     In block 707, variable DELPR --  MAX --  RESORF is calculated from the DELPR --  NORM function, shown in FIG. 2A, as a function of calculated variable SYS --  DELPR, calculated variable DCSTO, and calibration variable DC --  RESORF, resulting is the maximum expected delta pressure for a properly functioning EGR valve at EGR duty cycle less than EGRDC --  LM --  ROU. Logic then flows to decision block 708. 
     In decision block 708, a comparison is made between DELPR input 408 and calculated variable DELPR --  MAX --  RESORF. If DELPR is not greater than DELPR --  MAX --  RESORF then logic flows to block 710 where variable EGR --  RESORF --  FAULT --  COUNTER is decremented by the constant 1.0, since a fault was not indicated for this loop through the logic. Logic then flows to block 711. If DELPR is greater than DELPR --  MAX --  RESORF, then logic flows to block 709 where variable EGR --  RESORF --  FAULT --  COUNTER is incremented by calibration variable EGR --  RESORF --  UP --  STEP, since a fault was indicated this loop through the logic. Logic then flows to block 711. 
     Referring to FIG. 3B, block 326, logic then flows to FIG. 8A, block 800, wherein logic to check for a restricted EGR metering orifice via oscillations in the EGR duty cycle is initiated. Logic then flows to decision block 801, where a comparison is made between EGREN input 424 and the constant 1.0. If EGREN is not equal to 1.0, then logic flows to block 803 where variable EGR --  UNSTAB --  FAULT --  COUNTER is set to zero, indicating that fault detection cannot take place. Then logic flows to block 808, where variable EGRDC --  LAST is set equal to EGRDC input 407 for use on the next loop through the logic in block 804. Logic then flows to block 809, a return to the main logic diagram in FIG. 3b, block 326. If EGREN is equal to 1.0 then logic flows to decision block 802. 
     In decision block 802, a comparison is made between calculated variable EGR --  STDY --  FLG and the constant 1. If EGR --  STDY --  FLG is not equal to 1.0, then logic flows to block 803. If EGR --  STDY --  FLG is equal to 1.0, then logic flows to decision block 804. 
     In block 804, the difference between EGRDC input 407 and calculated variable EGRDC LAST, from block 808, is compared to calibration variable EGRDC --  LIM --  VU. If the quantity (EGRDC--EGRDC --  LAST) is not greater than EGRDC --  LIM --  VU then logic flows to block 807, where variable EGR --  RESORF --  FAULT. COUNTER is decremented by the constant 1.0, since a fault was not indicated for this loop through the logic. Logic then flows to block 808 and to block 809. If the quantity (EGRDC--EGRDC --  LAST) is greater than EGRDC --  LIM --  VU then logic flows to block 805. 
     In block 805, the difference between calculated variable EGRDC --  LAST and EGRDC input 407 is compared to calibration variable EGRDC --  LIM --  VU. If the quantity (EGRDC --  LAST--EGRDC) is not greater than EGRDC --  LIM --  VU then logic flows to block 807. If the quantity (EGRDC --  LAST--EGRDC) is greater than EGRDC --  LIM --  VU then logic flows to block 806, where variable EGR --  RESORF --  FAULT --  COUNTER is incremented by calibration variable EGR --  RESORF --  UP --  STEP, since a fault was indicated this loop through the logic. Logic then flows to block 808 and to block 809. 
     Referring to FIG. 3C, block 327, logic then flows to FIG. 9A block 900, wherein logic to process fault filters is initiated. 
     Logic then flows to decision block 901, where a comparison is made between calculated variable EGR --  DNHOSE --  FAULT --  COUNTER, from FIG. 3d blocks 335 and 336, and calibration variable EGR --  DNHOSE --  FAULT --  THRESHOLD. If EGR --  DNHOSE --  FAULT --  COUNTER is greater than EGR --  DNHOSE --  FAULT --  THRESHOLD then logic flows to block 902, wherein EEC-IV logic to illuminate the malfunction indicator light, MIL, is implemented and calibration variable EGR --  DNHOSE --  CODE is stored in computer keep alive memory, KAM, for access by a service technician. Logic then flows to block 903. If EGR --  DNHOSE --  FAULT --  COUNTER is less than EGR --  DNHOSE --  FAULT --  THRESHOLD then logic flows to block 903. 
     In block 903 a comparison is made between calculated variable EGR --  UPHOSE --  FAULT --  COUNTER, from FIG. 3E blocks 345 and 346, and calibration variable EGR --  UPHOSE --  FAULT --  THRESHOLD. If EGR --  UPHOSE --  FAULT --  COUNTER is greater than EGR --  UPHOSE --  FAULT --  THRESHOLD then logic flows to block 904, wherein EEC-IV MIL illumination logic is implemented and calibration variable EGR --  UPHOSE --  CODE is stored in KAM. Logic then flows to block 905. If EGR UPHOSE --  FAULT --  COUNTER is less than EGR --  UPHOSE --  FAULT --  THRESHOLD then logic flows to block 905. 
     In block 905 a comparison is made between calculated variable EGR --  VLVPLG --  FAULT --  COUNTER, from FIG. 5 blocks 507 and 508, and calibration variable EGR --  LVPLG --  FAULT --  THRESHOLD. If EGR --  VLVPLG --  FAULT --  COUNTER is greater than EGR --  VLVPLG --  FAULT --  THRESHOLD then logic flows to block 906, wherein EEC-IV MIL illumination logic is implemented and calibration variable EGR --  VLVPLG --  CODE is stored in KAM. Logic then flows to block 907. If EGR --  VLVPLG --  FAULT --  COUNTER is less than EGR --  VLVPLG --  FAULT --  THRESHOLD then logic flows to block 907. 
     In block 907 a comparison is made between calculated variable EGR --  VLVOPN --  FAULT --  COUNTER, from FIG. 6 blocks 607 and 608, and calibration variable EGR --  VLVOPN --  FAULT --  THRESHOLD. If EGR --  VLVOPN FAULT --  COUNTER is greater than EGR --  VLVOPN FAULT --  THRESHOLD then logic flows to block 908, wherein EEC-IV MIL illumination logic is implemented and calibration variable EGR --  VLVOPN --  CODE is stored in KAM. Logic then flows to block 909. If EGR --  VLVOPN --  FAULT --  COUNTER is less than EGR --  VLVOPN --  FAULT --  THRESHOLD then logic flows to block 909. 
     In block 909 a comparison is made between calculated variable EGR --  RESORF --  FAULT --  COUNTER, from FIG. 7 blocks 709 and 710, and calibration variable EGR --  RESORF --  FAULT --  THRESHOLD. If EGR --  RESORF --  FAULT --  COUNTER is greater than EGR --  RESORF --  FAULT --  THRESHOLD then logic flows to block 910, wherein EEC-IV MIL illumination logic is implemented and calibration variable EGR --  RESORF --  CODE is stored in KAM. Logic then flows to block 911. If EGR --  RESORF --  FAULT --  COUNTER is less than EGR --  RESORF --  FAULT --  THRESHOLD then logic flows to block 911. 
     In block 911 a comparison is made between calculated variable EGR --  UNSTAB --  FAULT --  COUNTER, from FIG. 8 blocks 806 and 807, and calibration variable EGR --  UNSTAB --  FAULT --  THRESHOLD. If EGR --  UNSTAB --  FAULT --  COUNTER is greater than EGR --  UNSTAB --  FAULT --  THRESHOLD then logic flows to block 912, wherein EEC-IV MIL illumination logic is implemented and calibration variable EGR --  UNSTAB --  CODE is stored in KAM. Logic then flows to block 913, a return to the main logic diagram in FIG. 3b, block 327. If EGR --  UNSTAB --  FAULT --  COUNTER is less than EGR --  UNSTAB --  FAULT --  THRESHOLD then logic flows to block 913. 
     Referring to FIG. 8B, there is a wave form shown illustrating the logic flow of portions of FIG. 8A. Referring to FIG. 9B, there is a time versus number faults diagram indicating a threshold level and illustrating portions of the logic flow of diagram of FIG. 9A. 
     Various modifications and variations will no doubt occur to those skilled in the art to which this invention pertains. For example, the particular components of an EGR system which are tested may be varied from those disclosed herein. These and all other similar variations come within the scope of the pending claims.