GB2186998A - Adaptive control system for an internal combustion engine - Google Patents

Adaptive control system for an internal combustion engine Download PDF

Info

Publication number
GB2186998A
GB2186998A GB08701689A GB8701689A GB2186998A GB 2186998 A GB2186998 A GB 2186998A GB 08701689 A GB08701689 A GB 08701689A GB 8701689 A GB8701689 A GB 8701689A GB 2186998 A GB2186998 A GB 2186998A
Authority
GB
United Kingdom
Prior art keywords
engine
window
negative
value
positive
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.)
Granted
Application number
GB08701689A
Other versions
GB2186998B (en
GB8701689D0 (en
Inventor
Michael Holmes
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 GB8701689D0 publication Critical patent/GB8701689D0/en
Priority to MYPI87000322A priority Critical patent/MY101711A/en
Publication of GB2186998A publication Critical patent/GB2186998A/en
Application granted granted Critical
Publication of GB2186998B publication Critical patent/GB2186998B/en
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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/045Advancing or retarding ignition; Control therefor automatically, as a function of the working conditions of the engine or vehicle or of the atmospheric conditions combined with electronic control of other engine functions, e.g. fuel injection
    • 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
    • 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
    • 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/1512Digital data processing using one central computing unit with particular means concerning an individual cylinder
    • 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/1514Digital data processing using one central computing unit with means for optimising the use of registers or of memories, e.g. interpolation
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02BINTERNAL-COMBUSTION PISTON ENGINES; COMBUSTION ENGINES IN GENERAL
    • F02B1/00Engines characterised by fuel-air mixture compression
    • F02B1/02Engines characterised by fuel-air mixture compression with positive ignition
    • F02B1/04Engines characterised by fuel-air mixture compression with positive ignition with fuel-air mixture admission into cylinder
    • 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

Abstract

An adaptive control system is provided for an internal combustion engine. The engine has a flywheel (ll) and is connected through resilient shafts (l2, l4), and gear box (l3) to vehicle wheels (l5). The flywheel (ll), shafts (l2, l4) and wheels (l5) form a resonant system which has a particular resonant frequency for each gear ratio. The control system includes two memories (35, 38) containing fixed and correction schedules for the spark advance. The values are stored as a function of engine speed and spark advance. Values are extracted by an interpolation method and added to form command values for a dwell control device (l7). <??>A perturbation generator (40) generates a square waveform at a frequency which is at least three quarters of the highest resonant frequency of the resonant system. The spark advance values are perturbed in accordance with the polarity of this waveform. A window generator (43) generates a series of positive and negative windows, each window lagging a respective half period of the square waveform by a fixed phase shift. During each positive or negative window, engine fire periods are accumulated in a respective one of two accumulators (44, 45). In a slope calculation device (46), the slope of engine output with respect to spark advance is calculated from the accumulated fire periods in the two accumulators. An updating device (47) uses the slope to make corrections to the values stored in the correction schedule. Each correction is proportional to the slope and the corrections are made by a method which is symmetrical with the interpolation method used when forming the command values.

Description

1 GB 2 186 998 A 1
SPECIFICATION
Adaptive control system for an internal combustion engine 5 This invention relates to an adaptive control system for an internal combustion engine and also to a method of controlling such an engine.
In operating an internal combustion engine, it is necessaryto establish values for various control parameters and, depending upon the particular control parameter, thevalue of the parameter may bevaried continuously in accordancewith one or more operating parameters of the engine. 10 In a spark ignition enginejor each ignition spark orenginefire in one of the engine cylinders, the spark advance angle must be established atthe right momentto producethe peak combustion pressure soon after the piston has passed thetop dead centre position so asto produce the optimum contribution to the outputof the engine. Becausethe flame speed varieswith the density of the air/fuel mixture, it is generally necessaryto increasethe spark advance anglewith decreasing cylinderfilling pressure. The sparkadvance angle must 15 also be increased with increasing engine speed so asto allowforextra rotation of the engine crankshaft whilstthe air/fuel mixture burns.
Until recently, the spark advance anglewas established by a mechanical device responsiveto manifold depression and engine speed. Such a mechanical device establishesthe sparkadvance angle as a simple function of engine speed and load demand as represented bythe manifold depression. Careful testing of 20 engines shows thatthe spark advance angle is a complex function of load and speed and thisfunction cannot be matched by a mechanical device. Modern ignition systems now use empirically derived characteristics for the spark advance angle which are stored as a look-up table in a read only memory.
These spark advance characteristics are determined bytesting a number of samples of an engine and establishing an optimum spark advance angle for each ioad/speed point. Avalue forthe spark advance angle 25 for each point is then chosen which will give good economy subjectto meeting various constraints such as low emissions and low knock levels.
Although this provides a much closer match to the optimum spark advance angle than was achieved with the mechanical devices, it still does not give the engine userthe best possible spark advance ang le for his eng ine throug hout its life. There are a number of reasons for this. It is not possible to test enoug h enginesto 30 provide good statistics and the engines available during tests are often different from production engines.
Also, variations in the engine characteristics may occur due to manufacturing tolerances and from smal 1 changes in engine design. During the life of an engine, various ageing effects will occur in the engine and in the sensors, actuators and electronic circuitry and these will create a mismatch between the optimum characteristics and those stored in the read only memory. 35 In U.S. patent 4 379 333, there is described an adaptive control system for controlling the sparkadvance angle. In this sytem, small positive and negative perturbations are superimposed on the spark advance angle and the resulting changes in engine speed are used to determine the differential or slope of engine output with respectto spark advance angle.
Each slope value is examined and these values are used to update the values stored in a sparkadvance 40 schedule with the intention of obtaining optimum values forthe spark advance angles.
In the arrangement described in this patent, the perturbations are imposed in a three phase cycle, a positive perturbation being imposed in one phase, no perturbation being imposed in the next phase, and a negative perturbation being imposed in the last phase. Each phase comprises 40-60 engine fires and the engine speed is sensed over a number of engine fires atthe end of each phase. The effect of the change in sparkadvance 45 value atthe beginning of each phase will cause an initial transient response in the engine speed but, bythe end of the phase, a steady 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 suffersfrom the disadvantage that a large number of engine fires is required to make each slope measurement.
In the arrangement described in this patent, the engine speed and load demand are measured a numberof 50 times during each perturbation cycle in orderto determine the address for the correction which is to be made to the spark advance schedule. If the engine speed and load demand do not wander far from their initial values, these are regarded as a valid address. If excessive wander does occur, then a new address is chosen.
Atthe end of each perturbation cycle, the record of the engine speed and load demand throughoutthe cycle is examined and, if one address occursfor more thanjor example, 60% of the cycle, the conditions are 55 considered steady enough to retain the correction atthis address. Thus, the arrangement of this patent suffers from the disadvantage that it requires a complicated and uncertain procedure for determining the addresses of the corrections.
It is accordingly an object of this invention to provide a new or improved adaptive control system foran internal combustion engine and also a method of controlling such an engine in which the above mentioned 60 disadvantages are overcome or reduced.
According to this invention, there is provided an adaptive control system for an internal combustion engine having a flywheel connected through resilient shafting and a gear arrangementto a load, said flywheel, resilient shafting and gear arrangement forming a resonant system which has a particular resonant frequency for each gear ratio established by said gear arrangement, said control system comprising:- means 65 2 GB 2 186 998 A 2 fordetermining a basicvalueforan engine control parameter (hereinafter referredto as said perturbed parameter"); a position transducer for detecting the passage oftheengine crankshaft pastat leastone reference pointcluring each enginefire period; a perturbation generatorfor perturbing said perturbed parameter about said basicvalue,said perturbation generator generating a periodic perturbation waveform and applying a positive perturbationto said perturbed parameterduring thefirstpartof each period ofthe 5 perturbation waveform and a negative perturbation to said perturbation parameter during the second partof each period of the perturbation waveform, each period of saidwaveform being equalto a wholenumberof enginefire periods and the frequency of said waveform being greaterthan three quarters of the highest resonant frequency of said resonantsystem; means for creating at least 6ne series of contiguous positive and negative measurement windows associated respectively with first and second parts of said.perturbation 10 waveform, each measurementwindow lagging its respective partof the perturbation waveform bya predetermined phase shift; means for calculating theslope of engine output with respectto said perturbed parameter, said calculating means calculating said slope from the change in engine speed between adjacent measurementwindows; and meansfor using said slopeto applya correction to at leastone enginecontrol parameter (each of which is hereinafter referred as "a corrected parameter"). 15 By using a perturbation waveform which has a frequency greaterthan three quarters of the highest resonant frequency of the resonant system,the phase difference between the response in the engine speed and the perturbation waveform will notvary greatly between the different gear ratios established bythe gear arrangement. Consequently, by measuring the change in engine speed in measurement windows which lag the perturbation waveform by a phase shiftwhich is a compromise of the phase shifts in the different gears, 20 the transient response in the engine speed can be used for making slope measurements. As thetransient response is used the slope measurements can be made at a much higher rate than in the prior art arrangement discussed above. Also, as each cycle of the perturbation waveform is short, the engine speed and load demand are unlikelyto vary significantly during it and so the correct addressforthe correction to the spark advance angle may be readily determined. 25 Preferably, said system further includes a first accumulatorforfor accumulating for each positive measurement window the fire periods whose central points fall within said positive windowto produce a total fire period for said positive window; and a second accumulatorfor accumulating for each negative measurement window the individual fire periodswhose central points fall within said negative windowto produce a total fire period forsaid negative window; said calculating means calculating said slope from said 30 total fire periods accumulated in said first and second accumulators.
In one embodiment of the present invention, said slope calculating means calculates the average engine speed during each positive measurement window by dividing the number of engine first occuring during said window bythe total fire period accumulated in said first accumulator, calculating the average engine speed during each negative measurement window by dividing the number of engine first occurring in said 35 negative window bythe total fire period accumulated in said second accumulator, and calculating each slope value by subtracting the average engine speed occurring in a positive windowfrom the average speed occurring in the subsequent negative windowto obtain a firsttransition value, subtracting the average engine speed occurring in a negative window from the average speed occurring in a subsequent positive windowto obtain a second transition value, and subtracting the first transition value from the second 40 transition valueto obtain said slope value.
In another arrangement of this invention, said slope calculating means calculates each slope value by subtracting the product of the number of engine fires occurring in one positive window and the total fire period occurring in a subsequent negative windowfrom the product of the total number of fires occurring in said subsequent negative window and thetotal fire period occurring in said one positive windowto produce 45 a first difference value, subtracting the product of the number of engine fires occurring in one negative window and the total fire period for a subsequent positive windowfrom the product of the total numberof fires occurring in said subsequent positive window and the total fire period occurring in said one negative windowto produce a second difference value, and subtracting said first difference value from said second difference value to produce said slope value. 50 Conveniently, said correction value determining means compares each slope value with a referencevalue to obtain a difference value, integrates said difference values to obtain at least one average value, and uses said correction value to correct at least one corrected parameter.
In one arrangement of this invention, the system includes meansfor determining the engine speed, means for determining the load demand to which the engine is subjected, and basic values are stored forsaid 55 perturbed parameter in a schedule as a function of engine speed and load demand.
Conveniently, in this arrangement, basicvalues for said perturbed parameter are stored in said schedule as a two dimensional array as a function of engine speed and load demand, and each basic value of parameteris determined from the values stored atthe four array points in the speed/load planewhich surroundthe prevailing speed and load, said perturbed parameter at each point being multiplied by a respective weighting 60 factorto form a productva'lue and the four resulting product values being summed to produce the basic value, said weighting values being determined byforming a main rectangle whose corners lie on saldfour array points, dividing saiq main rectangle into four sub-rectangles bythe abscissa and ordinate which pass through the prevailing engine speed and load demand point, and calculating the weighting factorforeach array point by dividing the area of the diagonally opposite sub-rectangle by the area of the main rectangle. 65 3 GB 2 186 998 A 3 In a specific embodiment of the present invention, said perturbed parameter is an ignition timing parameter.
According to another embodiment of this invention, there is provided a method of controlling an internal combustion engine, said engine having a flywheel connected through resilient shafting and a gear arrangement to a load, said flywheel, resilient shafting and gear arrangement forming a resonant system 5 which has a particular resonant frequency for each gear ratio established by said gear arrangement, said method comprising: perturbing an engine control parameter (hereinafter referred to as "said perturbed parameter") by generating a periodic perturbation waveform, applying a positive perturbation to said perturbed parameter during the first part of each period of perturbation waveform and a negative perturbation to said perturbed parameter during the second part of each period of the perturbation 10 waveform, each period of said waveform being equal to a whole number of engine fire periods andthe frequency of said waveform being greater than three quarters of the highest resonant frequencyof said resonant system; creating at least one series of contiguous positive and negative measurementwindows associated respectively with first and second parts of said perturbation waveform, each measurement window lagging its respective part of the perturbation waveform by a predetermined phase shift; calculating 15 the slope of engine outputwith respectto said perturbed parameterfrom the change in engine speed between adjacent measurement windows; and using said slope to apply a correction to at least one engine control parameter (each of which is hereinafter referred to as "a corrected parameter").
This invention will now be described in more detail, byway of example, with referenceto the drawings in which:- 20 Figure 1 is a diagram of thefunctional components of an adaptive control system embodying this invention; Figure2 is a graph illustrating the phase lag between a perturbation waveform and the resulting change in engine speed as a function of perturbation Figure 3 is a graph of engine speed as a function of crankshaft angle; 25 Figure 4 is a block diagram of a microcomputer arrangement which implements thefunctional components of Figure 1; Figure 5is a layout diagram of the computer program forming part of the control system of Figure 4; Figure 6is a diagram illustrating the calculation of weighting factors used in the program; Figures 7to 11 form a f low chart of part of the program; and 30 Figures 12to 13 show a modification of the flow chart.
Referring nowto Figure 1, there is shown in functional form an adaptive control system embodying this invention and installed in a motorvehicle. The control system comprises a four cylinder spark ignition internal combustion engine 10 which is provided with a flywheel 11. The engine 10 is installed in a vehicle and is connected through a resilient shaft 12, a gear box 13, and a further resilient shaft 14to drivewheels 15 35 which form a load. Although not shown, a clutch is also provided.
The flywheel 11 is associated with a position transducer 16 which produces a reference pulse for each 180' of rotation of the engine crankshaft. Each pulse is produced when the piston in the cylinderto executing an expansion stroke is at 30'afterthe top dead centre position. The pulsesfrom transducer 16 are supplied to a dwell control means 17, the output of which is connected through a power stage 18to a coil and distributor 40 19. The coil and distributor 19 is connected to four spark ignition plugs 20 and causes ignition sparks to occur in these plugs at appropriate moments.
The output of transducer 16 is also supplied to a speed calculation means 30 which calculates engine speed and supplies this to the dwell control means 17.
The engine is provided with a transducer31 which measures the load demand to which the engine is 45 subjected. In the present example, the transducer 31 measures the pressure in the inlet manifold forthe engine cylinders. The load demand could also be detected by measuring other quantities such as the throttle valve opening position or the rate of air flow into the i niet manifold.
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 corresponding to engine speed and load demand. The memory 35 and 50 the speed calculation means 30 and transducer 31 are connected to a calculation means 36. For each prevailing engine speed and load demand, the calculation means 36 calculates a basic value for spark advance and supplies this to one input of a summer 37. The calculation means 36 calculates this basicvalue 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 55 appropriate weighting factor and the four resulting values are added to provide the basic spark advance value. Thus, the calculation means 36 calculates the basic spark advance value by interpolation. The spark advance values are stored in memory 35 at a density which provides a good match for the irregularities of the true optimum spark advance characteristics of the engine 10.
The spark advance value in memory 35 take the form of a fixed schedule which is established from rig-tests 60 on sample engines. For the various reasons which have been outlined above, the optimum spark advance values will differfrom those stored in memory 35. As will shortly be described in detail, the system imposes small positive and negative perturbations on the spark advance value and senses the change in engine output speed which these cause. From the change in engine speed, correction values are stored in a correction memory 38. These correction values are also stored as a two dimensional array in which the 65 1 4 GB 2 186 998 A 4 abscissa and ordinate represent engine speed and load demand and they are stored with the same densityas the values stored in memory 35.
For the prevailing engine speed, a correction value is calculated in a correction value calculation means 39 and supplied to a second input of summer 37. The calculation means 39 receives the outputs of speed calculation means 30 and load demand transducer 31 and calculates the correction value forthe prevailing 5 engine speed from the values stored in memory 38 by using the same interpolation method as that used by the calculation means 36.
The perturbation values are determined in a perturbation generator 40 and supplied to an input of a summer 41. The other input of summer 41 receives the output of summer 37, and the output of summer41 is supplied to the dwell control means 17 as a command value for the spark advance. The dwell control means 10 17 uses the output of the speed calculation means 30 and position transducer 16 to ensure that ignition spark occur atthe commanded spark advance values.
Because ignition sparks occur intermittently in the spark ignition engine, the torque output of engine 10 fluctuates during each engine cycle. In orderto smooth these fluctuations, the flywheel 11 is provided and it converts the fluctuations in torque into small accelerations and decelerations. The resilient nature of shafts 15 12 and 14 prevent these small accelerations and decelerations from causing changes in the speed of drivewheels 15.
The flywheel 11, shafts 12 and 14, and the gear box 13 form a resonant system. The resonant frequency varieswith the gear ratio established in the gear box 13. In the present example, the system has a resonant frequency of 4Hz in second gear and 9Hz in fourth gear. 20 Everysingle perturbation in the spark advance angle causes a change in outputtorque produced by engine 10. In view of the resonant nature of flywheel 11 and shafts 12 and 14, the resulting change in the speed of flywheel 11 has two components. The first of these components is a damped ringing response atthe appropriate resonant frequency and, in the particular engine mentioned above, the ringing decays with a time constant of 0.3 seconds. The second component is the longerterm response which is associated with 25 the new steady state which arises when the change in resistance forces caused bythe change in vehicle speed match the change in torquefrom the engine. With the particular engine discussed above, this second component has a time constant of 7 seconds in fourth gear.
In orderto measure the slope of engine outputwith respectto spark advance as quickly as possible, thefirst part of the response should be used to calculate the slope. It is also desirable to provide a system which will 30 work in any gear and which will provide comparable results in the different gears without knowledge of which particular gear is engaged. In Figure 2, there is shown a graph of the phase shift between a perturbation waveform generated by perturbation generator40 and the resulting change in engine speed as a function of perturbation frequency forfourth gear, second gear and neutral. As may be seen, the phase shift changes rapidlywith frequency in the region belowthe 9Hz and there are also large differences betweenthe 35 phase shift in the different gears. In contrast, in the region above 1 0Hz, the phase shift changes slowlywith frequency and the differences in phase shift in the different gears are small. With increasing frequency, forall gears the phase shift approachesthe 900 phase shift obtained when neutral is engaged. In orderto provide comparable results in the differentgears, it is therefore preferred thatthe perturbation frequency produced by perturbation generator 40 is greaterthan the highest resonant frequency of the resonant system formed 40 from flywheel 11, shafts 12 and 14 and gear box 13. In the present case, this means the perturbation frequency should be greaterthan 9Hzwhich is the resonant frequency in fourth gear. However, in other engines, the phase changes belowthe resonant frequency may be smallerthan those shown in Figure 2 and it is anticipated, thatfor some engines satisfactory results could be obtained with a perturbation frequency equal to or greaterthan three quarters of the highest resonant frequency. 45 There is a further restrainton the perturbation frequency produced by perturbation generator40.
Perturbations in the spark advance value can only take effect atthe moments when ignition is initiated. In the case of a four cylinder engine, this occurs twice for each revolution of the crank shaft. Therefore,the perturbation frequency cannottake a fixed value. Therefore, perturbation generator 40 generates a two level waveform at a frequency which is greaterthan a minimum frequency, such asthe resonant frequency or 50 three quarters of the resonant frequency, and with a period which is equal to a whole number of fire periods of engine 10. During thefirst part of each period, the perturbation generator40 sets the perturbation valueso asto cause a small increase in the spark advance angle and, in the second part of each period, it setsthe perturbation value so as to cause a small decrease in the spark advance angle.
The output of position transducer 16 is supplied to a fire period calculating means 42 which calculates each 55 fire period. Position transducer 16 produces a reference pulse when the respective piston is at 300 aftertop dead centre. Thus the actual period calculated is the period which elapses between these pulses. Thefire period is supplied to the perturbation generator40 and also to a measurement window generator43, an advance half cycle accumulator44, a retarded half cycle accumulator 45,. and slope calculation means 46.
The measurement window generator 43 receivesthe waveform from perturbation 40 and creates a series 60 of contiguous positive and negative measurementwindows, each of which correspondsto a respectivefirst partorsecond part of a period of the perturbation waveform. The measurement windows are shifted in phase from the perturbation waveform byan amountwhich is a compromise of the actual phase shiftswhich occur inthevarious gears between the perturbation waveform and the engine response. These actual phaseshifts have been described with reference to Figure 2. In the present example, this phase shift is 72'which is 0.2 of a 65 GB 2 186 998 A 5 perturbation cycle. The positive and negative measurement windows are supplied respectively to the advance and retarded half cycle accumulators 44 and 45.
Referring now to Figure 3, there is shown the variation in the speed of flywheel 11 as a function of crankshaft angle. As maybe seen, during each engine cycle severe fluctuations occur. There is therefore a danger that the severe fluctuations in engine speed could confuse measurements of the change in engine 5 speed caused by the perturbations to the spark advance angle. In order to avoid this danger, the engine speed is sensed by measuring the period for whole engine fires 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 44 and 45.
As mentioned above, the slope of engine output with respectto spark advance is calculated in the slope 10 calculation means 46. Following each measurement window, the average engine speed during that window is measured from the accumulated fire periods. Following each positive measurement window, the effect of the transition from the part of the period in which the spark advance angle was decreased to the part of the period in which it was increased is evaluated by subtracting the average speed during the negative measurement window from the average speed during the positive measurement window. Similarly, atthe 15 end of each negative measurement window, the effect of the transition from the part of the period in which the spark advance was increased to the part of the period in which it was decreased is evaluated by subtracting the average speed during the positive measurement windowfrom that during the subsequent negative measurement window. Thus, these two transition values are evaluated alternately. These two transition values reflect both the change in torque generated by the perturbations and also the change in 20 speed due to any acceleration or deceleration which is caused, for example, by movement of the accelerator bythe driver or by changes in resistance forces or road gradient. In order to eliminate the effect of acceleration or deceleration from the slope measurement, the slope is then evaluated by subtracting the transition value associated with changing the perturbation from an increased value to a decreased value from the transition value associated with changing the perturbation from a decreased value to an increased 25 value.
The curve relating torque output to spark advance has a single maximum at which the slope of engine output with respect to spark advance wil I be zero. As wil I be explained, in the present example the spark advance angle is corrected with the intention of achieving this maximum. However, in some engines under high load, the spark advance angle which causes maximum output may also permit knocking to occur. Also, 30 in some engines, the maximum maybe associated with undesirable exhaust emissions. Therefore, for some engines, it maybe required to vary the spark advance until the slope reaches a predetermined value other than zero.
For greater accuracy under conditions where the spark advance is controlled to achieve a non-zero value of the slope, itwould be betterto measure actual torque ratherthan torque derived from speed measurement. 35 However, duetothe inconvenience of torque measurement, it is preferred to measure speed and compensate for variations between measured speed and torque, for example, by calculating engine output as an appropriate function of engine speed. The slope calculated bythe slope calculation correction means46 is
supplied to correction memory updating means47. The means 47 also receivethe engine speed and load demand from the speed calculation 40 means 30 and load transducer31. Foreach slope measurement, the updating means 47 updates the values stored in memory38foreach of thefour 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 thefollowing formula:
45 new correction old correction + k, x (weighting factor) x (slope) where k, is a constant.
This formula corrects the values in the memory 38 from the slope measurements by integration and 50 smoothes outthe noise component in the slope measurements. The constant k, should be chosen so as to be small enough to reduce these noise components to a low level but large enough to provide rapid convergence to the optimum spark advance angle. The weighting factor given in this formula is the same as the weighting factor used bythe correction means 36 and 39. The method of calculating the weighting factor will be described in detail below. 55 As the density of array points in the 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 the memory 35. It istherefore reasonable to update memory 38 by a process which is symmetrical with the interpolation process used to derive the spark advance angle and the formula given above achieves this. Furthermore, in the formula given 60 above, the values stored in memory 38 are corrected in proportion to the magnitude of each slope measurement and so maximum advantage is taken of the information present in each slope measurement.
The combination of the rapid method of making slope measurements which is achieved by using thefirst component of the engine speed response and the formula given abovefor updating memory 38will permit the spark advance angle to be corrected to its true optimum value for the complete range of engine speed and 65 6 GB 2 186 998 A 6 load demands in approximately six hours of driving a motor vehicle in mixed road conditions. Although this represents a considerable improvement over prior art arrangements, it is relatively long compared with the average time for each operation of an engine. In view of this, it is preferred that memory 38 is of a non-volatile construction. By using such a construction, the corrections are restored between periods of engine operation. Thus, memory 38 contains a complete schedule of updated corrections addressed by engine 5 speed and load demand.
Two further refinements to the formula given above for updating memory 38 will now be described.
In addition to the mismatch in the spark advance angle forthe prevailing speed and load demand, each slope measurement may also contain information which refers to the whole speed/load demand plane. For example, there may be a mismatch for spark advance acrossthe entire plane duejor example, to changes in 10 barometric pressure or in the composition of fuel. In orderto take advantage of this information, each slope measurement may be used to update all the correction values in memory 38 in accordance with thefollowing formula:
new correction = old correction + k2 X (slope) 15 Alternatively, this form u la may be used to update a single value which is added at summer 37 tothe correction value calculated by calculation means 39.
The constant k2 is of course much smallerthanthe constant k, mentioned above. However, the constant k2 must be chosen to be large enough to give convergence for changes in variables such as a barometric 20 pressure in a few minutes across the entire load/speed plane.
The second refinement enables the entire spark advance characteristics to be tilted and this may be required, for example, when the position transducer 16 is poorly calibrated or subjectto drift. With this second refinement, four offset correction values are stored in an additional memory corresponding to the four corners of the speed/load plane. Each slope measurement isthen used to update these fourvalues by 25 multiplying the slope by an appropriate weighting factor and an appropriate constant. In calculating each correction value,these four offsetvalues are then multiplied by appropriate weighting factors and the resulting value is added to the value calculated from thefour array points surrounding the prevailing engine speed and load demand.
The various functional blocks shown in Figure 1 are implemented using a microcomputer arrangement 30 and this arrangement is shown in Figure4.
As shown in Figure4,the microcomputer arrangement comprises an Intel Corporation 8097 microcomputer 100which is connected via a data and address bus 101 to a type 27C64 read only memory 102, a Hitachi type 6116 read/write memory 103, and a Greenwich Instruments Limited type NVI12 non-volatile read/write memory 104. The program and fixed schedules are stored in memory 102,temporary 35 variables are stored in memory 103, and the corrections forthe spark advance angle are stored in memory 104.
The microcomputer arrangement implements the speed calculation means 30, the fire period calculation means 42,the perturbation generator40, the measurement window generator 43, accumulators 44 and 45, slope calculation means 46, updating means 47, the memories 35 and 38 togetherwith the calculation means 40 36 and 39, summers 37 and 41 and part of dwell control means 17.
The load demand transducer 31 is connected through a conventional signal conditioning circuit 105to an ANALOGinputof microcomputer 100. The position transducer 16 is of the variable reluctance type and coacts with a toothed wheel mounted on the engine crankshaft and from which teeth have been removedto establish the required reference positions. Transducer 16 is connected through a signal conditioning circuit 45 106to a HIGH SPEED input of microcomputer 100.
A HIGH SPEED output of microcomputer 100 is connected to the input of a dwell control circuit 107. The dwell control circuit 107 togetherwith part of the program stored in memory 102 perform the function of the dwell control means 17 of Figure 1. The dwell control circuit 107 is a type L497 dwell control circuitsupplied by S. G. S. Limited. The dwell control circuit 107 initiatesthe build up of current in the primarywinding of the 50 ignition coil atthe correct momentto achieve the required level just before the current is interrupted. The dwell control circuit 107 also limits the coil currentto the required level during the short period which elapses between achieving the required current and the current being interrupted. The output of dwell control circuit 107 is connected to the power stage 18 which, as mentioned with reference to Figure 1, is connected tothe inputof the coil and distributor 19. 55 Referring nowto Figure 5,there is shown the general arrangement of the modules which form the program and also theflow of data between these modules. The program comprises the modules MISDET 112, IGNLU 113, SAFIRE 114, and DWELL 115. The module IGNLU calls a sub-module LOOK UP and the module SAFIRE calls sub-modules MAP STORE and LOOK UP CORRECTION. Figure 5 also shows a fixed spark-advanced schedule 110 which containsthe fixed spark advance values and which corresponds to memory 35 shown in 60 Figure 1. Figure 5further shows a spark-advance correction schedule 111 which contains the correction valuesfor spark advance and correspondsto memory 38 shown in Figure 5.
The module MISDET receives an interrupt signal TOOTH INTERRUPT and this module is executed each time a tooth is detected. Avariable TOOTH is supplied to the module DWELL and representsthe position of the crankshaft to within one tooth of the transducer 16. This module M ISDET compares the period between 65 7 GB 2 186 998 A 7 each tooth and thereby detects the missing teeth. When a missing tooth is detected, this module re-establishes the relationship between the variable TOOTH and absolute position of the crankshaft. The module MISDET also calculates the fire period and supplies this as a variable FIRE PERIOD to the modules IGNLU and SAFIRE. The module IGNLU receives a variable MAN PRESS representing manifold presure which is indicative of the load demand. The variable MAN PRESS is derived from the output signal of 5 transducer 31 by an analog/digital converter which forms part of microcomputer '100. The modqleIGNLU also calculates a variable ENG SPEED representing engine speed and supplies this to SAFIRE arid DWELL.
In each of the schedules 110 and l 'I l, the spark advance 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 respectively into 16 discrete engine speed and load demand values. Thus, each array 10 point contains the spark advance value for one ofthe discrete engine speed and one of the discrete load demandvalues.
In order to address the schedules 110 and 111, 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 anyone of values 0 to 15 corresponding to the lower 16 discrete engine speed 15 and load demand values. These variables are setto the value corresponding to the engine speed and load demand immediately belowthe prevailing speed and load demand. The address variables SPEED INDEX and LOAD INDEX are supplied to the sub modules LOOK UP, MAP STORE, and LOOK UP CORRECTION.
The module IGNLU also calculates four variables MAP INTO to 3 which represent the four weighting factors described above. The four variables MAP INTO to 3 correspond respectively to the four addresses (SPEED 20 INDEX, LOAD INDEX), (SPEED INDEX + 1, LOAD INDEX), (SPEED INDEX, LOAD INDEX + 1), (SPEED INDEX + 1, LOAD INDEX+ 1).
The method of calculating theweighting factors MAP INT0to 3forthe prevailing speed and load isshown in Figure 6. A main rectangle isformed in the speed/load plane,the corners of the rectangle lying ataddresses (SPEED INDEX, LOAD INDEX), (SPEED INDEX + 1, LOAD INDEX), (SPEED INDEX, LOAD INDEX + 1), (SPEED 25 INDEX + 1f LOAD INDEX + 1). This main rectangle is divided into four sub- rectangles by drawing theabscissa and ordinate passing through the prevailing speed and load demand,these sub-rectangles having areasAO, Al, A2,A3. Theweighting factorforeach of thefourarray points is calculated by dividing the area of the sub-rectangle diagonally opposite the array point bythe area of the main rectangle. Thus, the weig hting factors MAP INTO to 3 have the following values:- 30 MAPINTO=AO/A MAP INT 'I =Al/A MAPINT2=A2/A MAPINT3=A3/A 35 whereA = AO + A1 + A2 + A3.
The module IGNLU callsthe sub module LOOK UPwhich calculatesthe basic spark advance angle as a variable SPI(ANG BASE bythe interpolation process which has been described above. The module IGNLU then supplies the variable SPI(ANG BASE to the module SAFIRE. 40 The module IGNLU is executed after each ignition spark and the module SAFIRE is executed after module IGNLU.
The module SAFIRE generatesthe perturbation waveform, determines each perturbation tothe spark advance angle, determinesthe positive and negative measurement windows and accumulates thefire periods occurring in these windows, and calculatesthe slope of engine outputwith respectto sparkadvance. 45 This module usesthe slope measurementto update the spark advance correction schedule and retrieves a correction value to the spark advance from this schedule. This module also sumsthe basic sparkadvance value SPI(ANG BASE with the perturbation value and the calculated correction value to produce a spark command value SPI(ANG forthe sparkadvance angle and supplies this to the moduel DWELL. This module will now be described with referencetothe flowchart shown in Figure7. 50 In the present example, the lowest perturbation frequency is 10 Hz. As a fourcylinder engine hastwo enginefiresfor each revolution of the crankshaft, and as it is necessaryto produce a minimum of two perturbations for each perturbation cycle,the perturbations can only be used when the engine speed is greaterthan orequal to 600 RPM. Thus, after entering the module SAFIRE, in a step 200, a variable ENG SPEED representing engine speed is examined. If the engine speed is lessthan 600 RPM, in a step 201 SPK 55 ANG is setto SPKANG BASE. If the engine speed is equal to or greaterthan 600 RPM, in a step 202 avariable ELAPSEDTIME is computed. This variable represents the time which has elapsed sincethe previous execution of this module and is approximately equal to thefire period. It is computedfrom the outputof an internal clock in the microcomputer 100. Avariable COUNTER isthen incremented by ELAPSEDTIME. The variable COUNTER represents the time which has elapsed sincethe beginning of the present perturbation 60 cycle.
In a step 203, the sum of COUNTER and ELAPSEDTIME is compared with a constant PERT PERIOD.The constant PERT PERIOD representsthe minimum period of each cycle of the perturbation waveform and, as the minimum frequency is 10 Hz,this constant has a value of 100 ms. If the sum is greaterthan PERTPERIOD, this meansthat it is not possible to fit a further engine fire into the present cycle. Consequently, a newcycle 65 8 GB 2 186 998 A 8 must commence. In order to achieve this, in a step 204, COUNTER is reset to zero. Also, a variable HALFTIME is set to PERT PERIOD and a variable DITHER is set to+ 3.750. The variable HALF TIME usually indicates the duration of the first part of each cycle. However, fora reason which wil I be explained below, it is set to PERT PERIOD at this stage. DITHER represents the perturbation value.
In a step 205, the condition COUNTER plus ELAPSED TIME/2 --PERT PERIOD/2 is checked. In a step 206,the 5 condition DITHER=+ 3.75' is checked. The conditions of steps 205 and 206 jointly define the transition point between the first and second parts of the cycle. It is to be noted thatthe transition will occur approximately half wavethrough each cycle.
If the conditions in steps 205 and 206 are satisfied,the second part of the cycle commences. In orderto achievethis, in a step 207, DITHER is setto -3.750so asto provide a negative perturbation and HALFTIME is 10 setto COUNTER. Thus,the duration of thefirst part of the cycle is nowstored in HALFTIME.
In a step 208, a variable NUM FIRESwhich represents a prediction of thewhole numberof engihefires which can be achieved in the remaining part of the present perturbation waveform is computed. In orderto do this, (PERT PERIOD - COUNTER) is divided by ELAPSED TIME and the result is truncated to an integer. In a step 209, a variable PRED PERT PERIOD is computed and this variable represents an estimate of the period of 15 the present cycle of the perturbation waveform.
As mentioned above, the present execution of the module SAFIRE occurs between ignition sparks. The perturbation to the spark advance anglewhich is calculated during the present execution of this module cannottake effect until the next ignition spark. Also, the value of the variable FIRE PERIOD which is available forthe present execution of this module relates to the previous fire period. The perturbation to the spark 20 advance angleforthe sparkwhich occurred atthe beginning of this fire period was calculated during the last but one execution of this module. In using the presently available value of FIRE PERIOD to calculatethe slope, it must be determined whetherthe central point of the fire period occurred in a positive or negative measurement window. In orderto do this, this module uses three variables THIS FIRE, LAST FIRE, and FIRE BEFORE LAST. The values of these variables determine respectively whether the fire period following the 25 next ignition spark, the fire period following the immediately preceding ignition spark, and the fire period following the previous but one ignition sparkoccurred in a positive or negative measurementw!ndow. Each of these variables can take one to fourvalues and these are FIRST POS, REST OF POS, FIRST NEG, and REST OF NEG. These fourvalues indicate respectively that a fire period is the firstfire period in a positive measurement window, one of the remaining fire periods in a positive measurement window, thefirstfire 30 period in a negative measurement window, and one of the remaining fire periods in a negative measurement window.
During each execution of this module, the values of these fourvariables must be updated and, in step 210, the variables FIRE BEFORE LAST and LAST FIRE are updated by setting them respectivelyto the presently held values of the variables LAST FIRE and THIS FIRE. 35 Inastep211 a newvalue forthe variable THIS FIRE is calculated. As maybe recalled, this refers to thefire period following the next ignition spark. In orderto do this, the following comparison is first made:
0.2 (PRED PERT PERIOD) --COUNTER+ 0.5 (FIRE PERIOD)< 0.2 (PRED PERT PERIOD) + HALFTIME 40 COUNTER+ 0.5 (FIRE PERIOD) defines the central point of the next fire period. In the present example, the positive and negative measurementwindows follow the first and second parts of the period of each perturbation cycle by 720. Thus, 0.2 (PRED PERT PERIOD) and 0.2 (PRED PERT PERIOD) + HALFTIMEdefine the beginning and end of the positive measurement window.
If the resultof this comparison isyes,this meansthatthe central point of the nextfire period will fall inthe 45 positive measurement window. Thevariable LAST FIRE is examined and thevariable THIS FIRE is setto FIRST POS OR RESTOF POS as is appropriate. If the result of the comparison is no,this means that the central pointof the nextfire period will fall in a negative measurement window and THIS FIRE is setto FIRST NEG or RESTOFNEG.
As mentioned above HALFTIME is setto PERT PERIOD during thefirst partof each period. Withoutdoing 50 this, HALFTIME would be setto the duration of thefirst part of the previous cycle. Under rapid deceleration, there is a dangerthatthe next enginefire could bejudged incorrectlyto be in a negative measurement window. By setting HALFTIMEto PERT PERIODthis danger is avoided.
Next, in a step 212,thevariable FIRE BEFORE LAST is examined. Depending upon thevalue of thisvariable, one of the sub routines RESTOF NEG, FIRST POS, RESTOF POS, and FIRST NEG is performed and thesesub 55 routines are shown respectively in Figures 8,9, 10, and 11.
As shown in Figure 8, if FIRE BEFORE LASThas avalue RESTOF NEG, in a step 213 a variable NEG PERIOD which representsthe accumulated value of thefire period in the negative measurement window is incremented bythe presentvalue of FIRE PERIOD. Then, in a step 214, a variable NEG FIRES which represents the numberof ignition sp?rks inthe negative measurementwindow is incremented. 60 As shown in Figure 9,when FIRST BEFORE LAST has a value FIRST POS, in a step 215, a variable NEG SPEED is calculated. Thisvariable representsthe average engine speed during the negative measurement window and it is calculated bydividing NEG FIRES by NEG PERIOD and multiplying the result bya constant CONST.Then, in a step 216, a variable SIGNAL FIRST is calculated bysubtracting NEG SPEEDfrom avariable POS SPEED. The variable POS SPEED represents the average speed in the positive measurementwindow 65 9 GB 2 186 998 A 9 and variable SIGNAL FIRST represents the change in engine speed which iscaused bythechangein perturbation to the spark advance angle between the first and second partsofthe perturbation waveform. Then,in a step 217, a variable POS FIRESwhich representsthe numberof enginefires inthepositive measurement window is set to 1. in a step 218, a variable POS PERIODwhich represents the accumulated fire periods inthe positive measurement window is setto the presentvalueof FIRE PERIOD. 5 Asshown in Figure 10,when FIRE BEFORE LASThasavalue RESTof POS, in astep220, POS PERIODis incremented bythe presentvalueof FIRE PERIOD.Then, in astep221, POS FIRES isincremented.
Asshown in Figure 1 1,when FIRE BEFORE LASThasavalue FIRSTNEG, in a step 225, the variable POS SPEED isevaluated bydividing POS FIRES byPOS PERIODand multiplying the result byCONSt.. Then, ina step 226, a variable SIGNAL SECOND is evaluated bysubtracting NEG SPEEDfrom POS SPEED. The variable 10 SIGNALSECOND represents the change in engine speed which iscaused bythechange in perturbation value fromthesecond partof one perturbation waveform to the first part of the next perturbation waveform. Ina step 227, a variable SLOPE which represents the slope of engine output with respect to spark advance is evaluated bysubtracting SIGNALFIRSTfrom SIGNALSECOND. By evaluating the slope inthis manner,as mentioned abovewith referenceto Figure 1,changes in engine speed which arecaused by rapid acceleration 15 ordeceleration of the engine are eliminated. The magnitudeof SLOPE is limitedtoa preset maximum value.
In astep228,thesub module MAPSTORE iscalled.This moduleusesthe recently calculated value of SLOPE together with the values of MAP INT0to 3, SPEED INDEXand LOAD INDEX, which itreceivesfrom moduleIGNI-LI,to update the spark advance correction schedule 11 1.Thisis performed in a manner describedwith referenceto Figure 1. 20 Next,in a step 229, the variable NEG FIRES issetto 1 and in a step 230 the variable NEG PERIOD issettothe presentvalue of FIRE PERIOD.
Returning nowto Figure 7, after one of the subroutines has been performed, in a step 235, the sub module LOOK UP CORRECTION is called. This sub module calculates a variable CORRECTION which representsthe appropriate correction to the spark advance angle from the values stored in the spark advance correction 25 schedule. This variable iscalculated bythe interpolation method describedwith referenceto Figure 1.
Next, in a step 236, a variable SPKANG OPTiscalculated asthesum of SPKANG BASE and CORRECTION.
SPKANG OPT represents the optimum spark advance angle for the prevailing enginespeed andload demand.
In a step 239, the variable SPKANG, which represents the command value of the spark advance angle, is 30 calculated asthesum of SPI(ANG OPTand a constant DITHER. Thus, either a positive ornegative perturbation corresponding to 3.75'of crankshaft is imposed ontheoptimum spark advance angle.
Returningto Figure5,the routine DWELL uses variables TOOTH, ENG SPEEDand SPKANGto calculatea variable COIL DRIVE which controls the generation of each spark. Specifically, COIL DRIVE causes the HIGH SPEEDoutputof microcomputer 100to go low when the engine crankshaft passes the commanded spark 35 advance position andto go high early enough to allowthe primary current in the ignition coilto reachthe requiredvalue.
Inthe program module SAFIRE which has been describedwith referenceto Figures7to ll,step215ofthe sub routine FIRSTPOS and step225of sub routine FIRSTNEG involvea divisionwhich requires a substantial amountof computing time. There will now be described with referenceto Figures 12and 13a modificationto 40 thesetwosub routineswhich avoids this division.
Thesmall changesin engine speed which occur between the positive and negative measurementwindows are proportionalto minusthechange in the average engine fire period during the two windows. Thus, an indication inthechangeof speedcould be obtained by calculating the change in the average fire period.
However, the constant of proportionality increases with the square of the engine speed and so the sensitivity 45 usingthis methodwouldfall rapidlywith increasing engine speed. Consequently, at high engine speeds,the correction schedulewould be updated too slowly whilst there could be instability at low engine speeds.
Thisvariation insensitivity maybe avoided by multiplying the change in average fire period bythesquare of the engine speed. Thesquare of the engine speed is approximately proportional to the productofthe number of fires occurring inthefirsthalf period andthe numbers of fires occurring inthesecond half period 50 of each cycleofthe perturbation waveform. Thus, the change in enginespeed between a positive measurement window and a negative measurement window may beexpressed asfollows:
Change in speed = K. n-n' M/n' - T-/n-) 55 where k is a constant, n' and n- are the number of engine fires occurring respectively in the positive and negative measurement windows, and T+ and T- are the accumulated fire periods forthese windows and so T+1n+ and T-/n- are respective averagefire periods.
This expression, simplified by cancellation of the denominator terms, together with a similar expression for the transition from a negative measurement window to a positive measurement window is used inthe 60 modification shown in Figures 12 and 13. In these Figures, like steps are denoted bythe same reference numerals.
Referring nowto Figure 12, in the sub routine FIRST POS,the steps 215 and 216 of Figure 9 arp replaced bya newstep 240. In the step 240,the variable SIGNAL FIRST is calculated asthe difference between the product of variables POS PERIOD dnd NEG FIRES and the product of the variables NEG PERIOD and POS FIRES. 65 GB 2 186 998 A 10 In Figure 13,the steps 225and 226 of Figure 11 are replaced bya newstep241. In step 241,thevariable SIGNALSECOND is calculated as a difference betweenthe productof NEG PERIOD and POS FIRES andthe product of POS PERIOD and NEG FIRES. i As may be seen, steps 240 and steps 241 do not involve a division and so less computation time is required with the modification as shown in Figures 12 and 13. 5 Although the above example describes applying perturbationsto the spark advance angle in a spark ignition engine in orderto obtain corrections to this parameterthe present invention is not limited tothis application. For example, it could also be used to apply perturbations to the timing of fuel injection in either petrol or diesel engines so asto provide corrections for this parameter. Also, in both petrol and diesel engines, the airlfuel ratio is established in accordance with a predetermined schedule. The present invention 10 could be used to apply perturbations to this ratio so as to obtain corrections to this parameter. In some diesel and in some petrol engines, exhaust gases are mixed with engine intake air in a predetermined raiio. The present invention could be used to apply perturbations to this ratio so as to obtain a correction forthis parameter.
in the example described above, the spark advance angle is perturbed and this same parameter is 15 corrected in accordance with the slope measurements. However, it is within the present invention to perturb one parameter and correct another parameter. For example, the spark advance could be perturbed and the slope measurements used to correctvalues in a schedule forthe airlfuel ratio.
In the system discussed with referenceto Figures 4to 13, there are provided a fixed sparkadvance schedule 110 and a spark advance correction schedule 111. Byway of modification there may be provided a 20 single sparkadvance schedule which is initially provided with the fixed values. Thevalueswould then be updated in accordance with the slope measurement.
in another modification, a single memory location is provided for entire speed/load plane in place of the schedule 111.
25

Claims (17)

1. An adaptive control system for an internal combustion engine having a flywheel connected through resilient shafting and a gear arrangement to a load, said flywheel, resilient shafting and gear arrangement forming a resonant system which has a particular resonantfrequencyfor each gear ratio established bysaid 30 gear arrangement, said control system comprising: means for determining a basic value for an engine control parameter (hereinafter referred to as "said perturbed parameter"); a position transducerfor detecting the passage of the engine crankshaft past at least one reference point during each enginefire period; a perturbation generatorfor perturbing said perturbed parameter about said basic value, said perturbation generator generating a periodic perturbation waveform and applying a positive perturbation to 35 said perturbed parameter during thefirst part of each period of the perturbation waveform and a negative perturbation to said perturbed parameter during the second part of each period of the perturbation waveform, each period of said waveform being equal to a whole number of engine fire periods andthe frequency of said waveform being greaterthan three quarters of the highest resonance frequency of said resonant system; means for creating at least one series of contiguous positive and negative measurement 40 windows associated respectively with first and second parts of said perturbation waveform, each measurement window lagging its respective part of the perturbation waveform by a predetermined phase shift; meansfor calculating the slope of engine outputwith respectto said perturbed parameter, said calculating means 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 45 of which is hereinafter referred as "a corrected parameter").
2. An adaptive control system as claimed in Claim 1, in which said system further includes a first accumulator for accumulating for each positive measurement window the fire periods whose central points fall within said positive windowto produce a total fire period for said positive window; and a second accumulator for accumulating for each negative measurement window the individual fire periods whose 50 central points fall within said negative window to produce a total fire period for said negative window; said calculating means calculating said slope from said total fire periods accumulated in said first and second accumulators.
3. An adaptive control system as claimed in Claim 2, in which said slope calculating means calculatesthe average engine speed during each positive measurement window by dividing the number of engine fires 55 occurring during said window bythe total fire period accumulated in said first accumulator, calculating the average engine speed during each negative measurement window by dividing the number of engine fires occurring in said negative window bythe total fire period accumulated in said second accumulator, and calculating each slope value by subtracting the average engine speed occurring in a positive windowfrom the average speed occurring in the subsequent negative window to obtain a first transition value, subtracting 60 the average engine speed occurring in a negative window from the average speed occurring in p subsequent positive window to obtain a second transition value, and subtracting the first transition value from the second transition value to obtain said slope value.
4. An adaptive control system as claimed in Claim 2, in which said slope calculating means calculates each slope value by subtracting the product of the number of engine fires occurring in one positive window 65 11 GB 2 186 998 A 11 and the total fire period occurring in a subsequent negative windowfrom the product of the total number of fire occurring in said subsequent negative window and the total fire period occurring in said one positive window to produce a first difference value, subtracting the product of the number of engine fires occurring in one negative window and the total fire period fora subsequent positive window from the product of the total number of fires occurring in said subsequent positive window and the total fire period occurring in said one 5 negative window to produce a second difference value, and subtracting said first difference vaiqe from said second difference value to produce said slope value.
5. An adaptive control system as claimed in anyone of the preceding claims, in which said correction means compares each slope value with a reference value to determine a difference value, integrates said difference values to obtain an average value, and uses said average value to correct at least one corrected 10 parameter.
6. An adaptive control system as claimed in anyone of the preceding claims, in which the system includes means for determining the engine speed, and means for determining the load demand to which the engine is subjected, and basic values for said perturbed parameter are stored in a schedule as a function of engine speed and load demand. 15
7. An adaptive control system as claimed in Claim 6, in which the basic values for said perturbed parameter are stored in said schedule as a two dimensional array as a function of engine speed and load demand, and each basic value of said perturbed parameter is determined from the values stored atthefour array points in the speed/load plane which surround the prevailing speed and load, said perturbed parameter at each point being multiplied by a respective weighting factor to form a product value and the four resulting 20 product values being summed to produce the basic value, said weighting values being determined by forming a main rectangle whose corners lie on said four array points, dividing said main rectangle into four sub-rectangles by the abscissa and ordinate which pass through the prevailing engine speed and load demand point, and calculating the weighting factor for each array point by dividing the area of the diagonally opposite sub-rectangle by the area of the main rectangle. 25
8. An adaptive control system as claimed in anyone of the preceding claims, in which said perturbed parameter is an ignition timing parameter.
9. An adaptive control system as claimed in Claim 8, in which there is a single corrected parameter and both said perturbed parameter and the corrected parameter are an ignition timing parameter.
10. A method of controlling an internal combustion engine, said engine having a flywheel connected 30 through resilient shafting and a gear arrangement to a load, said flywheel, resilient shafting and gear arrangement forming a resonant system which has a particular resonant frequency for each gear ratio established by said gear arrangement, said method comprising perturbing an engine control parameter (hereinafter referred to as "said perturbed parameter") by generating a periodic perturbation waveform, applying a positive perturbation to said perturbed parameter during the first part of each period of the 35 perturbation waveform and a negative perturbation to said perturbed parameter during the second part of each period of the perturbation waveform, each period of said waveform being equal to a whole numberof engine fire periods and the frequency of said waveform being greaterthan three quarters of the highest resonant frequency of said resonant system; creating at least one series of contiguous positive and negative measurement windows associated respectively with first and second parts of said perturbation waveform, 40 each measurement window lagging its respective part of the perturbation waveform by a predetermined phase shift; 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 (each of which is hereinafter referred to as "a corrected parameter").
11. A method of controlling an adaptive internal combustion engine as claimed in Claim 10, in which said 45 method further includes accumulating for each positive measurement windowthe individual fire periods whose central points fall within said positive window to produce a total fire period for said positive window, accumulating for each negative measurement window the individual fire periods whose central points fall within said negative windowto produce a total fire period for said negative window, and calculating said slope from said total fire periods accumulated during the positive and negative measurementwindows. 50
12. A method of controlling an internal combustion engine as claimed in Claim 11, in which said slope is calculated in accordance with the following steps: (1) calculating an average engine speed during each measurement window by dividing the number of fires occurring in that window by the total fire period accumulated in that window, and (2) calculating each slope value by subtracting the average engine speed occurring in a positive windowfrom the average speed occurring in the subsequent negative windowto 55 obtain a first transition value, subtracting the average engine speed occurring in a negative windowfrom the average engine speed occurring in a subsequent positive windowto obtain a second transition value, and subtracting the firsttransition value from the second transition value to obtain said slope value.
13. A method of controlling an internal combustion engine as claimed in Claim 11, in which each slope value is calculated by subtracting the product of the number of engine fires occurring in one positive window 60 and the total fire period occurring in a subsequent negative window from the product of the total number of fires occurring in said subsequent negative window and the total fire period occurring in said one positive windowto produce a first difference value, subtracting the product of the number of engine fires occurring in one negative window and the total fire period fora subsequent positive window from the product of thetotal number of fires occurring in said subsequent positive window and thetotal fire period occurring in said one 65 12 GB 2 186 998 A 12 negative windowto produce a second difference value, and subtracting said first difference value from said second difference value to produce said slope value.
14. A method of controlling an internal combustion engine as claimed in anyone of Claims 11 to 13, in which said perturbed parameter is an ignition timing parameter.
15. A method of controlling an internal combustion engine as claimed in Claim 14, in which there is a 5 single corrected parameter and both said perturbed parameter and the corrected parameter are an ignition timing parameter.
16. An adaptive control system for an internal combustion engine substantially as hereinbefore described with reference to, and as shown in, Figures land 4to 11, or Figures land 4to 11 as modified by Figures 12 and 13, of the accompanying drawings. 10
17. A method of controlling an internal combustion engine substantially as hereinbefore described with referenceto, and asshown in, Figures 1 and4to 11 or Figures land 4to 11 as modified by Figures 12 and 13, of the accompanying drawings.
Printed for.Her Majesty's Stationery Office by Croydon Printing Company (U K) Ltd,7187, D8991685.
Published byThe Patent Office, 25 Southampton Buildings, LondonWC2A lAYfrom which copies maybe obtained.
r
GB8701689A 1986-02-20 1987-01-27 Adaptive control system for an internal combustion engine Expired - Lifetime GB2186998B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
MYPI87000322A MY101711A (en) 1986-02-20 1987-03-19 Adaptive control system for an internal combustion engine.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB868604260A GB8604260D0 (en) 1986-02-20 1986-02-20 I c engine

Publications (3)

Publication Number Publication Date
GB8701689D0 GB8701689D0 (en) 1987-03-04
GB2186998A true GB2186998A (en) 1987-08-26
GB2186998B GB2186998B (en) 1990-04-04

Family

ID=10593414

Family Applications (2)

Application Number Title Priority Date Filing Date
GB868604260A Pending GB8604260D0 (en) 1985-07-23 1986-02-20 I c engine
GB8701689A Expired - Lifetime GB2186998B (en) 1986-02-20 1987-01-27 Adaptive control system for an internal combustion engine

Family Applications Before (1)

Application Number Title Priority Date Filing Date
GB868604260A Pending GB8604260D0 (en) 1985-07-23 1986-02-20 I c engine

Country Status (5)

Country Link
EP (1) EP0234714B1 (en)
JP (1) JPH0692769B2 (en)
DE (2) DE3780658D1 (en)
GB (2) GB8604260D0 (en)
MY (1) MY101711A (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8715130D0 (en) * 1987-06-27 1987-08-05 Lucas Ind Plc Adaptive control system for i c engine
JP2559493B2 (en) * 1989-07-28 1996-12-04 日産自動車株式会社 Vehicle running control device

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR1377282A (en) * 1963-03-07 1964-11-06 Renault Method and device for obtaining by varying the advance the deceleration of the engine of a motor vehicle provided with an automatic gearbox
US4257377A (en) * 1978-10-05 1981-03-24 Nippondenso Co., Ltd. Engine control system
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
JPS5749041A (en) * 1980-09-05 1982-03-20 Nippon Denso Co Ltd Optimum control to internal-combustion engine
JPS57143161A (en) * 1981-03-02 1982-09-04 Nippon Denso Co Ltd Ignition time controlling method for internal combustion engine
DE3128922C1 (en) * 1981-07-22 1982-11-11 Atlas Aluminium-Fahrzeugtechnik Gmbh, 5980 Werdohl Arrangement for generating a trigger pulse
JPS606071A (en) * 1983-06-24 1985-01-12 Toyota Motor Corp Control method for knocking in internal-combustion engine

Also Published As

Publication number Publication date
EP0234714A1 (en) 1987-09-02
GB8604260D0 (en) 1986-03-26
DE3703481C2 (en) 1989-11-02
GB2186998B (en) 1990-04-04
JPS62203975A (en) 1987-09-08
DE3703481A1 (en) 1987-08-27
EP0234714B1 (en) 1992-07-29
JPH0692769B2 (en) 1994-11-16
DE3780658D1 (en) 1992-09-03
GB8701689D0 (en) 1987-03-04
MY101711A (en) 1992-01-17

Similar Documents

Publication Publication Date Title
US4893600A (en) Adaptive control for an internal combustion engine
US4899282A (en) Method and apparatus for controlling an internal combustion engine
US4841933A (en) Adaptive control system for an internal combustion engine
US4532592A (en) Engine-performance monitor and control system
US4928652A (en) Engine control system for suppressing car body vibration
US4328779A (en) Feedback type ignition timing control system for internal combustion engines
US4688535A (en) Apparatus for influencing control quantities of an internal combustion engine
EP0589517B1 (en) Method of predicting air flow into a cylinder
US5016591A (en) System and method for controlling a combustion state in a multi-cylinder engine for a vehicle
EP0198137B1 (en) On-line engine torque and torque fluctuation measurement for engine control utilizing crankshaft speed fluctuations
US5546793A (en) Process for determining gas-force transmitted torque to an internal-combustion engine crankshaft
US4789939A (en) Adaptive air fuel control using hydrocarbon variability feedback
US4896639A (en) Method and apparatus for engine control and combustion quality detection
EP0345942B1 (en) Adaptive control system for an internal combustion engine and method of operating an internal combustion engine
US4971011A (en) Air and fuel control system for internal combustion engine
US5359519A (en) Process and device for measuring the torque of an internal combustion heat engine taking into consideration, in particular, the recirculation of exhaust gases and residual burnt gases and excess oxidant
JPH04128535A (en) Electronically controlled fuel injection of internal combustion engine
GB2186997A (en) Adaptive control system for an internal combustion engine
GB2186998A (en) Adaptive control system for an internal combustion engine
US4711215A (en) LPP combustion control for IC engine with abnormal combustion

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee

Effective date: 19980127