This dataset simulates 15,000 observations of three-phase induction motors operating under varied electrical and mechanical conditions. It is designed to capture realistic, physically-informed relationships between inputs (supply, motor, and operating parameters) and the target variable (motor speed in RPM).
The dataset combines clear, physics-based relations (e.g., frequency → synchronous speed) with non-linear interactions (e.g., load, voltage and temperature affecting slip). It is well suited for benchmarking regression models on domain-informed prediction tasks and for Tiny ML experiments where compact models must generalize from physically-structured inputs.
Key feature groups
-
Supply parameters
- Voltage (V): range 200–460 V; higher voltage typically reduces slip and keeps speed closer to synchronous speed.
- Current (A): proportional to load; higher current indicates greater power draw and heating.
- Frequency (Hz): either 50 or 60 Hz; determines the synchronous speed of the rotating magnetic field.
- Power factor: 0.65–0.95, indicates how effectively electrical power is converted to work.
-
Motor characteristics
- Poles: {2, 4, 6, 8}; more poles → lower synchronous speed (but typically higher torque).
- Stator resistance (Ω): affects losses and slip, especially with temperature changes.
-
Operating conditions
- Load torque (N·m): higher torque increases slip and reduces speed.
- Ambient temperature (°C): higher temperature increases winding resistance and affects performance.
Target
- Motor speed (RPM): the dependent variable we predict. It is derived from synchronous speed and slip.
Electromechanical relationships (summary)
- Synchronous speed (RPM): Sync = 120 × Frequency / Poles
- Slip (fraction): Slip = (Sync − Actual) / Sync — typical values are a few percent at rated load and can grow under heavy load.
- Actual speed: Actual = Sync × (1 − Slip)
Derived quantities included in the dataset
- Active power: P = V × I × PF
- Apparent power: S = V × I
- Thermal effects and simple resistance scaling are included so models must learn both linear and non-linear interactions.
Prepare the zipped dataset by running the induction_motor_speed_prediction python file. The script will create zipped dataset as induction_motor_speed_prediction_dataset.zip.
cd examples/induction_motor_speed_prediction
python induction_motor_speed_prediction.pyThe path of this zipped dataset file is already mentioned in configuration yaml, make sure it is same.
dataset:
input_data_path: 'examples/induction_motor_speed_prediction/induction_motor_speed_prediction_dataset.zip'This zipped dataset is designed to work with Tiny ML ModelMaker. Run the modelmaker with the yaml configuration using the below code.
run_tinyml_modelzoo.sh examples/induction_motor_speed_prediction/config.yamlrun_tinyml_modelzoo.shis the script to run modelmaker. It take two required arguments.examples/induction_motor_speed_prediction/config.yamlpath of the yaml configuration to run
The users can configure the yaml configuration to change parameters related to data preprocessing, feature extraction, training, testing, model and model compilation. In this example, we will configure the parameters of feature extraction. In this example we will be using REGR_1k model.
REGR_1k is a regression model designed with keeping memory in consideration. It consists of 2 BatchNorm+Conv+Relu layer and 2 light Linear layers. This model is compatible to run on TINIE HW accelerator.
After running the modelmaker you can find the following results for different size of frames. This dataset is not a timeseries dataset, so using frame size of 1 will produce better result.
| Frame Size | Float R2-Score (MSE) | Quant R2-Score (MSE) | Exported R2-Score (RMSE) |
|---|---|---|---|
| 1 | 1.000 (185.94) | 0.999 (451.44) | 0.990 (87.46) |
| 4 | 0.997 (645.68) | 0.997 (785.67) | 0.990 (46.36) |
| 8 | 0.978 (2347.63) | 0.978 (2341.76) | 0.970 (59.88) |
We will need CCS Studio, F29H85x Microcontroller and its corresponding SDK F29-SDK.
Code Composer Studio (CCS) is a free integrated development environment (IDE) provided by Texas Instruments (TI) for developing and debugging applications for TI's micro-controllers and processors. It offers various examples for users to get started with their problem statement. One of the application is generic_timeseries_regression. We will use this example to run on device.
The CCS example generic_timeseries_regression requires 4 files from modelmaker. We will copy the files from modelmaker run to the CCS example project.
- f29h85x-sdk 1.03.00.00
- Location of example: C:\ti\f29h85x-sdk_1_03_00_00\examples\ai\generic_timeseries_regression\f29h85x
Run the modelmaker from command line. After the run is finished. Copy the 4 files (path present below) from Modelmaker to CCS Project. Build the CCS Project, flash the program and start debugging the application. Check for the variable test_result for different sets of test cases preset in test_vector.c.
- mod.a: The compiled model is present in this file.
- Path Modelmaker: tinyml-modelmaker/data/projects/induction_motor_speed_prediction/run/{date-time}/{model}/compilation/artifacts/mod.a
- Path CCS Project: generic_timeseries_regression/artifacts/mod.a
- tvmgen_default.h: Header file to access the model inference APIs from mod.a
- Path Modelmaker: tinyml-modelmaker/data/projects/induction_motor_speed_prediction/run/{date-time}/{model}/compilation/artifacts/tvmgen_default.h
- Path CCS Project: generic_timeseries_regression/artifacts/tvmgen_default.h
- test_vector.c: Test cases to check if the model works on device currently
- Path Modelmaker: tinyml-modelmaker/data/projects/induction_motor_speed_prediction/run/{date-time}/{model}/training/quantization/golden_vectors/test_vector.c
- Path CCS Project: generic_timeseries_regression/test_vector.c
- user_input_config.h: Configuration of feature extraction library in SDK.
- Path Modelmaker: tinyml-modelmaker/data/projects/induction_motor_speed_prediction/run/{date-time}/{model}/training/quantization/golden_vectors/user_input_config.h
- Path CCS Project: generic_timeseries_regression/user_input_config.h
Steps to run a regression example on-device can be found by in the following guide: Deploying Regression Models from ModelMaker to Device
From the map file the memory usage is obtained and the cycles are measured using the profiling code. To do the same you can check the
- profiling.h provides APIs to calculate cycles consumed. It would be present in source of ai library.
- .map file can be generated by building the CCS Project. It will be present in the build configuration folder you selected (by default RAM)
| Frame Size | Flash Usage (B) | SRAM Usage (B) | Cycles | Inference Time (us) |
|---|---|---|---|---|
| 1 | 4306 | 128 | 1889 | 9.45 |
| 4 | 4582 | 130 | 3519 | 17.59 |
| 8 | 5292 | 256 | 7288 | 36.44 |
Update history:
[6th Jan 2026]: Compatible with v1.3.0 of Tiny ML Modelmaker
