Introduction
Electric drives are the backbone of modern industry—from robotics and electric vehicles to industrial automation and renewable energy systems. Yet, modeling them accurately remains a challenge: traditional simulation tools are often proprietary, expensive, or lack the flexibility to handle complex, real-world scenarios. Enter REPEAT (Rosatom Electric Powertrain and Equipment Analysis Tool), an open-source framework developed by specialists at Rosatom. In a detailed article published on Habr in July 2026, the developers shared the inner workings, capabilities, and practical applications of REPEAT for electric drive modeling. This article summarizes that material, offering a journalist-style overview of what REPEAT brings to engineers, researchers, and students.
What Is REPEAT?
REPEAT is a Python-based open-source platform designed specifically for modeling electric drives and power equipment. Unlike many commercial tools that require expensive licenses and closed ecosystems, REPEAT is freely available on GitHub, allowing users to inspect, modify, and extend the code. The developers emphasize that the tool was born from real industrial needs: Rosatom’s engineers faced a shortage of flexible, transparent modeling tools for electric drives used in nuclear power plants and other critical infrastructure.
Key Features of REPEAT
The project team implemented several core features that make REPEAT stand out:
- Modular architecture: Users can combine different motor models (e.g., induction, synchronous, DC), control algorithms (PID, field-oriented control, direct torque control), and load profiles without rewriting code.
- Parameter estimation: REPEAT includes routines to estimate motor parameters from manufacturer datasheets or experimental data, reducing the gap between simulation and reality.
- Real-time simulation support: The tool can interface with hardware-in-the-loop (HIL) systems, enabling testing of controllers on real hardware.
- Integration with common Python libraries: It leverages NumPy, SciPy, and Matplotlib for numerical computation and visualization, making it accessible to anyone familiar with scientific Python.
Practical Examples from the Developers
The Habr article provides concrete cases where REPEAT was used to solve real problems. For instance, the team modeled a 500 kW induction motor drive for a pump in a nuclear reactor cooling system. The goal was to optimize startup transients and reduce stress on the mechanical coupling. Using REPEAT, they simulated the motor’s torque-speed curve under different load conditions and tuned the PI controller parameters to achieve a 15% reduction in peak torque during startup. The entire simulation ran in under 2 seconds on a standard laptop.
Another example involved modeling a permanent magnet synchronous motor (PMSM) for an electric vehicle drivetrain. The developers compared REPEAT’s results with data from a commercial simulator (MATLAB/Simulink) and found a maximum error of 3.2% in steady-state torque, while the open-source tool was significantly faster to set up and required no licensing overhead.
Comparison with Other Tools
| Feature | REPEAT | MATLAB/Simulink | PSIM | PLECS |
|---|---|---|---|---|
| License | Open-source (MIT) | Proprietary (expensive) | Proprietary (mid-range) | Proprietary (high-end) |
| Motor models | Induction, PMSM, DC, synchronous | Extensive (with toolboxes) | Limited | Moderate |
| Parameter estimation | Built-in | Requires additional toolboxes | Not available | Not available |
| Real-time HIL support | Yes (via Python API) | Yes (with Simulink Real-Time) | Yes (with RT-box) | Yes (with PLECS RT Box) |
| Learning curve | Moderate (Python) | Steep (proprietary blocks) | Moderate | Moderate |
As the table shows, REPEAT is particularly strong for users who value transparency, customization, and cost-effectiveness. It is not a full replacement for Simulink in large-scale system-level simulations (e.g., complete vehicle dynamics), but for electric drive modeling specifically, it offers a compelling alternative.
How REPEAT Handles Modeling Complexity
The article describes the mathematical backbone of REPEAT. The tool uses a state-space representation for motors and converters, with support for:
- Park and Clarke transformations for three-phase systems.
- Saturation effects in magnetic circuits.
- Thermal modeling of windings (lumped-parameter thermal networks).
- Switching losses in power electronics (IGBTs, MOSFETs).
The developers encountered challenges in making the simulations numerically stable for stiff systems—such as when a motor is operating at very low speeds with high load. They solved this by implementing an adaptive step-size Runge-Kutta solver (RK45) as the default, with fallback to implicit methods (BDF) for stiff problems.
Practical Recommendations for Users
Based on the material, here are actionable tips for anyone starting with REPEAT:
- Start with the built-in examples: The GitHub repository includes Jupyter notebooks for common scenarios (e.g., induction motor startup, PMSM field-oriented control). Run these first to understand the workflow.
- Validate against datasheets: Use the parameter estimation module to extract motor parameters from manufacturer curves. The developers report that this step alone can reduce simulation errors by up to 40%.
- Use Python environments: Create a virtual environment with Python 3.10+ and install dependencies via
pip install repeat-tool. Avoid system-wide installs to prevent conflicts. - Explore the modular structure: If you need a custom control algorithm, you can write a new class inheriting from the base
Controllerclass. The documentation includes templates. - Contribute back: Since REPEAT is open-source, users are encouraged to report bugs, suggest features, or submit pull requests. The community is still small but growing.
Tools and Integrations
REPEAT can be integrated with other open-source tools. For example, it can export simulation data to CSV for analysis in pandas or visualization in Plotly. It also supports co-simulation with Modelica models via the FMI standard, though this requires additional setup. The developers mention that they are working on a direct interface with OpenModelica for future releases.
Conclusion
REPEAT is a powerful, transparent, and free tool for modeling electric drives, born out of real industrial needs at Rosatom. Unlike black-box commercial simulators, it allows engineers to understand and modify every aspect of the simulation—from motor equations to solver settings. The examples from the Habr article demonstrate its practical value in optimizing drive performance, reducing costs, and accelerating development. For anyone working with electric drives—whether in academia, R&D, or industry—REPEAT is worth a serious look. The full details are available in the original article: Source.
Comments