VGEN Develops Virtual Power Plant with Deep Learning and Machine Learning

“MATLAB enabled us to accelerate the development of scalable VPP applications that not only meet today’s market needs but also are applicable to future changes in the market, such as the introduction of reactive power support.”


Accelerate the development of commercial EMS software for a virtual power plant


Use MATLAB, Deep Learning Toolbox, and Optimization Toolbox to create applications for generating renewable energy forecasts and optimizing energy market trades


  • Development time reduced by 50%
  • Training time for large data sets cut by 90%
  • Commercial applications developed and deployed
VGEN’s VPP integrated with DERs for trading into power market through KPX in Korea.

VGEN’s VPP integrated with DERs for trading into power market through KPX in Korea.

As part of the Korea Renewable Energy 3020 Plan, the South Korean government has set a goal of producing 20% of the country’s energy from renewable sources by 2030. The amount of power generated by solar, wind, and other renewable sources can be difficult to predict, however, and introducing these sources can destabilize the grid.

Virtual power plants (VPPs) address this challenge by combining independent distributed energy sources such as solar power generation facilities and energy storage systems into a single generation profile. VGEN has developed energy management system (EMS) software for a VPP that is already being used by a Korean power generation company. Built entirely in MATLAB®, the software uses deep learning to produce renewable energy forecasts and applies advanced optimizations to maximize profits in energy markets.

“MATLAB enabled our small group to rapidly develop innovative software from our initial concept all the way to production,” says Seungyup Baek, CEO at VGEN. “We would not have been successful without MATLAB and the state-of-the-art deep learning and optimization capabilities it provides.”


VGEN needed to develop models capable of accurately predicting power generation, power demand, and market prices. They also needed to develop optimization algorithms that took these factors, together with trading constraints and storage capacity, into account. VGEN then needed to package their models and algorithms as commercial software that was easy to use and deploy.

VGEN had begun development of EMS software for the VPP in Python®, but the company’s first major customer requested delivery on a tight deadline. The VGEN team recognized that, if they continued to work in Python, they would be unable to meet this deadline. They needed tools that would accelerate development.


Working in MATLAB, the VGEN team developed algorithms to automate the aggregation and preprocessing of data, including market prices, power generation and demand records, and weather data.

Using Deep Learning Toolbox™ and Statistics and Machine Learning Toolbox™, the team evaluated several machine learning and deep learning approaches, including multivariate linear regression and artificial neural networks. They opted for a hybrid approach that combined machine learning and deep learning models.

To shorten model training times, they used Parallel Computing Toolbox™ to perform the training on a multicore workstation.

The team used Optimization Toolbox™ to develop an algorithm that executes an optimal trading strategy in which generated power is stored in an ESS when intraday market prices are low and sold when prices are high. Data used in the optimizations is maintained in a MariaDB® database, which the algorithms access via Database Toolbox™.

The team created a user interface with App Designer and used MATLAB Compiler™ to package the models and interface into a standalone application that VGEN customers can use even if they do not have MATLAB installed.

The VGEN EMS software for the VPP is now in commercial use in Korea. The team is currently working on the next generation of the software, which will support larger VPPs and additional distributed energy resources.


  • Development time reduced by 50%. “With a small development team, we developed and packaged multiple forecasting and optimization applications in just seven months,” says Baek. “MATLAB enabled us to develop machine learning models, optimization algorithms, and user interfaces in a single environment, which reduced development time by about 50%.”
  • Training time for large data sets cut by 90%. “Most of our data sets were too large to fit into memory,” says Baek. “We used a MATLAB datastore to read and process these large data sets, and we used Parallel Computing Toolbox and a multicore processor to increase training speed by a factor of 10.”
  • Commercial applications developed and deployed. “Our primary goal was to make it easy for customers to use our VPP software,” notes Baek. “MATLAB enabled us to achieve this goal by creating standalone applications that enable our customers to set up forecasts and optimizations, run them, and visualize results.”