SMART-ISO is a stochastic, multiscale model of grid operations developed at PENSA, which has been designed from the ground up to handle both the variability and uncertainty of growing penetrations of wind and solar. Considerable care has been devoted to handling the timing of decisions as well as the ability of PJM's planning process to adapt as new information becomes available.

SMART-ISO has been funded by the SAP Initiative for Energy Systems Research, with considerable support from PJM in terms of data and time spent describing PJM planning processes. The model also benefited from a DOE-funded study, led by the University of Delaware, of high levels of off-shore wind which served as a valuable test of the model.

In 2016, PENSA started a major project funded by the major Brazilian utilities and run by Unicamp, to develop procedures to deal with Brazil's growing dependence on wind and solar. The Brazilian version will be called SMART-SEN, and will model the entire Brazilian grid and energy markets.


Overview of SMART-ISO

Calibration and validation

Study of offshore wind (with U. Delaware) (new! April, 2015)

Papers describing offshore wind study:

Part I: Methodology for forecasting offshore wind

Part II: Description of SMART-ISO, and results of the offshore wind study


A video of SMART-ISO

Supporting data

System components

Handling uncertainty


The SMART-ISO development team

Overview of SMART-ISO

SMART-ISO is intended to be a highly detailed simulator of the PJM power grid, with special care given to the flow of information and the handling of uncertainty. SMART-ISO is much more than a "stochastic unit commitment model" which has received so much attention in the literature. It will simulate day-ahead and hour-ahead commitment and generation decisons, in addition to real-time economic dispatch at 5-minute intervals. SMART-ISO is intended as a simulator for performing a wide range of policy studies. It might also be used as a test environment for models and algorithms that might be used in production. It is currently using the full PJM power grid (over 9,000 buses and 14,000 transmission lines in 2010).

A major feature of SMART-ISO will be the correct handling of different forms of uncertainty, in addition to the careful modeling of the dynamics of generators such as steam and gas turbines. We pay special attention to the difference between when we make a decision (which determines the information available) and the actionable time (when the decision would be implemented). We carefully distinguish between decisions in the future that will be implemented (e.g. day-ahead decisions on steam generation) and decisions that we use purely for planning purposes (such as day-ahead plans of natural gas combustion turbine).

It is the goal that our effort be completely transparent. We will be doing our best to carefully document what we are doing. Due to confidentiality of some of the data, we will not be able to share the model at this time, but we are hoping to provide public access to the model, perhaps through a web site.


We have been putting a lot of work into calibrating SMART-ISO against historical activities from PJM. As of this writing, we have two forms of calibration: matching the pattern of LMPs., and matching generation across different sources.

The latest version of the model, with the more accurate modeling of PJM's IT-SCED unit commitment model, appears to be reproducing the pattern of LMPs quite well.

Pattern of LMPs

We recently completed a major rewrite of the "hour ahead" unit commitment model, which appears to have produced a major improvement in the IT-SCEDmodeling of LMPs when compared against historical values. The new logic, shown immediately below, closely matches the PJM IT-SCED logic. IT-SCED is run 15 minutes before and after the hour. The 1:15 run, for example, models the system from 1:30 to 3:30. We look at when each generator is planned to be turned on in this interval, and subtract off the notification time (plus ramp up time). If this time falls within the interval 1:30 to 2:00, the generator is turned on.

The old logic would run a unit commitment model (for gas turbines) each hour. The run at 1pm would plan from 2pm to 3pm. Any generator that was turned on during this period would be committed. Notification times were ignored. The LMPs using this old logic are shown below the latest LMPs.

The results appear to show that the more accurate model produces more accurate LMPs. In particular, look at the latest results for July, and compare to the previous results for July. The more accurate model appears to significantly improve the pattern of LMPs when compared against history.

Actual vs. simulated LMPs using the new logic that closely matches PJM's IT-SCED process:







Actual vs simulated LMPs using the old hourly unit commitment models:





Generation patterns

Our first comparison is the distribution of generation across different types of generation, including gas turbines, pumped hydro, a tiny amount of hydro, combined cycle, steam and nuclear. On the left is the historical behavior, derived from the actual generation from PJM but restricted to the generators which we are able to map to the grid (about 93 percent of the total).

On the right is the distribution of generation from the model, where now we are running enough generation to cover the entire (actual) load. The plot on the left is slightly lower because we were not able to map all of the generators to the grid.

Note the pattern of pumped hydro, which is charged at night (the bit of blue at night). SMART-ISO initially plans the pumped hydro using a 48 hour look-ahead model, but the actual pumped hydro comes the hour-ahead model, which required the use of approximation dynamic programming to capture the value of water in the reservoir (without this, the model would simply use all the water right away, rather than waiting until the peak period). The simulated activities are those produced by the economic dispatch model that is run every five minutes.

These graphis required about six months of work. Not perfect, but pretty close.


Historical vs. simulated generation



Study of off-shore wind for the mid-Atlantic region

We have completed a careful study of off-shore wind integration with Willett Kempton and Cristina Archer at the University of Delaware (funded by DOE through the University of Delaware). Hundreds of simulations were conducted to design robust policies, and test the limits of offshore wind. Features of the study include:

o Five buildout levels were designed, ranging from 8 to 78 GW of capacity.

o We used the accuracy of on-shore forecasts, provided by PJM, to build a stochastic model of the errors in a wind forecast.

o WRF, a popular meteorological model, was used to produce weather simulations for the offshore region, using realistic rolling 48-hour simulations. We created weather patterns for three weeks in each of four months, including January, April, July and October. The stochastic error model was then used to create 7 sample paths for each simulated week, creating 84 sample paths altogether. The WRF simulations for each buildout level, for each month, are shown below.

o Hundreds of simulations of SMART-ISO were run, first to determine the reserves needed to deal with uncertainty. We found the minimum reserve level for each of the four months, for each buildout level.

o Given the reserve levels, we then simulated all 84 sample paths for each of the five buildout levels. We found that we could cover the entire load, for each of the 84 for sample paths, for all build levels, for January, April and October. Using existing generator fleets, we encountered outages in roughly 20 percent of the scenarios for buildout levels 4 and 5, for the month of July only. This means that we could cover the entire load, for all scenarios, for all months, up to buildout level 3 (40 GW).

Papers describing offshore wind study:

Part I: Methodology for forecasting offshore wind

Part II: Description of SMART-ISO, and results of the offshore wind study


offshore wind


Features (current and planned)

At this stage, it would be accurate to say that all aspects of the model are still under development. However, a version of the model is running. We are currently undertaking a major code revision that will give us the following features:


Below, we list features that are in the model (even if they are still going through enhancements) and then list planned features which we anticipate will be running within the next 12 months.

Current features:

Video of SMART-ISO

To see an animation of SMART-ISO, click here (warning - this is a 50 meg file). The animation is generated using PILOTVIEW 5.1, a package developed at CASTLE Lab for animating complex, dynamic flows (originally developed for our work in transportation).

This animation is generated from a run of SMART-ISO that still does not have grid constraints in the day-ahead and hour-ahead policies. This is because problems with our grid model are preventing us from obtaining a feasible solution at the moment. We use an unconstrained grid, and then evaluate loads on the links relative to rated capacities, which is how some links can be over capacity. The simulation also uses some simulated wind (shown as green circles along the coast) which generate more energy than the coastal grid can handle. We hope to resolve the issues with the grid later this fall.


Rectangles depict flow over the network:

Light blue - Line is at less than 75 percent of capacity.
Darker blue - Line is between 75 and 100 percent of capacity.
Yellow - Line is between 100 and 125 percent of capacity
Red - Line is over 125 percent of capacity

Circles depict generation or loads

Yellow - Loads
Purple - Nuclear generation
Red - Gas turbine or combined cycle
Gray - Steam
Green - Wind

Supporting data

The grid - We use the 2010 PJM transmission grid. Though we can use the full grid, in general we  include the 69kV transmission lines and higher. SMART-ISO makes it possible to streamline the grid by limiting it to higher level transmission lines. Algorithms are used to map nodes on lower level voltage lines to the closest bus on the reduced size network being modeled.

Generators - After starting with generators described by PJM bid data, we purchased a dataset from Ventyx in 2011 to get more reliable cost and engineering information. We have completed the process of merging the Ventyx data with the PJM network, and now feel that we have a complete and accurate set of data.

Although the Ventyx data included ramp rates, we found that they were not accurate for a model stepping in five-minute increments. Instead, we used actual generator data from PJM to estimate ramp rates at the five-minute level. Many of these ramp rates were much faster than those estimated by Ventyx (which averaged changes over an hour rather than five minutes). We were also able to capture behaviors such as seasonal variations in production (gas turbines are more productive in cold weather than hot weather).

Loads - We now have loads for every five minutes for all of 2010.

Grid capacity - We believe that the grid data is generally quite good, but we are currently having some problems finding feasible solutions. We will use our Pilotview diagonstic tool to identify and correct what appear to be problems with some specific links in the network.


System components

The major components of the system include:

Data components:

Analytical components

We now have a single module that is used to solve the day-ahead, hour-ahead and real-time components. The module adjusts to each setting through the inputs. For example, both the day-ahead and hour-ahead planning problems require running the model at a time t, to plan a window from t' to t''. For example, we may run the model simulating what we know at noon to plan generation tomorrow (midnight to midnight) in hourly increments. For the hour-ahead model, we might run the model at 2pm to plan the window 3-4pm in five minute increments. For the real-time economic dispatch (five minute horizon) we are just running the power flow model.


Handling uncertainty

A major feature of SMART-ISO is its handling of uncertainty. Considerable attention has been given in the research community to the "stochastic unit commitment problem" where models use a set of scenarios to handle different events that may happen tomorrow (this algorithmic strategy is known as "stochastic programming"). Instead of a single integer program optimized for a single future, stochastic programming models optimize over multiple scenarios, often producing very large scale integer programming models that need the power of a supercomputer.

SMART-ISO is first and foremost a simulator, which simulates policies for making day-ahead, hour-ahead and real-time decisions. When a decision (such as day-ahead and hour-ahead) affects the future, we have to design a policy to handle the uncertainties in our forecasts. One goal of SMART-ISO will be to develop and compare different classes of policies for working with uncertainty. Stochastic programming is one class of lookahead policy. Since we wish to simulate these policies over many time periods, computational speed matters, and we will be looking for robust policies that are much easier to solve than the stochastic programming algorithms.

Separate from the design of a policy (an algorithmic challenge) is the modeling of uncertainty. If we think of a policy as a black box for making day-ahead, hour-ahead and real-time decisions, we then have to think about how to model both the dynamics of the physical system (e.g. ramp rates), as well as the dynamics of uncertain events such as wind, solar, loads, and network performance.

We will put considerable care into the proper modeling of forecasts of exogenous events such as wind, and the need to do advance planning, such as day-ahead planning of steam generation, planning of gas turbines over 5 to 60 minute horizons, in addition to different forms of demand response which might require advance notification of several hours to a few minutes (or nothing at all). For example, we are developing models of forecast error for wind which captures both amplitude (quantity) and temporal errors. Temporal errors arise when we forecast an increase/decrease in wind due to the arrival of a high or low pressure zone, but where the timing is wrong.

We anticipate modeling the following types of uncertainty:



A summary of SMART-ISO (no equations) is given in

Hugo P. Simao, W.B. Powell, C. Archer, W. Kempton, “The challenge of integrating offshore wind power in the US electric grid. Part II: Simulation of the PJM market operation,”



The SMART-ISO development team

SMART-ISO is being developed under the direction of Professor Warren Powell, director of PENSA.

The lead developer was Dr. Hugo Simao, who wrote the code (building on some initial programming by two undergradates - Kevin Kim and Steven Chen).

We would like to thank Dr. Marcos Filho who developed and calibrated the real-time AC power flow.

The students:

The first version of the model was largely written by undergraduates in the Department of Operations Research and Financial Engineering at Princeton, primarily as part of their senior thesis research, with significant additions made by teams of undergraduates working as summer interns at PENSA under the supervision of Hugo and Boris. Major contributors include:

Jessica Zhou - Jess wrote the very first version of the model for her senior thesis, including a full simulator with day-ahead and hour-ahead logic.

Kevin Kim - Kevin worked on the day-ahead unit commitment model as a summer intern and then for his senior thesis.

Steven Chen - Steve rewrote the hour-ahead model, introducing an integer program for planning natural gas generators in five-minute increments using a model that was solved hourly.

Daniel Dix - Daniel developed a powerful set of graphical utilities that helped with the mapping of the PJM load and generator data to the PJM grid.

Austin Wang - Austin started in the summer before his freshman year and provided significant assistance with the process of mapping generator and load data to the PJM grid.

Ashish Gupta - Ashish developed a powerful set of machine learning algorithms that played a central role in our ability to map PJM generator and load data to the PJM grid, which used independent node numbering systems.