Showing results for 
Search instead for 
Did you mean: 

Cycle to cycle averaging in LMS TestLab



For analysis of internal combustion engine, I am trying to calculate average of cylinder pressure and accelerometer signals over 300 cycles.

My aim is to quantify the cycle to cycle variation of events at accelerometer and cylinder pressure in angle domain using only LMS TestLab.

Currently, I do the work using TestLab and Excel:

- Calculate crank angle using Angle Domain Processing module

- Export to the data to Excel (crank angle, acceleration data and cylinder pressure data)

- Sort the data in Excel for each cycle and Group it cycle by cycle in Excel

- Calculate the average of acceleration and cylinder pressure data for each angle over the cycles

- Plot the data in Excel (X Axis: Crank Angle (0 to 720 degrees) vs Y Axis: Acceleration Signal)


Is it possible to have all these steps in LMS TestLab?

For example, (once crank angle data is calculated), 

- Extract acceleration or cylinder pressure data for each cycle (from 0 to 720 degrees) 

- Save each cycle with ascending order (Cycle#1, Cycle#2 ...)

- Apply math operations or further signal processing in LMS TestLab 


Thanks for your support.


Re: Cycle to cycle averaging in LMS TestLab

Siemens Phenom Siemens Phenom
Siemens Phenom

Here are a few things that might help:

Extracting Cycles

Extract acceleration or cylinder pressure data for each cycle in ascending order, add-in “Signature Throughput Processing “ and “Angle Domain Processing” under “Tools -> Add-ins”.

With the angle domain data selected (in input basket or active run), go to the “Time Data Processing” worksheet.

Select “Change Settings” button under “Acquisition Parameters”. Here the measurement mode can be set to Tracked, and the Tracking Method set to “Free Run (angle)”. In the picture below, this setting will extract the first 300 cycles in ascending order.



Select the “AD Acquisition” tab to set the 2 revolutions per cycle. Each cycle calculated will consist of 720 degrees.




After pressing the “Calculate” button, go the Navigator worksheet. In the run there will be an Angle Domain folder with data that looks like below (showing 5 cycles rather than 300 for clarity).




In the picture above, cylinder pressure over 720 degrees for five cycles is shown on the left. On the right graph, accelerometer vibration over the same angle over 5 cycles is shown.


Average, Maximum, Minimum of Cycles

An average, maximum, minimum, standard deviation of all 300 cycles (or 5 or however many there are) can be calculated. In Time Data Processing worksheet, choose “Change Settings” under “Section Settings” and find the “Map Statistics AD” tab. Turn on “Angle Peak Hold”, “Angle averaged”, etc as shown below.




There is a tab called "Map Statistics" and "Map Statistics AD".  Be sure to find the one with AD at the end.  AD is short for angle domain.


After pressing the “Calculate” button again, these map statistic results are stored in the Angle Domain folder under a folder called “Map Statistics”. The graph below shows the maximum, minimum, and average of all the cycles.



The maximum, minimum, and average of all the cycles of an accelerometer channel are shown above.


There are some other math operations that can be done (you asked about “further signal processing)”. 


More Math Operations


A lot of different math can be done.  Depending on what you are doing, it might be helpful to align the data.  For example, to get an average cylinder pressure between different cylinders, use the “Cyl Offset” field in "Angle Domain Validation" worksheet.




An angle offset can be entered independently for each channel as shown below.




With the data aligned, go back in the Time Data Processing worksheet. Choose “Change Settings” under “Channel Processing’. Go to the “DerievdAD” (again AD is short for Angle Domain). Any operations defined here will be performed in the angle domain. For example, the “LINAVG” function can be used to calculate the average pressure between different cylinders (CH1, CH2, CH3, etc).





Other types of math can be done.  For example, if it is desirable to know the “delta pressure” or rate of change of the cylinder pressure, a DIFFERENTIATE function can be defined instead.





A differentiated cylinder pressure trace would allow the peak pressure rise rate to be calculated.






Gated Statistics


The maximum pressure (or vibration or whatever) per cycle can be captured by defining a gate over an angle range (for example, if the maximum pressure is expected between 10 degrees and 30 degrees, the gate can be set so). Several different statistics can be calculated over the defined gate.


In Time Data Processing, choose “Change Settings” under “Section Settings”.  Go to the tab (all the way to right) called “Frame Statistics AD” (where AD is Angle Domain).  Here the gates and statistics to calculate can be defined.





Results will be stored in a folder called “Frame Statistics” after doing the calculations.  The maximum of the gate, and the angle position it occurs at, can be shown using a XY plot of the data.




Hope this is helpful!