Combustion analysis

This is a course about Combustion analysis. You will learn how to make a CA setup in Dewesoft software to get the best results.

Internal combustion means just what it says: that fuel is burned inside the engine. In a car engine, gasoline is burned inside the engine, which ignites the fuel and releases energy that moves the car. There are also other methods of internal combustion, such as diesel engines and gas turbine engines. Internal combustion is an efficient system that requires a relatively small engine to create motion. It is also more fuel efficient than external combustion engines, such as an old-fashioned steam engine.

Gasoline engines used to be as inefficient as steam engines. In 1876 the gasoline engine was invented and it was no more efficient than the steam engine, which used external combustion. A lot of fuel was wasted. In 1878, Rudolph Diesel decided to develop an engine with higher efficiency, and in 1892 the diesel engine was born. It was more efficient as an internal combustion engine, but it took many more years to develop a diesel engine that was cleaner and quieter. Early diesel engines spewed out sooty smoke and at first were only used in trucks. Today, new advancements in this method of internal combustion have improved the diesel engine. The difference between gas and diesel engines is the way fuel is converted to energy.

Turbines are another method used to create power with a spinning motion. There are wind turbines, steam turbines, water turbines and also gas turbines. Gas turbines work on the principle of internal combustion. In a modern gas turbine engine, the engine produces its own pressurized gas by burning fuel. The engine can burn propane, natural gas, kerosene, or jet fuel. The burning fuel creates heat, the heat in turn expands the air, and a high- speed blast of hot air spins the turbine

An internal combustion engine (ICE) is a heat engine where the combustion of a fuel occurs with an oxidizer (usually air) in a combustion chamber that is an integral part of the working fluid flow circuit. In an internal combustion engine the expansion of the high-temperature and high-pressure gases produced by combustion applies direct force to some component of the engine. The force is applied typically to pistons, turbine blades, rotor or a nozzle. This force moves the component over a distance, transforming chemical energy into useful mechanical energy.

The first commercially successful internal combustion engine was created by Étienne Lenoir around 1859 and the first modern internal combustion engine was created in 1876 by Nikolaus Otto.

The term internal combustion engine usually refers to an engine in which combustion is intermittent, such as the more familiar four-stroke and two-stroke piston engines, along with variants, such as the six-stroke piston engine and the Wankel rotary engine. A second class of internal combustion engines use continuous combustion: gas turbines, jet engines and most rocket engines, each of which are internal combustion engines on the same principle as previously described. Firearms are also a form of internal combustion engine.

In contrast, in external combustion engines, such as steam or Stirling engines, energy is delivered to a working fluid not consisting of, mixed with, or contaminated by combustion products. Working fluids can be air, hot water, pressurized water or even liquid sodium, heated in a boiler. ICEs are usually powered by energy-dense fuels such as gasoline or diesel, liquids derived from fossil fuels. While there are many stationary applications, most ICEs are used in mobile applications and are the dominant power supply for vehicles such as cars, aircraft, and boats.

Typically an ICE is fed with fossil fuels like natural gas or petroleum products such as gasoline, diesel fuel or fuel oil. There is a growing usage of renewable fuels like biodiesel for compression ignition engines and bioethanol or methanol for spark ignition engines. Hydrogen is sometimes used, and can be obtained from either fossil fuels or renewable energy.

Diagram showing the operation of a 4-stroke spark ingited engine. Labels:
1 ‐ Induction
2 ‐ Compression
3 ‐ Power
4 ‐ Exhaust
1. Intake, induction or suction: The intake valves are open as a result of the cam lobe pressing down on the valve stem. The piston moves downward increasing the volume of the combustion chamber and allowing air to enter in the case of a compression ignited (CI) engine or an air fuel mix in the case of spark ignited (SI) engines that do not use direct injection. The air or air-fuel mixture is called the charge in any case.
2. Compression: In this stroke, both valves are closed and the piston moves upward reducing the combustion chamber volume which reaches its minimum when the piston is at TDC. The piston performs work on the charge as it is being compressed; as a result its pressure, temperature and density increase; an approximation to this behavior is provided by the ideal gas law. Just before the piston reaches TDC, ignition begins. In the case of a SI engine, the spark plug receives a high voltage pulse that generates the spark which gives it its name and ignites the charge. In the case of a CI engine the fuel injector quickly injects fuel into the combustion chamber as a spray; the fuel ignites due to the high temperature.
3. Power or working stroke: The pressure of the combustion gases pushes the piston downward, generating more work than is required to compress the charge. Complementary to the compression stroke, the combustion gases expand and as a result their temperature, pressure and density decreases. When the piston is near to BDC the exhaust valve opens. The combustion gases expand irreversibly due to the leftover pressure - in excess of back pressure, the gauge pressure on the exhaust port; this is called the blowdown.
4. Exhaust: The exhaust valve remains open while the piston moves upward expelling the combustion gases. For naturally aspirated engines a small part of the combustion gases may remain in the cylinder during normal operation because the piston does not close the combustion chamber completely; these gases dissolve in the next charge. At the end of this stroke, the exhaust valve closes, the intake valve opens, and the sequence repeats in the next cycle. The intake valve may open before the exhaust valve closes to allow better scavenging.

Internal combustion engine. (2017, August 16). In Wikipedia, The Free Encyclopedia. Retrieved 13:16, August 17, 2017, from

The Dewesoft Combustion analysis math module enables the Analysis of internal combustion engines. If we measure the pressure inside the cylinder and the angle of the shaft, we can calculate the main indication values for engine development and testing, like maximum pressure, position of maximum pressure, heat release, knocking and other important parameters.

The combustion analyser is fully integrated inside the Dewesoft software, which means that we can use any functionality of Dewesoft including CAN bus, video, other analog signal acquisition and more.

Video below shows how easy and fast it is to setup combustion analysis in Dewesoft and start measuring.

SIRIUSi Combustion Analyser systems from Dewesoft are used for engine research, development and optimization. Also for component development and testing – such as ignition systems, exhaust systems and valve control gear. The system consists of our top of the notch isolated SIRIUSi hardware and the well-known Dewesoft™ software package for measurement and analysis.

It supports angle and time-based measurement results and uses highly sophisticated algorithms for online or offline mathematics and statistics – calculating heat release and other thermodynamic parameters.
The combustion analyser can be fully integrated within a testbed and also supports data from other sources: e.g. Video, CAN, Ethernet, …

If the powerful integrated post processing features of Dewesoft® are not enough, you can even export the data to several different file formats.

In addition to combustion analysis, the system can be expanded to handle other measurement applications such as hybrid testing on the power train, noise and vibration measurement together with synchronized video or GPS data.

System overview

Pressure sensor(s) are used to measure the cylinder pressure of the engine. Depending on the sensor type, these can be directly connected to our SIRIUSi amplifier like any other input channel or through external signal conditioning amplifiers. Charge type sensors can be connected to CHG amplifiers directly.

Additionally an angle sensor is needed for getting angle domain measurement results. Several different types are supported by the Dewesoft Combustion Analyser. Additional mounted CDM (Crank Disc Marker) sensors or digital native CDM sensors (like 60-2 or 37-1,...) with TTL outputs can be connected to dedicated counter inputs.

Sensors with analogue output can

  • be directly connected to analogue input channels
  • or to counter inputs via the DS-TACHO device

In both cases, the Dewesoft® re-sampling technology gives you an angle resolution down to 0.1°.

Like many other modules, Combustion Analysis is also an option to the standard Dewesoft® package. Simply press More (1) and select the Combustion analysis (2) to add the module.

The basic settings for the CA module need to be done here as well (3).

The settings for the encoder limit, Check encoder pulses are only used in real angle domain acquisition and therefore not needed for the Dewesoft® Combustion Analyser.

If Scope mode is enabled, CA skips cycles. In other words it does not calculate all cycles. There are several levels of scope mode available. Depending on this setting, the CA-module also skips calculations depending on measure mode (storing, not storing, trigger,…).

The default setting which should be used is: NEVER. CA will calculate, store and visualize all cycles.

Engine templates (eg. Calculation methods) are stored in the engine templates path.

The combustion analyser inside Dewesoft® is just one out of several other applications modules which offers dedicated mathematics and dedicated visual controls like the pV-diagram or the CA-scope.

Since the analogue channels of the Sirius system are the input for the mathematics calculations, you must first setup the amplifier and configure the scaling of the physical unit. This is done in the Analog section of the setup screen.

When you are satisfied with the Analog configuration you can go to the next step and use those analogue channels as input for the combustion analyser module.

You can use the same analogue input channels that you have used in the Combustion Analyser module for any other mathematics or applications (e.g. FFT, etc.) in parallel! This gives you a a multi functional instrument suitable for nearly any application. moreover, output channels from one mathematics module can be used as an input channels for any other module.

You can use the standard mathematics result channels as a combustion analyser input channel (e.g. some special filtering or correction of the input channels). The output of the combustion analyser module can be also used as input channel for the mathematics (e.g. advanced statistics on the cylinder pressure channels).

When connecting sensors for combustion analysis, extreme caution should be made while selecting the correct filters.

Correct hardware should be selected for the type of application (engine) that will be used. If it is going to be a very low-RPM engine and charge type pressure sensors will be used, then a Sirius device with charge inputs should be used. Otherwise also DSI-CHG adapters are possible, but they do not have the same filter settings as charge inputs. On the image above a clear difference can be seen for the lowest High-pass filter setting on a Sirius with CHG inputs (left) and a DEWE-43 with DSI-CHG-50 adapter (right).

Signal noise should always be reduced as much as possible with quality cabling and correct mounting of the pressure sensor. If there is still unwanted noise in the pressure signal, then filtering can be used to eliminate this.

High-pass filter

For a low-RPM engine the high-pass filter shouldn't be set too low.

Important settings: HPF ≤ 0.03 Hz

Low-pass filter

For a high-RPM engine the low-pass filter shouldn't be set too low.

Important settings: LPF ≥ 50 kHz

You must configure the Combustion Analyser module after setting up the analogue input channels.

The configuration of the CA module is split into 6 sections:

  • Engine: Defines the geometry and assigns the channels to the cylinders
  • Angle Sensor: Assigns the angle sensor, sampling type and the TDC detection
  • Calculations: Setup of the basic statistics and the pressure correction principles
  • Thermodynamics: Setup mainly for the thermodynamic calculations
  • Knock detection: Configuration of the knock detection algorithms
  • Outputs: Enables/disables the output channels for the CA module

The default installation includes a 2-Stroke or 4-Stroke with the standard calculation method for the volume calculation. Additional templates with customized volume calculation can be added.

Fuel type defines the fuel of the engine. Depending on the selected fuel type a polytrophic exponent used for thermo-dynamic calculations is suggested. The defined value must be entered manually into the polytrophic exponent field.

Start of combustion (SOC) and end of combustion (EOC) are provided as results.
EOC is defined where integrated heat release reaches 95%, which is valid for diesel and gasoline fuel types.

With gasoline, SOC is defined when the integrated heat release reaches 5%, and with diesel, SOC is defined when the integrated heat release crosses 0% (due to injection of diesel fuel, the integrated heat release goes negative first).

The Crankshaft Offset or the Piston Offset needs to be entered in the field CO or PO. It is very important to consider the running direction of the crankshaft. In the illustration above the sign(‘+’ or ‘-‘) is shown for counter clockwise direction.

If PO or CO is entered, stroke is not available any more. The crank pin must be entered separately!

Compression defines the ratio between swept volume and clearance volume.

For each cylinder the corresponding pressure channel needs to be assigned from the channel input list.
Also the ignition misalignment relative to the reference cylinder needs to be entered in degrees.

The reference cylinder is indicated with a piston, and could be applied to any cylinder. Simply click on the target cylinder, (Cyl.2) and it will become the reference cylinder.

Start of injection (SOI) and end of injection (EOI) channels can also be applied to the cylinder. The setting is called SOI/EOI but can handle various signals. The result will be the start and the stop position [deg] of the applied signal.

In this example an injection signal is applied. The Number of injections is set to 3, and the trigger level for SOI is set to 2V, where EOI trigger level is set to 1V. Each time the ignition signal crosses 2V it will return the angle position, related to the cylinder where it is applied [deg].
The same is true for EOI: if the signal crosses 1V (neg. edge) the position will be returned[deg].

The unit of the trigger levels are related to the channel scaling on the analogue input. In this case, Ignition is scaled in voltage [V].

Additional channels can be applied to each cylinder. These channels are aligned with the corresponding cylinder and will be available in the CA-Scope diagram. As an example, you can also apply the Injection signal in order to display it together with the pressure signal.

Engine templates

All engine settings can be saved as a template for future usage. By having several templates it is easy to switch between engines. On the image below it is marked which information is saved in the template. This includes:

  • Cylinder count
  • Fuel type
  • Polytropic exponent
  • Compression, Stroke, Bore, Rod, CO, PO, Crank pin
  • Ignition misalignment
  • SOI, EOI trigger level

Several templates can be added with the Add button and saved afterwards. Existing templates can then be selected from the drop-down menu.

When switching between templates with different number of cylinders, pressure channel input should be checked and corrected if necessary.

The sampling type of the Dewesoft CA is always time domain. This has the advantage that all time domain related functions are not influenced by changes of the sample rate due to shaft speed, and will stay the same.

For example a power calculation is only working in time domain (fixed sampling rate). Of course CA is still calculated in angle domain, and the CA data will be recalculated into the angle domain.

The required high calculation power for recalculating time based signals into angle based is spread over all available CPU cores of your PC.

Sensor types and angle resolution

Nearly any angle sensor type is supported. For getting the relation to a fixed angle position the sensor must support a fixed angle mark.The drop-down list will automatically show all suitable sensor types from the counter database.

Encoder, Geartooth with zero (CDM+TRG), Geartooth with missing teeth, Geartooth with double teeth are the only sensors allowed for CA. Tacho or a geartooth without zero cannot be used.

The most commonly used sensors are predefined in the Angle sensor setup. But if a used sensor is not available in the list, it can be added in the counter sensor editor of DEWEsoft.

Press F1 after opening the Counter sensor editor to get further information how to define sensors. This will open automatically the online help.

After the sensor type is selected, we need to define where the sensor is connected to.

Only input channels which are used (switched on) can be selected. Sensors with signal type “analog” can only be connected to analog input channels. Sensors with signal type “digital” can only be connected to counter input channels.

Under properties, the fine adjustment for the angle sensor must be done. In case of analogue sensor selection, the trigger levels can be precisely adjusted. First the trigger edge is defined, according to the signal. Also trigger and retrigger level are set. It is recommended to use retrigger level to avoid false triggers. False triggers will disturb CA operation, and cause incorrect angle information.

Retrigger: After a trigger occurs, the retrigger level must be crossed, so that the trigger is armed again. Thus noise around a trigger will not cause any false triggers.

Take care about the correct trigger edge. The difference between the available options is shown below.

If a digital sensor is selected, the property will open the counter channel setup of the sensor. This is convenient, because you can define the trigger: e.g. you can invert the signal input or apply an input filter to avoid double triggering.

The angle sensor setup is now complete.

The next step is to define the target angle resolution for the combustion analysis mathematics. The Upper frequency is limited by the selected resolution and the dynamic acquisition rate in the Analog channel setup.

Take care about this limit to avoid aliasing effects by the re-sampling algorithm.

As Resampling type, an unfiltered method can be selected which is linear interpolation from the time to the angle domain. The filtered type is based on a FIR polyphase decimator with a filter frequency of angle resolution * 2 to avoid aliasing effects in the angle domain data.

TDC Detection

Top dead center detection is used to shift the reference cylinder pressure to 0deg. The offset between angle sensor zero and TDC position of the reference cylinder is called trigger offset. This can be entered manually, or it can be measured.

If you don't choose the reference-cylinder as “Cylinder for TDC”, then the ignition misalignment value in the engine setup table will be adjusted to the measurement value. This adjustment can be performed for all cylinders at once as well.

In the Illustration below you see the angle offset of a not fired engine (cranked). This offset can now be entered manually or automatically measured and applied.

For automatic measurement (START), the no of cycles has to be entered. CA will measure the average offset of the set of cycles automatically. The Maximum pressure will appear before the real TDC of the piston, which is caused by thermodynamic losses and blow by. That’s why the measured value is corrected with the thermodynamic loss angle.

After TDC detection is finished, the average value (which includes the Thermodynamic Loss angle) will be set automatically for the trigger offset.

The example above was using the installed pressure sensor to measure the TDC. This is a very convenient and fast way of doing it. The only variable is the thermodynamic loss angle.

Basic measurement results are shown on the right side for a short check if the settings are correct.

Instead of a pressure sensor, a TDC sensor can be used. The TDC sensor must be connected to an analogue input and assigned to the reference cylinder in the CA setup. The thermodynamic loss angle must be set to 0, and the automatic TDC detection can then be started again. After the measurement, the pressure channel must be set in the CA setup.

In the calculation section the basic statistics and the principal of the Zero point correction can be defined.

Averaging cycles

Two different types of averaging can be enabled. The “Overall average cycles” gives one average vector for the complete measurement. The “Running average cycles” calculates the mean value of the last n cycles.

This basic statistics is available for the pressure and for the Additional channels of each cylinder. The result is a vector with the angle as reference.

Zero point correction

Dewesoft combustion analyser supports three different correction principles.

1. Thermodynamic zero:

With this method, two points (default -100, -65deg) of the pressure curve, the volume and pressure are measured. Out of the volume and pressure difference, and the entered polytrophic coefficient, the inlet pressure is calculated. The pressure curve is shifted (offset only) to get the right pressure at bottom dead center.

The zero correction offset is also provided as a result output, for each cylinder.

Refer to the Combustion analyser manual, chapter 11.3 Zero point correction on page 80 for getting detailed information about the calculation method.

2. From Known value:

Using this method, the pressure curve is set to a defined (static) value. “Correct” specifies the position related to TDC where it should be corrected.

3. From Measured Value:

For this method, a pressure sensor is used which measures the absolute pressure at the inlet manifold of the engine. From the template we can define where the inlet pressure should be measured related to TDC, so we can define a position where the inlet pressure is stable (near bottom dead center). “Correction at”, defines the position on which the pressure should be corrected.

This section holds the setup of all thermodynamic calculations including the derivation of the pressure channels:

For the Temperature calculation the gas mass is required. This can be either manually entered, or calculated.

If from Calculated is used, the intake temperature, intake pressure, and also the volumetric efficiency (0.9= 90% filled) must be entered.

If measured is selected, the intake pressure is measured from the zero point corrected high pressure curve.

For setting up the Heat release calculation the start and stop angle must be defined. The typical range is from -30° to +60°. An earlier injection start angel must be set according the real injection point.

Start of combustion (SOC), End of combustion (EOC) and also the Burned Mass Fraction (BMF) points I5, I10, I50, I90 and Ixx (User point) are calculated if heat release is activated.

Depending on fuel type (Diesel/Gasoline) – which have been selected in the engine setup SOC is defined differently (refer to manual, chapter 4.1 Engine Setup on page 9):

  • Gasoline where BMF =5%,
  • Diesel where BMF crosses 0%.

Burned mass fraction is calculated out of integrated heat release TI. The maximum of the integrated heat release corresponds to 100%, and the angle positions for I5%, to I90% are extracted .

The step input field defines the calculation width: e.g. Step 1 means the calculation is based on ±1 sample (or angle resolution value). A higher value smooths the result. For more information please refer to manual, chapter 11.4.1 Heat release TQ on page 80.

For heat release (TQ) and integrated heat release (TI) various units are available.

TQ: Heat release

related work[kJ] to 1m³ per 1deg volume is related to Vs = swept volume
scaled to sum of 100% (integrated signal =100%)
related work[J] per 1deg

TI: Integrated heat release

work[kJ] to 1m³ per 1deg volume is related to Vs = swept volume
% scaled to maximum of integrated value = 100%
J related work [J]

For Pressure derivative the start-angle, the stop-angle and also the step size must be defined

Theory of knocking

Knocking is an uncontrolled burning of fuel in engines. In normal operation, the fuel-air mixture is ignited by the spark plug (gasoline engine) and burns continuously. When the engine is knocking, a self-ignition starts in the outer side of the combustion chamber causing high pressure transients, which will overload the engine mechanically and thermally. This can seriously harm the engine’s parts, especially the piston. The knock detection algorithm indicates this knocking, so that the user can react to this abnormal condition.

Knocking can be detected by extracting the high frequency component out of the cylinder pressure signal. This can be done with an high pass filter. The knocking frequencies are typically between 5 kHz – 12 kHz.

The example shows a standard internal combustion pressure curve.

The high-pass (HP) filter (red) extracts frequency components which are above the cut off frequency.

In comparison to the Illustration above, we can see pressure fluctuations on the falling slope of the pressure curve (blue). The combustion pressure curve can reach very high pressures >>100 bar, so sometimes it is hard to observe it on top of the main combustion pressure curve. If we only extract the high frequency components above 5000 Hz we can analyse knocking much easier. The high-pass filtered pressure signal (red line) indicates the pressure fluctuation around the maximum of the pressure curve.

Another important value is the maximum pressure of this high-pass filtered signal (red), which can be extracted and visualized in a recorder display, immediately reflecting the pressure transients of the previous cycles.

This value is a good indication of knocking, but in some circumstances it can show incorrect information. If the pressure curve is very noisy, or a spike (caused by some external electrical signal) is present, the maximum value extracted out of the high-pass filtered signal shows high values, which are not related to knocking.

Knocking typically starts at the pressure maximum, and continues on the falling slope of the pressure signal. So instead of taking only one value (peak), we could integrate the high-pass filtered signal of the negative part of the pressure slope.

This integrated value (knock integral = KI) will give a more stable value for single transient noise peaks. The high-pass filter outputs the absolute pressure (positive values only). So, if we integrate the signal, we can reject a single transient, but will also sum up the noise which may be present all the time. Depending on the engine speed, the noise will also increase which in turn will cause an increase of the integrated signal. With a single integration it will be hard to determine if it is knocking, or simply noise?

To prevent this, the integration can additionally be done before the maximum pressure, so that the results before and after the maximum can be compared.

KnockFactor = INT_Knock / INT_Reference

KF will give a weighted result related to knocking.

Without any knocking present, the KF is around 1. The integration windows (reference window; knock window) will separate at the average maximum pressure position.

The example on the left, shows the pressure curve (blue) and the high-pass filtered signal (red) in the diagram at the top. And then, the maximum pressure extracted from the high-pass filtered signal (red) and the calculated KF (orange).

Both maximum graphs show peaks, so knocking is present and could be detected in either way – as long as no spikes are present.

Some cycles before, we can see an error spike (red curve). While the maximum of the filtered signal still shows a peak here, the KF algorithm does not indicate knocking at all, and the value obtained is close to 1.

This way Dewesoft® can provide robust knock detection, even if there are accidental spikes in the signal.

The next example shows a very noisy pressure signal. The KF (orange) will stay around 1, because integrated noise is similar in the reference (green) window and knock (red) window.

Set up the algorithm (Mannesmann VDO AG)

The previous chapters have described which signals can be obtained from the knock detection algorithm:

  • HP filtered pressure signal
  • Maximum value of HP filtered pressure signal
  • Knocking factor

Below you can see the settings for the getting the knocking factor.

Low-pass filter: The reference window and the knocking window are separated at the maximum pressure point (red curve), without the influence of noise or already present knocking peaks. A running average filter is used here, with setup taps corresponding to the angle resolution. If the angle of the CA is set to 0.2 deg and 40 taps are used, we get a moving average window (smoothing) of 40*0.2 deg= 8 deg.
Out of the filtered (smoothed) curve the maximum pressure position is the knock and reference window separation position.

recommended value [deg]: 4-10 deg → Info TAPS = deg/angle resolution!

High-pass filter: Here the high-pass filter frequency is set in Hz. The pressure curve is high-pass filtered (blue) and the result can be shown in the CA-Scope. The channel is named CylinderChannelname/KnockHP.

recommended value [Hz]: 5000 Hz

Background information about high pass filter: 

The cylinder pressure channel is already present as angle domain result. So the time between the samples varies with the engine speed. Since we need to set the high pass filter cut off frequency in Hertz, a conventional IIR would not work.

The high-pass filter is created from a moving average window with a specific width, which is subtracted from the original signal, and (as for all filters) a minimum sampling rate is required for the filter to work properly:

minsamplerate [Hz] >= high-pass frequency [Hz] * 4.5 

With the high-pass filter set to 5000 Hz a sampling rate of at least 22,500 Hz is required. With an angle resolution of 0.1° (3600 pulses per revolution) we need 375 rpm to get to this sample rate.

Engine speed [rpm] = Sample rate [Hz] / pulses per revolution * 60 = 22500 / 3600 * 60 = 375 

In the table below the minimum engine speed is shown depending on resolution and a set HP filter of 5000 Hz.

resolution [° CA]HP filter [Hz]Min. engine speed [rpm]

If the engine speed is lower than required, the HP filter will be set to a lower frequency until the minimum engine speed is reached!

Noise threshold: For the Knock Factor, the quotient of the integrated signal of the Knock window and the Reference window is obtained. If the pressure value is lower than the specified threshold, then the threshold value will be used for integration. This is done to reduce the influence of different base noise levels between the reference window and knocking window.

recommended value [bar]: 0.1 – 0.5 bar

Reference, Knock signal window width: The width of the reference window and the knock window is defined here. It is recommended to set both windows to the same length. If this is done and the noise threshold is set to a reasonable level, the KF will be about 1 without knocking. If the window sizes are set differently, the base value without knocking is the quotient between the two window lengths.

reference window size [° CA]knocking window size [°CA]knocking factor KF, base value

Shift reference window: At higher RPM, it can happen that knocking already starts before maximum pressure. In this case, part of the knock signal will fall into the reference window area, which reduces the knocking factor value. To avoid this, the knocking window and the reference window can be shifted according to the actual engine speed.

With the above settings the window is shifted at 6000 rpm by 10° CA (or 5° CA at 3500 rpm). If any knocking before the maximum pressure point occurs now, we don’t get an increased KF reading, as no knocking leaks into the reference window when shifted correctly.

Setup and basic description

Detailed channel list overview and their description is available in the Combustion analyser manual, chapter 4.6.2 Channel overview on page 25.

Now we have configured the complete CA-Module. With the settings we have made so far, we get only the basic CA results. In the section “Engine setup” we've assigned the pressure channels, the ignition and additional channels

In the section “Calculations” we have set the “Overall average” and the “Running average” for the pressure and additional channels. All other CA channels need to be enabled in the section “Outputs”.

For each group “Current”, “Cylinder avg.” or “Engine avg.” values can be enabled:

Depending on the group name, the column
“Current” may contain angle domain or/and cycle based results.
“Cylinder avg.” always has the overall average per cylinder as the result.

Engine avg. are cycle based were the average of all cylinder results are calculated.

Changing default names

The channel names above are default names created by the CA math module. They may be changed afterwards as well by entering the channel or sub channel list. Some default names can even be customized by changing the engine template. Please refer to Combustion analyser manual, chapter 10 Customizing the CA-Module on page 71 for further information.

The CA module of Dewesoft® calculates all relevant results for combustion analysing as described. However, some applications or measurements need advanced calculations not supported directly inside the application mathematics module.For this we can use the complete mathematics toolbox of Dewesoft® to get the desired results.

This chapter will explain the CA Noise feature and give a a short overview of the statistics. Note: these are only two of many features that Dewesoft® provides.

CA noise

Theory of CA Noise

CA Noise measurement is used to calculate external noise from an internal combustion engine, using cylinder pressure. In other words , the cylinder pressure (explosion) causes an external noise.

The CA-noise must be calculated in the time domain. First the value is scaled from bar to Pascal. This is followed by the U-filter, which simulates the transfer function of the engine (1. and 2. filter in the overview). Optionally we can use the A filter (human hearing filter) to determine the human perception of the noise produced by the engine.

Setup of CA Noise

The CA Noise is a part of the basic mathematics functionality of Dewesoft®.

Like for any other mathematics we need to select the input channels (on the left side), perform the configuration (using the A filter) and finally define the output channels to be calculated and stored to data file.

The input channels have to be scaled in bar or Pascal! Unit conversation to Pascal for the “Weighted raw” channel) or dB for the Overall and Interval values is automatically performed by the CA noise module

The formula for calculation from [Pascal] to [dB] is:

Depending on the configuration for each input channel up to three output channels are available:

Weighted raw: The result is a time domain signal with applied U- and optional A – filter and converted in Pascal, in the input unit is bar. This result can be further analysed in the Sound Level Meter.

Overall value: The result of CA noise over the whole measurement in [dB]. At the end of the measurement we will get one value, which is stored.

Interval value: here the CA noise is calculated in intervals. It is recommended to set the interval so that at least 1 or 2 cycles are included. Here only the lowest rpm has to be considered. At 600rpm ( = 10Hz = 100ms) at least 0.2 sec should be set for a 4 stroke engine to get stable results.

The frequency range of the U-Filter and the A-Filter is around 20 kHz. So please take care that the dynamic sample rate is set to 40 kHz or higher.

Statistics results

Setup of basic statistics

If further statistic calculation is required, we can use the Basic statistic function from Dewesoft®.

Input defines the channels where the statistics are calculated from. Since the CA module generates many output channels,l the channel filter function helps to find the needed channels.

You can define several results under the section “Output channel”. For each Input the corresponding result is calculated.

In the section Output you get a list of all calculated channels. You can change for example the default channel names.

There are several ways to define the time interval of the calculation and as well the the time interval for the calculated result.

For statistics on CA module channels it is strongly recommended to use “Sample based” calculation, because 1 sample corresponds to 1 cycle. (e.g. 10 cycles for the example above). If we used time-based instead, the number of cycles could not be defined because it would vary according to the angle speed. Moreover the time-based, calculation requires a higher CPU load.

The final step is to define how the statistic result is stored. You can choose between:

  • Block based: One result after each block size
  • Running: Calculation over the moving window
  • Single value: One result of the complete measurement
  • Triggered blocks: Calculation between the external trigger events
  • Start – Stop blocks: The block start and the block stop can be defined based on external events.

The example below shows the settings for the statistics calculation between cycle 10 and cycle number 50. Any channel can be used as an input channel and also various trigger condition are available.

Statistics of angle domain data

The example settings above are based on cycle based data: one value per cycle. The basic statistic can also be calculated from angle based data. For example the maximum pressure curve over a defined number of cycles.

For the angle-domain data statistics and the cycle based statistics you can can use the same setup. The only difference is that the output channels of the angle based statistics are vector channels. In the left bottom of the screen, you can see different previews according to the data-types. The cycle-based channels show a value and the angle domain based shows a data curve (of the vector channel).

You can also mix different input channel types in one statistics module: time domain, angle domain or cycle based data. The statistics mathematics will always use the correct output channel types for the corresponding input data types.

Arrays statistics

For analysing angle domain data the array statistics can be used.

This module accepts only input channels as vector type (angle domain data). The output is always a single value calculated for each vector. So using the array statistics on CA data, the result is always a cycle based value.

Array mathematics

Another powerful tool for manipulating data from the CA module is the array mathematics inside the formula setup. Only array (or vector) data are allowed as input channels. So this mathematics can be used with angle domain data from the CA Module.

Below a short summary of the functions is shown:

Function name


[ ]

'Data'[Idx] returns one value from array channel Data at index position Idx

{ }

' Data'{Pos} returns one value from array channel Data at position Pos in axis units


'Data'[N:M] returns a cut‐out array of array channel Data, from index position N to index position M, where 0 is the first value and len‐1 is the last possible value.


'Data'{N:M} returns a cut‐out array of array channel Data, from position N to position M, according to axis units.


min('Data') returns minimum value of array Data


max('Data') returns maximum value of array Data


avg('Data') returns average value of array Data


sum('Data') returns the sum of all values of array Data


integrate('Data') returns integrated array of array Data


minind('Data') returns index of minimum value of array Data


maxind('Data') returns index of maximum value of array Data


minpos('Data') return the position in axis units of minimum value of array Data


maxpos('Data') return the position in axis units of maximum value of array Data

With the functions min, max and avg we have the same functionality as the array statistics. But we have also access to single data point of an array when using [] or {}.

The formula in the screenshot subtracts the value at -30° of it's vector:

'Add 1_A'-'Add 1_A'{30}

Or in other words, the additional CA channel is offset compensated with the value of -30°.

It is also possible to cut data of an array:

'Add 1/CylAdditional'{-30:60}

As a result we will get an new array containing the data from -30° to +60°.

Automatic display mode

When you start the measurement, Dewesoft® will automatically generate a display setup (aka. measurement screen), named CA, showing the major signals for a quick start .The tooth wheel symbol on the CA display icon indicates that this display is generated.

In the Illustration below, the automatic display configuration is shown. The selected visual control is a 2D diagram, which can be assigned to an angle based result channel.

The handling of all visual controls follows the

same concept. For the selected visual control the properties are

shown on the left side. The channel selector for this visual is shown

on the right side. Only channel types suitable for the selected

visual are shown. E.g. you can't select statistic channels for a

visual control that expects angle based data. The channels that are

currently selected are shown in bold.

Use the the channel filter input field (at top of the channel list) to quickly filter the channel list.

Customizing displays

Dewesoft® allows full customization of the measurement screens: i.e. you can add/remove and rearrange all visual controls to your specific needs. The major visual controls for combustion analyser measurement are described below.

Please refer to the Visual controls ProTurorial for more information about visual controls.

Overview of data types

Not every display can handle every data type. Different input data sources generates different data types. Different mathematic functions generates different data types as well. Moreover, the result of mathematical functions may depend on the input channel type as well.
For example: the CA module will use the time domain data as input and generate primarily:

  • angle domain data aligned to the combustion cycle
  • and cycle based data which holds one value per cycle

Let's make a summary of the different data types with some examples of the sources and which visual controls can be used for the different data types.

Scalar (single data points)

Scalar channels contain one single value per timeslot (i.e. in comparison to Vector or array channels, which contain multiple data values per time slot).

Depending how they are acquired (or calculated), we divide these channels into three groups:

  • Synchronous
  • Asynchronous
  • Single value

The most common channels, are the synchronous channels which are usually analogue , counter or digital input channels as well simple mathematical operations which depend on these channels.
Synchronous channels are time domain data with equidistant time between the samples. The time distance is defined by the dynamic sample rate (except for external clocking).

Asynchronous channels are for instance CAN bus or GPS data. But also mathematic functions can result in asynchronous channels. For example:

  • the result of block based mathematics, like the statistics output
  • all cycle based data from the CA module (eg. MEPx or MaxPressure)

Single value channels contain only one single value per measurement. For example:

  • constants, like header variable
  • the output of mathematics like:
    • Overall statistic calculations from the CA-module
    • basic statistics

For all of these scalar channels various visual controls are available in Dewesoft®. Some examples are Digital meters, Recorder, Analog meter, Bar graphs and so on.... XY-recorder can alos be used to visualize this data.

Only synchronous data channels can be used inside the Scope or for FFT visuals. You can use basic mathematics to “convert” asynchronous channels to synchronous channels – but this is usually not recommended.

Vector or array channels

In contrast to the scalar data channel, vector channels (aka. Array channels) contain multiple data-points for each time-slot.


  • one FFT shot consists of multiple amplitude values: one for each frequency of the FFT resolution.
  • angle-domain pressure are stored as vector data: For each vector we get all pressure values over the defined angle resolution.

2D-Graphs are designed to display these data types.

There are some special 2D-graphs dedicated to CA:

  • the Combustion scope
  • the PV-Graph

3D-Graphs allow you to display a history of these data channels (the time is the third dimension)

Matrix channels

Matrix channels are multidimensional vector channels.
e.g. in a 2 dimensional matrix channel, each time-slot will contain an array and the elements of this array are also arrays (which contain the data in the array elements)

The output of complex sensor like a Thermo-Camera is matrix. This data can be shown in a 3D-Graph.


The CA-Scope can be used for all angle based data from the CA-mathematics. The results can be shown from actual data, from running or overall average and as well from the additional channels.

The illustration below shows the Cylinder pressure (on the left) and the heat release data (on the right).

Combustion PV-graph

The p-V graph (Pressure over Volume) can show actual and averaged pressure data.

Standard display types

Cycle based results such as MaxPressure are calculated for every cycle. We get a single value every two revolutions for 4 stroke engines, and one value for every revolution in 2 stroke engines.

Cycle based results can be shown in various displays. The common displays for cycle based results are: Digital, Analogue, Bar and Recorder.

You have several options to start and stop storing:

  • manually
  • automatically with various settings of the trigger conditions

Please refer to the Storing options ProTutorial for more information about storing.

When using overall averaged data (single value results of statistic), read the information in this chapter carefully. It is important to keep in mind when the statistics calculation starts and stops! Otherwise the overall statistic results will not match the stored data!

Manual Start–Stop storing

If you want to manually start-stop storing, select the Storing type: always fast. You can start storing your data directly in the setup screen by pressing Store. Or you can first go to Measure to first take a look at the live data and then start storing whenever you like.

To stop storing, just press the Stop button:

Pressing Pause will stop storing the data. When you are in pause mode you have 2 options:

  • press Resume to continue storing
  • press Stop to end the measurement and close the data file

In pause mode, the overall statistics calculation is not interrupted.

When you stop the measurement, the overall statistic values are stored in the data file. The illustration below points out this difference more clearly. When you look at the graph you can see 2 marked ranges:

  • the Stored data time : this is the time from the start of storing (when we have pressed the Store button) and when we have pressed the Pause button)
  • the Average calculation time : this is the full time shown in the graph:
    after pressing Pause, the measurement still continues (and the statistics will still be calculated), but the measurement data will not be stored in the data-file. But when we press Stop at the end, the statistics value will be written to the data-file.

The overall averaged result (the green channel: Cyl/Ave/P1/MaxP) does not match the expected average of the data values (blue channel: P1MaxP) within the Stored data time range (because the calculation continued after pressing the Stop button).

When you open the data-file in Analyse mode, the recorder will only contain the data of the Stored data time range and the average value will not match the expected value (average will be calculated from store start to stop).

Pause will stop storing the data but will not stop the overall statistic calculation. Use Stop button to terminate your measurement, if averaged values must match the data file. Store will always reset the overall statistic calculation!

When reloading this data file it seems now that average calculation is wrong because you can't see any more the complete data set that was used for the average calculation. To correct this it is possible to recalculate the complete the CA-mathematics out of the stored data file again.

Press Offline math , enter the CA-module setup and change the calculation state of the module from Calculated to Offline.

Go back to Review and you can Recalculate the CA mathematics. The overall averaged pressure channel now matches the stored pressure data. Press Save to overwrite the original stored CA data inside this data file.

With Offline math you can modify existing Math modules and/or add new Math modules. For example inside the CA-Module you can add channels like Heat-Release which were not stored during acquisition.

Storing a defined number of cycles

Dewesoft® offers various trigger conditions for starting and stopping the acquisition. When you want to store a fixed number of cycles, then you can use the “Stop storing after” xxx CA cycles feature. In the example below, storing will be stopped after 100 cycles.

Start-Stop on channel condition

The aim of triggered storing is to store on external events. The start and the stop trigger can be any channel. Additionally pre-trigger and post trigger time can be defined.

Dewesoft® offers various trigger conditions for starting and stopping the acquisition. Like described in chapter Manual Start–Stop storing we need to take care about the calculation method of the overall statistics values to get the expect results.

For triggered start and stop storing, you must select the Storing type: fast on trigger. Now we have the possibilities to define Start storing and Stop storing conditions .

Let's make one example when storing should be started if the maximum pressure is above 100 bar and should be stopped after 100 cycles.

Start storing condition type is a simple edge on channel P1/MaxP.
Stop storing condition is channel Cycle count. As Mode we need Delta amplitude to stop after 100 cycles.

This will already work (e.g. it stores only the data of the 100 cycles), but we also need to take care of the overall statistics. With the current settings, the data-file will remain open after the 100 cycles and the overall statistics will remain active.

To avoid this, we can enable Stop storing after 1 trigger: This means that storing will be stopped after 100 cycles and the Dewesoft® data file will be closed (and will contain the overall statistics for the 100 cycles). When the next trigger occurs a completely new data-file will be created.

With the settings above, the average channels are reset at ARM of measurement. So the Average channels will include the cycle value before the trigger event occurs as well.

If average values are required for further analysis, they must be recalculated in post processing like described before.

Analysing data in Dewesoft

In the Analysis mode of Dewesoft® you can load a data file and:

  • review the data
  • modify or add math modules
  • print the complete screen for generating a report

For analysing recorded cycles the yellow or black courser can be moved to browse through the cycles.

Similar to the Measurement mode you can modify or add new Visual controls or Displays. All these modifications can be stored to the data file with Save file changes.

You can also load the measurement screen layout and formulas from another data file with Load display and offline math.

By pressing Edit on the right top corner a context menu is opened which gives you the possibility to copy the image or as well the data shown on the actual display to the clipboard or to a file.

If further analysis is needed, various export data formats are supported.

Time domain data

When opening a Combustion analyser data-file, the default Export Properties is set to Combustion data. To export in time domain, export properties must be set to Full speed data. This means time domain data is exported. Angle based data from the CA-Module are exported as a vector (if the target export format supports vectors). They are time-stamped to the end of the cycle time (the same is true for all cycle based results).

The Channel list gives a quick overview about the channel type ( Dimension) and update rate (values per second).

Export angle domain data

To export angle-domain data we have to change the Export Property to Combustion data. With this setting all output channels from the CA-module can be exported as angle-domain data.

As shown in the columns Data type and Dimension in the illustration above, the results can be categorized in 4 groups:

  • Cycle data as Vector: Angle domain data like pressure, integrated heat-release, additional channels...
  • Averaged Cycle data as Vector: One angle vector for the complete measurement like the average pressure.
  • Once per Cycle data as Scalar: Cycle based data like max. Pressure (value and position), I50, MEP values...
  • Averaged Cycle data as Scalar: One value for the complete measurement like average of max. Pressure.

Some target file formats do not support multiple data types. That’s why Dewesoft reports a message to select only one result type.

Before exporting the data we have to define the x-axis base.

The table below gives on overview of the difference in x-scaling using the different export types.

Export type

Data type

Cycle 1

Cycle 2

Cycle 3..


(by cycle)


-360 .. +360

-360 .. +360

-360 .. +360








-360 .. +360

360 .. 1080

1080 .. 1800







0 .. 1

1 .. 2

2 .. 3






(e.g. 360p/rev)


0 .. 720

720 .. 1440

1440 .. 2160





Combustion data only exports channels which are calculated in the CA-Plugin. If export from other Math-modules like Basic statistics is required, data must be additionally exported with the Export property Full speed data.

File replay

It is possible to export analogue channels into a file that can later be used to simulate analogue channels, without having any hardware connected. If we have an analogue angle sensor signal recorded, we can export that together with pressure signal channel(s) and simulate a running engine.

First, the extension for replay file export must be added. This can be found on the download area: LINK

After that, extract the file into: <Dewesoft_installation_path>\Bin\X3\Addons\

The next step is to run Dewesoft as an administrator to register the extension.

We can export any recorded datafile, where we stored the analogue inputs.

In the file export we must first select File export option and Full speed data type. Then we can select Replay (*.rpl) export format. We can use the channel filter to find and export all Analogue (AI) channels. We can export also synchronous mathematics channels, which will act like analogue channels in file replay.

CAN interface

The Dewesoft combustion analyser can acquire and transmit CAN messages. When transmitting is used, any measurement result can be sent to any other host system (for example INCA).

The setup for transmitting CAN data is very similar to receiving CAN data. Like shown in the illustration below, only a few steps are needed for the configuration.

1. Add a transmit channel by pressing

2. You can define the CAN-Identifier (arbitration), its name and as well the DLC (Data Length Code)

3. Define the channel types inside the identifier with the Data Format, Data type, Start bit, Length an the scaling.

4. Now we define a transmit event for this CAN message:

  • Periodic: The interval time can be set in milliseconds.
  • OnButton: A control button in the Measurement Mode can be assigned to this event.
  • OnStart: When changing to the Measurement Mode with defineable delay in msec.
  • OnStop: When the measurement is stopped.
  • OnTrigger: A measurement channel condition defines, when the data should be sent.
  • BeforeMessage: You can select another message and this message will be sent before that message.
  • AfterMessage: You can select another message and this message will be sent after that message.

5. Select the data to be transmitted: Constant values or any measurement channel can be selected

6. All the defined transmit channels can be exported to a dbc-file for later import on the Host system.

The average delay time for CAN Out data will be around 100 msec because the complete cycle is acquired first and after the calculation the data is available for the output.

Test bed

The communication to the test bed server is implemented as a dedicated Plug-In. You can choose between:

  • AK Protocol
  • Puma Open AK
  • D2T AK
  • Tornado AK

For all of these protocols the RS232 or TCP/IP connection is possible.

Detailed information about the plugin usage and setup is available in the combustion analyser manual, chapter 9, which can be found here: HERE

In Dewesoft we ca use the file replay option to simulate analogue input channels and create a CA setup and also test the functionality of CA.

First, the extension for replay file export must be added. This can be found on the download area: LINK

After that, extract the file into: <Dewesoft_installation_path>\Bin\X3\Addons\

The next step is to run Dewesoft as an administrator to register the extension.

When Dewesoft starts, open settings to configure file replay.

Switch the operation mode to Simulation.

Simulated channels mode should be set to file replay.

Exported *.rpl file can be used or you can download a test file from Here. When the file is selected there will be information how many channels are simulated, what was the sample rate and the total length of the file. Replay file is always in the time domain. Select also the option repeat, to loop the file, otherwise it will be played only once. Only analogue synchronous channels will be replayed.

After that we close settings and create a new setup.

If we go to channel setup we see that we have 9 simulated analogue channels. We need to find out what these channels are and we can do this by simply enabling all channels and going to measure.

On the recorder display we can see all 9 channels at once and can also freeze the data and zoom in to one part of the data. From this we can quickly see that the first channel is the angle sensor and other 8 channels are pressure signals. The angle sensor in this case is a 60-2 sensor.

We can rename the channels for easier setup, select physical quantities and set the scaling. We will create a 4 cylinder CA setup. First we need to add the CA module.

In the Engine setup of the CA module we first define the cylinder count, enter the geometrical data of the engine, fuel type, select the appropriate pressure signal for each cylinder and input the ignition misalignment. After we have entered all the information we can save then engine as a new template. The only thing we need to do next is to define the angle sensor setup.

In the next tab of CA setup, we select the type of angle sensor as a 60-2 and also the channel this is connected to. We should immediately see something on the p-V preview diagram (left) and also the pressure signal in the angle domain (right). If the angle sensor was defined correctly we should see stable and correct RPM on output on the right and also 60 pulses per revolution.

We can see that the peak pressure on cylinder 1 is around 100degCA. This means that we have an offset off the angle sensor. If we would have a replay file from a non-fire engine, we could do TDC detection, but since this a file with combustion, we have to enter the offset manually. In this case we know that the offset is 80deg.

When the trigger offset is correct, we can see that the pressure curve is shifted to the correct position and also the p-V diagram shows a correct output.

If we switch to thermodynamics tab we can also immediately see the rate of heat release output and accumulated heat release.

We can go to measure, and on the predefined CA measure screen we will already have all the basic combustion analysis information.

Combustion analysis can also be used in combination with other modules. When using it for a 4-stroke engine, we get a possibility to review data in the angle domain for a complete engine cycle - 720deg.

This can be very useful to analyse vibration data for a 4-stroke engine, otherwise we see the data only in a 360deg cycle, like shown on the image below.

The following is just one example how CA can be used for other purposes or to convert time domain data in into angle domain data. We only need one angle sensor which is valid for CA and one input. The input can be any type - either some analogue input or math channel or even an output channel from some other module (torsional vibration, power analysis, order tracking, modal test,...).

Torsional vibration + combustion analysis

Please refer to the ProTraining for detailed explanation about the Rotational and torsional vibration module.

To use the vibration analysis module together with CA, only one angle sensor is needed. First we add the Torsional vibration module.

Sensor input and sensor type must be selected. Rotational angle must also be selected for output.

Only counter inputs can be used for torsional vibration.

If there is another sensor mounted on the other side of the engine shaft, then we can select also the other sensor and activate output calculation for torsional vibration angle.

We must also add the CA module and configure the angle sensor input.

For the engine setup we only need to select a pressure sensor and under additional channels the output from the torsional vibration module. All additional channels will be shown in the angle domain.

If we also have an encoder on the other side of the shaft, and have torsional vibration results, we can also add additional channels. We can select all three outputs for conversion into angle domain.

When we go into measure and enter design mode, we have two additional display types available from CA. We add a Combustion scope to display the data in the anle domain for a complete engine cycle.

We can display all three vibration channels at once on the graph. Pressure or other channels can also be added.

This website uses cookies to ensure you get the best experience on our website. Learn more