EnergyPlus Co-simulation Toolbox

Co-simulation of EnergyPlus models in Matlab/Simulink.
Updated 18 Apr 2021

The toolbox facilitates simultaneous simulation of EnergyPlus and Matlab (co-simulation). The main component is the mlep class containing all the necessary tools to configure and run EnergyPlus co-simulation within the Matlab environment.

System Requirements
* Windows. The toolbox has only been tested for Windows, but considerable preparations for other OS has already been done.
* EnergyPlus installed. You can obtain the software here If you install the EnergyPlus to the default location ('C:\EnergyPlusVx-x-x') then it might be detected automatically by the toolbox.

Obtain a copy of the toolbox from
* Matlab Add-on Manager
* or Mathworks File Exchange
* or a GitHub repository
and install.

The toolbox contains:

* Parsing of the IDF file to determine co-simulation inputs/outputs.
* Automatic socket communication configuration (on localhost).
* Background start of the EnergyPlus process with an output to the Matlab command line.
* System Object implementation usable in Matlab & Simulink.
* Bus input/output integration for easy Simulink model setup.

See the GettingStarted.mlx guide delivered with the Matlab toolbox or the documentation residing under Help -> Supplemental Software -> EnergyPlus co-simulation toolbox

* Always be sure that EnergyPlus itself is working. To check run "EP-Launch.exe" from the EnergyPlus installation folder and try running one of its examples (located at <EP folder>/ExampleFiles/).
* If you have issues with "EnergyPlus not found." run "setupMlep.m".
* If you have an issue with a "Vector to Bus" block not having its bus types correctly specified, run the model again. Bus objects should now be in the workspace and it should work.

Copyright (C) 2019, Jiri Dostal (
All rights reserved.

This software builds on the free software by Truong Nghiem(, Willy Bernal ( and several other third-party open-source tools.

Cite As

Dostal, Jiri, and Tomas Baumelt. “Model Predictive Control for Buildings with Active One-Pipe Hydronic Heating.” E3S Web of Conferences, edited by S.I Tanabe et al., vol. 111, EDP Sciences, 2019, p. 04050, doi:10.1051/e3sconf/201911104050.

View more styles
MATLAB Release Compatibility
Created with R2019b
Compatible with R2017a and later releases
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!



Versions that use the GitHub default branch cannot be downloaded

Version Published Release Notes

added short Troubleshooting section in this description.


Updated IDF files to EnergyPlus 9.2 version.
Followed Upgrade advisor to remove "not recommended" Matlab commands.
Fixed some documentation bugs.
Fixed a bug for ExternalInterface:Actuator.


* minor bug in ExternalInterface:Actuator & ExternalInterface:Variable. Working now as intended.


* updated examples to EnergyPlus version 9.1.0
* disabled IDF simulation with mismatching EnergyPlus version.
* updated simulink models to Matlab r18b. It can still be simulated by older Matlab (enable this in Simulink preferences).
* minor fixes

* corrected a bug in the setup routine. Made first time use through Simulink end in a neverending loop.
* extended communication timeouts to accommodate for larger EP simulations


Added better documentation


### Added
* Load and Save routines.

### Changed
* Bus objects are now loading in the Init function callback. It should solve
the '_Missing Bus objects_' issues.
* Optimized IDF file parsing speed.
* Initialization no longer triggered fro

* compatibility issues in r18b

forgot to add the update binary


* using Matlab's internal JRE instead of searching for external one.


* Bus objects now support signal names longer than 63 characters.
* Simulation and initialization are now considerably faster.
* A Vector to Bus block added.
* Browse buttons in the Simulink block mask.


Adding the binary to the repository code. Hopefully, the Matlab Add-on Explorer will detect it now.


Adding further info. Mainly for manual toolbox installation (The binary is obtainable at GitHub)


To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.