Dyshlo

Platform-agnostic header-only motor control library in C++ for high-integrity applications.

Dyshlo is a platform-agnostic, highly abstract, header-only C++ library designed for use in hard real-time embedded systems devoted to electric motor control. It is designed to work with any hardware platform that can implement the simple and well-defined software interface between the library and the underlying power stage driver.

Dyshlo is designed for use in high-integrity systems. It comes with an extensive on-target verification suite and is continuously checked by multiple static analyzers that ensure compliance with AUTOSAR C++14 and other safety standards.

Dyshlo contains a built-in SITL/HITL electromechanical simulation engine that can be used to accurately predict the behavior of the drive under various operating conditions (incl. noise, disturbance, and failure injection), and thus facilitate safety compliance. The simulation results are exported in the standard CSV/TSV format which can be further processed with standard data science frameworks (examples with Python+Pandas+Plotly are provided).

Architecture

As shown in the diagram, Dyshlo contains the core library (red) and extensive on-target verification scaffolding (blue). Only the items shown in red are used in the production application. POSIX SITL builds are supported for development and experimentation purposes.

Architecture of Dyshlo

SITL/HITL simulation framework

The SITL/HITL electromechanical simulation engine enables extensive V&V and automatic parameter optimization. The framework is compatible with the industry-standard data science stack based on Python+SciPy+Pandas+Plotly+Jupyter.

Time series plot of a simulation run EKF state estimator parameter optimization visualization

Applications

  • Propulsion systems for electric aviation (manned and unmanned)
  • Traction drives for electric vehicles and robotics
  • Micromobility systems
  • High-performance actuators and servo drives
  • Research

Capabilities

  • Efficient field-oriented control of PMSM and BLDC motors utilizing bleeding edge technologies from Zubax Robotics.
  • Automatic characterization (system identification) of the connected motor and its mechanical load.
  • Sensorless and sensored operating modes with various state estimators.
  • Various optimal control strategies: torque, velocity (incremental nonlinear dynamics inversion), position, voltage.
  • MTPA and field weakening.
  • High-frequency injection (HFI) for robust sensorless operation at standstill (soon!).
  • Dynamic modulation frequency foldback (soon!).
  • Compatibility with modular multilevel converters (MMC).
  • Built-in electromechanical simulation engine for R&D and V&V.

Features

  • Completely platform-agnostic, header-only.
  • Compatible with any conventional MCU platform (FPU required).
  • Built-in SITL/HITL verification framework with 94% branch coverage.
  • Self-explanatory, well-designed OOP codebase in modern C++.
  • AUTOSAR C++14 compliance.
  • Codebase is continuously analyzed by several distinct static analysis tools.
  • Usable in bare metal environments or preemptable RTOS.
  • Does not require exceptions, heap, RTTI.
  • Compatible with interrupt-free environments for safety-critical applications.