Patent Description:
Spark plugs are used to create electric sparks in the combustion chambers of an internal combustion engine to ignite a compressed fuel/air mixture. Spark plugs typically have a metal threaded shell and a ceramic insulating layer that electrically isolates the shell from a central electrode. The central electrode extends through the ceramic insulator into the combustion chamber. A spark gap is defined between the inner end of the central electrode and the threaded shell.

Spark plugs are typically connected to a high voltage generated by an ignition coil connected to an ignition driver. A voltage is developed between the central electrode and the threaded shell as current flows from the coil. Initially, the fuel and air in the spark gap act as an insulator, preventing current flow. As the voltage continues to rise, the structure of the gases between the electrodes begins to change and the gases become ionized once the voltage exceeds the dielectric strength of the gases. The ionized gas is electrically conductive and allows current to flow across the gap.

Voltage ranges of <NUM>,<NUM>-<NUM>,<NUM> volts are typically used to cause the spark plug to spark (or "fire") properly, but higher voltages (e.g., up to <NUM>,<NUM> volts) can be used as well. By supplying higher currents during the discharge process, sparks that are hotter and have a longer duration can be created. The voltages used can vary depending on a number of engine operating conditions, such as fuel quality, cylinder compression levels, spark gap, engine loading, extender material, cylinder head dimensions, and gas turbulence levels in the cylinder. <CIT> describes an engine ignition system for a spark-ignited engine includes a sparkplug and a control system having primary ignition circuitry, secondary ignition circuitry coupled with electrodes of the sparkplug, and sensing circuitry. <CIT> describes a method for determining a defect in a spark plug associated with a cylinder of a spark-ignited internal combustion engine, an ignition delay from starting a supply of current to a primary winding of an ignition coil associated with the spark plug to reaching a maximum value of the supplied current is determined. <CIT> describes an ignition apparatus that is provided with a Zener diode as a limiter device, which limits a primary voltage of an ignition coil to be less than a Zener voltage, and a switching circuit, which prohibits a limiter function of the Zener diode at a start of discharge and switches the limiter device to perform the limiter function for a predetermined time period following the start of discharge.

In general, this document describes systems and techniques for determining the response of spark plugs for internal combustion engines. A method, an ignition controller, and an engine system according to the present invention are set out in the independent claims. Further advantageous developments of the present invention are set out in the dependent claims.

The systems and techniques described here may provide one or more of the following advantages. First, a system can reduce the amount of power used to power an ignition system. Second, the system can reduce spark plug erosion. Third, the system can increase spark plug life. Fourth, the system can increase the operational availability of combustion engines. Fifth, the system can reduce maintenance costs for combustion engines. Sixth, the system can increase the fuel efficiency of combustion engines.

In general, this document describes systems and techniques for determining the response of spark plugs for internal combustion engines. A challenge in spark plug design is premature spark plug wear. Premature spark plug wear is caused by high temperatures. Spark plug electrodes erode with use and this erosion can be accelerated by the use of excessively hot sparks. Accelerated electrode erosion reduces the number of operational hours that the spark plug can operate before it needs to be replaced. Such wear can lead to excessive and/or unscheduled downtime for the engine and therefore increased operational costs for the engine operator.

Legacy methods used for estimating the spark plug breakdown voltage generally measure the total time required to reach a pre-determined primary current value. In such legacy systems there exists a pre-breakdown or pre-inflection current with low primary ignition coil current slope (e.g., low di/dt) and a post breakdown or post inflection point current with high primary coil current slope (i.e., high di/dt). Such legacy systems generally infer breakdown voltage by measuring the time required to reach a pre-determined primary winding current value that is generally higher than the primary winding inflection point current. Such pre-determined primary winding current values are selected such that voltage breakdown ensured for all spark plug operating conditions. The pre-determined current values of such legacy systems are greater than are needed for many breakdown voltage operating points, especially for fresh spark plugs that exhibit a small gap. This means that for many legacy breakdown voltage operating points, the selected primary currents are much greater than are needed in order to generate ionization. Such excessive current levels can lead to excessive and/or premature spark plug wear.

Generally speaking, the systems and techniques described in this document monitor the current that is provided to an ignition system, coil, and spark plug, and detect one or more events (i.e., primary ignition coil current inflection points) that can be used to determine the time and/or estimate the voltage at the start and/or end of a spark. This information can be used to modify the amount of energy that is provided to the spark plug, for example, to reduce the temperature of the sparks and reduce the amount of spark plug wear that results from the use of excessively hot sparks and/or electron depletion from the electrodes. This monitoring process can also be used to detect the end of sparks and the occurrence of spark blowout, and this information can be used to modify ignition system performance and life.

<FIG> is a schematic diagram that shows an example engine control system <NUM> for a reciprocating engine. In some implementations, the system <NUM> can be used for determining and modifying the response behavior of a spark plug <NUM>. An engine controller <NUM>, such as an Engine Control Module (ECM), communicates with an ignition controller <NUM>, used to control ignition of the spark plug <NUM> and measure the spark plug's <NUM> behavior in response to being activated in order to determine if power adjustments and/or re-sparking would be beneficial. By determining the behavior of the spark plug <NUM>, the engine controller <NUM> can monitor, diagnose, control, and/or predict the performance of the spark plug <NUM>.

The spark plug <NUM> of example ignition control system <NUM> includes electrodes <NUM> between which a spark is generated. The spark plug <NUM> is driven by an ignition system <NUM>. A power controller <NUM> provides power from a power source <NUM> (e.g., an electric starter battery or regulated power supply) to a primary ignition coil <NUM> based on signals received over a control bus <NUM>. The primary coil drives a secondary ignition coil <NUM> that steps up the voltage to levels that will cause the spark plug <NUM> to produce a spark across the electrodes <NUM>. By controlling the amount of power provided to the primary coil <NUM>, the energy of the spark can be controlled.

The ignition controller <NUM> includes an output module <NUM> that provides control signals to the control bus <NUM> that control the delivery of power to the primary coil <NUM>, and as such, control the temperature of the spark at the electrodes <NUM>. The ignition controller <NUM> also includes an input module <NUM> (e.g., an analog to digital converter) that is configured to receive feedback signals from a feedback bus <NUM>. The feedback signals are provided by a current sensor <NUM> (e.g., current transducer) that is configured to sense the amplitude of current that flows from the power controller <NUM> to the primary ignition coil <NUM>.

The ignition controller <NUM> monitors the feedback signals (e.g., primary coil current amplitude) to determine when the spark plug <NUM> starts and/or ends its spark. Generally speaking, by determining the operational behavior of the spark plug <NUM> under various actuation stimuli, the ignition controller <NUM> can determine how it may reduce power delivery to the primary ignition coil <NUM> (e.g., to reduce spark temperature and temperature-induced electrode erosion, to diagnose malfunctions), determine the duration of the spark (e.g., to calibrate spark timing, diagnose malfunctions, predict malfunctions), and/or determine premature spark end (e.g., blowout, to trigger a re-spark within the same piston stroke, to diagnose fuel problems, to calibrate spark plug power delivery).

The ignition controller <NUM> can be used for the operations described herein according to one implementation. The ignition controller <NUM> includes a processor <NUM>, a memory <NUM>, and a storage device <NUM>. The processor <NUM> is capable of processing instructions for execution within the ignition system <NUM>. In one implementation, the processor <NUM> can be a field-programmable gate array (FPGA) processor. For example, with the advent of very fast FPGAs, it is possible to look carefully at the input module <NUM> and detect very small variations in current waveforms at very fast clock rates.

In another implementation, the processor <NUM> can be a single-threaded processor. In another implementation, the processor <NUM> can be a multi-threaded processor. In some implementations, the processor <NUM> can be capable of processing instructions stored in the memory <NUM> or on the storage device <NUM> to collect information from the current sensor <NUM>, and provide control signals to the power controller <NUM>.

The memory <NUM> stores information within the ignition controller <NUM>. In some implementations, the memory <NUM> can be a computer-readable medium. In some implementations, the memory <NUM> can be a volatile memory unit. In some implementations, the memory <NUM> can be a non-volatile memory unit.

The storage device <NUM> is capable of providing mass storage for the ignition controller <NUM>. In various different implementations, the storage device <NUM> may be non-volatile information storage unit (e.g., FLASH memory).

The output module <NUM> provides control signal output operations for the power controller <NUM>. The output module <NUM> provides actuation control signals (e.g., pulse width modulated, PWM, driver signals) to a driver which drives the primary ignition coil <NUM>. For example, the power controller <NUM> can include field effect transistors (FETs) or other switching devices that can convert a logic-level signal from the output module <NUM> to a current and/or voltage waveform with sufficient power to drive the primary ignition coil <NUM> of the ignition system <NUM>.

The features described herein can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The apparatus can be implemented in a computer program product tangibly embodied in an information carrier, e.g., in a machine-readable storage device for execution by a programmable processor; and method steps can be performed by a programmable processor executing a program of instructions to perform functions of the described implementations by operating on input data and generating output. The described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result.

<FIG> is a schematic diagram of an example ignition control system <NUM>. In some embodiments, the ignition control system <NUM> can be the ignition control system <NUM> of the example engine control system <NUM> of <FIG>.

The ignition control system <NUM> contains an electronics driver that precisely delivers and controls the electrical voltage and current to a primary winding <NUM> of an ignition coil <NUM> using a Pulse Width Modulation (PWM) switching topology or a capacitive discharge topology. The ignition control system <NUM> also contains current feedback circuits that aid in the control of the voltage application and the current flow through the primary winding <NUM> (e.g., primary ignition coil) of the ignition coil <NUM>. The ignition control system <NUM> includes a processor <NUM> that is able to process the feedback of current flowing through the primary winding <NUM> of the ignition coil <NUM>. The processor <NUM> executes algorithms that are configured to determine, from feedback signals received over a primary winding current feedback bus <NUM>, the operating state of a spark plug <NUM> that is connected to the secondary winding of the ignition coil <NUM>. When the primary winding current feedback is processed as will be discussed further below, one can infer breakdown voltage of the spark plug <NUM>, observe the precise time occurrence of ionization of the spark plug <NUM>, sense a spark blowout condition, and/or sense an end of spark condition.

The inferred spark plug breakdown voltage can be used as a prognostic in engine applications to monitor wear of the spark plug <NUM>. As the spark plug <NUM> wears, the size of a gap between the electrodes of the spark plug <NUM> grows, and the breakdown voltage of the spark plug <NUM> increases as a result. When the inferred spark plug breakdown voltage exceeds a predetermined value, the processor <NUM> can provide an alarm signal to indicate that it is time to replace the spark plug <NUM> in order to prevent unplanned engine down time.

In previous embodiments, the primary winding would be driven with relatively higher energy levels in order to ensure that sufficient voltage and current were provided to create spark plug breakdown or ionization under all operating conditions. The higher energy levels exhibited by such previous methods can result in accelerated electrode wear at the spark plug, and this can lead to increased maintenance cost and increased engine down time. By contrast, the current feedback algorithms executed by the processor <NUM> are configured to very precisely sense the instant that spark plug breakdown has occurred. This ability allows for an immediate reduction in energy applied to the primary winding <NUM> and to the spark plug <NUM> attached to a secondary winding <NUM> (e.g., secondary ignition coil) of the ignition coil <NUM>, thereby reducing electrode wear and increasing the service life of the spark plug <NUM>. Additionally the spark plug breakdown time can be used to calibrate the timing of ignition driver firing to improve engine and combustion performance.

The processor <NUM> is also configured to sense if the spark at the electrodes of the spark plug <NUM> are blown out or extinguish. Sensing such blowout conditions allows ignition controller <NUM> to modify PWM switching of power to the primary winding <NUM> so that an additional spark can be initiated in order to prevent engine misfire or reduced combustion performance. Additionally, sensing the blowout condition can be used to modify/calibrate ignition driver firing and/or energy profiles in order to avoid misfire and blowout conditions.

The processor <NUM> is also configured to sense the end of spark instant. In some implementations, detection of the end of spark can be used to calibrate engine combustion and performance. In some implementations, precise detection of the spark start and end can be used in processes for controlling and optimizing the amount of energy delivered to the spark plug. Detection of end of spark is discussed further in the description of <FIG> and <FIG>.

<FIG> is a graph <NUM> of example primary coil current <NUM> and example secondary coil voltage <NUM> over time. In some implementations, the primary coil current <NUM> can represent the current on the primary ignition coil <NUM> of the example engine control system <NUM> of <FIG> or the current on the primary winding <NUM> of the example ignition control system <NUM> of <FIG>. In some implementations, the secondary coil voltage <NUM> can represent the voltage produced by the secondary ignition coil <NUM> or the voltage produced by the secondary winding <NUM>.

<FIG> the primary coil current <NUM> is an example of primary coil current amplitude during the creation of spark. An inflection point <NUM> in the primary coil current <NUM> occurs when a spark is generated as a result of ionization of the spark plug gap in response to a high voltage generated by the secondary coil winding. When the spark occurs, the secondary of the transformer is electrically shorted, resulting in substantially only the leakage inductance limiting the rate of rise of current. The leakage inductance is generally about an order of magnitude less than the primary inductance, hence the di/dt with only the leakage inductance is much higher. The inflection point <NUM> occurs at the instant that the spark plug gap ionizes. In the illustrated example, the primary coil current <NUM> rises (e.g., from zero) at a starting point <NUM> to a peak <NUM> and then starts to drop again until the inflection point <NUM>. The primary coil current <NUM> begins to rise again after the inflection point <NUM>. The period of time (T1) between the starting point <NUM> and the inflection point <NUM>, is represented as a time period <NUM> (T1). The period of time (T2) between the inflection point <NUM> and an ending point <NUM>, is represented as a time period <NUM>. The starting point <NUM> is determined by monitoring the primary coil current <NUM>. For example, when current sensed by the current sensor <NUM> rises from about zero amps to above a predetermined minimum current threshold value (e.g., comparator operation). This signal is then fed back (e.g., to an FPGA) to control the current. In some implementations, the starting point <NUM> can be determined by monitoring signals from an engine controller (e.g., triggered by a signal from the output module <NUM> to the power controller <NUM>). In some implementations, the ending point <NUM> can represent an end of spark event.

The inflection point <NUM> (e.g., change in the rate of current rise, di/dt change) is that the impedance of the spark plug gap changes at breakdown or ionization, for example, as seen from the secondary winding voltage and represented as a point <NUM>. Prior to breakdown or ionization <NUM>, the spark plug gap behaves like a very high impedance open circuit to the secondary winding. As discussed above, when the spark occurs, the secondary of the transformer is electrically shorted, resulting in substantially only the leakage inductance limiting the rate of rise of current. The leakage inductance is generally about an order of magnitude less than the primary inductance, hence the di/dt with only the leakage inductance is much higher. After breakdown or ionization <NUM>, the spark plug gap exhibits a low impedance that approximates a short circuit. As is well known in the art, when two mutually coupled windings (e.g., as in a transformer such as an ignition coil) are shorted on the secondary winding, the current in the primary winding can rise quickly as the primary and secondary winding magnetizing inductances no longer inhibit current rise. This is because the short on the secondary winding effectively bypasses the magnetizing inductances. After ionization, only a much lower primary to secondary winding leakage inductance inhibits the primary current rise, which is exhibited as the inflection point <NUM> and the increased primary winding di/dt during the period of time <NUM>.

<FIG> is a graph <NUM> of three different example primary coil currents <NUM>, <NUM>, and <NUM>, resulting from three different example secondary coil voltages and spark gap conditions <NUM>, <NUM>, and <NUM>. The primary coil current <NUM>-<NUM> represents currents on the primary ignition coil <NUM> of the example engine control system <NUM> of <FIG> or currents on the primary winding <NUM> of the example ignition control system <NUM> of <FIG>. In some implementations, the secondary coil voltages <NUM>, <NUM>, and <NUM> can represent the voltage produced by the secondary ignition coil <NUM> or the voltage produced by the secondary winding <NUM>.

When the breakdown voltage is low, as illustrated by the secondary coil voltage <NUM> (e.g., 15kV in the illustrated example), a secondary inflection point <NUM> associated with breakdown occurs early (e.g., approximately <NUM> usec in the illustrated example). The secondary inflection point <NUM> is observable as a primary inflection point <NUM> in the primary coil current <NUM>. When the breakdown voltage is high, as illustrated by the secondary coil <NUM> (e.g., 35kV in the illustrated example), a secondary inflection point <NUM> associated with the breakdown occurs later (e.g., approximately <NUM> usec in the illustrated example). The secondary inflection point <NUM> is observable as a primary inflection point <NUM> in the primary coil current <NUM>. If there is no breakdown condition (also known as open circuit), as shown by the secondary coil voltage <NUM>, then there is no abrupt di/dt change or inflection point in the primary winding current <NUM>.

The amounts of time taken for the primary coil currents <NUM> and <NUM> to reach the inflection point correlates with the breakdown voltage. As the breakdown voltages increase, the amounts of times that the primary currents <NUM>, <NUM> take to reach the inflection points <NUM>, <NUM> increase (e.g., about <NUM> usec to reach the inflection point <NUM>, about <NUM> usec to reach the inflection point <NUM>). A processor, such as the processor <NUM> of the example ignition controller <NUM> of <FIG>, is able to use feedback from the primary currents <NUM>, <NUM> to determine the amounts of time between the start of the primary coil currents <NUM>-<NUM> and the times at which the inflection points <NUM>, <NUM> occur. In some implementations, the processor can perform a table lookup operation or perform a mathematical algorithm (e.g., linear regression, predictive analytics) to correlate the inflection point times to actual spark plug breakdown voltages.

<FIG> is a graph <NUM> of example primary coil current <NUM> and example secondary coil voltage <NUM> that includes a spark extinguish event. The primary coil current <NUM> represents the current on the primary ignition coil <NUM> of the example engine control system <NUM> of <FIG> or the current on the primary winding <NUM> of the example ignition control system <NUM> of <FIG>. In some implementations, the secondary coil voltage <NUM> can represent the voltage produced by the secondary ignition coil <NUM> or the voltage produced by the secondary winding <NUM>.

The primary coil current <NUM> can be analyzed to identify the end of spark time, or spark extinguish occurrence. When a spark extinguishes, the impedance of the spark plug gap significantly increases. Whereas a spark event is similar to an electrical short between the electrodes of a spark plug, the end of spark causes the spark plug to act as an open circuit. The end of the spark event removes the short circuit from the ignition coil secondary winding and results in a much slower rate of change (e.g., slope, di/dt) in in the primary coil current <NUM>.

In the illustrated example, the end of spark occurs at approximately <NUM> usec (represented by time <NUM>). The primary coil current <NUM> drops with a negative rate of change of about 25A during the 100usec preceding the end of spark <NUM>, and becomes more stable with a less negative rate of change (e.g., a di/dt that is relatively closer to zero) after the end of spark <NUM>. The slope change in the primary coil current <NUM> associated with the ending of the spark is identifiable as an inflection point <NUM>.

In some implementations, detection of the end of spark can be used to calibrate engine combustion and performance. For example, the end of spark can be used to determine the duration of a spark. The inferred spark duration can be used as a prognostic in engine applications to monitor wear of a spark plug, such as the example spark plug <NUM> of <FIG>. As the spark plug <NUM> wears, the size of the gap between the electrodes <NUM> grows, and the breakdown voltage of the spark plug <NUM> increases as a result, which can shorten the duration of spark. When the inferred spark duration drops below a predetermined value, the processor <NUM> can provide an alarm signal to indicate that it is time to replace the spark plug <NUM> in order to prevent unplanned engine down time.

<FIG> is a graph <NUM> of example primary coil current <NUM> and example secondary coil voltage <NUM> during a blowout event. The primary coil current <NUM> represents the current on the primary ignition coil <NUM> of the example engine control system <NUM> of <FIG> or the current on the primary winding <NUM> of the example ignition control system <NUM> of <FIG>. In some implementations, the secondary coil voltage <NUM> can represent the voltage produced by the secondary ignition coil <NUM> or the voltage produced by the secondary winding <NUM>.

The primary coil current <NUM> can be analyzed to identify when a spark is blown out (e.g., extinguished), for example, due to turbulence in the combustion chamber or fuel issues. In the illustrated example, a start of spark of a spark plug spark occurs at a time represented by <NUM> and can be detected by identifying an inflection point <NUM>. An end of spark of the spark plug spark occurs at a time represented by <NUM> and can be detected by identifying an inflection point <NUM>.

During a blowout condition (e.g., extinguishment), the spark plug gap impedance changes from a short circuit exhibited during sparking, to an open circuit exhibited after blowout. This change in impedance loading on the ignition coil secondary winding results in a reduction the rate of change (e.g., slope) in the primary coil current <NUM>.

In the illustrated example, extinguishment of the spark plug spark occurs at a time represented by <NUM> and can be detected by identifying an inflection point <NUM>. There is change in the slope of the primary coil current <NUM> associated with the blowout condition (e.g., extinguishment). For example, prior to the extinguishing at <NUM>, the di/dt looks similar to the di/dt between a time represented by <NUM> and <NUM>. Between <NUM> and <NUM> the primary coil current <NUM> exhibits a long duration for the same current drop (e.g., smaller slope), this is an indication that the spark is extinguished and the impedance is no longer similar to a short; rather, the impedance is similar to that of an open coil (e.g., a small di/dt). The point where the rate of change in primary coil current <NUM> changes slope as a result of re-striking the spark is identified as the inflection point <NUM>.

In some implementations, spark extinguishment and end of spark can be distinguished from each other based on expected or observed spark durations under normal operating conditions. For example, the example ignition controller <NUM> of <FIG> can be configured to provide power to the primary coil <NUM> for <NUM> usec for a nominal combustion cycle, and when an inflection point is detected sooner than say for example <NUM> usec, that inflection point can be identified as being indicative of a premature extinguishment of the spark, possibly due to blowout.

In some implementations, detection of blowout can be used to modify operation of the spark plug. For example, when a spark is extinguished prematurely, the fuel in the combustion chamber may remain partly or completely uncombusted. Uncombusted fuel can result in reductions in engine power, fuel efficiency, and exhaust cleanliness. By detecting the blowout condition, the ignition controller <NUM> can provide a second (e.g., possibly stronger) pulse of energy during the same combustion stroke in an attempt to re-ignite the unspent fuel. In another example, the ignition controller may detect a predetermined threshold frequency or number of blowout events and be configured to respond by increasing the amount of energy provided for future sparks (e.g., poor quality fuel may require higher spark temperatures to avoid missed strokes). The ignition controller may also be configured to reduce the amount of energy provided until a predetermined threshold frequency or number of blowout events start to be detected. For example, unusually infrequent misses may suggest that the spark energy may be higher than is actually needed, and can be reduced to enhance plug wear (e.g., a tank of bad fuel might leave the ignition controller with an energy configuration that is higher than is needed for a subsequent tank of better quality fuel).

<NUM> is flow chart that shows an example of a process <NUM> for determining the response of a spark plug. In some implementations, the process <NUM> can be performed by the engine controller <NUM> and/or the ignition controller <NUM> of the example engine control system <NUM> of <FIG>, and/or by the processor <NUM> of the example ignition controller <NUM> of <FIG>.

At <NUM> a collection of measurements are received. The measurements are of electric current amplitude in a primary winding of an engine ignition system comprising the primary winding and a spark plug. In some implementations, the measurements can be received by sensing, by an electric current sensor, the collection of measurements. For example, the ignition controller <NUM> includes the input module <NUM>, which is configured to receive feedback signals from the current sensor <NUM>, which is configured to sense the amplitude of current that flows from the power controller <NUM> to the primary ignition coil <NUM>.

At <NUM>, an ignition start time is identified. For example, the ignition controller <NUM> can sense a change in the rate of the current flowing through the primary ignition coil <NUM> as an indication that a new ignition cycle is starting. In another example, the ignition controller <NUM> may be responsible for starting the ignition cycle, and would be able to identify the start of the ignition cycle inherently.

At <NUM>, an inflection point is identified based on the plurality of measurements. In some implementations, the inflection point can be identified by determining a first rate of change in electric current amplitude in the primary winding, determining a second rate of change in electric current amplitude in the primary winding that is adjacent to and different from the first rate of change, identifying a transition point based on the plurality of measurement where the first rate of change meets the second rate of change, and providing the identified transition point as the inflection point. For example, the ignition controller <NUM> can determine a distinct change in the slope of the primary coil current <NUM> (e.g., negative slope to positive slope) and identify the change as the inflection point <NUM>.

At <NUM>, an inflection point time representative of a time at which the identified inflection point occurred is determined. For example, the ignition controller <NUM> can determine that the inflection point <NUM> occurred at time T1 (e.g., <NUM> usec) after ignition start.

At <NUM>, a spark start time is determined based on an amount of time between the ignition start time and the inflection point time. For example, continuing the previous example, since the inflection point <NUM> occurred at time T1 (e.g., <NUM>-<NUM> usec) after ignition start, the ignition controller <NUM> can determine that the difference between ignition start time and inflection point time is T1 (e.g., <NUM>-<NUM> usec).

At <NUM>, a signal indicative of the spark start time is provided. For example, the processor <NUM> can set a variable to represent the spark start time in the memory <NUM>, or store the spark start time in the storage <NUM>, or provide the spark start time to the output module <NUM>, and/or provide the spark start time to the engine controller <NUM>.

In some implementations, the process <NUM> can also include determining a spark plug breakdown voltage based on the spark start time, and providing a signal indicative of the spark plug breakdown voltage. For example, the ignition controller <NUM> and/or the engine controller <NUM> can perform a table lookup based on the spark start time to determine a corresponding spark plug breakdown voltage. In another example, the ignition controller <NUM> and/or the engine controller <NUM> can execute an algorithm or a mathematical model to calculate the spark plug breakdown voltage based on the spark start time.

In some implementations, the process <NUM> can also include providing a first amount of energy to the primary winding, wherein the ignition start time corresponds to the start of providing the first amount of energy, determining a second amount of energy based on the spark start time that is different from the first amount of energy, providing the second amount of energy to the primary winding, and sparking the spark plug based on the second amount of energy. In some implementations, the second amount of energy can be less than the first amount of energy. For example, the ignition controller <NUM> can be initially configured to provide switch the power controller <NUM> on for <NUM> usec to power the primary coil <NUM> from the power source <NUM>. After one or more combustion cycles based on the initial configuration, the ignition controller <NUM> can determine that the spark start time happens at about <NUM> usec, which is about <NUM> usec less than the duration of power that is initially being used. Since excess power can cause accelerated wear of the electrodes <NUM>, the ignition controller <NUM> can respond by reconfiguring itself to provide a shorter pulse of power, and therefore less energy, from the power source <NUM> to the primary coil <NUM>. For example, the ignition controller <NUM> can use current feedback signals from the current sensor to shorten the ignition pulse from <NUM> usec to a duration ranging from about <NUM> usec to about <NUM> usec.

In some implementations, the process <NUM> can also include determining that the spark start time has exceeded a predetermined threshold time value, and provide a signal indicative of a condition in which the spark plug is to be replaced. For example, the spark plug <NUM> may take <NUM> usec to spark under nominal conditions, but as the electrodes <NUM> wear the amount of delay before the start of spark can expand. The length of spark start time can be correlated to a table or algorithm that can estimate the amount of useful service life left in the spark plug <NUM> and provide an alarm or other indication to operators or service personnel to indicate that the spark plug <NUM> should be replaced. Without such an indication, a worn spark plug may remain in use to cause reduced engine performance and/or fail unexpectedly to cause unplanned service downtime.

The process <NUM> also includes identifying a second inflection point based on the plurality of measurements, determining that a spark developed by the spark plug has been extinguished based on the second inflection point, and providing an extinguishment signal indicative of a condition in which the spark plug spark has been extinguished. For example, the spark plug <NUM> may take <NUM> usec to spark under nominal conditions and the spark may normally end at <NUM> usec. The ignition controller <NUM> can identify an inflection point that occurred at a point that is after the start of spark (e.g., <NUM> usec) but before the expected end of spark (e.g., <NUM> usec). Such an inflection point is indicative of the spark being extinguished (e.g., blown out).

In some implementations, the process <NUM> can include providing an amount of energy to the primary winding in response to the extinguishment signal, and re-sparking the spark plug based on the amount of energy. For example, when a spark is blown out, the fuel in a combustion chamber may be incompletely combusted which can cause a loss in engine performance and/or an increase in exhaust emissions. In response to determining that a spark blowout condition has occurred, the ignition controller <NUM> can respond by providing an additional pulse of power to the primary ignition coil <NUM> during the same combustion stroke to re-spark the spark plug <NUM> in an effort to combust the unspent fuel.

In some implementations, the process <NUM> can also include identifying a second inflection point based on the plurality of measurements, determining that an end of spark event has occurred based on the second inflection point, and provide an end of spark signal indicative of a condition in which the spark plug spark has been extinguished. For example, the ignition controller <NUM> can identify the inflection point <NUM> of the example primary coil current <NUM> as an indicator that the spark has ended and provide a signal (e.g., to the engine controller <NUM>) that the spark has been extinguished.

Claim 1:
A method (<NUM>) comprising:
receiving (<NUM>) a plurality of measurements of electric current amplitude in a primary winding (<NUM>) of an engine ignition system (<NUM>) comprising the primary winding and a spark plug (<NUM>);
identifying (<NUM>) an ignition start time;
identifying (<NUM>) an inflection point based on the plurality of measurements;
determining (<NUM>) an inflection point time representative of a time at which the identified inflection point occurred;
determining (<NUM>) a spark start time based on an amount of time between the ignition start time and the inflection point time; and
providing (<NUM>) a signal indicative of the spark start time; characterized by identifying a second inflection point based on the plurality of measurements;
determining that a spark developed by the spark plug has been extinguished based on the second inflection point; and,
providing an extinguishment signal indicative of a condition in which the spark plug spark has been extinguished.