Showing results for 
Search instead for 
Did you mean: 
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Your Friends List is a way to easily have access to the community members that you interact with the most! X

Build an Engine Analytical Model Part 1

No ratings



Generate engine-failure predictions and gain insight into your data with machine learning.




This guide will upload captured data from an Edge MicroServer (EMS) "Engine Simulator" to ThingWorx Analytics Builder.


Following the steps in this guide, you will create an analytical model, and then refine it based on further information from the Analytics platform.


We will teach you how to determine whether or not a model is accurate and how you can optimize both your data inputs and the model itself.


NOTE: This guide's content aligns with ThingWorx 9.3. The estimated time to complete ALL parts of this guide is 60 minutes





  • Load an IoT dataset
  • Generate machine learning predictions
  • Evaluate the analytics output to gain insight



Step 1: Scenario


In this guide, we’re continuing the same MotorCo scenario, where an engine can fail catastrophically in a low-grease condition.


In previous guides, you’ve gathered and exported engine vibration-data from an Edge MicroServer (EMS).


The goal of this guide is to now import that previously-exported Comma-Separated Values (.csv) data into ThingWorx Analytics, and then create an analytical model for predictive maintenance.



Analytical model creation can be extremely helpful for the automotive segment in particular. For instance, each car that comes off the factory line could have an EMS constantly sending data from which an analytical model could automatically detect engine trouble.


This could enable your company to offer an engine monitoring subscription service to your customers.


This guide will show you how to build an analytic model of your engine to facilitate this monitoring service.


Step 2: Upload Simulated Data


This guide assumes that you are using either the hosted trial (with has both Foundation and Analytics pre-installed) or a combination of the Foundation and Analytics downloadable installers.


To confirm that Foundation is communicating with Analytics, perform the following steps:


  1. On the ThingWorx Foundation left-side navigation column, click Analytics > Analytics Builder > Settings.


  2. At the top-right in the Analytics Server Version field, ensure that you see an appropriate version number.



    NOTE:  If you use your own dataset, it's possible that you're results in the following steps will differ from those created by the provided-dataset

  3. If you were unable to generate a 30,000+ entry dataset in the last guide, then you may download testCSVfile.csv attached here,instead.
  4. You will also need to download and extract which describes each column of the dataset.
  5. On the left, click Analytics Builder > Data.


  6. Under Datasets, click New....


  7. In the Dataset Name field, enter simulated_dataset.
  8. In the File Containing Dataset Data section, search for and select testCSVfile.csv.
  9. In the File Containing Dataset Field Configuration section, search for and select vibration_metadata.json.


  10. Click Submit.

    • Note that the time it takes to import the dataset is determined by its size.




Step 3: Simulated Signals and Profiles 


The Signals section of ThingWorx Analytics looks for the most statistically correlated single field in the dataset which relates to your selected goal.


This doesn't necessarily indicate that it is the cause of your goal, whether maximizing or minimizing. It just means that the dataset indicates that this single field happens to correlate with the goal that you desire.


  1. On the left, click Analytics Builder > Signals.


  2. At the top, click New….


  3. In the Signal Name field, enter simulated_signal.
  4. In the Dataset field, select simulated_dataset.


  5. Click Submit.

    • Wait ~30 seconds for Signal State to change to COMPLETED



Unfortunately, our results aren't very good. Or, more accurately, they're too good.


Our simulated dataset has some noise in it from adding random values to our five frequency bands on each our two sensors. However, ThingWorx Analytics has instantly seen through that noise and discarded it. Instead, it's only detected that s2_fb5 isn't relevant.


If you look back at the Use the EMS to Create an Engine Simulator guide, you'll see that s2_fb5 has the same base value between both a "good grease" and a "bad grease" condition, i.e. a base of 190.


This does show already that Analytics is working, though. Since s2_fb5 didn't change between good and bad grease conditions, our Signal analysis is indicating that it's not relevant to our model.




Now, let's do the same for a Profile.


The Profiles section of ThingWorx Analytics looks for combinations of data which are highly correlated with your desired goal.


  1. On the left, click Analytics Builder > Profiles.



  2. Click New....



  3. In the Profile Name field, enter simulated_profile.
  4. In the Dataset field, select simulated_dataset.



  5. Click Submit.

    • Wait ~30 seconds for the Profile State to change to COMPLETED.



Just like with Signals, our Profile is too good. In fact, Analytics is indicating that just s1_fb2 by itself is the primary indicator of good vs. bad grease conditions.


This is likely due to random chance. The random noise added to s1_fb2 just happened to be slightly less than the other frequency bands, so everything else was discarded.


Regardless, ThingWorx Analytics is quickly seeing through our simulated data.


Next, we'll actually create a Model using the simulated dataset.



Click here to view Part 2 of this guide

Version history
Last update:
‎Mar 07, 2023 02:44 PM
Updated by:
Labels (2)