GB2200478A - Adaptive control system for internal combustion engine - Google Patents

Adaptive control system for internal combustion engine Download PDF

Info

Publication number
GB2200478A
GB2200478A GB08800606A GB8800606A GB2200478A GB 2200478 A GB2200478 A GB 2200478A GB 08800606 A GB08800606 A GB 08800606A GB 8800606 A GB8800606 A GB 8800606A GB 2200478 A GB2200478 A GB 2200478A
Authority
GB
United Kingdom
Prior art keywords
perturbation
engine
parameter
perturbed
slope
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
GB08800606A
Other versions
GB8800606D0 (en
Inventor
Anthony Mchale
Andrew Paul Frith
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZF International UK Ltd
Original Assignee
Lucas Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lucas Industries Ltd filed Critical Lucas Industries Ltd
Publication of GB8800606D0 publication Critical patent/GB8800606D0/en
Publication of GB2200478A publication Critical patent/GB2200478A/en
Pending legal-status Critical Current

Links

Classifications

    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02PIGNITION, OTHER THAN COMPRESSION IGNITION, FOR INTERNAL-COMBUSTION ENGINES; TESTING OF IGNITION TIMING IN COMPRESSION-IGNITION ENGINES
    • F02P5/00Advancing or retarding ignition; Control therefor
    • F02P5/04Advancing or retarding ignition; Control therefor automatically, as a function of the working conditions of the engine or vehicle or of the atmospheric conditions
    • F02P5/145Advancing or retarding ignition; Control therefor automatically, as a function of the working conditions of the engine or vehicle or of the atmospheric conditions using electrical means
    • F02P5/15Digital data processing
    • F02P5/1502Digital data processing using one central computing unit
    • F02P5/151Digital data processing using one central computing unit with means for compensating the variation of the characteristics of the engine or of a sensor, e.g. by ageing
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/008Controlling each cylinder individually
    • F02D41/0087Selective cylinder activation, i.e. partial cylinder operation
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/02Circuit arrangements for generating control signals
    • F02D41/14Introducing closed-loop corrections
    • F02D41/1401Introducing closed-loop corrections characterised by the control or regulation method
    • F02D41/1408Dithering techniques
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02PIGNITION, OTHER THAN COMPRESSION IGNITION, FOR INTERNAL-COMBUSTION ENGINES; TESTING OF IGNITION TIMING IN COMPRESSION-IGNITION ENGINES
    • F02P5/00Advancing or retarding ignition; Control therefor
    • F02P5/04Advancing or retarding ignition; Control therefor automatically, as a function of the working conditions of the engine or vehicle or of the atmospheric conditions
    • F02P5/145Advancing or retarding ignition; Control therefor automatically, as a function of the working conditions of the engine or vehicle or of the atmospheric conditions using electrical means
    • F02P5/1455Advancing or retarding ignition; Control therefor automatically, as a function of the working conditions of the engine or vehicle or of the atmospheric conditions using electrical means by using a second control of the closed loop type
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02PIGNITION, OTHER THAN COMPRESSION IGNITION, FOR INTERNAL-COMBUSTION ENGINES; TESTING OF IGNITION TIMING IN COMPRESSION-IGNITION ENGINES
    • F02P5/00Advancing or retarding ignition; Control therefor
    • F02P5/04Advancing or retarding ignition; Control therefor automatically, as a function of the working conditions of the engine or vehicle or of the atmospheric conditions
    • F02P5/145Advancing or retarding ignition; Control therefor automatically, as a function of the working conditions of the engine or vehicle or of the atmospheric conditions using electrical means
    • F02P5/15Digital data processing
    • F02P5/1502Digital data processing using one central computing unit
    • F02P5/1504Digital data processing using one central computing unit with particular means during a transient phase, e.g. acceleration, deceleration, gear change
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T10/00Road transport of goods or passengers
    • Y02T10/10Internal combustion engine [ICE] based vehicles
    • Y02T10/40Engine management systems

Description

2.2'00478 ADAPTIVE CONTROL SYSTEM FOR AN INTERNAL COMBUSTION ENGINE This
invention relates to an adaptive control system for an internal combustion engine and also to a method of controlling suchan engine.
In operating an internal combustion engine, it is necessary to establish various control parameters. Such control parameters may include the quantity of fuel supplied to each cylinder prior to combustion and also the spark advance angle. Until recently, such control parameters were established by mechanical devices responsive to various engine operating parameters. Careful testing of engines shows that optimum values for these control parameters are complex functions of the operating parameters and that these -functions cannot be matched by mechanical devices. Modern engine control systems use empirically derived characteristics for the control parameters which are stored as look-up tables in read only Memories.
Although these look-up tabl.es provide a much closer match to the optimum characteristics than was achieved by the mechanical devices, they still do not achieve optimum values for the control.parameters. There are a number of reasons for this. These reasons include variations between test engines and production engines and also various ageing effects which occur during the life of an engine.
In US patent 4 379 333, there is described an adaptive control system for controlling the spark advance angle. In this system small positive and negative perturbations are superimposed on the spark advance angle and the resulting changes in speed are used to determine the. differential or slope of engine 1 output with respect to spark advance angle. The slope is used to update the spark advance angles stored in a look-up table.
In the arrangement described in this patent, the perturbations are imposed in a three phase cycle, a positive perturbation being imposed during a first phase, no perturbations being imposed during the next phase, and a negative perturbation being imposed in the last phase. Each phase comprises 40 to 60 engine fires. The engine speed is sensed over a number of engine fires at the end of each phase. The perturbation of the spark advance angle will cause an initial transient response in the engine speed at the beginning of the phase, but, by the end of the phase, steady speed response is obtained. Thus, by delaying measurement of the engine speed until the end of the phase, the transient response is eliminated. However, this method suffers from the disadvantage that a large number of engine fires is required to make each slope measurement.
There is one further important disadvantage of the arrangement described in this patent. In this patentr during each measurement phase, the perturbations are applied to all the cylinders of the engine. Similarly, there is a single spark adv ance look-up table for all cylinders. In practice, there are significant.variations between the individual cylinders of an engine and so there are significant differences between the optimum values for the various control parameters between the various cylinders. The case of spark advance angle may be considered by way of illustration. Where a single spark advance value is used for all cylinders, then under particular operating conditions there will be an optimum spark advance angle at which maximum torque output-is achieved. Similarly, 1 o f-or each individual cylinder, there is also an optimum spark advance angle for achieving maximum spark output. This angle will not, in general, be identical for each cylinder.
It is accordingly an object of this invention to provide a new or improved adaptive control system for an internal combustion engine and also a method of controlling such an engine in which the above mentioned disadvantages are overcome or.reduced.
According to one aspect of this invention. there is provided an adaptive control system for a multicylinder internal combustion engine. said control system comprising: means for establishing a plurality of combinations of cylinders of said engine and for selecting each combination in turn. each combination including at least one cylinder; a perturbation generator for perturbing an engine control parameter (hereinafter referred to as 'said perturbed parameterw) of the currently selected cylinder combination, said perturbation generator operating in a first perturbation mode in an upper engine speed range and in a second perturbation mode in a lower engine speed range; means for measuring the slope of engine output with respect to said perturbed parameter, said measuring means operating in first and second measurement modes corresponding respectively to said first and second perturbation modes; andmeans for using said slope to apply a correction to at least one engine control parameter..
According to another aspect of this invention, there is provided an adaptive control system for a multi-cylinder internal combustion engine, said control system comprising: means for establishing a plurality of combinations of cylinders.of said engine and for selecting each combination in turn, each combination including at least one cylinder; a perturbation generator for perturbing an engine control parameter (hereinafter referred to as wsaid perturbed parameterw) of the currently selected cylinder combination, said perturbation generator operating in a first perturbation mode in an upper engine speed range and in a second perturbation mode in a lower engine speed range; in said first perturbation mode. said perturbation generator generating a periodic perturbation wave-form and applying a perturbation to said perturbed parameter during the first part of each period of the perturbation wave-form and a perturbation of opposite polarity to said perturbed parameter during the second part of each period of the perturbation wave-form; in said second perturbation mode, said perturbation generator applying a perturbation to said perturbed parameter, permitting a period to elapse without perturbing said perturbed parameter, applying a perturbation of opposite polarity to said perturbation parameteri and permitting a further period to elapse without perturbing said perturbation parameter; means for measuring the slope of engine output with respect to said perturbed parameter,,-said measuring means operating in first and second measurement modes corresponding respectively to said first and second perturbation modes; in said first measurement mode, said measuring means creating a series of contiguous first and second measurement windows associated respectively with said first and second parts of the perturbation wave-form, i 1 c each measurement window lagging its respective part of the perturbation wave-form by a predetermined phase shift, and calculating said slope from the change in engine speed between adjacent measurement windows; in said second measurement mode, said measuring means creating a series of measurement windows following each perturbation of said perturbed parameter, each series of measurement windows occupying part of the interva-1 between successive perturbations, and calculating said slope from the change in engine speed between adjacent measurement windows; and means for using said slope to apply a correction to at least one engine control parameter (each of which is hereinafter referred to as 'a corrected parameterw) associated with the selected cylinder combination.
The present invention provides significant advantages over the prior art arrangement discussed above. If different perturbation frequencies are considered for a control parameter, there will be upper and lower frequency ranges in which the phase shift between the perturbation waveform and the response in engine speed is reasonably stable over various engine operating conditions. Between these two speed ranges, there is a speed range in which the phase shift is unstable. In the present invention, in the upper speed range, the perturbation wave-form is generated at a frequency which is above the unstable frequency range. In the lower speed range, the perturbed parameter of the selected cylinder combination cannot be perturbed at this high frequency due to the low speed at which engine fires are occurring. Instead, perturbations of alternate polarity are applied to the perturbed parameter and the resulting transient response in engine speed is examined immediately after each perturbation. Thus, the present invention provides a system in which corrections can be made to individual cylinder combinations at relatively high rates over a wide range of engine speeds.
Usually, the multi-cylinder engine will have a flywheel connected through resilient shafting and a gear arrangement to a load, said flywheel, resilient shafting and gear arrangement forming a reson-ant system with a particular resonant frequency for each gear ratio established by said gear arrangement.
Conveniently, in said first perturbation mode, the frequency of said waveform is greater than the highest resonant frequency of said resonant system and. in said second measurement mode. each measurement window is equal to a whole number of quarters of the prevailing reasonant period of said resonant system.
Conveniently, in both the first and second measurement modes, said measuring means accumulates. during each measurement window, the fire periods whose central points fall within the measurement window to pr duce a total fire period for that window, and uses said total fire periods to calculate said slope.
The control system may include a third measurement mode which operates when the engine is in neutral or the clutch is disengaged.
In one arrangementi each cylinder combination comprises a single cylinder of said engine.
In another arrangement. each cylinder combination comprises all the cylinders except for one of said engine.
Usually. the or each corrected parameter value is established, prior to correction, as a function of the speed of the engine and the load to which the engine is subjected.
The perturbed parameter may be an ignition timing parameter.
In one arrangement, there is a single corrected parameter and both the perturbed parameter and the corrected parameter are an ignition timing parameter.
In another arrangement, the perturbed parameter is an ignition timing parameter, and there is a single corrected parameter in the form of an engine fuel control parameter.
In a further arrangementi the perturbed parameter is an ignition timing parameter, and there are two corrected parameters in the form of an ignition timing parameter and an engine fuel control parameter.
Although, in the invention described above, the second perturbation mode and second measurement mode are described in combination with the first perturbation mode and first measurement mode, the second perturbation mode and second measurement mode may be used on their own.
According to a further aspect of this invention,, there is provided an adaptive control system for an internal combustion enginey said control system comprising: a perturbation generator for perturbing an engine control parameter (hereinafter referred to as wsaid perturbed parameter'), said perturbation generator applying a perturbation to the perturbed parameter, permitting a period to elapse without -8 perturbing the perturbed parameter, applying a perturbation of opposite polarity to said perturbed parameter, and permitting a further period to elapse without perturbing the perturbed parameter; means for measuring the slope of engine output with respect to said perturbed parameter, said measuring means creating a series of measurement windows following each perturbation of the perturbed parameter, each series of measurement windows occupying part of the interval between successive perturbations, and calculating said slope from the change in engine speed between adjacent measurement windows; and means for using said slope to apply a correction to at least one engine control parameter.
According to a still further aspect of this invention, there is provided a method of controlling a multi-cylinder internal combustion engine, said method comprising: establishing a plurality of combinations of cylinders of said engine, each combination including at least one cylinder; selecting each combination in turn; in an upper engine speed range, perturbing an engine control parameter (hereinafter referred to as wsaid perturbed parameter') of the currently selected cylinder combination by generating a periodic perturbation wave-form and applying a perturbation to said perturbed parameter during the first-part of each period of the perturbation wave-form and a perturbation of opposite polarity to said perturbed parameter during the second part of each period of the perturbation wave-form; in a lower engine speed range. perturbing said perturbed parameter of the currently selected cylinder combination by applying a perturbation to said perturbed parameter. permitting a period to elapse Z.
I;- without perturbing said perturbed parameter, applying a perturbation of opposite polarity to said perturbation parameter, and permitting a further period to elapse without perturbing said perturbed parameter; in said upper speed range, creating a series of contiguous first and second measurement windows associated respectively with said first and second parts of the perturbation wave-form, each measurement window lagging its respective part of the perturbation wave-form by a p- redetermined phase shift; in said lower speed range, creating a series of measurement windows following each perturbation of said perturbation parameter, each series of measurement windows occupying part of the interval between successive perturbations; in both said upper and lower speed ranges, calculating the slope of engine output with respect to said perturbed parameter from the change in engine speed between adjacent measurement windows; and using said slope to apply a correction to at least one engine control parameter associated with the currently selected cylinder combination.
This invention will now be described in more detail, by way of example, with reference to the drawings in which:
Fig 1 is a diagram of the functional components of an adaptive control system embodying this invention; Fig 2 is a graph showing engine output torque as a function of spark advance angle; Fig 3 is a graph illustrating the phase lag. between a perturbation wave- form and the resulting change in engine speed as a function of perturbation frequency; Fig 4 is a graph showing perturbations applied to the spark advance angle at 30OOrpm and the resulting changes in engine speed; Fig 5a is a graph showing perturbations applied to spark advance angle at 40OOrpm; Fig 5b is a graph showing perturbations applied to spark advance angle at 60OOrpm; Fig 6 is a graph showing perturbations applied to spark advance angle at 1800rpm, and the resulting changes in engine speed; Fig 7 is a block diagram of a micro-computer system which implements the functional components of Figure 1; Fig 8 is a block diagram showing the hierarchy of the computer program used in the computer system of Fig 7; Figs 9 to 11 are flow charts of part of the program; Fig 12 is a diagram illustrating data flow between various modules of the program; Fig 13 is a diagram illustrating the calculation of weighting factors used in the program; Figs 14 and 15 are flow charts of further parts of the program; Figs 16 and 17 illustate the instant of time at which parts of the program are executed in relation to the operation to the engine cylinders; Figs 18 and 19 are flow charts of further parts of the program; Fig 20 shows graphs of perturbations applied to spark advance angle and the resulting changes in engine speed; Fig 21 is a flow chart of a further part of the program.
Figure 22 is a diagram of the functio nal components of a first simplified adaptive control system embodying this invention; and Figure 23 is a diagram of the functional components of a second simplified adaptive control system embodying this invention.
R 4 c Referring firstly to Figure 2, there is shown a graph of engine output torque for a multi-cylinder internal combustion engine as a-function of spark advance angle. AS may be seen, there is a particular value of spark advance angle at which the torque is a maximum. A similar graph exists for engine torque as a function of spark advance angle for each individual cylinder. In general the spark advance angle for maximum torque will vary between cylinders. In the embodiment of the invention which is described below, the spark advance angle is corrected for each cylinder so as to achieve maximum torque angle.
Referring now to Figure 1, there is shown in functional form an adaptive control system embodying this invention and installed in a motor vehicle. The motor vehicle has a four cylinder fuel injected spark ignition internal combustion engine 10. The engine 10 is p ovided with a flywheel 11. The engine 10 is connected through a resilient shaft 12, a gearbox 13, and a further resilient shaft 14 to drive wheels 15 which form a load. Although not shown, a clutch is also provided.
The flywheel-11 is associated with a position transducer 16 which coacts With teeth on the flywheel and produces a reference pulse for each 100 of rotation of the engine crankshaft except for two positions where teeth are missing. These two positions are separated by 1800 of crankshaft rotation and each corresponds to the instant when a piston in a respective cylinder is at its top dead centre position.
The pulses from transducer 16 are supplied to a dwell control device 17, the output of which is connected through a power stage 18 to a coil and distributor 19. The coil and distributor 19 is connected to the four spark ignition plugs 20 and causes ignition sparks to occur in these plugs at appropriate moments.
The output of transducer 16 is also connected to an injection control device 22r the output of-which is connected through a power stage 23 to the fuel injectors 24.
The output of position transducer 16 is also connected to an engine speed calculation device 26. the output of which is supplied as a further input to the dwell control device 17.
The engine is also provided with a transducer 27, which may be a Hall effect transducer,, and produces a single pulse of fixed duration for each revolution of the engine camshaft. The output of transducer 27 and also the outp;ut o f position transducer 16 are supplied to a cylinder synchronization device 28. The cylinder synchronization device 28 produces an output that indicates which cylinder is undergoing the combustion stroke.
There is also provided a transducer 29. which produces 7000 pulses for each mile travelled by the vehicle. The output of this transducer is supplied to a gear ratio calculation device 30,, which also receives the output signal from position transducer 16. The device 30 provides an output indicative of the gear presently engaged.
The engine is also provided with transducer 32 which measures the load demand of the engine. In the present exampler the transducer 32 measures the A absolute pressure of the manifold of the engine. The load demand could also be detected by measuring other quantities such as throttle valve opening position.
The output of position transducer 16 is further supplied to a fire period calculation device 33 which calculates each fire period. The actual period calculated as the fire period is a period which elapses between pistons in consecutive cylinders being at 300 after top dead centre.
The system also,includes a memory 35 in which is stored a two dimensional array of spark advance angles. The abscissa and ordinate of the array correspond to engine spe ed and load demand. The memory 35. the speed calculation device 26, and the load transducer 32 are connected to a calculation device 36. For each prevailing engine speed and load demand, the calculation device 36 calculates a basic value for the spark advance angle and supplies this to one input of a summer 37. The calculation device 36 calculates its basic value from the spark advance values stored in the array in memory 35 at the four points in the speed/load plane surrounding the prevailing engine speed and load demand. Each of these values is multiplied by an appropriate weighting factor and the four resulting values are added to provide the basic value for the spark advance angle. Thus. the calculation device 36 calculates the spark advance angle by interpolation.
The spark advance angles are stored in memory 35 at a density sufficient to provide a reasonably accurate value in view of the irregularities of the true optimum spark advance angle characteristics of the engine. The spark advance values in memory 35 take the form of a fixed look up table which has been established from rig-tests of sample engines of the same type as engine 10. The true optimum spark advance values will differ both between individual cylinders of the same engine and between individual engines, for reasons outlined above, from those stored in the memory 35.
The system also includes a memory 40 in which isstored a two dimensional array of air/fuel ratios. The abscissa and ordinate of the array correspond to the engine speed and load demand. The memory 40. the speed calculation device 26. and the load transducer 32 are connected to a calculation device 41. For each prevailing engine speed and load demand,, the device 41 calculates a basic value for air/fuel ratio and supplies this to a further calculation device 42. The calculation device 41 calculates the basic value from air/fuel ratio values stored in the array in memory 40 by the interpolation method discussed previously.with respect to the calculation device 36. The air/fuel ratio values stored in memory 40 also take the form'of a fixed look up table established from rig-tests on sample engines.
The calculation device 42 also receives-the outputs from the load transducer 32 and the speed calculation device 26 and calculates the injector lonw time necessary to maintain the air/fuel ratio demanded by the output of the calculation device 41.
The output of the calculation device 42 is supplied to the injector control device 22 as a command value for injector 'on' time. The injector control device 42 uses the output of the transducer 16 to ensure the fuel injectors are sychronized correctly with the operation of the cylinders of engine 10.
i t :C p As will shortly be described in detail, the system imposes small advanced and retarded perturbations on the spark advance angle for each cylinder in turn and senses a change in engine output speed caused by these perturbations. An individual correction memory 45a to 45d is provided for each individual cylinder. As the spark advance values for each cylinder in turn are perturbed, the associated change in engine speed is used to derive correction values to the commanded spark advance values and these corrections are stored in the respective correction memories 45a to 45d. In each of the memories 45a to 45d, the correction values are stored as a two dimensional array in which the abscissa and ordinate represent engine speed and load demand and these values are stored with the same density as the values stored in memory 35.
The memories 45a to 45d are connected through a selector device 46 to a calculation device 47, the selector device receiving the output signal from the cylinder synchronization device 28 and the calculation device 47 receiving the outputs from the load transducer 32 and speed calculation device 26. For the prevailing engine speed and load demand, the calculation device 47 calculates a correction value to the spark advance angle for the cylinder which is about to fire and supplies its value to a second input of summer 37. The calculation device 47 calculates each correction value from the value stored in the appropriate one of memories 45a to 45d by using the same interpolation method as described above with reference to calculation device 41.
The output of summer.37 is supplied to an input of a further summer 48.
The perturbations to the spark advance angle are determined in a perturbation generator 50. The perturbation generator 50-has inputs from the gear ratio calculation device 30 and the fire period calculation device 33 and uses these inputs to determine the frequency of the perturbations to the spark advance angle. The perturbation generator 30 also receives an input from the cylinder synchroniza-tion device 28 and uses this input to synchronize the perturbations with the cylinder whose spark advance angle is to be perturbed. The perturbation output of generator 50 is supplied to a second input of summer 48. The output of summer 48 is supplied to the dwell control device 17 and represents a commanded value for spark advance angle. The dwell device 17 uses the output of the speed calculation device 26 and the position transducer 16 to ensure that ignition sparks occur at the commanded spark advance angle values.
The perturbation generator 50 also provides an output to a slope detector 51 which calculates the slope of engine output speed with respect to spark advance angle for the cylinder whose spark adavance angle is being perturbed. Slope detector 51 and the manner in which the slope is used to update memories 45a to 45d are described below but, before doing this, the perturbation frequency produced by perturbation generator 50 Will be discussed.
Because combustion occurs intermittently in the engine 10, the torque output of engine 10 fluctuates during each ignition cycle. In order to smooth these fluctuations, the flywheel 11 is provided and it converts these fluctuations in torque into small accelerations and decelerations. The resilient nature of shafts 12 and 14 prevent the small accelerations and declerations from causing changes in the speed of drive wheels 15.
1- 1 7k The flywheel 11. shafts 12 and 14, and gearbox 13 form a resonant system. The resonant frequency varies with both the gear ratio established in the gearbox 13 and the load. In a test vehicle, the system was found to have a resonant frequency of 4Hz in second gear and 9Hz in fourth gear.
Every single perturbation in the spark advance angle causes a cha,nge in the output torque produced by engine 10. In view of the resonant nature of flywheel 11 and shafts 12 and 14, the resulting change in speed of the flywheel 11 has two components. The first of these components is a damped ringing response at the appropriate resonant frequency and, in the test vehicle, the ringing response decays with a time constant of 0.3 seconds. The second component is a longer term response which is associated with a smooth non-ringing transition to the new steady state which arises when the change in the resistance forces caused by the change in the vehicle speed matches the change in torque from the engine. With a test vehicle, the second component has a time constant of 7 seconds in fourth gear.
In order to measure the slope of engine output with respect to spark advance angle as quickly as possible, the first component of the response should be used to calculate the slope.
In Figure 3, there is shown a graph of the phase shift between a perturbation wave-form generated by generator 50 and the resulting change in engine speed as a function of perturbation frequenices for fourth gear, second gear and neutral. In neutral. or when the clutch is disengaged, the phase shift is approximately 900 with the system exhibiting a first order response. When in gear, the speed response approaches that of a second order resonant system. with the resonant frequency being dependent upon both the gear ratio and the load. When in gear, the response shown in Figure 3 is the first part of a response mentioned above. As can be seen, the phase shift changes rapidly in the region of the resonant frequency. At frequencies well above the resonant frequency, the phase shift approaches 901 and this is the same as for neutral.
In order to provi de the same result in all gears and in neutral, it is preferred. where possible, that the perturbation frequency produced by thegenerator 50 is greater than the highest resonant frequency of the resonant system formed from flywheel 11, shafts 12.and 14, and gearbox 13. In the case of the test vehicle, this means that the perturbation frequency needs to be at least 10HZ.
There is a further constraint on the perturbation frequency produced by perturbation generator 50. Perturbation in the spark advance angle can only take effect when ignition is initiated in the cylinder whose spark advance angle is to be perturbed. In the case of the four cylinder engine of the present example, this occurs once for each two revolutions of the crankshaft. Consequently. the perturbation frequency cannot take a fixed value and the maximum perturbation frequency is restricted by the speed of the engine. With the four cylinder engine of the present example, a perturbation frequency of 10Hz can only be achieved at speeds equal to or gre ater than i n.- 240Orpm. In the present example. the perturbation generator operates in a first mode in an upper speed range which commences at 240Orpr and in a second mode for engine speeds below 240Orpm.
In the first mode, perturbation generator 50 generates a two level waveform which only acts on the cylinder to be perturbed at a frequency which is equal to or greater than 10Hz and which has a period equal to a whole number of fire periods of engine 10. During the first part of each period of this wave-form, the perturbation generator 50 sets the perturbation value so as to cause a small increase in the spark advance angle and, in the second part of each period, it sets perturbation value so as to cause a small decrease in the- spark advance angle.
more specifically, at engine crankshaft speeds in the range 240Orpm to just below 360Orpm, the perturbation wave-form contains one advanced and one retarded perturbation. Including the engine cylinders whose spark advance angles are not perturbed, each period of the perturbation waveform will contain eight engine fires. In this speed range, the perturbation frequency varies between 10Hz at 240Orpm and 15Hz at just below 360Orpm. Figure 4 shows the perturbation wave-form at 300Orpm and the resulting alternating component of the engine speed.
In the speed range from 36OOrpm to just below 4800rpm, each period of the perturbation wave-form contains three perturbations and a total of twelve engine fires. The perturbation frequency varies from 1OHz at 3600rpm to 13.33Hz at just below 48OOrpm. An example of the perturbation wave-form at 40OOrpm is shown in Figure 5a. As may be seen, this wave-form includes two advanced perturbations and one retarded perturbation for each period of the wave-form. Alternatively, each period of the wave-form could include one advanced perturbation and two retarded perturbations.
In the speed range from 4800rpm to just below 60OOrpm, the perturbation wave-form contains four perturbations and a total of sixteen fires, four in each cylinder of the engine. The perturbation frequency varies between 10H z at 4800rpm to 12.5Hz at just below 60OOrpm. An example of the perturbation wave-form at 60OOrpm is shown in Figure 5b. As may be seen, the perturbation wave-form includes two advanced perturbations and two retarded perturbations for each period.
In this first mode, the perturbation generator 50 operates in the same manner in all gears and in neutral and so does not require knowledge of which particular gear is engaged.
In the second mode, for engine speeds below 2400rpm, it is no longer possible to maintain a minimum eight engine fires within the maximum perturbation period of 100ms corresponding to a minimum perturbation frequency of 1OHz. In view of the phase changes which occur in the region of the resonant frequencies, in the second mode, the perturbations are applied at frequencies well below the resonant frequencies of the various gears.
More specifically, in the second mode, an individual cylinder is perturbed with the following wave-form. At the beginning of each period of the wave-form, an advance perturbation is applied to this 5P 1 spark advance angle, the cylinder is then left unperturbed for a fixed settling time, a retarded perturbation is then applied, and finally the cylinder is left unperturbed for a further fixed settling time. The wave- form is then repeated. An example of this wave-form for an engine speed of 180Orpm is shown in Figure 6 together with the change in the alternating speed component. 'Thus, this wave-form approximates to that in which alternate advance and retarded impulses are applied to an individual cylinder. When in gear, the alternating component of the speed is nearly cosinusoidal in response to the above waveform and the frequency of the speed response is approximately the frequency of the resonant system with the selected gear. The settling time is selected so as to allow adequate decaying of the engine speed fluctuations prior to the next perturbation of the spark advance angle. With the second mode. the perturbation generator 50 requires knowledge, of which gear, if any, is selected.
The slope detector 51 will now be described. Detector 51 includes a measurement window generator 52, an advance half cycle accumulator 53, a retarded half cycle accumulator 54, and a slope calculator 55. The measur ement window generator 52 receives the perturbation wave-form from perturbation generator 50 and also the outputs from cylinder synchronization device 28, gear ratio calculation device 30 and fire period calculation device 33. The accumulators 53 and 54 and the slope calculator 55 receive the output from fire period calculation device 33.
The measurement window generator 52 creates a series of contiguous positive and negative measurement windows and these windows are supplied respectively to the advance and retarded half cycle accumulators 53- and 54.
When the perturbation generator 50 is operating in its first mode. with the engine speed equal to or greater than 240Orpm, each positive measurement window corresponds to the first part of a respective period of the perturbation wave-form and each negative measurement window corresponds to a second part of a respective period of the perturbation wave-form. The measurement windows are shifted in phase with respect to the perturbation wave-form by an amount which is a compromise of the actual phase shifts which occur in the various gears between the perturbation wave-form and the engine response. In the present example. this phase shift is 101 of the perturbation wave-form, not crankshaft angle.
With perturbation generator 50 operating in its second mode, the measurement window generator createg in series a positive measurement window, a negative measurement window, and a further positive measurement window immediately following each advanced perturbation. Following each retarded perturbation, it creates in series a negative measurement window followed by a positive measurement window and a further negative. measurement window. Each measurement window has a duration equal to one half of the resonant period of the resonant system comprising shaft 12 and 14 and gearbox 13 for the selected gear.
The accumulators 53 and 54 are responsible for detecting the speed changes occurs between the positive and negative measurement windows. During each engine cycle severe fluctations in speed occur because of the nature of the combustion process occuring in the individual cylinders. In order to avoid any confusion which could be caused by these flutuations, the engine speed is sensed by measuring the period for whole iz 7 21 engine fire only. Specifically, engine fire periods whose central points fall in the positive and negative measurement windows are accumulated respectively in the advance and retarded half cycle accumulators 53 and 54.
The outputs of accumulators 53 and 54 are used by the slope calculator 55 to calculate the slope of engine output with respect to spark advance. The actual formula for doing this will be described later. For the present, it is to be noted that the formula takes into account the change in engine speed which occurs between a positive measurement window and a negative measurement window and also the change of speed which occurs between a negative measurement window and a positive measurement window. By taking account of both changes of speed, the effects of any acceleration or deceleration of the vehicle are eliminated. Such acceleration or deceleration may be caused, for example. by movement of the accelerator by the driver or by changes in resistance forces or road gradient.
The system further includes a summer 57, a memory 58 which contains dema nded values of the slope. a demand slope calculation device 59, a memory updating device 60 which calculates corrections for the value stored in memories 45a and 45d, and a selector 61 for applying these corrections to appropriate ones of these memories. The slope calculation device 59 and the updating device 60 receive the outputs of the engine speed calculation device 26 and the load transducer 32, and the selector 61 receives the output from the cylinder synchronization device 28.
The output of the slope calculator 55 is applied to one input of summer 57. The memory 58 contains a two dimensional array of demanded slope values, with the abscissa and ordinate of the array representing engine speed and load demand. For most values of engine speed and load demandi the demanded slope is zero and this corresponds to maximum torque output. At certain speeds and load, a non-zero value is stored in memory 58 and there are various reasons for this. For example, in some engines under high load, the spark advance angle which causes maximum output may permit knocking to occur and under some conditions the maximum torque output may be associated with undesirable exhaust emissions. For the prevailing engine speed and load, the slope calculation device 59 calculates the demanded slope value from the value stored in memory 58 by using the interpolation method described above with reference to calculation device 36. This demanded slope value is supplied to a negative input of summer 57. The output of summer 57 represents the error between the actual slope and the demanded slope and this error is supplied to the updating device 60. For each error value received from summer 57, the updating device 60 updates the values stored in an appropriate one of memories 45a to 45d for each of the four array points surrounding the prevailing engine speed and load demand. Specifically, for each array point, a new correction is calculated and stored from the old correction in accordance with the following formula:
new correction = old correction + kl.(weighting factor).(error) his formula corrects the value in the appropriate memory from the error by integration and thus smooths out the noise component in the slope measurements. The constant kl should be chosen so as to be small enough to reduce these noise components to 9 i a low level but large enough to provide rapid convergence to the optimum spark advance angle. The weighting factor given in this f-ormula is the same as the weighting factor used by the calculation device 36.
AS the density of array points in memory 35 is chosen to give a good match with the optimum spark advance characteristics, the information in the slope measurements will represent a mismatch which has occurred between the actual optimum characteristics and those stored in memory 35. It is therefore reasonable to update the memories 45a to 45d by a process which is symmetrical with the interpolation proces-s used to derive the basic spark advance angle. The formula given above achieves this. Furthermore, in this formula the values stored in the memories 45a to 45d are corrected in proportion to the magnitude of each error value and so maximum advantage is taken of the information present in each slope measurement.
The functional blocks shown in Figure 1 are im plemented by a microcomputer system and this system will now be described with reference to Figure 7.
The micro-computer system includes an Intel Corporation 8097 mircocomputer 70 which is connected via a data and address bus 71 to an Intel type 27C64 read only memory 72, a Hitachi type 6116 read/write memory 73 and a Greenwich Instruments type NVR 2 non-volatile, read/write memory 74 (available from Greenwich Instruments Ltd., Sidcup, Kent, England.) the program and look up tables are stored in memory 72, temporary variables are stored in memory 73 and corrections to the spark advance angle are stored in memory 74.
The micro-computer system implements the engine speed calculation device 26r the_fire period calculation device 33. the gear ratio calculation device 30, the cylinder synchronization device 28. the perturbation generator 50, the measurement window generator 52. accumulators 53 and 54. selectors 46 and 61, slope calculation device 55, updating device 60, memories 35, 40, 45a to 45d, 58, calculation devices 36, 41,, 47, and 59,, summers 37, 48 and 57,, part of the dwell control device 17, and the injector control device 22.
The load transducer 32 is connected through a signal conditioning circuit 76 to an analog input at micro-computer 70. The position transducer 16 is connected through a signal conditioning circuit 77 to a high speed input of micro-computer 70. The transducer 27 is connected through a signal conditioning circuit 78 to a digital input of micro-computer 70. Transducer 29 is a rotating magnet that operates a reed relay to produce the 7000 pulses per mile and this transducer is connected through a signal conditioning circuit 80 to a high speed input of micro-computer 70. The two high speed inputs described above are both capable of interrupting the microcomputer 70. A high speed output of micro-computer 70 is connected to the input of a dwell control circuit 81 which, together with part of the program stored in memory 72, performs the function of the dwell control device 17 of Figure 1. The dwell control circuit 81 is a type L497 dwell control circuit supplied by S. G. S. Limited of Phoenix. Arizona, U.S.A. The dwell control circuit 81 initiates the build-up of current in the primary winding of the ignition coil at the correct moment to achieve the required level just before the current is interrupted. The dwell control circuit 81 also limits the coil p current to.the required level during the short period which elapses between achieving the required current and the current being interrupted. The output of the dwell control circuit 81 is connected to the power stage 18 which, as mentioned with reference to Figure 1,, is connected to the input of the coil and distrubutor 19.
Another high speed output of micro-computer 70 is connected to power stage 23 which is connected to the inputs of injectors 24.
The program which controls the micro-computer 70 will now be described.
Within the program, there are three levels of interrupt hierarchy as shown in Figure 8. There is a background level which can be interrupted by the two other interrupt levels. The background level is responsible for the perturbations, measuring the slope of engine output with respect to spark advance angle, and using the slope measurements to update the memories, looking-up the spark advance and air fuel ratio base values, and looking-up the corrections for the spark advance angle. The background level is executed once for each engine fire.
The next interrupt level is a software clock interrupt level which is executed each 2.5ms. This level is capable of interrupting the background level but may be interrupted itself by the third interrupt level. The software interrupt level reads the analog signal from load transducer 32 each 2.5ms and also evaluates which gear, if any, the vehicle is in.
The third and highest interrupt level is the high speed interrupt level. As stated above, the transducers 16 and 29 are connected to high speed inputs of micro- computer 70 and the rising edge of each pulse from either of these transducers generates an interrupt which causes entry to the high speed interrupt level. The high speed interrupt level is responsible for driving the fuel injectors and the coil and distributor, detecting the positions of the flywheel where teeth are missing, and evaluating the ratio between the interrupts caused by transducer 16, which are proportional to engine speed, and the interrupts caused by transducer 29, which are proportional to road speed.
Figures 9, 10 and 11 are flow charts showing the individual modules in the three interrupt levels and Figure 14 shows the data flow between the modules. These Figures will now be described.
Figure 9 is the flow chart for the background level. This level. includes a step SB1 in which a variable TOOTH representing crankshaft position is compared with a constant START TOOTH. This constant is selected to correspond to a position of the crankshaft which allows the other modules of the background level to be executed before the occurrence of the next spark. When equality is found in step SB1, modules IGNLUr SAFIRE, DWELL, AFRLU, FULCON are sequentially executed in steps SB2 to SB6.
The module IGNLU receives variables MAN PRESS and CYL PERIOD representing respectively the manifold pressure and the fire period. The module IGNLU uses the variable CYL PERIOD to generater a variable ENG SPEED which represents the engine speed.
As mentioned above. the memories 72 and 74 contain look-up tables corresponding to the various m C i memories shown in Figure 1. In Figure 12, these lookup tables are indicated by reference numerals 91 to 97 and these look-up tables correspond respectively to memories 40, 35, 58. and 45a to 45d. In each look-up table, values are stored as a 16 x 16 array. In each array the abscissa and ordinate correspond respectively to engine speed and load demand and the abscissa and ordinate are divided into sixteen discrete engine speed and load demand values.
In order to address the tables 91 to 97, the module IGNLU generates address variables SPEED INDEX and LOAD INDEX corresponding respectively to engine speed and load demand. Each of these address variables can assume any one of values 0 to 15 corresponding to the lower 16 discrete engine speed and load demand values. These variables are set to the value corresponding to the engine speed and load demand immediately below the prevaling speed and load demand.
The module IGNLU also calculates four variables MAP INT 0 to3 which represent the four weighting factors described above. The four variables MAP INT 0 to 3 correspond respectively to the four addresses (SPEED INDEXt LOAD INDEX)r (SPEED INDEX + lr LOAD INDEX), (SPEED INDEX, LOAD INDEX + 1), (SPEED INDEX + 1, LOAD INDEX + 1).
The method of calculating the weighting factors MAP INT 0 to 3 for the prevailing speed and load is shown in Figure 13. A main rectangle is formed in the speed/load plane, the corners of the rectangle lying at. addresses (SPEED INDEX,- LOAD INDEX)i (SPEED INDEX + 1, LOAD INDEX), (SPEED INDEX, LOAD INDEX + 1), SPEED INDEX + 1, LOAD INDEX + 1). The main rectangle is divided into four sub-rectangles by drawing the abscissa and ordinate passing through the prevailing speed and load demand, these subrectangles having areas AO, Al, A2, A3. The weighting factor for each of the four array points is calculated by dividing the area of the subrectangle diagonally opposite the array point by the area of the main rectangle. Thus, the weighting factors MAP INT 0 to 3 have the following values:
MAP INT 0 = AO/A MAP INT 1 = Al/A MAP INT 2 = A2/A MAP INT 3 + A3/A where A = AO + A! + A2 + A3.
As shown in Figure 12, the variables SPEED INDEX, LOAD INDEX and MAP INT 0 to 3 are supplied to a set of sub-modules LOOK UP 1 to LOOK UP 4.
The module IGNLU calls the sub-module LOOK.UP 2 which calculates the basic spark advance angle as a variable SPK ANG BASE by the interpolation process described above. This variable is supplied to the module SAPIRE.
Returning back to Figure 9, the module SAFIRE calculates the perturbations,, the corrections to the spark advance angle, and up-dates the look-up tables 94 to 97 in which the correction values are stored. The module SAFIRE will be described in detail below.
The module DWELL determines the crankshaft positions corresponding to the ignition coil turn on and turn off times.
The module AFLRU calls the sub-module LOOK UP 1 which evaluates a variable FUEL DEMAND representing the fuel injector pulse on time.
t 7 j S z The module FULCON determines the crankshatr- ' positions corresponding to turn on and turn off times of the fuel injectors.
Referring now to Figure 10, there is shown the flow chart for the software interrupt level. This module includes a main module TIMCNT which sequent-ially calls modules ANCOND and GEARDT. The module TIMCNT is executed every 2.5ms. The module ANCOND is responsible for reading the analog signal from the load transducer and generating the variable MAN PRESS. The module GEARDT determines which geart if any. is currently engaged.
Figure 11 shows the flow chart for the high speed interrupt level. After entering this module,, in a step SH1 a check is made Lo determine whether the interrupt has been generated by the crankshaft position transducer or the road speed transducer. If the interrupt has been generated by the road speed transducer, in a step SHS a module RDINT is. called before making a return. The function of RDINT is to output a variable equal to the ratio of the time intervals between the interrupts caused by the crankshaft position transducer and the road speed transducer. If the interrupt is generated by the crankshaft position transducer. in a set of steps SH2 to SH4 modules CLFIRE, IFIRE and MISDET are called.
The module CLFIRE generates a variable COIL which causes the high speed output connected to dwell circuit 81 to go high and low thereby causing the ignition coil to be turned on and off at the crankshaft angles determined by the module DWELL. The module IFIRE generates a variable INJECTOR which causes the high speed output connected to the power stage 23 to go high and low so as to turn the fuel injectors on and off at the crankshaft angles determined by FULCON.
The module MISDET generates the variable TOOTH representing crankshaft position. In order to do this. the period between successive pulses from the crankshaft position transducer are measured and the two positions at which teeth are missing are also detected. Upon detecting one of these positions, the variable TOOTH is reset to zero and the value of the digital input corresponding to the camshaft transducer 27 (Figure 1) is checked. This digital input should be high upon detecting the crankshaft position at which a tooth is missing and which corresponds to the top dead centre position of cylinder 1. The value of this digital input is placed in the variable SENSOR. MISDET also accumulates the time that has occurred since 3011 after the top dead centre position in the most recent cylinder to fire. Each time a piston reaches the 300 after top dead centre position, the module MISDET places the elapsed time since the last occurrence of 300 after top dead centre into the variable CYL PERIOD. This variable represents the fire period.
The module SAFIRE will now be described in more detail with reference to Figures 14 to 21.
The module SAFIRE is executed once for each fire and generates the perturbation wave-form, evaluates the slope of engine output with respect to spark advance angle,, compares this measured slope with the target slope to determined the slope error,, uses the slope error to update the look-up tables containing the corrections of the spark advance angle, and evaluates each actual spark advance angle as the sum of the basic spark advance angle, the perturbation and the correction to the spark advance angle. The actual spark advance angle is passed as a variable SPK ANG to the module DWELL.
J The overall flow chart for the module SAFIRE is shown in Figure 14. Some of the individual steps are shown in greater detail in subsequent Figures and these will be described in more detail after a preliminary overview of Figure 14.
After entering the module SAFIRE, in a step SAll it is determined w. hether to change the cylinder whose spark advance angles are to be perturbed. In order to do this, a check is made to see if a variable COUNTER is less- than a constant MAX NO FIRES. The variable COUNTER is incremented with each engine fire and the constant MAX NO FIRES represents the number of engine fires during which -the spark advance angle of each cylinder is Perturbed. If step SA1 is true, a step SA2 is executed and this step changes the cylinder whose spark advance angle is to be perturbed. In step SA2,the variables COUNTER is reset to zero and a flag is set to suspend the evaluation of the slope until sufficient information relating to the new perturbation wave-form is available.
In a step SA3. a variable CYLINDER is updated so as to indicate the next cylinder to be fired. In step SA4, the sub-module LOOK UP 4 is called and the correction to the spark advance angle is evaluated and stored as a variable IGN CORRECTN. This variable is then added to the basic spark advance angle SPK ANG BASE and stored as the variable SPK ANG. - Step SAS checks whether the engine speed ENG SPEED is greater than 60Orpm. In this example, correction values are not calculated at engine speeds below 60Orpm. If step SAS is true, SA6 checks whether the variable CYLINDER is synchronized to the true cam shaft position. If either of steps SAS or SA6 is false, a step SA12 is executed which sets a reset f lag. As will shortly be explained, two different algorithms are used in this module and this reset flag causes certain variables in the selected algorithm to be initalised. After completing step SA12, the module terminates.
If both steps SA5 and SA6 are true. a step SA7 is executed. This checks whether a gear change has taken place. If a gear change has taken place, step SA12 is executed. If no gear change has taken place, a step SA8 evaluates certain parameters which depend upon the gear presently engaged. In the present example. these parameters are u.sed by the algorithm which operates at engine speeds less then 240Orpm. These parameters comprise the resonant frequency (which is a function of the gear ratio) and the settling time which is allowed to elapse after each perturbation.
As stated with reference to Figure 1, the perturbation wave-form and the slope measurements are made in two modes. The first mode is for a higher engine speed range which starts at 240Orpm and the second mode is for lower engine speeds below 240Orpm. Step SA9 checks whether the variable ENG SPEED representing engine speed is greater than a variable FAST SPEED. If step SA9 is true, a step SA10 is executed and this step performs the algorithm for generating the perturbation wave-form and makes the slope measurements in the higher engine speed range. If step SA9 is false,, step SAll is executed and this step performs the algorithm which generates the perturbation wave-form and the makes the slope measurement in the lower speed range. When operating in the first mode in the upper speed rangey the variable FAST SPEED is set to 2430rpm and in the second J -1 1 t 1 p i j mode in the lower speed range this variable is set to 2490rpm. This provides sufficient hysteresis to prevent alternating between the two algorithms under what should be steady state conditions. These two algorithms will be described in detail.
The flow chart for the higher engine speed algorithm corresponding to step SA10 is shown in Figure 15. After entering this algorithm, step SA16 checks whether it is. necessary to reinitialise the variables used by the algorithm. Reinitialising the variables allows the algorithm to start generating a new perturbation wave-form whilst suspending evaluation of the slope until there is sufficient information available relating to the new perturbation wave-form. The variables are reinitalised whenever the algorithm has been suspended because the reset flag has been set in step SA12 or because the last execution of module SAFIRE was implemented usingthe lower engine -speed algorithm. The variables are reinitialised in step SA17.
Step SA18 measures the slope and updates the appropriate look-up table containing the correction values. Step SA18 will be described in more detail later.
Step SA19 checks whether the cylinder that will implement the spark advance angle evaluated in this pass through the module SAFIRE is the same as the cylinder whose spark advance angle is to be perturbed. There is a one fire period delay between evaluating and implementing the spark advance angle. Consequently, step SA19 checks whether the variable CYLINDER is equal to the value associated with the cylinder immediately before the cylinder to be perturbed. It is necessary 1 to include this one fire period delay because, at higher engine crankshaft speedst the various modules which form the background level will not be executed before the earliest possible angle at which a spark can be commanded. This angle is 700 before the top dead centre (TDC). Thus. the spark advance angle evaluated in one execution of SAFIRE will not be implemented until after the next execution of SAFIRE as shown in Figure 16. The module DWELL ensures that there is this delay of one fire period.
If step SA19 is false,, a return is made. if step SA19 is truei'the program continues with a step SA20.
Step SA20 checks whether a new cycle of the perturbation wave-form should be started. The perturbation frequency is required to be equal to or greater than 1OHz. Also, each half of the perturbation wave-form should include an integral number of complete engine cycles so as to permit a perturbation to occur. Step SA20 checks whether the next spark of the cylinder to be perturbed will occur after 100ms since the start of the current cycle of the perturbation wave-form. By looking ahead in this manner, it is guaranteed that the perturbation frequency never falls below 1OHz. If step SA20 is true and a new cycle is required,, steps SA21, SA22 and SA23 are executed sequentially. Step SA21 records the time, by the software clock, at which the new cycle is to start. Step SA22 sets the flag to indicate that an advanced perturbation is required.
Step SA23 evaluates the commencement time of the positive measurement window corresponding to the new cycle of the perturbation wave-form. As already stated with reference to Figure 1. there is a phase shift t t rl P between the perturbation wave-form and the engine speed response. In view of this. a phase shifti which in the present example is 100, is introduced between the commencement time of the positive measurement window and the beginning of the new cycle of the perturbation wave-form. Figure 17 indicates how the commencement time is derived. Consider a perturbation wave-form being started at the point marked wA. This will result in an advanced perturbation being made to the spark advance angle at the point mark 'B. Since a cylinder can only generate positive torque after the top dead centre position, the torque resulting from the spark at point B starts approximately at the top dead centre position indicated at point Cw. If the phase shift is then added. it will be seen that the speed response will start at location wDw. In the present example,, where the phase shift is 100, point wDw is still in the same cylinder. With a greater phase shift point wD" could be in a later cylinder. Thus. point D" represents the start of the positive measurement window. (The remainder of Figure 17 will be described later).
If step SA20 is false, then step SA25 is executed. This,step checks whether the polarity of the perturbation should be changed. if step SA25 is true, steps SA26 and SA27 are executed sequentially. Step SA26 sets a flag to indicate that a retarded perturbation is required and step SA27 evaluates the commencement time of the negative measurement window. This is performed in a similar manner to that already described for step SA23.
If both steps SA20 and SA25 are false, the same perturbation is used as was used during the previous execution of SAFIRE.
Step SA24 modifies the spark advance angle evaluated in step SA4 with the desired perturbation. A return is then made.
If the result of step SA19 is false, step SA24 is omitted as no perturbation is required.
Figure 18 shows the flow chart for performing the slope measurement of step SA18. As mentioned previously with reference to Figure 1, the slope measurements are made by accumulating for each measurement window the fire periods whose central points fall within that window. Before describing Figure 18 in detail, it will be explained why the central point of each fire period is used to associate the fire period with a particular measurement window and then the equations which are used to calculate the slope will be described.
Clearly, some method must be used to associate each fire period with a particular measurement window. Unfortunately, the fire periods are referenced to the crankshaft position whilst the measurement windows are referenced to time. As can be seen from Figure 17, the fire period corresponds to the time which elapses between 300 after top dead centre (ATDC) of one cylinder and 3011 ATDC of the next cylinder. As mentioned previously. the fire period is measured over 1800 of crankshaft movement to filter out high frequency speed fluctuations. The module SAFIRE is not executed until at least 400 ATDC. Therefore. the value of the fire period available to it is associated primarily with the previous cylinder. Since the module SAFIRE is executed only once for each spark, and the fire period is associated with the time which elapses during 1800 of crankshaft movement, it is necessary to 11 jp make some approximations in deciding how to associate the fire period with a particular measurement window. In this example, it is assumed that each available fire period measurement can be associated with a time which occurs at 1200 ATDC of the cylinder in which it primarily occurs. This time is indicated as point NEw in Figure 17. -This is equivalent to assuming linear changes in speed -between consecutive positions which are 3011 ATDC. Whilst this may not be entirely accurate,, it represents the best approximation which can be made with the limited sampling of engine speed. It is for this reason that the mid-point of each fire period is used in associating that fire period with a particular measurement window. The actual step of associating each fire period with a particular measurement window is made during the execution of SAFIRE following the particular mid-point of a fire period. Thus, for the fire period having the mid-point 'E in Figure 17. the association is performed at point "F.
1? One way of evaluating the slope would be to calculate the average engine speed during each measurement window and use these results to calculate the change of engine speed occurring between measurement windows. The value for the slope could then be obtained by subtracting the change of engine speed which occurs between a negative and positive measurement window from the change of speed which occurs between a positive and negative measurement window. Each such calculation of engine speed w.ould require a division of the number of fires occurring during the measurement window by the accumulated fire periods. Such a division requires a substantial amount of computing time. In order to avoid this decision, the slope is calculated in the following manner.
The small changes in engine speed which occur between the positive and negative measurement windows are proportional to minus the change in the average engine fire period during the two windows. Thus, an indication in change of speed could be obtained by calculating the change in the average fire period. Howeveri the constant of proportionality increases with the square of the engine speed and so the sensitivity u.sing this method would fall rapidly with increasing engine speed. This would result in the correction table being updated too slowly at high speeds and could result in instability at low engine speeds.
This variation in sensitivity may be avoided by multiplying the change in average fire period by the square of the engine speed. The square of the engine speed is approximately proportional to the product of the number of fires occuring in the first part and the number of fires occuring in the second part of each cycle of the perturbation wave-form. Thus, the change in engine speed between a positive measurement window and a negative measurement window may be expressed as follows:
hn4WIge en inj spe,,ed k NAl.NR2 TA1/NA1 - g in E k i t t#, NA r t ', 1 TR,2/NRi) here is a constan NA1 and/NA2 ar number of engine fires occuring in consecutive positive and negative measurement windows. and TA1 and TR2 are the accumulated fire periods for these two windows.
This expression simplifies to:
change in engine speed = k. (TAl.NR2.- TR2.NA1) In order to make a slope measurement, in the present example, the engine fire periods occurring in 1 1 c ti tr two successive positive measurement windows are accumulated as variables TA1 and TA2, the fire period occurring in the intermediate negative measurement window is accumulated as variable TR3, the numbers of fires occuring in the two consecutive positive measurement windows are accumulated as variables NA1 and NA31, and the number of fires occuring in the intermediate negative measurement window is accumulated as the variable NR2. These Variables are then combined to calculate the slope T' using the following equations:
S1 = (NA1.TR2) - (NR2.TA1) S2 = (NR2.TA3) - (NA3.TR2) T' = S2 - S1 The use of three measurement windows eliminates accelerations and decelerations as described above. Whilst the slope T' uses three measurement windows, it can be up-dated at the end of each two measurement windows. The calculation of Sl is performed at the first fire within a positive measurement window whilst S2 and T' are evaluated at the first fire within a negative measurement window. During the remaining fires, if any, of the positive and negative measurement windows, appropriate ones of variables NA1, NA2, NA3, TA1, TR2, TA3 are accumulated.
Referring now to Figure 18. step SA30 checks if the fire is the firstfire of a positive measurement window. If this is true, in a step SA31 a flag is set to indicate the commencement of accumulating the fires and fire periods for the positive measurement window and the actual accumulation starts in a step SA32.
Step SA33 checks if there is sufficient information to calculate S1. Providing there is sufficient information, S1 is calculated in step SA34 and a return is then made.
If step SA30 is false. in a step SA35 a check is made to see if the present fire is the first fire in a negative measurement window. If step SA35 is true,, step SA36 sets a flag to start accumulating the fires and fire periods for the negative measurement window and these accumulations then start in a step SA37. Step SA38 checks if there is sufficient information to calculate S2 and V. Steps SA33 and SA38 will be true except for the initial positive and negative measurement windows of the first cycle of the new perturbation wave-form. If step SA38 is true, in steps SA39 and SA40. S2 and T' are calculated.
In the present example, the corrections to the spark advance angles are not stored until the engine temperature is greater than 800C. In step SA41,.the temperature is checked. Providing the engine temperature is warm enough, in a step SA42,, the new corrections to the spark advance angle are evaluated and stored. Referring to Figure 12,, a sub-module MAPSTORE is called to do this.
If step SA35 is false. step SA43 checks if the present fire belongs to a positive measurement window. If step SA43 is true, in a step SA44 the fires and fire periods are accumulated for the positive measurement window. If step SA43 is false,, in a step SA45,, the engine fires and fire periods for the negative measurement window -are accumulated. After step SA44 or step SA45, a return is made.
The flow chart for the algorithm for perturbing the spark advance angle and measuring the slope at 1 i R i A lower engine speeds is shown in Figure 19. Before describing this flow chart in detail, a general explanation of this algorithm will be given.
At the beginning of each perturbation cycle. the spark advance angle of the cylinder to be perturbed is given an advanced perturbation for a single fire. The cylinder is then left unperturbed for a fixed settling time, a retarded perturbation is then given to the cylinder for a single fire. and finally the cylinder Ls left for a further fixed settling time. This is shown in Figure 6. All the other cylinders are left unperturbed._ This perturbation wave-form approximates to that in which alternate advance and retarded impulses are applied to the spark advance angle of the cylinder. When the vehicle is in gear, the speed response approximates to that of a cosinusoid at a frequency dependent upon the selected gear and load. The settling time is selected so as to allow adequate decaying of the fluctuations in the engine speed prior to the next perturbation.
A simplified representation of the perturbation wave-form and the resulting changes in engine speed are shown in Figure 20. The speed response has been truncated after the first three peaks of the cosinusoid. In order to measure the slope,, after each perturbation three measurement windows are established. The duration of each of these windows is a fraction of the resonant period of the resonant system which has already been discussed with Figure 1. Thus, the first measurement windowAs equal to -one quarter of the resonant period and the second and third windows are each equal to one half of this period. During each measurement window. the number of fires and the total fire periods are accumulated. AS with the.
algorithm which is used at higher engine speeds, each fire period is associated with t-he time equivalent to 120cl after top dead centre of the cylinder over which it primarily occurs. This time is used to decide whether a fire period falls within the first, second, or third measurement window or the settling time.
The fire periods falling in the first, second and third measurement windows are accumulated as variables Tli T2. and T3. The numbers of fires occuring in these three windows are accumulated as variables N1, N2 and N3. In addition, a variable SIGN has a value of unity for a retarded perturbation and a value of minus unity for an advance perturbation. The slope T' is then calculated as follows:
S1 = SIGN.(2.[(T1.N2) - [T2.N1H S2 = SIGN.[(T2.N3) - (T3.N2)l T' = S2-Sl S1 ls calculated in the first fire within the third measurement window and includes a factor of 2 to compensate for the fact that the first measurement window is only one half of the duration of the other two windows. The calculation of S2 and T' is performed during the first fire after the end of the third measurement window and equivalent to the first fire within the settling time.
In order to evaluate the duration of each measurement windowl the algorithm uses knowledge of the selected gear and looks at the corresponding resonant frequency.
Referring now specifically to Figure 19, the algorithm commences with a step SA50 which checks if 4 9 53 i the algorithm variables should be reinitialised. if step SA50 is true, the variables are reinitialised in step SA51. The algorithm commences with an advance perturbation.
In a step SA52, a check is made to determine if the cylinder whose spark advance angle has been evaluated during the present pass through the module SAFIRE is the same as the cylinder whose spark advance angle is to be perturbed. If step SA52 is true, step SA53 checks if a perturbation is due. As explained above, the cylinder is perturbed only once for each evaluation of TI. If the result of step SA53 is true, steps SA54, SA551 SA56 and SA57 are executed.
Step SA54 records the time at which the perturbation decision took place. Step SA55 records the time at which the first measurement window associated with this perturbation should commence. This is to compensate for the delay between the calculation of a spark advance angle and implementing the spark advance angle as described above with reference to the algorithm which is used. at higher engine speeds. With the present algorithm, it is assumed that the speed response is cosinusoidal and so no further phase shift is introduced. Step SA56 sets a flag to indicate that a perturbation has occurred and changes the sign of the flag which controls the polarity of the perturbation. In step SA57, the spark advance angle is modified so as to include the perturbation.
After step SA57, or after either of steps SA52 or SA53 if these steps are false,, the program continues with a step SA58. In step SA58, as will be described with reference to Figure 21, the slope is evaluated. After step SA58, the algorithm terminates.
Referring now to Figure 21, there is shown the measurement of the slope indicated as step SA58 in Figure 19. The measurement commences with step SA60 in which it is determined if the vehicle is in gear. If the vehicle is in gear,, in a step SA61, it is determined if the present fire falls within the first window. If it doesi in a step SA62. the variables Tl and N1 are accumulated.
If step SA61 is false,, in a step SA63 it is determined if the present fire is the second measurement window. If it is, in a step SA64 the variables T2 and N2 are accumulated.
If step SA63 is false,, in a step SA65 it is determined if the present fire falls within the third window. If it does. in a step SA66 it is determined if this is the first fire of the third measurement window. If step SA66 is true,, in a step SA67 the variable S1 is evaluated as set out above. Afte r step SA67, or after step SA66 if this step is false. in a step SA68 the variables T3 and N3 are accumulated.
If step SA65 is false, in a step SA70 it is determined if the present fire falls within the settling time. If it does, it is determined in a step SA71 if this is the first fire of the settling time. If it is, in steps SA72 and SA73, S2 and the slope T' are evaluated. The value of T' is used in Step SA73 to store the correction values in the appropriate look-up table. Thus, consecutive values of T' have been evaluated from consecutive advanced and retarded perturbations. If either step SA70 or SA71 is false,, the measurement terminates.
If step SA60 is false,, either the gearbox will t Z 4- 1 4 be in neutral or the clutch will be disengaged. Consequently, a non- sinusoidal speed response is expected in which the speed increases where the perturbation is in the direction of improved torque or decreases if the perturbation in the direction away from peak torque. In step SA74, the slope is calculated from the change in speed following each perturbation.
The simplified adaptive control system shown in Figure 22 comprises an input control device 100- which controls an input parameter of an internal combustion engine 102. The engine 102 has a plurality of cylinders, indicated generally at 104. A cylinder combination selector 106 selects in turn different combinations of cylinders, each combination comprising at least cylinder.
A perturbation generator 108 perturbs the input control parameter in accordance with a first mode for an- upper engine speed range and a second mode for a lower engine speed range. A slope detector 110 receives an ENGINE OUTPUT signal and measures, in accordance with first and second modes corresponding to the upper and lower speed ranges, respectively, the slop of engine output with respect to the perturbed input parameter. The slope values corresponding to each selected cylinder combination are supplied to the input control device 100 for controlling operation of the engine.
The embodiment shown in Figure 23 comprises a simplified adaptive control system for controlling an engine 112. An input control device 114 controls an engine parameter, which is perturbed by a perturbation generator 116. A slope detector 118 receives an ENGINE L OUTPUT signal and measures the slope of engine output with respect to the perturbed parameter so as to control the input parameter of the engine.
The perturbation generator 116 applies a perturbation to the parameter,, permits a period to elapse without perturbing the parameter,, applies a perturbation of opposite polarity to the parameter, and permits a further period to elapse without perturbing the parameter. The slope detector 118 creates a series of measurement windows following each perturbation of the perturbed parameter. Each series of measurement windows occupies part of the interval between successive perturbations, and the slope is calculated from the change in engine speed between adjacent measurement windows.
Various modifications to the example given above are envisaged and these will now be discussed.
In the example, the spark advance angle of each cylinder in turn is perturbed. By way of modification, the cylinders could be arranged into a set of combinations and the spark advance angle of each combination could then be perturbed in turn. For example,, for a four cylinder engine,, the cylinders could be divided into four sets of three cylinders and each of these sets is then perturbed in turn.
Although in the example given above, the spark advance angle is perturbed and corrections are calculated with the spark advance angle. neither the perturbation nor the corrections are limited to this particular parameter. For example, the spark advance angle could be perturbed and corrections applied to the air/fuel ratio or the spark advance angle could be 1 4 -V perturbed and the slope measurements used to apply corrections to both the spark advance angle and th air/fuel ratio.
Examples of other parameters which could be perturbed or corrected include injection timing in a diesel (compression ignition) engine and, in engines in which part of the exhaust gas is recirculated with the intake air, the ratio of exhaust gas to intake air.
1

Claims (35)

CLAIMS.
1. An adaptive control system for a multi-cylinder internal internal combustion engine, said control system comprising: means for establishing a plurality of combinations of cylinders of said engine and for selecting each combination in turn, each combination including at least one cylinder; a perturbation generator for perturbing an engine control parameter (hereinafter referred to as "said perturbed parameter') of the currently selected cylinder combination, said perturbation generator operating in a first perturbation mode in an upper engine speed range and in a second perturbation mode in a lower engine speed range; means for measuring the slope of engine output with respect to said perturbed parameter, said measuring means operating in first and second measurement modes corresponding respectively to said first and second perturbation modes; and means for using said slope to apply a correction to at least one engine control parameter.
2. An adaptive control system for an internal combustion engine, said control system comprising: a perturbation generator for perturbing an engine control parameter, said perturbation generator applying a perturbation to said perturbed-parameter, permitting a period to elapse without perturbing the perturbed parameter, applying a perturbation of opposite polarity to said perturbed parameter, and permitting a further period to elapse without perturbing the perturbed parameter; means for measuring the slope of engine output with respect to said perturbed parameter, said 1 J.
a, 11 II measuring means creating a series of measurement windows following each perturbation of the perturbed parameter, each series of measurement windows occupying part of the interval between successive perturbationst and calculating said slope from the change in engine speed between adjacent measurement windows; and means for using said slope to apply a correction to at least one engine control parameter.
3. An adaptive control system for a multi-cylinder internal combustion engine, said control system comprising: means for establishing a plurality of combinations of cylinders of said. engine and for selecting each combination in turn, each combination including at least one cylinder; a perturbation generator for perturbing an engine control parameter (hereinafter referred to as 'said perturbed parameterw) of the currently selected cylinder combination, said perturbation generator operating in a first perturbation mode in an upper engine speed range and in a second perturbation mode in a lower engine speed range; in said first perturbation mode. said perturbation generator generating a periodic perturbation wave-form and applying a perturbation to said perturbed parameter during the first part of each period of the perturbation wave-form and a perturbation of opposite polarity to said perturbed parameter during the second part of each period of the perturbation wave-form; in said second perturbation mode, said perturbation generator applying a perturbation to said perturbed parameter, permitting a period to elapse without perturbing said perturbed parameter, applying a perturbation of opposite polarity to said perturbation parameter, and permitting a further period to elapse without perturbing said perturbation parameter; means for measuring the slope of engine output with respect to said perturbed parameter, said measuring means operating in first and second measurement modes corresponding respectively to said first and second perturbation modes; in said first measurement mode, said measuring means creating a series of contiguous first and second measurement windows associated respectively with said first and second parts of the perturbation wave-form, each measurement window lagging its respective part of the perturbation wave- form by a predetermined phase shift, and calculating said slope from the change in engine speed between adjacent measurement windows; in said second measurement mode, said measuring means creating a series of measurement windows following each perturbation of said perturbed parameter, each series of measurement windows occupying part of the interval between successive perturbations-, and calculating said slope from the change in engine speed between adjacent measurement windows; and means for using said slope to apply a correction to at least one engine control parameter (each of which is hereinafter referred to as wa corrected parameter") associated with the selected cylinder combination.
4. A system as claimed in claim 3 for a multi-cylinder engine connected to a resonant system comprising a flywheel, resilient shafting, and a gear arrangement and having a particular resonant frequency for each gear ratio established by said gear arrangement in which, in said first perturbation mode, the frequency of said wave-form is greater than the highest resonant frequency of said resonant system and, in said second measurement model each measurement window is equal to a whole number of quarters of the prevailing reasonant period of said resonant system.
IR 5- I 1 1 51
5. A system as claimed in claim 3 or 4, in which. in both the first and second measurement modes, said measuring means accumulates, during each measurement window, the fire periods whose central points fall within the measurement window to produce a total fire period for that window, and uses said total fire periods to calculate said slope.
6. A system as claimed in claim 4 or in claim 5 when dependent on claim 4, arranged to operate in a third measurement mode when the gear arrangement is in neutral or a clutch for disengagement the engine disengaged.
is
7. A system as claimed in any one of claims 1 and 3 to 61 in which each cylinder combination comprises a single cylinder of the engine.
8. A system as claimed in any one of claims 1 and 3 to 6, in which each cylinder combination comprises all the cylinders except for one of the engine.
9. A system as claimed in any one of the preceding claims, in which the perturbed parameter is an ignition timing parameter.
10. A system as claimed in claim 9, in which there is a single corrected parameter and both the pert:urbed parameter and the corrected parameter are the ignition timing parameter.
11. A system as claimed in claim 9. in which there is a single corrected parameter in the form of an engine fuel control parameter.
12. A system as claimed in claim 9, in which there are two corrected parameters in the form of the ignition timing parameter and an engine fuel control parameter.
13. A system as claimed in claim 11 or 12, in which the engine fuel control parameter is air/fuel ratio.
14. A system as claimed in claim 11 or 12, in which the engine fuel control parameter is exhaust gas recirculation ratio.
15. A system as claimed in any one of claims 9 to 14, in which the engine is a spark ignition engine and the ignition timing'parameter is spark advance.
16. An adaptive control system substantially as hereinbefore described with reference to aA as illustrated in Figures 1 to 21 of the accompanying drawings.
17. An adaptive control system substantially as hereinbefore described with reference to and as illustrated in Figure 22 of the accompanying drawings.
18. An adaptive control system subsantially as hereinbefore described with reference to and as illustrated in Figure 23 of the accompanying drawings.
19. A method of controlling a multi-cylinder internal combustion engine, said method comprising: establishing a plurality of combinations of cylinders of said engine and selecting each combination in turn, each combination including at least one cylinder; perturbing an engine control parameter (hereinafter referred to as wsaid perturbed parameterw) of the currently selected cylinder combination, in accordance with a first perturbation mode in an upper ly- 4 A7 engine speed range and a second perturbation mode in a lower engine speed range; measuring the slope of 'engine output with respect to sai.d perturbed parameter, in accordance with first and second measurement modes corresponding respectively to said first and second perturbation modes; and using said slope to apply a correction to at least one engine control parameter.
20. A method of controlling an internal combustion engine, said control system comprising: perturbing an engine control parameter (hereinafter referred to as "said perturbed parameter"), by applying a perturbation to the perturbed parameter,. permitting a period to elapse without perturbing the perturbed parameter, applying a perturbation of opposite polarity to said perturbed parameter, and permitting a further period to elapse without perturbing the perturbed parameter; measuring the slope of engine output with respect to said perturbed parameter, by creating a -series of measurement windows following each perturbation of the perturbed parameter, each series of measurement windows occupying part of the interval between successive perturbations, and calculating said slope from the change in engine speed between adjacent measurement windows; and using said slope to apply a correction to at least one engine control parameter.
21. A method of controlling a multi-cylinder internal combustion engine. said method comprising: establishing a plurality of combinations of cylinders of said engine, each combination including at least one cylinder; selecting each combination in turn; I in an upper engine speed range, perturbing an engine control parameter (hereinafter referred to as "said perturbed parameter") of the currently selected cylinder combination by generating a periodic perturbation wave- form and applying a perturbation to said perturbed parameter during the first part of each period of the perturbation wave-form and a perturbation of opposite polarity to said perturbed parameter during the second part of each period of the perturbation wave-form; in a lower engine speed range, perturbing said perturbed parameter of the currently selected cylinder combination by applying a perturbation to said perturbed parameter,, permitting a period to elapse without perturbing said perturbed parameter, applying a perturbation of opposite polarity to said perturbation parameter,, and permitting a further period to elapse without perturbing said perturbed parameter; in said upper speed range, creating a series of contiguous first and second measurement windows associated respectively with said first and second parts of the perturbation wave-form,, each measurement window lagging its respective part of the perturbation wave-form by a predetermined phase shift; in said lower speed range, creating a series of measurement windows following each perturbation of said perturbation parameter, each series of measurement windows occupying part of the interval between successive perturbations; in both said upper and lower speed ranges, calculating the slope of engine output with respect to said perturbed parameter from the change in engine speed between adjacent measurement windows; and using said slope to apply a correction to at least one engine control parameter associated with the currently selected cylinder combination.
V 0 4p 1
22. A method as claimed in claim 21 for controlling a multi-cylinder engine connectad to a reasonant system comprising a flywheelf resilient shafting, and a gear arrangement and having a particular resonant frequency for each gear ratio established by said gear arrangement in which, in said first perturbation mode, the frequency of -said wave-form is.greater than the highest resonant frequency of said resonant system and, in said second measurement mode,. each measurement window is equal to a whole number of quarters of the prevailing reasonant period of said resonant system.
23. A method as claimed in claim 21 or 22, in which. in both the first and second measurement modes,, the fire periods whose central points fall within the measurement window are accumulated during each measurement mode to produce a total fire period for that window, and said total fire periods are used to calculate said slope.
24. A method as claimed in claim 22 or in claim 23 when dependent on claim 22,, including using a third measurement mode when the gear arrangement is in neutral or a clutch for disengaging the engine is disengaged.
25. A method as claimed in any one of claims 19 and 21 to 24, in which each cylinder combination comprises a single cylinder of said engine.
26. A method as claimed in any one of claims 19 and 21 to 24,, in which each cylinder combination comprises -all the cylinders except for one of said engine.
27. A method as claimed in any one of claims 19 to 26# including establishing the value of the or each corrected parameter prior to correction as a function r of the speed of the engine and the load to which the engine is subjected.
28. A method as claimed in any one of claims 19 to 27, in which the perturbed parameter is an ignition timing parameter.
29. A method as claimed in claim 28, in which there is a single corrected parameter and both the perturbed parameter and the corrected parameter are the ignition timing parameter.
30. A method as claimed in claim 28 in which there is a single corrected parameter in the form of an engine fuel control parameter.
31. A method as claimed in claim 28, in which there are two corrected parameters in the form of the ignition timing parameter and an engine fuel control parameter.
32. A method as-claimed in claim 30 or 31, in which the engine fuel control parameter is air/fuel ratio.
33. A method as claimed in claim 30 or 31, in which the engine fuel control parameter is exhaust gas recirculation ratio.
34. A method as claimed in any one of claims 28 to 33, in which the engine is a spark ignition engine and the ignition timing parameter is spark advance angle.
35. A method of controlling an internal combustion engine substantially as hereinbefore described with reference to the accompanying drawings.
Published 191VE tt Tne Patent Office. State House. 6671 High Holborn. London WC1R 4TP. Flarther. copies may be obtained from The Patent Office. Sales Branch, St Mary Cray, Orpingwn. Kent J3R,9 3RD. Printed by Multiplex techniques ltd. St Mary Cray, Kent. Con, 1/87. Sales Branch. St MarNr Cra7,,. Orpingwn. Kent BR5 3RD. Printed by Multiplex techniques ltd. tit Mary uray, nent,. uon, itts t.
1
GB08800606A 1987-01-14 1988-01-12 Adaptive control system for internal combustion engine Pending GB2200478A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB878700758A GB8700758D0 (en) 1987-01-14 1987-01-14 Adaptive control system

Publications (2)

Publication Number Publication Date
GB8800606D0 GB8800606D0 (en) 1988-02-10
GB2200478A true GB2200478A (en) 1988-08-03

Family

ID=10610658

Family Applications (2)

Application Number Title Priority Date Filing Date
GB878700758A Pending GB8700758D0 (en) 1987-01-14 1987-01-14 Adaptive control system
GB08800606A Pending GB2200478A (en) 1987-01-14 1988-01-12 Adaptive control system for internal combustion engine

Family Applications Before (1)

Application Number Title Priority Date Filing Date
GB878700758A Pending GB8700758D0 (en) 1987-01-14 1987-01-14 Adaptive control system

Country Status (4)

Country Link
US (1) US4841933A (en)
EP (1) EP0275168A3 (en)
JP (1) JPS63259140A (en)
GB (2) GB8700758D0 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5884603A (en) * 1996-09-30 1999-03-23 Nissan Motor Co., Ltd. Torque down control apparatus for an engine

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8721688D0 (en) * 1987-09-15 1987-10-21 Lucas Ind Plc Adaptive control system
GB8810878D0 (en) * 1988-05-07 1988-06-08 Lucas Ind Plc Adaptive control system for i c engine
DE4009285A1 (en) * 1989-08-23 1990-12-20 Audi Ag METHOD FOR CYLINDER SELECTIVE MONITORING OF ENERGY REVENUE IN A MULTI-CYLINDER INTERNAL COMBUSTION ENGINE
US5140961A (en) * 1990-01-12 1992-08-25 Nissan Motor Co., Ltd. System and method for self diagnosing an engine control system
US5024222A (en) * 1990-02-21 1991-06-18 Siemens-Pacesetter, Inc. Hemodynamically rate responsive pacemaker and method of automatically adjusting the escape and A-V intervals
US5168853A (en) * 1992-04-06 1992-12-08 Optimizer Control Corp. System for optimizing the performance of internal combustion engines
US6026786A (en) * 1997-07-18 2000-02-22 Caterpillar Inc. Method and apparatus for controlling a fuel injector assembly of an internal combustion engine
US6490914B1 (en) * 1998-03-25 2002-12-10 Ford Global Technologies, Inc. Method of sensing crankshaft position in a hybrid electric vehicle
JP4431927B2 (en) * 2001-02-20 2010-03-17 株式会社デンソー Ignition system control method
JP4871779B2 (en) * 2007-04-19 2012-02-08 日立オートモティブシステムズ株式会社 Engine speed control device
US8646435B2 (en) * 2008-07-11 2014-02-11 Tula Technology, Inc. System and methods for stoichiometric compression ignition engine control
US8131447B2 (en) * 2008-07-11 2012-03-06 Tula Technology, Inc. Internal combustion engine control for improved fuel efficiency
US8402942B2 (en) * 2008-07-11 2013-03-26 Tula Technology, Inc. System and methods for improving efficiency in internal combustion engines
US8701628B2 (en) 2008-07-11 2014-04-22 Tula Technology, Inc. Internal combustion engine control for improved fuel efficiency
US8616181B2 (en) * 2008-07-11 2013-12-31 Tula Technology, Inc. Internal combustion engine control for improved fuel efficiency
US9020735B2 (en) 2008-07-11 2015-04-28 Tula Technology, Inc. Skip fire internal combustion engine control
US7577511B1 (en) 2008-07-11 2009-08-18 Tula Technology, Inc. Internal combustion engine control for improved fuel efficiency
US8336521B2 (en) * 2008-07-11 2012-12-25 Tula Technology, Inc. Internal combustion engine control for improved fuel efficiency
JP4670912B2 (en) 2008-08-01 2011-04-13 トヨタ自動車株式会社 Internal combustion engine control device
US8511281B2 (en) 2009-07-10 2013-08-20 Tula Technology, Inc. Skip fire engine control
JP5246154B2 (en) * 2009-12-25 2013-07-24 トヨタ自動車株式会社 Control device for internal combustion engine
US8869773B2 (en) 2010-12-01 2014-10-28 Tula Technology, Inc. Skip fire internal combustion engine control
US20230126002A1 (en) * 2021-10-25 2023-04-27 Transportation Ip Holdings, Llc Methods and systems for diagnosing engine cylinders

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4575800A (en) * 1983-04-08 1986-03-11 Optimizer Control Corporation System for optimizing the timing of diesel or spark ignition engines

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4379333A (en) * 1979-08-29 1983-04-05 Nippondenso Co., Ltd. Method and system for operating a power-producing machine at maximum torque under varying operating conditions
JPS56115855A (en) * 1980-02-19 1981-09-11 Toyota Motor Corp Method and apparatus for controlling ignition timing of engine
JPS57143161A (en) * 1981-03-02 1982-09-04 Nippon Denso Co Ltd Ignition time controlling method for internal combustion engine
JPS57203846A (en) * 1981-06-08 1982-12-14 Nippon Denso Co Ltd Most optimum control device for internal-combustion engine
DE3313036C2 (en) * 1983-04-12 1997-02-13 Bosch Gmbh Robert Device for preventing knocking in internal combustion engines
US4638780A (en) * 1984-03-26 1987-01-27 Allied Corporation Individual cylinder ignition control
GB8518593D0 (en) * 1985-07-23 1985-08-29 Lucas Ind Plc Control for i c engine
GB8604259D0 (en) * 1986-02-20 1986-03-26 Lucas Elect Electron Syst I c engine
US4715344A (en) * 1985-08-05 1987-12-29 Japan Electronic Control Systems, Co., Ltd. Learning and control apparatus for electronically controlled internal combustion engine

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4575800A (en) * 1983-04-08 1986-03-11 Optimizer Control Corporation System for optimizing the timing of diesel or spark ignition engines

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5884603A (en) * 1996-09-30 1999-03-23 Nissan Motor Co., Ltd. Torque down control apparatus for an engine

Also Published As

Publication number Publication date
EP0275168A2 (en) 1988-07-20
US4841933A (en) 1989-06-27
GB8700758D0 (en) 1987-02-18
EP0275168A3 (en) 1989-04-12
GB8800606D0 (en) 1988-02-10
JPS63259140A (en) 1988-10-26

Similar Documents

Publication Publication Date Title
GB2200478A (en) Adaptive control system for internal combustion engine
US4893600A (en) Adaptive control for an internal combustion engine
US4899282A (en) Method and apparatus for controlling an internal combustion engine
US4928652A (en) Engine control system for suppressing car body vibration
US4328779A (en) Feedback type ignition timing control system for internal combustion engines
US5497329A (en) Prediction method for engine mass air flow per cylinder
US5016591A (en) System and method for controlling a combustion state in a multi-cylinder engine for a vehicle
US6062190A (en) Ignition timing control apparatus and method for internal combustion engine
EP0273601B1 (en) Engine control and combustion quality detection system and method
US4971011A (en) Air and fuel control system for internal combustion engine
US4996959A (en) Ignition timing control system for automotive engine
US5129379A (en) Diagnosis system and optimum control system for internal combustion engine
EP0234715B1 (en) Adaptive control system for an internal combustion engine
US4966117A (en) System and method for controlling ignition timing for vehicular internal combustion engine
US4702211A (en) Ignition timing control method for internal combustion engines
US5054451A (en) Control apparatus for internal combustion
JPH01193065A (en) Control device for engine
US4986245A (en) Control system for internal combustion engine with improved transition characteristics
EP0234714B1 (en) Adaptive control system for an internal combustion engine
US4711215A (en) LPP combustion control for IC engine with abnormal combustion
GB2208250A (en) Fuel injection control system with compensation of overshooting in monitoring of engine load
JPS63131840A (en) Control method for fuel injection amount of internal combustion engine
JPS62150056A (en) Combustion control device for internal-combustion engine
JPS61283748A (en) Acceleration shock relieving device in internal-combustion engine
JPS63131841A (en) Control method for fuel injection amount of internal combustion engine