/
jBEAM Powertrain Tutorial

jBEAM Powertrain Tutorial

Resources

1. Import of Kistler MDF (KiBox) File with layout for fast evaluation cycle by cycle

img01.png
Video_PowertrainTutorial1.mp4
  1. Import Kistler MDF (KiBox) File by Drag&Drop or via menu File->Import Values->Kistler MDF (KiBox)

  2. In the dialogs bottom line select Import with layout.

    image-20250304-120232.png
  3. Depending on the stored layout, the data is imported, calculation and graphic components created and a cycle control and Report Generator added.

    image-20250304-125736.png

    The Cycle Control can be used to navigate through the cycles.
    The following steps show how the layout can be modified and optimized individually.
    - As the cycle curves sometimes exceed the set maximum of the y-axis, the axis range is adjusted.
    - When further statistical values are of interest, rows can be added to the table.
    - Other values of interest can be displayed via e.g. Digital Displays.

  4. Adjust axes: Double-click y-axis of diagram and set Top value to 150.

    image-20250304-130522.png
  5. Add further statistical values to table: IMEPN value is already included in the layout, but we also want to display IMEPH and IMEPL. First, we have to group the values before adding them to the table: Find and select the IMEPH values in Producer list of Explorer under Data for selected cycle and group them via right-click and clicking Group values in context menu. In the dialog, enter the Result Data name and make sure that the values are in order from 1 to 4 so that they correspond to the right cylinders. Repeat the process with the IMEPL values.

    image-20250305-124720.png

    Now, we can add the grouped values to the table: Double-click table and select Row tab. Click Add and select the created IMEPH GroupOfValues in the Channel field.
    To get the correct header text, you may enter the new name manually in the individual headercells section or alternatively fall back to the automatism by removing the check in individual headercell to display the content of General headercells, e.g. @DisplayName(CurrContext)@ which shows the selected data object name.

    image-20250305-130025.png

    Repeat the steps for the IMEPL values and use the up and down buttons to adjust the order of the rows as you like.

  6. Display additional values via Digital Display: Select interesting values in Producer list of Explorer and drag&drop them in Graphic window. Single values are preferedly shown in Digital Displays.

    image-20250305-132536.png

2. Build a template to analyse knocking cycles

img02.gif

In this tutorial we will show you how you can extract and process specific cycles out of the whole measurement. As selection criterion, we use the knocking behaviour of the cyclinder which can be identified by checking the signal KPEAK.
Later, we add a cycle control to navigate through the filtered cycles.

  1. Import Kistler MDF (KiBox) File by Drag&Drop or via menu File->Import Values->Kistler MDF (KiBox). In the dialog, click Open.

    image-20250305-133919.png
  2. Exemplary, we use PCYL_1 signal to show how it can be splitted into cycles and to apply a filter for a specific cycle selection. When we look at the signal and the corresponding PCYL_1-angle-rel we can see that the cycles are clearly marked by the sawthooth of the angle signal.

    image-20250305-141256.png
  3. To split the signal, we use the Split a Channel into Matrix calculation (menu Math->Curve Calculations). In the dialog, select the Input signal AD/PCYL_1 and set AD/PCYL_1-angle-rel as Trigger Channel. The trigger condition can be entered under Difference of 2 consecutive values of the trigger channel, e.g. 360°. Activate the option Common Xoff for all columns.

    image-20250306-101214.png

    The result is a matrix with as many columns as cycles and as many rows as values per cycle.

  4. From all these cycles we want to extract a number of cycles according to a filter condition. As an example, we search for all cycles where knocking is indicated. Knocking shall be defined where KPEAK is bigger than 2 bar. We will make this threshold configurable via a Value Input field.

    image-20250306-104847.png
  5. The threshold value can be made modifiable via Value Input field (menu Graph Editor->Controls). Enter a suitable Name and Unit to better identify the value later on.

    image-20250306-120259.png
    image-20250306-120444.png

The following 3 steps will create a matrix which only contains cycles with knocking. For this, we first create a channel containing only the relevant cycle indices and use this later as filter criterion in a Cuts through Matrix calculation.

  1. To filter the cycles, start with identifying the cycles with knocking. Open the Formula Editor for numeric Objects (menu Math->Arithmetic). Enter a speaking name in Result Data and select the Input Data CD/KPEAK_1 and KnockingThreshold-V. The formula if(A > B; Index(A); -1) sets all cycle numbers without knocking to -1 which can later be distinguished from the knocking cycle numbers.

    image-20250306-124500.png
  2. Now we need to filter out all other cycles (-1) to receive a list of all cycles with knocking. Open the Value Filter (menu Math->Data Filters). Select the just calculated result SetKnockingCycles as Channel to be filtered. In this case, the Input Data for the Filter Condition is the same. Set Relation to all values greater than -1. Then Add filter to actually set the filter condition.

    image-20250306-130310.png
  3. The resulting channel we can use as control channel for cutting out the interesting columns of the cycle matrix. Open the Cuts through Matrix calculation (menu Math->Conversions) and select the cycle matrix CycleSplit as Data-Object. For the X-values, select all values.

    image-20250306-132412.png

    For the Y-values, select the filter result SetKnockingCycles_Filtered as Control-Channel.

    image-20250306-132937.png
  4. The resulting matrix only contains cycles with knocking. To analyse the cycles further, we create a cycle control to shift through the cycles one after another. To display the curves, find the CycleSelection matrix in the Explorer window and drag it into the Graphic window. Then, double-click the graph (anywhere except on axes or curves) to open the dialog.
    Enter a custom Name, e.g. CycleGraph.
    As workaround for an inconsistency of matrix configuration we need to set the X-values to CycleSplit-X.
    To display only a single cycle, replace the * by a specific column index, e.g. 1, in the input field.

    image-20250306-140728.png

    After applying the changes and closing the dialog, you can further adjust the graph, e.g. change the line width or zoom the X-axis to approx. 270 .. 450° via scroll wheel over the axis.

  5. Next, we add a control to navigate through the cycles. Create an Iterable Graph Input Controller (menu Graph Editor->Controls) and select the graph created before under Commands. [CycleGraph-C1] MatrixColumnSelect is the command provided by the Universal 2D-Graph to select a specific column of a matrix.

    image-20250306-141831.png
  6. The result should look like this:

    Tutorial2.gif

3. Selection of a range of cycles and calculation of statistical values

 

In this tutorial we will show you how you can select a range of cycles via cursors. Over statistical calculation the median cycle is determined.

  1. Import Kistler MDF (KiBox) File and as shown in step 1 of the previous tutorial.

  2. This time, we want to extract a consecutive range of cycles using a start cursor and a definable number of cycles. First, create a Universal 2D-graph by dragging the AD/PCYL_1 signal to the Graphic window.

    If you want to use up the whole digramm area, you can adjust the X-axis: Open the axis dialog via double-click into the X-axis and remove the check for optimized scaling.

    image-20250314-095552.png
  3. Then, we add the start cursor: Right-click into the diagram area and select Modify… Cursor in the context menu.

    image-20250314-095849.png

    In the dialog, enter a speaking Name of the cursor for later recognition and deactivate the horizontal line as we need only a vertical line. Publish the x-value and the Index as we need them later on to cut the matrix.

    image-20250314-100726.png
  4. To define the end of the selected range, we use a Value Input to enter the desired number of cycles. Create a Value Input component (menu Graph Editor->Controls). In the dialog, enter a speaking Name for later recognition and a Label for display. A Unit is not needed, so the check can be removed. Finally, select Integer as Data type.

    image-20250312-083807.png

    Drag the graph to a suitable position and enter a number, e.g. 30.

    image-20250312-095913.png
  5. The next step is to determine the start and end angles to extract the selected range.

    Start angle: As the cursor may be positioned somewhere within a cycle, we need to find the start angle of the selected cycle. Open the Formula Editor for numeric Objects (menu Math->Arithmetic). Enter a speaking name in Result Data and select the Input Data: UCG:1-StartCursor-I. The relative angles of each cycle run from -360° to +360°, so the total cycle length is 720°. This results in the following formula: A - mod(A + 360; 720).

    image-20250314-113210.png
  6. End cycle: Create a second formula as above and enter a Result Data name. Select the just calculated SelectionStartAngle and NumberCycles-V as Input Data and enter the formula A + B * 720 - 1.

    image-20250314-124109.png

    You can display the calculated start and end angles by dragging the data objects into from the Explorer into the Graphic window. By default, they will be displayed as Digital Displays.

  7. To visualize the selected range in the diagram, you can add a second cursor for the end angle. Open the cursor dialog as in step 3 and create a New cursor. Configure the new cursor similar to the first cursor, but this time it is controlled by the calculated end angle and not Changeable by Mouse.

    image-20250314-132906.png

    The Graphic window should now look like this:

    image-20250314-133145.png
  8. The start and end angle, we use in a Partial Curve component (menu Math->Curve Calculations) to extract the selected range out of the original AD/PCYL_1 signal. In the dialog, enter a name and click the button Select a list of data objects or producer as we need to cut two signals.

    image-20250314-134637.png

    There, select AD/PCYL_1 and AD/PCYL_1-angle-rel for Input Data and SelectionStartAngle and SelectionEndAngle as x-Values Boundaries. The result channels will initially be empty until they are actually used by another component.

    image-20250314-135229.png

    You can visualize the selected range in the diagram by dragging the AD/PCYL_1_PoC data object from the Explorer into the graph with the complete signal.

  9. In the next steps, we split the extracted range of the signal into a matrix, separating the individual cycles. With a statistical calculation we determine the maximum value of each cycle. Finally, we find the Median of these values and the corresponding cycle.

  10. To split the signal, we use the Split a Channel into Matrix calculation (menu Math->Curve Calculations). In the dialog, select the Input signal AD/PCYL_1_PoC and set AD/PCYL_1-angle-rel_PoC as Trigger Channel. The trigger condition can be entered under Difference of 2 consecutive values of the trigger channel, e.g. 360°.

    image-20250314-141926.png

    The result is a matrix with as many columns as selected cycles and as many rows as values per cycle.

  11. As statistical calculation, we use Statistic over Matrixcolumns (menu Math->Statistic). Enter a name and select the matrix SelectedCyclesSplit. The Statistictype is Median.

    image-20250314-143748.png
  12. In preparation of the Median calculation, we create an index channel to number the cycles. Create a Formula Editor for numeric Objects (menu Math->Arithmetic). Enter a name in Result Data and select the Input Data: SelectedCyclesSplit_Pmax. The formula Index(A) creates a channel with ascending numbers up to the number of selected cycles.

    image-20250314-144218.png
  13. There are several ways to determine the Median. We will sort the channel with the maxima together with the corresponding index channel. The Median is then the value in the middle. Create a calculation Sort Channels (menu Math->Curve Calculations). In the dialog, enter a name and select SelectedCyclesSplit_Pmax as Order by … channel and SelectedCyclesSplit_Pmax_Index as Channel to sort with main.

    image-20250317-115015.png
  14. As a last step, we extract the Median cycle from the split matrix and display the curve. Cutting out a single column from a matrix can easily be done by a Formula Editor for numeric Objects (menu Math->Arithmetic). Enter a name and select the split matrix SelectedCyclesSplit and the calculated MedianIndex as Input Data. The formula is value(A; B) which cuts a column out of a matrix (A) at a defined index (B).

    image-20250317-124129.png

    You can display the Median cycle by dragging the extracted channel PCYLC_1 Selection Median into the Graphic window. The result should look like this:

    image-20250317-133943.png

    You can now shift the cursor and the new results will be calculated and displayed immediately.

Related content