User Stories

EVLO Energy Storage Accelerates Development of Energy Management Systems with Model-Based Design


Improve the performance and extend the lifespan of large-scale energy storage systems with next-generation EMS designs


Use Model-Based Design to model EMS controllers, verify designs via simulation-based tests, and generate code for multiple targets


  • Algorithms prototyped in hours
  • Reusable virtual ESS deployed
  • Quality continuously improved

“When we sell an energy storage system, our customers often need to verify that it will work on their grids, so we provide them with the same Simulink plant model that we used to develop our EMS software suite. As a result, we are able to run accurate simulations before installing any equipment on the client’s grid, and can provide this service at a competitive cost.”

Adile Ajaja, EVLO
Two EVLO 500s, orange metal boxes with a silver front with a plus sign on the left and minus sign on the right.

Two EVLO 500s, part of a 4-MWh energy storage system coupled with a PV solar farm near Montreal, Canada. (Image credit: EVLO Energy Storage Inc., 2021)

Energy storage systems (ESS) play a vital role in enabling renewable energy sources to be safely and reliably integrated with the grid. These systems perform power smoothing—absorbing or injecting power as needed to reduce fluctuations that are common with wind and solar power sources, and they also perform reserve management and frequency control functions for hydroelectric sources.

Large-scale ESS incorporate multiple racks of battery cells, inverters, interconnection hardware, temperature controls, and other components. An efficient energy management system (EMS) ensures that all ESS components work well together to maximize performance and the lifespan of the entire system. Due to the complexity and difficulty of testing on real hardware, developing software for an EMS is often a time-consuming, labor-intensive process.

Engineers at EVLO, a subsidiary of Hydro-Québec, use Model-Based Design with MATLAB and Simulink to accelerate the development of EMS for utility-scale energy storage systems. “Writing—and later maintaining—code for an EMS is resource intensive; it requires a lot of manpower,” says Adile Ajaja, senior software team manager at EVLO. “With Model-Based Design we can focus on the EMS design itself, which is what provides direct value to the customer, verify the design through simulation, and then generate code for a variety of deployment options, including PLCs and embedded processors.”


When a battery cell is charged and discharged frequently it generates heat, leading to performance degradation and diminished useful life of the cell. Although EVLO systems are designed with lithium iron phosphate cells that have greater thermal stability than lithium-ion cells, EVLO engineers need to implement intelligent control strategies that distribute charging and discharging across all available cells to minimize heat generation and its adverse effects.

Because validating and verifying control strategies directly on 500-kWh and 1-MWh ESS is not practical, EVLO needed a way to build complete plant models that incorporate available submodels from third-party component suppliers. Finally, to accelerate implementation, the team wanted to avoid handwriting code and instead generate code for a variety of target platforms.


In their design workflow, EVLO engineers use Simulink® to model both the EMS controller and plant. To support their product onboarding and streamline their workflow, EVLO worked with MathWorks application engineers and consultants.  The EVLO team is now fully self-sufficient.

Working in Simulink with Stateflow®, the engineers model the controller in multiple layers: a hardware abstraction layer that provides an interface to the inverter and other EMS components, an application layer that includes power smoothing and frequency control algorithms, and an optimization layer that maximizes power efficiency and component longevity.

The engineers use Requirements Toolbox™ to link system and high-level requirements in IBM® DOORS® Next to corresponding elements of the Simulink controller model and later to test cases used to verify the requirements.

Continuing to work in Simulink, the engineers model the ESS plant and each of its components. In some cases, component suppliers provide a Simulink model that can be incorporated directly into the plant model. Otherwise, EVLO engineers model the component themselves using Simscape™ and Simscape Electrical™.

The team runs a series of simulations with the controller and plant models to verify the design. They run Model Advisor checks to ensure their models comply with high-integrity guidelines, and they use Simulink Design Verifier™ to identify division by zero and other design errors.

Using Simulink Test™, the team creates test cases based on the model simulations. The test cases are executed as part of the team’s continuous integration process on a multicore workstation using Parallel Computing Toolbox™. As the tests run, Simulink Coverage™ analyzes model coverage and identifies untested elements of the controller model.

Depending on the target deployment hardware, the engineers generate code from the controller model using Simulink PLC Coder™ or Embedded Coder™. They also generate code from the plant model using Simulink Coder™; they then use this code for hardware-in-the-loop regression tests.

EVLO is expanding the use of Model-Based Design to other product lines, including electric vehicle charging stations, for which HDL code is generated from the model for FPGA deployment.


  • Algorithms prototyped in hours. “With Model-Based Design, we can prototype and test an early version of our algorithm much faster than is possible with traditional methods,” says Ajaja. “In a matter of hours, we can create a fully-functional prototype that would take several days without Simulink and code generation.”
  • Reusable virtual ESS deployed. “We have a compiled instance of our Simulink plant model running on a virtual machine in the lab,” notes Ajaja. “That’s an advantage for us because we can use this setup instead of a real ESS to test controllers, and we can reuse it to train operators and to provide demonstrations for potential customers.”
  • Quality continuously improved. “Simulink supports our full development life cycle, from requirements to desktop and HIL simulations and regression tests, so we can perform every step of the V-model in a single environment,” says Ajaja. “This is important to us because it enables us to maintain and improve the quality of our software over time.”