Skip to content

Latest commit

 

History

History

readme.md

Fan Blade Fault Classification


From collecting a dataset to deploying the model on a C2000 device

-Adithya Thonse, Shamik Basak, Tushar Sharma, Fasna Sharaf


Example showcasing 4 different Fan Blade faults (Blade Damage, Blade Imbalance, Blade Obstruction, Normal)

Involves using TI toolchains to collect the data and train the model and preview it live.


⚠️ Device Support: While this documentation focuses on the F28P55x, the following devices are also fully supported:

  • CC1312
  • CC1314
  • CC1352
  • CC1354
  • CC2755
  • CC35X1

Check the config_<device>.yaml files for device-specific configurations.


This application example showcases the following story:

Capturing Data

  • This example showcases connecting the F28P55x launchpad with ADXL355-PMDZ Accelerometer
    • 7 connections need to happen from the sensor to the launchpad
    • Accelerometer Pinout
    • adxl355_pmdz_pinout.png
    • F28P55 LaunchPad Pinout
    • F28P55 LaunchPad Pinout
    • Connections:
Accelerometer Sensor F28P55 Launchpad
Pin 1 (Chip Select) IO.27(J6:59)
Pin 2 (MOSI) IO.61(J6:54)
Pin 3 (MISO) IO.60(J6:55)
Pin 4 (SCLK) IO.24(J5:47)
Pin 10 (Data Ready) IO.16(J6:51)
Pin 11 (D GND) Any Ground Pin
Pin 12 (D VDD) Any 3p3 V Pin
  • Extract and load eAI_data_acq_dap_f28p55x.zip from CCS Studio onto the F28P55x Launchpad.

    • This enables the device to communicate with the Edge AI Studio - Model Composer GUI
    • Go to the TI's Edge AI Studio Model Composer and start your new project (Desktop/Web version are both okay)
    • On the top: Options --> Serial Port Settings --> Click on the appropriate COM port where the launchpad is connected
      • Once selected, a small dialog at the bottom should say "Hardware Connected"
    • In the Capture section
      • Capture & Display Live Data --> Drop down Sensor: --> Vibration
      • Choose the other options as per preference. The default sampling frequency is 4kHz
      • Click on Start Capture
      • The data captured should look like this:
      • live_capture.png
  • In this manner, you can collect data for all your cases.

  • This example has 4 classes: Normal, Blade Damage, Blade Imbalance, Blade Obstruction

    Normal.jpg Blade Damage.jpg Blade Imbalance.jpg Blade Obstruction.jpg
  • The entire demo setup looks somewhat like this:

  • Demo Setup.jpg

Dataset

  • The dataset collected with this setup at TI can be found here

Training the Model

  • You can use the Model Composer GUI or Tiny ML Modelmaker to train your model and compile it.
  • In Model Composer, you can play with different settings that can get your model to accuracy suited to you
  • For Tiny ML Modelmaker, you can use this config file and run it as follows from the tinyml-modelzoo directory
    • run_tinyml_modelzoo.sh fan_blade_fault_classification/config.yaml
  • This configuration file should give you a 100% accuracy

Live Preview

  • This should give you a compiled model in the tinyml-modelmaker/data/projects/fan_blade_fault_dsi/run/<time_stamp>/<model_name>/compilation/artifacts

  • And few feature extraction related artifacts are a part of: tinyml-modelmaker/data/projects/fan_blade_fault_dsi/run/<time_stamp>/<model_name>/training/quantization/golden_vectors

  • This model is ready to be deployed into the CCS project with the application code of your choice.

  • You can refer to this for how to plug and play these artifacts.

  • To run in Live Preview Mode, as shown in the TIREX above, a sample project with just 1 sensor is attached here: eAI_mfd_eval_f28p55x.zip

  • You should be able to see in the Live Preview Mode in this manner:

  • fan_blade_demo_model_composer.png

Available Default Configurations For Each Device Family

  • config.yaml - F28P55
  • config_CC1312.yaml - CC1312
  • config_CC1314.yaml - CC1314
  • config_CC1352.yaml - CC1352
  • config_CC1354.yaml - CC1354
  • config_CC2755.yaml - CC2755
  • config_CC35X1.yaml - CC35X1

Other Tiny ML Modelmaker Features

  • PCA graphs for feature extraction on Train and Val data: Clear cluster separation shows that the dataset classes are classifiable pretty well with the feature extraction method chosen in the config

  • pca_on_feature_extracted_train_data.png

  • pca_on_feature_extracted_validation_data.png

  • Post Training AUC-ROC Curve indicates a perfect score (1.00) --> indicates model is doing excellently well at classification!

    • One_vs_Rest_MultiClass_ROC_test.png
  • Histogram of class scores between each class combination shows good separability --> meaning that the AI model trained is able to distinguish between classes very clearly

    • Histogram_Class_Score_differences_test.png

Release History:

[26-Mar-2025]: Compatible with v1.0 of Tiny ML Modelmaker