Skip to main content
The Kinematrix Control module provides a comprehensive suite of control algorithms and machine learning implementations optimized for embedded systems. These components enable sophisticated automation, robotics, and intelligent decision-making on resource-constrained devices.

Available Controllers

Kinematrix includes seven advanced control implementations:

PID Controller

Enhanced PID with auto-tuning (Ziegler-Nichols, Cohen-Coon) and EEPROM persistence

Fuzzy Logic

Three fuzzy systems: Mamdani, Sugeno, and Tsukamoto inference engines

Machine Learning

Decision Trees and K-Nearest Neighbors for classification and prediction

Examples

Over 30 real-world examples demonstrating control applications

Key Features

  • Auto-tuning: Ziegler-Nichols (Type 1 & 2) and Cohen-Coon methods
  • Anti-windup: Configurable integral limits
  • Derivative filtering: Low-pass filter for noise reduction
  • Setpoint ramping: Smooth setpoint transitions
  • Output rate limiting: Prevents actuator saturation
  • EEPROM persistence: Save/load tuned parameters
  • Three inference methods: Mamdani, Sugeno, Tsukamoto
  • Multiple membership functions: Triangular, trapezoidal, Gaussian, singleton
  • Flexible defuzzification: Centroid, bisector, MOM, SOM, LOM
  • Rule-based control: Intuitive IF-THEN rule syntax
  • Model persistence: Save/load on ESP32 SPIFFS
  • Decision Trees: Information gain splitting with pruning
  • KNN Classification: Multiple distance metrics (Euclidean, Manhattan, Cosine)
  • Cross-validation: K-fold validation with confusion matrices
  • Feature importance: Identify critical variables
  • Data normalization: StandardScaler for KNN
  • Mixed data types: Numeric and categorical features

Performance Characteristics

AlgorithmExecution TimeMemory UsageBest For
PID Controller~100μsMinimalTemperature, motor speed, flow control
Fuzzy Logic500μs - 2msLow-MediumHVAC, irrigation, robot navigation
Decision Tree~200μsMediumSoil classification, weather prediction
KNNVariableMedium-HighGesture recognition, pattern matching

Platform Support

#define ENABLE_MODULE_PID_CONTROLLER
#define ENABLE_MODULE_FUZZY_MAMDANI
#define ENABLE_MODULE_DECISION_TREE
#define ENABLE_MODULE_KNN
#include "Kinematrix.h"

// All algorithms supported with EEPROM/SPIFFS persistence

Quick Start Examples

Basic PID Temperature Control

#define ENABLE_MODULE_PID_CONTROLLER
#include "Kinematrix.h"

// Create PID: Kp, Ki, Kd, dt, min_output, max_output
PIDController pid(2.0, 0.1, 0.5, 0.1, 0.0, 255.0);

void setup() {
  pid.setSetPoint(60.0);  // Target temperature
  pid.calculateOptimalIntegralLimit();
}

void loop() {
  float temp = readTemperature();
  float output = pid.compute(temp);
  analogWrite(HEATER_PIN, (int)output);
}

Simple Fuzzy Fan Control

#define ENABLE_MODULE_FUZZY_MAMDANI
#include "Kinematrix.h"

FuzzyMamdani fuzzy(2, 1, 4, 2);

void setup() {
  fuzzy.addInputVariable("temperature", 15, 35);
  fuzzy.addInputVariable("humidity", 20, 90);
  fuzzy.addOutputVariable("fan_speed", 0, 100);
  
  // Add fuzzy sets and rules...
}

void loop() {
  float inputs[2] = {temperature, humidity};
  float* outputs = fuzzy.evaluate(inputs);
  setFanSpeed(outputs[0]);
  delete[] outputs;
}

KNN Pattern Classification

#define ENABLE_MODULE_KNN
#include "Kinematrix.h"

KNN knn(3, 4, 20);  // k=3, 4 features, max 20 samples

void setup() {
  // Train the model
  float features[] = {5.1, 3.5, 1.4, 0.2};
  knn.addTrainingData("setosa", features);
  // Add more training data...
}

void loop() {
  float sample[] = {5.0, 3.4, 1.5, 0.2};
  const char* prediction = knn.predict(sample);
  float confidence = knn.getPredictionConfidence(sample);
}

Real-World Applications

Smart Home

  • HVAC temperature/humidity control
  • Lighting automation
  • Energy management

Industrial

  • Process control systems
  • Motor speed regulation
  • Flow rate management

Agriculture

  • Irrigation scheduling
  • Greenhouse climate control
  • Soil classification

Robotics

  • Path planning
  • Obstacle avoidance
  • Sensor fusion

Environmental

  • Weather prediction
  • Air quality monitoring
  • Water level control

Education

  • Control theory demonstrations
  • Machine learning labs
  • Embedded AI projects

Choosing the Right Controller

1

Need precise setpoint tracking?

Use PID Controller for systems requiring accurate target maintenance (temperature, pressure, speed)
2

Working with imprecise or linguistic rules?

Use Fuzzy Logic for systems with human-like reasoning (comfort levels, qualitative states)
3

Need classification or pattern recognition?

Use KNN for real-time classification with small training sets
4

Building decision models from data?

Use Decision Trees for interpretable models with mixed data types

Next Steps

PID Controller

Learn about auto-tuning, advanced features, and optimization

Fuzzy Logic

Explore Mamdani, Sugeno, and Tsukamoto systems

Machine Learning

Implement Decision Trees and KNN classifiers

Examples

Browse 30+ real-world control examples

Build docs developers (and LLMs) love