Professional Documents
Culture Documents
User Manual
(DRAFT)
Chapter 1 Introduction
Chapter 2 User’s Guide for Running the MESSAGE Software
Chapter 3 Database Management
Chapter 4 Optimization of the Model and the Intermediate Results
Chapter 5 Extracting the Results in the MESSAGE
CHAPTER ONE____________________________________________________________ 1
Introduction _____________________________________________________________ 1
1.1. Model Overview_____________________________________________________ 1
1.1.1. Energy Flows: Energy Carriers and Technologies _______________________ 1
1.1.2. Demand Fluctuations: the Load Curve ________________________________ 4
1.1.3. Capacities and Investments on Technologies ___________________________ 4
1.1.4. The Limits and Bounds on Technologies ______________________________ 4
1.1.5. Absolute and Dynamic Limits_______________________________________ 5
1.1.6. The Relations/Constraints __________________________________________ 5
1.1.7. The Time Horizon ________________________________________________ 5
1.1.8. The Optimization Criterion _________________________________________ 5
1.2. MESSAGE Software _________________________________________________ 6
CHAPTER ONE
Introduction
MESSAGE (Model for Energy Supply Strategy Alternatives and their General Environmental
Impacts) is software designed for setting up models of energy systems (i.e. energy supplies
and utilization) for optimization. MESSAGE was originally developed at International
Institute for Applied Systems Analysis (IIASA). The IAEA acquired latest version of
MESSAGE and several enhancements have been made in it, most importantly addition of a
user-interface to facilitate its application.
This manual describes the operational aspects of the MESSAGE software in which a model is
called a case study. Therefore, through out this manual, the phrases of “a model” and “a case
study” are synonymous. Furthermore, the MESSAGE can be used to develop a model of a
system other than energy system. The main objective of developing the MESSAGE software,
however, was to facilitate building of an energy system model. Therefore, through out this
manual energy system models are referred.
An energy model is designed to formulate and evaluate alternative energy supply strategies
consonant with the user-defined constraints such as limits on new investment, fuel availability
and trade, environmental regulations and market penetration rates for new technologies.
Environmental aspects can be analysed by accounting, and if necessary limiting, the amounts
of pollutants emitted by various technologies at various steps in energy supplies. This helps to
evaluate the impact of environmental regulations on energy system development.
In first approximation a model, built using the MESSAGE, could be labelled a physical flow
model. Given a vector of demands for specified energy goods or services, it assures sufficient
supply, utilizing the technologies and resources considered. MESSAGE allows modelling of
all steps in the energy flows from supply to demand, which is generally referred to as energy
chain and steps are called levels. Fig 1.1 shows the schematic representation of some energy
chains.
The backbone of the MESSAGE is a flexible framework that allows detailed description of
the energy system being modelled. This includes the definition of i) energy forms at each
level of energy chains, ii) technologies that are producing or using these energy forms, and
Chapter 1-2
iii) the energy resources. The energy forms and technologies can be defined for all steps of
energy chains.
Defining of energy forms includes identification of the levels in the energy chain starting
from the demand to the resources (e.g. useful, final and primary), the energy forms
(commodities) actually used (e.g. coal and district heat), as well as energy services (e.g. space
heat or hot water). Energy demand data, exogenous to the model, is given at the first level of
each energy chain and the model computes demands at the following levels of the chain up to
the energy resource level, as desired.
Chapter 1-3
Gas Power
Plant Gas Ind
Oil Transport&
Distribution
Residentail/Commercial Electricity
Elec. Ind.
Residential/Commercial Heat
Oil Power
Plant
Industrial Electricity
Coal Resources
Industrial Heat
Primary Coal
Primary Gas
District Heat
District Heat
Gas
Primary Oil
Coal R/C.
Electricity
Electricity
Transport
Hydro Power Transport&
Coal
Coal
Gas
Gas
Oil
Oil
Plant Distribution
Oil R/C
Oil Import
Electricity
Oil Heating Transport& Gas R/C
Plant Distribution
DH R/C
Gas Import
District Heat
Cogeneration Transport&
Distribution Elec. R/C
Oil Trp
Technologies are defined by their inputs and outputs, their efficiency and degree of variability
if more than one input (output) is used (produced) for defining the possible production pattern
for some technologies such as a refinery or a pass-out-turbine. The MESSAGE also allows
operation of a technology in alternative modes such as a dual fired power plant that can be run
on gas or alternatively on heavy oil. Operation of technology is referred to as its activity, and
the user can define more than one activity of a technology for a mode of operation such as
generation of electricity and production of heat. A ratio of the main output of the main
activity to the main output of the alternative activity is defined to model relation between the
activities.
For some energy carriers the timely availability causes considerable cost and management
efforts. Electricity has to be provided by the utility at exactly the same time it is consumed.
MESSAGE allows modelling and simulation of this situation by providing option to
subdivide each year into a number of parts, which are generally referred to “load regions”.
The parts of the year aggregated into one load region can be chosen according to different
criteria: just sorted according to the power requirements or aggregation of various typical
parts of the year for example representation of all days of summer by a typical summer day.
The MESSAGE calculates the load curves from the definition of these load regions and
distribution of the annual demand in these regions. Inclusion of load curves improves the
representation of power requirements and the utilization/building of different types of power
plants. Additionally, the semi-ordered load representation opens the opportunity to model
energy storage (e.g., transfer of energy from night to day, from summer to winter).
The investment requirements can be distributed over the construction time of the plant and
they can be subdivided into different categories to allow accounting for the requirements from
some important industrial and commercial sectors. Furthermore, the MESSAGE allows
accounting of the needs for basic materials during construction of a technology as well as the
utilization of non-energetic inputs during the operation of a plant, for keeping track of the
industrial branches they originate from in monetary terms or just accumulating the needs in
physical units.
variables of each activity. Furthermore, a global limit on all activities of a technology can also
be defined.
1.1.5. Absolute and Dynamic Limits
The values of limits and bounds on technologies and resources can be given in absolute terms
or in the growth rate form. The development of an energy system over time can be more or
less predefined if relative or absolute limits for certain energy carriers or technologies are
given. But additionally MESSAGE gives the possibility to introduce maximal or minimal
growth (or decline) rates for the installation of new technologies and for the use of domestic
and imported resources. This allows predefining a range of variability of the system over
time, the MESSAGE dynamically chooses an optimal strategy within the range.
The time horizon of a case study has to be chosen according to the problem; it could be long
as well as short term. Even a model’s application for a single point in time could give
valuable results for complex problems. The time horizon of a case study is defined by the
interval between the user’s selected base year and the terminal year. This time horizon of a
case study is divided into periods, each of which is represented by a year which is referred to
as a model year. The length of periods (i.e. interval between the model years) is defined by
the user and can vary for different periods.
By default, minimization of the total system costs is the criterion used for optimisation of the
model developed using the MESSAGE. The total system cost includes investment costs,
operation cost and any additional penalty costs defined for the limits, bounds and constraints
on relations. For all costs occurring at later points in time, the present value is calculated by
discounting them to the base year of the case study. The sum of the discounted costs is used to
find the optimal solution.
Discounting makes the costs occurring in different points in time comparable; the discount
rate defines the weights different periods get in the optimization. In principle, it should be
equal to the long-term real interest rate, i.e. excluding inflation or any other opportunity costs.
A high discount rate gives more weight or importance to present expenditures than to future
Chapter 1-6
ones, while a low discount rate reduces these differences and thus favours technologies that
have high investment cost but low operation costs.
The current version of the MESSAGE software consists of the following components.
• Databases.
• A program for the post processing of the solution for extraction of results called “cap”.
Fig. 1.2 shows the flow of control and information between these components in execution of
the MESSAGE program. The user interface provides a set of windows to build a model and
preparation of its database. It also provides windows to run the mxg, opt and cap programs.
The mxg program uses the database to generate a matrix of the model which is solved by the
selected solver in the opt program. The cap program uses the solution file of the opt program
and prepares the results in a standard format covering some selected parts of the solution. The
user interface provides windows for extraction of these results. It also provides a window for
extraction of the other parts of the solution as selected by the user. In this window the user
can further process the extracted results to get the final output in the desired form.
User-Interface
CHAPTER TWO...................................................................................................................... 1
USER’S GUIDE FOR RUNNING THE MESSAGE SOFTWARE ..................................................... 1
2.1. Installation of Software ............................................................................................... 1
2.2. Getting Started ............................................................................................................ 5
2.3. Management of Case Studies ...................................................................................... 8
2.3.1. Opening a Case Study to Work on....................................................................................8
2.3.2. Creating a New Case Study...............................................................................................10
2.3.3. Copying an Existing Case Study ......................................................................................14
2.3.4. Back-up of a Case Study....................................................................................................19
2.3.5. Restore a Case Study..........................................................................................................20
2.3.6. Delete a Case Study............................................................................................................21
2.3.7. Saving and Closing of a Case Study.................................................................................22
2.3.8. Setting up Some Parameters for Execution of the Program .......................................22
2.3.9. Default Units ......................................................................................................................24
2.3.10. Change Instance ...............................................................................................................25
2.3.11. Edit Instance Defaults.....................................................................................................27
2.3.12. Create New Instance .......................................................................................................31
2.4. Management of Scenarios in a Case Study ............................................................... 32
2.5. Help Command.......................................................................................................... 35
List of Figures
FIG. 2.13a. Window for Network Selection to Save a Backup File. ........................................ 20
FIG. 2.14. Window for Selection of Case Studies to Restore.................................................. 21
FIG. 2.15. Window to Select a Case Study for Deleting. ........................................................ 22
FIG. 2.16. Window for Settings............................................................................................... 23
FIG. 2.17. Data Fields Showing Labels.................................................................................. 24
FIG. 2.18. Window to See the Default Data Types. ................................................................ 25
FIG. 2.19. Window for Setting Environment........................................................................... 26
FIG. 2.19a. Window for Saving Environment Variables in an Other File. ............................. 26
FIG. 2.19b. The Default Environment File (.msguric)............................................................. 27
FIG. 2.20. Window to Edit Instance Defaults. ........................................................................ 27
FIG. 2.20a. Window to Edit/Define Default Values for Some Data Entities. .......................... 28
FIG. 2.20b. Window for Changing the Tdb.............................................................................. 29
FIG. 2.21. Window Showing Names and Paths of Programs. ................................................. 29
FIG. 2.22. Window Showing Default Paths of All Directories. .............................................. 30
FIG. 2.23. Window Showing Directories of All Exisiting Case Studie. .................................. 30
FIG. 2.24. Window for Management of Case Studies............................................................. 31
FIG. 2.24a. Window to Create New Instance. ......................................................................... 31
FIG. 2.25. Window for Scenario Management. ...................................................................... 32
FIG. 2.26. Window to Create a New Scenario by Copying. ................................................... 33
FIG. 2.27. Window to Create an Empty Scenario................................................................... 33
FIG. 2.28. Window to Select a Scenario for Deleting............................................................. 34
FIG. 2.29. Window Showing Help Option. ............................................................................. 35
FIG. 2.30. Window Showing toDo Option. ............................................................................. 36
Chapter 2– 1
CHAPTER TWO
By default, the shortcut folder is made in the IAEA program group (Fig. I.6) but the user can
also select another group. MESSAGE can be installed either for the current user only, who is
installing MESSAGE, or for all users of that machine. However, the MESSAGE should not
be installed on a network, to allow multiple-user at the same time, as it will not work
properly.
The installation program creates four folders in the MESSAGE_V folder (message_bin,
message_doc, message_help and models). The user works with this setting of the sub-folders
most of the time. Only, some advance users may some time like to change this setting. In
Chapter 2 of this manual, Sub-sections 2.3.10 to 2.3.12 discuss commands to do so.
The installation program also set the command to uninstall MESSAGE. The user can see this
“Uninstall MESSAGE-V” command in the side menu of the IAEA program folder or the
other program folder in which the shortcut is installed (a click on the Start button of the
operating system the program groups). It is recommended that the user makes back up of their
models/case studies and uninstalls MESSAGE if s/he wants to install MESSAGE again in the
machine for any reason.
On the Icon of the MESSAGE program, a double click opens two windows. The first window
(Fig. 2.1) is the commands window for the MESSAGE software, and the second one is the
main window to start the user interface for working in the interactive mode (Fig. 2.1a). The
first window remains in the background during execution of the MESSAGE program and is
closed when the user exits from the program.
Chapter 2– 6
The second window, that provides the user interface, is called the main window (Fig. 2.1a) as
all major commands to run the program are initiated from the menu bar given in this window.
FIG. 2.1a. Main Window of the User Interface of the MESSAGE Program.
To start with, this window shows name of the user and a menu bar on which Cases and Help
commands are active (Fig. 2.1a). The following paragraphs discuss the Cases command while
Section 2.5 discuses the Help command.
The Cases command is used for opening, creating, copying, making backing up, restoring,
and deleting of case studies. It is also used for selecting a set of additional tools required to
Chapter 2– 7
run with the program. The rest of the commands of the main menu remain disabled unless a
case study is opened to work on a model.
A Click on the Cases command drops down a menu (see Fig. 2.2). This menu provides the
followings options to select one (i.e. a click on it).
Open to open one of the existing case studies, which include case studies given
with the MESSAGE program as examples and case studies already created
by the user.
Copy to copy an existing case study for creation of a new case study.
Restore to restore a case study from its backup file (i.e. the condensed form).
Delete to delete one of the existing case studies from the system.
Default units to get the list of all input data fields defined in the MESSAGE model and
units of measurement of the input variables set by default.
Change instance to change the default directories for case studies, MESSAGE profile,
MESSAGE program and its executable file, the user name and a file
containing all these information.
Chapter 2– 8
defaults: Default parameters like discount rate, base-year and steps are given
for a new scenario.
mms pro: It keeps the list of files along with path about different cases to see
the detail of their related files.
Create new instance: This feature is used to change the directory for storing the models;
the program creates a new directory instantly in some given path to
save the models.
The program allows the users to build various models, each referred to as a case study,
therefore the starting point for running the program is management of the case studies i.e.
opening, creating, copying and deleting of the case studies. This section discusses set of
windows for management of case studies.
On the dropdown menu of the Cases command in the main window (Fig. 2.2), a click on
Open gives the list of all the existing case studies (see Fig. 2.3a). A click on one of the names
(followed by a click on the Ok button) opens a case study to work on. The program shows
name of the case study in the centre of the main window form beside the Case study title and
also in title of the Message window.
For each case study, the program keeps a database file called its adb, and database files for
alternative scenarios in a case study are called ldbs (see Chapter 3 for details). After opening a
case study, the user can work on its databases or can create /compute a scenario. For a new
case study, it is appropriate to work on its adb rather than creating a scenario and working on
an ldb. As the user opens a case study, a few new commands appear in the dropdown list of
Chapter 2– 9
the Cases command for management of scenarios (see Section 2.4), saving and closing of the
selected case study (Sub-section 2.3.6).
On the dropdown menu of the Cases command in the main window (Fig. 2.2), a click on
Open gives the list of all the existing case studies (see Fig. 2.3a). For a multi-region study, a
click on its name gives a list of case studies for the main region and sub-regions (Fig. 2.3b).
The program always put name of the case study for the main region on top of this list. A click
on one of these names opens that case study. The program shows name of the case study in
the centre of the main window form beside the Case study title and also in title of the Message
window. If the user opens case study of a main-region, the program also shows names of case
studies of all its sub-regions within brackets along with the main-region name in title of the
Message window.
Chapter 2– 10
There are two methods to create a new case study in the MESSAGE:
i) Creating a new case study from the scratch.
ii) Copying an existing case study.
On the dropdown menu of the Cases command, (see Fig. 2.4), New and Copy commands do
these functions. The section discusses the New command, while Sub-section 2.3.3 discusses
the Copy command. It may be noted that creation of a case study only adds the new case
study into the list of the existing case studies. The user needs to open this new case study to
work on it (see Para (a) in Sub-section 2.3.1).
FIG. 2.4. Window to Get the Options for Creating a New Case Study.
The program allows creation of a case study from the scratch i.e. creating a case study without
any data entities in the application database. On the dropdown menu of the Cases command, a
click on New gives two options (see Fig. 2.4). If a case study is open, the user needs to close
it to get the New command on the menu.
A click on the first option opens a new window (Fig. 2.5) to enter name of the case study, its
brief identification called synopsis and the technology database to be used with the case study.
The use can define a long name of a case study but it is highly recommended that at least first
8 characters of these names should not be the same.
Synopsis which is a brief name of a case study, and it is used for identification of the
study in other parts of the program. For example, the program automatically
adds this synopsis in names of all scenarios created in this case study.
Chapter 2– 11
tdb name which is name of a technology database (referred to as tdb). Initially, an empty
database is given for the user to prepare her/his own technology database (see
Chapter 3 for details). The user can create more than one tdb, and the program
gives the empty tdb or any other tdb available to the user to select one.
Description which is a brief introduction of the case study. It can also help in keeping
history of the new case study.
A click on arrow in the tdb name field opens a window (Fig. 2.6) that gives the list of
technical databases to select one. If the user does not create a tdb with a different name then
MESSAGE will always show only “empty” tdb. A click on it selects the tdb for the new case
study. The selected name appears in the tdb name field. The program creates the adb file of
the new case study and a default scenario named adb. After editing the adb (see Section 3.4 in
Chapter 3), the user can create alternative scenarios by copying the adb scenario.
FIG. 2.6. Window to Select tdb for a New Single-region Case Study.
In a multi-region study, the user models energy systems of two or more than two sub-regions,
and defines a main region to optimize these sub-regions simultaneously as one region. The
program considers main region as a case study and each of the sub-region also as an
independent case study. The user may optimize each case study for a sub-region
independently. For the main-region and each sub-region, in addition to the name of the case
study, the user needs to give the followings:
Synopsis which is brief name of a case study, and it is used for identification of the study
in other parts of the program. For example, the program automatically adds this
synopsis in names of all scenarios created in this case study.
tdb name which is name of a technology database (referred to as tdb). Initially, an empty
database is given for the user to prepare her/his own technology database (see
Chapter 3 for details).
There are two methods to create a new multi-region case study in the MESSAGE:
i) Create a new case study from the scratch.
ii) Copy existing case studies.
On the dropdown menu of the Cases command, (see Fig. 2.4), New and Copy commands do
these functions. This section discusses the New command for a Multi-region case study and
Sub-section 2.3.3b discussed the copy command. It may be noted that creation of a case study
only adds the new case study into the list of the existing case studies. The user needs to open
this new case study to work on it (see Sub-section 2.3.1b)
On the side-menu of the New command (Fig. 2.4), a click on the second option opens a
window to create a multi-region study (Fig. 2.7). In this window, the user enters name of a
directory to be created for the new study, name of the case study of the main region, its
synopsis, and names of the case studies of sub-regions with identity codes separated by a
space.
Chapter 2– 13
FIG. 2.7a. Window to Select tdb for Main Region of a Multi-region Case Study.
Chapter 2– 14
A click on Create button (Fig. 2.7) opens a window to enter synopsis, tdb name and
description of the main region (Fig. 2.7a). This window is similar to that given in Fig. 2.6.
The program opens a similar window for each sub-region (Fig. 2.7b). When the user
completes data entries for the main region (i.e. click on the OK button), the program opens the
window for the first sub-region (Fig. 2.7b). This process goes on till the last sub-region. This
procedure creates a directory for the multi-region study, and a set of sub-directories; one for
the main-region and one for each sub-region.
The multi-region case study is not created if the user clicks the Cancel button in the main-
region window (Fig. 2.7a). However, if the user clicks on Cancel button in any sub-region
window (Fig. 2.7b), case study of the main-region is created but case studies for sub-regions
will not be created.
A click on the arrow in the first field (Fig. 2.8) lists all the existing case studies to choose one
for copying. This list (see Fig. 2.9) shows all single- and multi-region case studies. In this list,
the first column shows S for the single-region studies and case studies of the sub-regions of
the multi-region studies (as explained before, there is an independent case study for each sub-
region). The first column shows M for the case studies of the main-regions in multi-region
studies. A click on one of the names selects that study for copying. If there is no multi-region
study in the existing case studies, the program gives only names of the case studies as shown
in Fig. 2.3a.
The user may install MESSAGE in two different directories in the same machine. At the end
of the list of case studies, “Other instance” is given to get the list of case studies in the other
MESSAGE installation (see Sub-section 2.3.11 on change instance and Sub-section 2.3.12 on
create a new instance).
Chapter 2– 16
The second field in this window (Fig. 2.9a) is to copy an existing single-region case study to
add a sub-region in a multi-region study. Sub-section 2.3.3b discusses this option under
creating multi-region study using the copy command.
FIG. 2.9a. Window to Enter Name of the New Single-region Case Study.
For every case study, the program makes a default scenario (reported as adb scenario), which
is created when the case study is created. The program updates this scenario every time the
adb is modified. In the Scenarios field (Fig. 2.8), a click on the arrow gives names of all the
scenarios of the case study being copied including the adb scenario and a code of “all” to copy
all scenarios. The user can select a set of scenarios by choosing some of the scenarios from
the list while keeping the shift-button pressed. The program copies the data base files (i.e. adb
and ldbs) according to selection of scenarios. If the user wants to make many changes in the
new case study then it is better to copy only the adb scenario and edit the adb for the desired
changes. The user can then use that adb scenario for making alternative scenarios in the new
study. The last field in this window (Fig. 2.8) is to keep some notes on the new case study.
Fig. 2.10 shows the window to create a multi-region study by copying an existing multi-
region study. On the dropdown menu of the Cases command, a click on the copy command
(Fig. 2.4) opens the window to select a case study (Fig. 2.9). A click in the first field of this
window gives a list of the existing case studies for selection (Fig. 2.9). Selection of a case
study of a main region (i.e. a study name with M in the first column) opens the window given
in Fig. 2.10. The first field shows name of the selected multi-region study and its Main region.
The second field is for the user to enter name of the new multi-region study to be created. The
third row contains two fields. The coloured field shows the directory name of the existing
multi-region study, and the white field is for the user to give directory name of the new study.
Using the same pattern, the following row/rows give names of sub-regions in the existing
study and fields for the user to enter names of the sub-regions and their ids for the new study.
The synopsis field (Fig. 2.10) is to give synopsis of the new study and the last field shows the
options for copying scenarios of the existing study i.e. only adb scenario or All scenarios or
some selected scenarios. The program copies the data base files (i.e. adb and ldbs) according
to the selection of scenarios. If the user wants to make many changes in the new case study
then it is better to copy only the adb scenario and edit the adb for the desired changes. The
user can then use that adb scenario for making alternative scenarios in the new study. The last
field in this window (Fig. 2.10) is to keep some notes on the new case study.
The user can create a multi-region study from a set of single-region studies. To start with, the
user creates a new Multi-region study (as discussed above in this section), and defines only
one dummy sub-region which s/he will delete later. To copy the existing single-region studies
into an existing multi-region study, on the dropdown menu, a click on the copy command
Chapter 2– 18
(Fig. 2.4) opens the copy window (Fig. 2.8). A click on the arrow in the first field in this
window gives list of all exiting case studies (Fig. 2.9). On this list, all single-region studies
have S in column 1. A click on a single-region study selects it and the program opens a
window to select the destination case study (Fig. 2.11).
In the second field labelled as “sub region to:”, the dropdown list shows all the existing multi-
region studies to choose from. On selection of a multi-region study, the program shows a field
(Fig. 2.11a) to give an identifier for the new region being created by copying another single-
case study. The program returns to the copy window (Fig. 2.8). In this window, the user gives
a name to new sub-region being created in a multi-regional study by copying another single-
case study.
In the copy window (Fig. 2.8), the user enters synopsis for the new sub-regional study and
selects scenarios from the existing study for copying i.e. only adb scenario or All scenarios or
some selected scenarios. The program copies the data base files (i.e. adb and ldbs) according
to the selection of scenarios. If the user wants to make many changes in the new case study
then it is better to copy only the adb scenario and edit the adb for the desired changes. The
user can then use that adb scenario for making alternative scenarios in the new study.
FIG. 2.11. Window to Copy Existing Case-studies into a Multi-region Case Study.
FIG. 2.11a. Window to Copy Existing Case-studies into a Multi-region Case Study
Chapter 2– 19
The program keeps a subdirectory, named “dumprest”, in the model’s directory for saving the
back-up files. The back-up window (Fig. 2.12) shows the name and path of this directory. By
default the program saves the back-up file in this special directory. However, the user can
select a new directory for saving the back-up file. A click on the browse button (see Fig. 2.12)
opens the window to select a drive and a directory on the selected drive for saving the back-up
file (Fig. 2.13). The user can also save the back-up file on a network. A click on the Network
button (Fig. 2.13) opens a window to select the drive and folder on the Network (Fig. 2.13a).
Chapter 2– 20
FIG. 2.13. Window for Selecting a Place for Saving Backup File.
The third field is given to give the directory of the spread sheet (Excel or Lotus), which is
required for exporting of results. A double click in this field opens the standard MS window
to browse the system for selecting the directory containing it.
The MESSAGE program generates a matrix that needs a solver to optimize the model (see
Chapter 1). The user can select a solver. A click on the arrow of the fourth field gives the list
of solvers that can be used to solve the matrix generated by the Message program. These
solvers include glpk, cplex, and mosek. The glpk is provided with the MESSAGE to enable
computation of studies which are not very big.
The MESSAGE program facilitates preparation of input data file through pre-defined forms.
In these forms, each data field is labeled with a brief name of the associated data entity. The
program shows the detailed name when the user places the cursor on a field (see Fig. 2.17).
However, these names do not indicate the type of data entities for all fields. All data entities
of the program can be grouped into following eight categories:
1) Energy
2) Power
3) Currency
4) Share
5) Time
6) Volume
7) Weight
8) Other
The window to enter general data (Fig. 2.17a) for a case study also shows these categories
(Chapter 3 discusses this window).
On the dropdown menu of the Cases command (Fig. 2.2) a click on Default units opens a
window showing all data fields and the data category for each of input data field (Fig. 2.18).
This window displays a table of three columns showing screen name given to each window or
data form, names of data fields on that screen and default data category (see Chapter 3 for
Chapter 2– 25
windows showing data forms and these screens and data fields). For example, in Fig. 2.18, the
first row states that, the field labeled “hiscact” is to give energy type data.
These types of data entities are given by default and the user can not change them. For each
type of data category, there are various units of measurement. For example, energy can be
measured in Mega Watt year (MWyr) or Giga watt year (GWyr) or calories or joule etc. The
program has also defined the units of measurement for each data category. The default units
for all energy variables and their cost variables are megawatt years (MWyr) and $/kWyr,
respectively. For this setting, the model’s result on investment cost is reported in thousand
dollars. By default, the model assumes that all monetary values are given in dollars of 2000.
Therefore, in names of units for costs, “$’00” is added.
The user cannot modify the default units. However, S/he has the permission to modify units in
her/his own case study when giving the general data of the case study (see Sub-section 3.4.1
in Chapter3) but should be careful in keeping the consistency among various units.
To preserve the default environment, the use can save the changes in a new file and then use it
as the default file. A click on the “Save as” button opens a window for the user to enter the
name of the new file (Fig. 2.19a).
The user may like to create a new environment file after changing the environment variables
and to keep it in some other directory to use it later. The Browse button is to load a previously
save instance file for running the MESSAGE in an alternative environment defined and saved
in a file.
This item in the dropdown menu of Cases command can be used to change some default
settings and most importantly to change the tdb of a case study. If a user has created a case
study through copy option then tdb of the old case is included in the new case. The user can
select another tdb for the new case.
In the Cases command, a click on “Edit instance defaults” opens a new window (Fig. 2.20). In
this window selection of the “defaults” option opens a window (Fig. 2.20a) showing a table to
give default values of some data entities. The program initially gives only four entities as
shown in Fig. 2.20a, the user can add some more data entities in this table. A click on the add
button adds a row of two data fields in this form. The first filed is to give the field label as
given in the data form of the MEESAGE and the second field is to give the default value
which will appear when a new case study is opened.
.
FIG. 2.20. Window to Edit Instance Defaults.
Chapter 2– 28
FIG. 2.20a. Window to Edit/Define Default Values for Some Data Entities.
The second option in this window (Fig. 2.20) is “glob.reg”, a click on it opens a window of
“Edit region definitions” (Fig. 2.20b). This window shows names of all the existing case
studies and the tdb defined for them in a table of three columns, i.e. Region, Synopsis and
Tdb. The user can edit the last two columns to change synopsis or tdb of a case study.
Chapter 2– 29
The third option on the “Edit def” window (Fig. 2.20) is “glob.dir”, and a click on it opens a
window (Fig. 2.21) showing the names and paths of all directories used by the MESSAGE
program. The user, if necessary, can change these paths. S/he should make sure that the
directory structure is according to the changes.
The fourth option on the “Edit def” window (Fig. 2.20) is “default.def”, and a click on it
opens a window (Fig. 2.22) which is exactly the same as for “glob.dir” (Fig. 2.21). It shows
the names and paths of all directories used by the MESSAGE program by default. The user
can edit these fields to defined different paths e.g. path to the directory containing tdb files or
program name e.g. a program different then explore.exe to read User Manual available in the
pdf format. The program uses these values when ever a new study is created.
Chapter 2– 30
The fifth option on the “Edit def” window (Fig. 2.20) is “mms.pro”, and a click on it opens a
window (Fig. 2.23) showing the names of the existing case studies and their directories with
complete paths. The user, if necessary, can change these paths.
The program allows creation of alternative scenarios in a case study. A scenario, in brief, is a
set of assumptions that portrays future developments of an energy system. Hence, alternative
scenarios represent alternative paths of developments. On selection of a case study to work on
(see Sub-sections 2.3.1a or 2.3.1b), the dropdown menu of the Cases command is updated to
allow management of scenarios in a case study (Fig. 2.25). In this window, the Save
command is to save change made in any database of the case study (see Chapter 3 for editing
of databases), while the Close command is to close the case study. The Exit command closes
down the MESSAGE program.
On the Cases command, selection of Scenario gives a side list of commands. There are four
commands in this list (i.e. Copy Scenario, New Scenario, Delete Scenario and Update
Scenario). As discussed before, the program keeps a database for each case study called its
adb and a separate database for each scenario called its ldb. Before creating alternative
scenarios, it is appropriate to prepare the database of the case study i.e. adb first (see Chapter
3 for editing of adb). The program keeps the up-to-date version of the adb in a default
scenario. Once, this default scenario is ready, then alternative scenarios can be created using
it, and the particular features of each scenario should be incorporated by editing its ldb.
The following paragraphs discuss the scenario management commands (Fig. 2.25) and their
related windows.
The user can create a new scenario by copying an existing scenario. On the dropdown menu
of the Cases command, in side-list of Scenario command a click on Copy Scenario opens a
window to copy an existing scenario to create a new one (Fig. 2.26). Format of this window is
very similar to the one discussed in Sub-section 2.3.3a for copying a case study.
Chapter 2– 33
In the first field, a click on the arrow lists names of all the scenarios defined in the case study
the user is working on. Initially there is only adb scenario. As new scenarios are made, the
program adds them in this list. A click on an exiting scenario selects it for copying it to a new
scenario. The user gives name of the new scenario in the second field and its synopsis in the
third field (see Sub-section 2.3.2). Pressing the OK button creates a new scenario containing
all data of the selected scenario.
On the side menu of Scenario of the Cases command (see Fig. 2.25), a click on Delete
Scenario opens a window (Fig. 2.28) that gives list of all scenarios in the case study. A click
on a name selects the scenario for deleting or cleaning.
Chapter 2– 34
After selection of a scenario a user has to press one of the four buttons to choose one of
following options:
Clean up: This will delete all intermediate files of the selected scenario.
Keep Data Only: This will delete all files except the input data files of a selected scenario.
Delete all: This will delete all of the files of a selected scenario.
Cancel: If a user changes mind and want to go back without deleting any file.
A click on one of the first three buttons deletes/cleans the selected scenario. It may be noted
that if a scenario is deleted then it cannot be retrieved again.
(d) Updating default Scenario (dfltscen)
As discussed, the program keeps a default scenario based on the adb database. The user can
update this default scenario to incorporate changes in data stored separately in the upd
database (see section in Chapter 3 on upd database).
In the command set for scenario management (Fig. 2.25) a click on the last command i.e.
Update dfltscen incorporates all data stored in the upd file into the adb file and thus default
scenario is updated.
(e) Saving a Scenario
The program automatically saves any operation on management of scenarios (such as copy
creation or deletion of a scenario).
On the dropdown menu of the Cases command (see Fig. 2.25), a click on Save writes down
any change made in any of the data bases i.e. tdb, adb and ldb (see Chapter 3 for editing of
databases).
Chapter 2– 35
List of Figures
FIG. 3.1. Interrelationship of the Databases in the MESSAGE Program. ................................ 2
FIG. 3.2. Structure of Data on a Technology............................................................................. 5
FIG. 3.3. Structure of Energy levels and forms in the adb and ldb. .......................................... 6
FIG. 3.4. Structure of Load Regions Data in the adb and ldb. .................................................. 6
FIG. 3.5. Structure of Data on Demands in the adb and ldb. .................................................... 7
FIG. 3.6. Structure of Constraints and Relations in adb, ldb and upd. ..................................... 8
FIG. 3.7. Structure of the Resources Data in adb, ldb and upd................................................. 9
FIG. 3.8. Window to Select a Database for Editing.??............................................................ 10
FIG. 3.8a. Window to Edit the tdb. .......................................................................................... 11
FIG. 3.8b. Window to Edit General form the tdb..................................................................... 11
FIG. 3.9. Form to Edit Data on Energy Forms in the tdb ....................................................... 12
FIG. 3.10. Form to Edit Data on Technologies in the tdb ....................................................... 13
FIG. 3.11. General Data Form in the adb Window. ................................................................ 14
FIG. 3.12. Data Form to Enter or Modify Data on Load Regions in adb. .............................. 16
FIG. 3.13. Days Table Opened from the Load Regions Form of the adb Window.................. 18
FIG. 3.14. Days Table Opened in the Load Regions Form of the adb Window. ..................... 19
FIG. 3.15. Holiday Table Opened from the Load Region Form of the adb Window............... 20
FIG. 3.16a. Data form to Enter or Edit Energy Forms in the adb. ......................................... 21
FIG. 3.17. Data Form to Enter Energy Forms in the Selected Level of Energy Chain .......... 22
FIG. 3.16b. Editing of the tdb in the adb Window. .................................................................. 23
FIG. 3.18. Window for Editing Data on Energy Demand in the adb....................................... 24
FIG. 3.19. Window for Adding an Energy Form in the Demand Table................................... 25
FIG. 3.20. Window for Importing Data on Energy Demand. .................................................. 26
FIG. 3.21. Window to Locate the Excel file for Importing Data.............................................. 26
FIG. 3.22. Window to Get the List of Energy Forms that have Load data. ............................. 27
Chapter 3 – iv
FIG. 3.23a. Window to Enter Data on Shares of Load Regions in Annual Demand............... 29
FIG. 3.23b. Window to Enter Data on Load Curve. ................................................................ 30
FIG. 3.23c. Window to Enter Data on Load Curve? ............................................................... 31
FIG. 3.24. Window to Add a Year for Entering Data on a New Load Curve. ......................... 32
FIG. 3.25. Window Showing the Constraint/Relations Form. ................................................. 33
FIG. 3.26. Window to Enter a New Relation in the adb. ......................................................... 34
FIG. 3.27. Window Showing the Constraints/Relations/Variables Form for Group1............. 35
FIG. 3.28. Data Table for Penalties in the Multiple Entries part of the Constraints form...... 38
FIG. 3.29. Graphical Representation of Penalty Costs.?? ...................................................... 39
FIG. 3.30. Data Table for Penalties in the Multiple Entries Part of the Constraints Form.... 40
FIG. 3.31. Window for Load Restriction in the Constraint Form for the Cost Option............ 41
FIG. 3.32. The Entries Window from the Constraints Form.................................................... 42
FIG. 3.33. Window for Copying a Relation/Constraint into another Group ........................... 43
FIG. 3.27a. Window Showing Predefined Relation/Constraint in the Costs Group................ 44
FIG. 3.34. Window to Enter Data on Technologies in the adb................................................ 45
FIG. 3.35. Window to Add a new technology in the adb.......................................................... 46
FIG. 3.36. Window to Get the List of Technologies in adb...................................................... 47
FIG. 3.37. A Form to Enter or Modify Data of a Technology in the adb/tdb Window............ 48
FIG. 3.38. A Form to Modify Activity Data on a Technology in the adb Window. ................. 51
FIG. 3.38a. A Form to Enter Power Relation of Activity A to Activity B of a Technology...... 53
FIG. 3.38b. Window to Define Variation in Power Relation with Time. ................................. 53
FIG. 3.39. Window to Select a Technology from tdb for Addition into the adb....................... 55
FIG. 3.40. Window Showing the Selected Technology from tdb for Addition into the adb ..... 55
FIG. 3.41. Window to Paste a Technology after Cut/Copy Command. ................................... 56
. 3.37a. A Form to Choose a Technology for Rehabilitation. .................................................. 57
FIG. 3.38b. A Form to Define Load Curves of Outputs and Variable Costs........................... 58
FIG. 3.42. Window to Enter Data on Resources in the adb..................................................... 59
FIG. 3.43. Window to Add a New Resource in the adb............................................................ 61
FIG. 3.44. Windows to Add a New Resource in the adb. ......................................................... 62
FIG. 3.45. Window to Enter Storages Data in adb/ldb............................................................ 63
Multiple entries part................................................................................................................. 65
FIG. 3.46. Window to Define Inflow Relation for Hydro Storage. .......................................... 66
FIG. 3.46a. Window to Enter Name of the Relation for a Hydro Storage............................... 67
FIG. 3.46b. Window to Enter River Data for a Hydro Storage. .............................................. 67
FIG. 3.46c. Window to Enter Inflow Data for a River............................................................. 68
FIG. 3.47. Windows to Select a Scenario for Editing the ldb.?? ............................................. 69
FIG. 3.48. Window to Edit an ldb. ........................................................................................... 69
FIG. 3.48a. Window to Edit Data on Energy Forms in an ldb. ............................................... 70
FIG. 3.48b. Window to Edit Data on Constraints/Relations in an ldb. ................................... 70
FIG. 3.48c. Window to Edit Data on Technologies in an ldb. ................................................. 71
FIG. 3.48d. Window to Edit Data on Constraints/Relations in an ldb. ................................... 71
FIG. 3.49. The Standard Edit Windows Opened from the Demands Form. ............................ 73
FIG. 3.49a. Window Showing Graph of the Demand Data. .................................................... 74
FIG. 3.50. A Set of Standard Windows for Unit Selection. ..................................................... 75
FIG. 3.51. Window for Selecting Capacity related Constraints on a Technology................... 76
FIG. 3.52. Window for Defining Constraint on Capacity of a Technology. ............................ 76
FIG. 3.53. Window for Bounds on a Technology in the tdb, adb and ldb................................ 76
FIG. 3.54. Window for Bounds on a Technology in the tdb ,adb and ldb................................ 77
FIG. 3.54a. Window for Bounds on a Technology in the tdb ,adb and ldb.............................. 77
FIG. 3.55. Window to Give time Lag in Input Use................................................................... 79
FIG. 3.56. Window for Constraint Type 1 on a Technology in the tdb, adb and ldb............... 79
Chapter 3 – v
FIG. 3.57. Window for Constraint Type 2 on a Technology in the tdb, adb and ldb............... 80
FIG. 3.58. Window for Constraint Type 3 on a Technology in the tdb, adb and ldb............... 80
FIG. 3.59. Window to Enter Cumulative Constrains per Period on Capacities of a Technology
in the tdb and the adb............................................................................................................... 80
FIG. 3.60. Window for Constraint Type Storage on a Technology in the tdb and the adb. .... 81
FIG. 3.61. Window to Put Constrains on Initial Cores of Fuel for a Technology................... 81
FIG. 3.62. Window to Enter Constrains on Final Cores of Fuel for a Technology................. 81
FIG. 3.63. Window for Global Bound on a Technology in the tdb and the adb. ..................... 82
FIG. 3.64. Window Market Penetration on New Capacities of a Technology in the tdb and the
adb............................................................................................................................................ 82
FIG. 3.65. Window to Put Bounds on Activity in the tdb, adb and ldb. ................................... 84
FIG. 3.66. Window to Enter Annual Bounds on an Activity in the tdb, adb and ldb. .............. 85
FIG. 3.67. Window to Enter Bounds on an Activity in the tdb, adb and ldb?.......................... 85
FIG. 3.68. Window to Enter Constraint type 1 on an Activity. ................................................ 85
FIG. 3.69. Window to Enter Constraint type 2 on an Activity. ................................................ 86
FIG. 3.67. Window to Enter Cumulative Constrains on Activities. ......................................... 86
FIG. 3.68. Window to Enter Cumulative Constrains per Period on Activity of a Technology in
the tdb and the adb. .................................................................................................................. 86
FIG. 3.69. Window to Enter Constrains on Activities of a Technology Linked to Storage. .... 87
FIG. 3.70. Window to Enter Time Step in Activities of a Technology. .................................... 87
FIG. 3.71. Window to Enter Constraint on Market Penetration of Activities of a Technology.
.................................................................................................................................................. 87
FIG. 3.72. Window to Enter Constrains on Secondary Inputs of Activities of a Technology.. 88
FIG. 3.73. Window to Enter Constrains on Secondary Output of Activities of a Technology. 88
FIG. 3.74. Window to Enter Time Lag in Output Fuel and Material?? .................................. 89
FIG. 3.75. Window to Enter Penalty on Activities of a Technology ........................................ 89
?? FIG. 3.76. Window to Enter Softlimits on Activities of a Technology?? ............................ 89
FIG. 3.74. Window to Enter Bounds on a Resource in the adb and ldb. ................................. 89
FIG. 3.75. Window to Enter Constraint type 1 on a Resource. ............................................... 90
FIG. 3.76. Window to Enter Constraint type 2 on Activity of a Resource. .............................. 90
FIG. 3.77. Window to Enter Constraint type 3 on an Activity of a Resource. ......................... 90
FIG. 3.78. Window to Enter Constraint type 4 on an Activity of a Resource. ......................... 90
FIG. 3.79. Window to Enter Constraint on Market Penetration of the Activities of a Resource.
.................................................................................................................................................. 91
FIG. 3.79a. Window Showing “With text editor” Command.? Double upd............................ 92
FIG. 3.79b. Window to Edit “fil” file ...................................................................................... 93
FIG. 3.80a. Window of Energy Chain (part a) ........................................................................ 94
FIG. 3.80b. Window of Energy Chain (part b) ........................................................................ 95
FIG. 3.81. Window of Energy Chain Cost ............................................................................... 95
FIG. 3.82. Window to get help to edit energy chain ................................................................ 96
FIG. 3.83. Window to add a new energy level. ........................................................................ 96
FIG. 3.84. Window to delete an energy level. .......................................................................... 96
FIG. 3.85. Window to add an energy form............................................................................... 97
FIG. 3.86. Window to delete an energy form. .......................................................................... 97
FIG. 3.87a. Window to Add a New Technology Using the Energy Chain. .............................. 98
FIG. 3.87b. Window to delete a technology using the energy chain........................................ 98
FIG. 3.88. Window to Select a Category of Notes for Editing................................................. 99
FIG. 3.89. Window to Select a Screen for the General Category of Notes.............................. 99
FIG. 3.90. Window to Select Name of a Data Field for Notes............................................... 100
FIG. 3.91. Window to Edit Notes on a Data Item in the General Category Using the Text
Editor...................................................................................................................................... 100
Chapter 3 – vi
FIG. 3.92. Window Showing Names of All Data Fields for the Selected Screen................... 101
FIG. 3.93. Window to Edit Specific Notes Using the Text Editor. ......................................... 101
FIG. 3.94. Window to Edit Specific Notes Using the Text Editor. ......................................... 102
FIG. 3.95. Window to Select an Item for Editing Notes......................................................... 102
FIG. 3.96. Window to Enter Name of an Update database ................................................... 103
FIG. 3.97. Window to Edit an Update db (udb)..................................................................... 104
FIG. 3.98. Window to Select a Scenario for Creating or Editing of Update db (upd) .......... 104
FIG. 3.99. Window to Select a Update db (udb) for Editing.................................................. 104
FIG. 3.100. Window to Show Command for for Editing....................................................... 105
FIG. 3.101. Window to Perform Calculation for a Data Field.............................................. 105
FIG. 3.102. Window Import Data from a File to a Data Field in the tdb, adb and ldb. ....... 106
FIG. 3.103. Window Showing General Data form in a Multi-region Study. ......................... 107
FIG. 3.104. Window to Edit Data on Load regions in a Multi-region Study......................... 108
FIG. 3.105. Window to Edit Technology data in a Multi-region Study. ................................ 109
FIG. 3.105a. Window Showing Input Selected from Other Region in a Multi-region Study. 110
Chapter 3 – 1
CHAPTER THREE
Database Management
The MESSAGE program maintains, mainly, three types of databases for storing all input data
required for a model developed in a case study. These four types of databases are as follows.
(1) Technology database, called tdb, is created and maintained independent of any case
study.
(2) Application database, called adb, is created and maintained for each case study.
(3) Local database, called ldb, is created and maintained for each scenario in a case
study.
(4) Update database, called upd, is created and maintained to update values in the adb
and/or a set of scenarios in a case study across the board.
This chapter discusses how these databases are created, links among them, their structures,
and their editing procedure. Since the program is designed in the windows system, the chapter
discusses in details steps to get the set of MESSAGE windows needed for editing various
parts of a database.
3.1. Creating Databases
The program provides an empty technical database called “empty.tdb” which is a template for
the user to fill in data on technologies to make a pool of information for development and
computation of any model for that particular energy system. It is advisable to build the tdb if
the user wants to build multiple case studies each having a different energy systems but there
is a common set of technologies to be used in these studies. The user has to select this empty
tdb (see Section 2.3.2 in Chapter 2) for each case study however, it is not mandatory to build
the tdb for a case study. The user may like to work on the adb of each case study from the
scratch.
The adb is created when a case study is created. If a case study is created through copying an
existing case study (see Section 2.3.2), the adb of the source case study is copied to the new
one by default. Similarly, the tdb of the existing case study is also selected for the new one by
default. The user can select a new tdb for the new case study by editing the default settings
through “Edit Instance” command, Section 2.3.10 discusses this command. Alternatively, if a
case study is created from scratch (see Section 2.3.2) an empty adb file is created for it and
the program gives the option of choosing a tdb that will be used for development and
modification of the adb of the new case study.
Each time a scenario is created in a case study, the program creates a separate database for it.
If the scenario is created by coping an existing one (see Section 2.4), the program copies the
database of the source scenario for the new case. However, if a scenario is created from
scratch (see Section 2.4) then an empty ldb file is created.
Updating of a database needs efforts and time. To facilitate this, the program allows the user
to store, separately, new data values which will be available only for some of the parameters
of the model initially. The user needs not to complete the new data set to use it. S/he can run a
scenario with some new values, whatever is available, and old values for the remaining
parameters. Section 4.1 in Chapter 4 discusses this procedure. At a later stage, the user can
incorporate the new data in the adb which modifies the default scenario of the case study.
Section 2.4(d) in Chapter 2 discusses this updating command. Furthermore, the upd also
facilitates changing of some data values in all scenarios simultaneously. The structure of this
data base (i.e. “upd”) is exactly the same as is of the adb or ldb of the study except for two
Chapter 3 – 2
parts of the database that define the structure of the model (see Section 3.2 for details).
Creation of the upd is discussed in Section 3.12.
Figure 3.1 shows interrelationship among these databases. Any data entity defined in tdb —
such as an energy form — can be added to the adb and ldb. Also data entity defined in an adb
can be added to the ldb. The data values defined in upd can update the values in the adb and
the ldb.
Technology
Database (tdb)
Technology i Name
Single Single
Multiple Entries Multiple Entries
Entries Entries
(Basic Data) bdc (Basic Data abda
on on
bdi bda
technology Activity)
clags algs
Con1c Con1a
Con2c Con2a
concc conca
conpc conpa
consc consa
corin diff
corout inp
gbda mpa
mpc outp
softlims
FIG. 3.2. Structure of Data on a Technology.
3.2.2. Structure of Energy Forms in the adb and ldb.
MESSAGE allows modelling of an energy system in detail starting from energy resources to
the level of end-use of various energy forms. For example, the user can model supply and
demand of gas in its energy system starting from gas resources to its production (primary
level), its processing and supply to power sector (secondary level), its supply to households
and industries (final level), and the energy demand in useful terms met by gas (Demand
level). This is referred to as a gas chain
In the adb and ldb energy forms are defined in two steps. Fig. 3.3 shows this structure in
which “f” is number of levels defined, and “h” is number of energy forms defined at each
level. Number of energy forms may be different at each level. The program assumes that the
first level is for demand (i.e. the end of the energy chain), and the last level is for resources
(i.e. start of the chain). Annexure A discusses technical details of data on energy forms, and
Section 3.4.3 discusses the windows/forms to edit their data.
For each energy form, the user can select if it is modelled with load regions or not.
Chapter 3 – 6
FIG. 3.3. Structure of Energy levels and forms in the adb and ldb.
3.2.3. Structure of Load Regions in the adb and ldb.
For those energy forms that can not be stored such as electricity and heat, it is vital to model
variation in demand within a year rather than considering only annual demand. MESSAGE
allows modelling of variations in energy demand within a year with seasons, types of days or
time of a day. This requires additional parameters to form the pattern of the energy demand.
Parts of a year are referred to as load regions while energy demand pattern as per time-
division, is termed as load curve.
Fig. 3.4 shows the structure of the load regions data in which: k is number of seasons, m is
number of types of days for a season, and p is number of parts of a day type. The total number
of regions (i.e. division of a year) can be up to 64. Section 3.4.2 discusses windows and forms
to define these regions.
Study Year
Part 1 to Part p
FIG. 3.4. Structure of Load Regions Data in the adb and ldb.
3.2.4. Structure of Data on Demands in the adb and ldb
After defining the load regions and the energy forms at different levels of the chain, the user
can enter the annual demand data for each energy form defined at the last level of the chain
(in the MEESAGE window it is the first level). It is important to note that the first data set on
the demand should correspond to the first model year rather than the base-year. Also for those
energy forms that are selected to have load regions, data is given for distribution of the annual
demand according to the load regions defined for the case study (see Fig. 3.4).
Chapter 3 – 7
Fig. 3.5 illustrates that annual demand is given for all energy forms defined at the last level of
the energy chain and load data is given for selected energy forms for which load curve options
have been selected. Section 3.4.4 discusses windows/forms to edit these data.
Energy Form – 1 to Energy form – h
Last Level Last Level
FIG. 3.6. Structure of Constraints and Relations in adb, ldb and upd.
3.2.6. Structure of Data on Resources in adb, ldb and upd
Data on resources are given in the adb and ldb. The program allows multiple resources, and
for each resource multiple categories, which are referred to as grades. Fig. 3.7 shows structure
of the resources data, which is exactly the same in the two databases (adb and ldb). Sections
3.4.7 and 3.8 discuss the windows/forms to edit the resource data.
The user can define a set of bounds and constraints on each grade, which includes the
following.
bda Bounds on activity.
con1a Constraints type 1 on activity; group type 1
con2a Constraints type 2 on activity; group type2.
conca Cumulative constraint on an activity; group type 3;.
conpa Cumulative constraints per period on an activity; group type 4.
mpa Market penetration on an activity.
3.2.7. Structure of Data on Storages
MESSAGE allows modelling of water storages to enable detailed modelling of hydro power
generation. The users can define five types of water storages: i) continuous, ii) annual, iii)
seasonal, iv) weekly and v) daily. There can be more than one type of storage; each is given a
separate name. Figure 3.7a shows structure of the data for a storage (e.g. named “DAMI”).
The part on single entries includes various parameters pertaining to size, cost etc. The part on
multiple entries consists of a set of bounds and constraints that can be defined for this storage,
which are as follows:
Con1a Constraint type 1 on activity
Con2a Constraint type 2 on activity
Consa Constraint on storage
Inflow Bounds on inflow
Outflow Bounds on outflow
Overflow Bounds on overflow
Overpen Penalties on overflow
Penalty Penalties (stepped cost increases)
Softlims Soft limit (interpolated penalty cost increases)
Chapter 3 – 9
Section 3.6 discusses windows and forms of define storage and edit their data. These windows
and forms are exactly the same in adb and ldb.
Resource i
Name
Storage “DAM1”
FIG. 3.7b. Structure of the Storage Data in adb, ldb and upd.
Chapter 3 – 10
3.3. Editing of a Technology Database (tdb)
On selection of a case study, the Edit command becomes active on the main menu bar (see
Fig. 3.8). The dropdown menu of the Edit command lists the four types of databases to choose
one for editing. Selection of Technology db opens the tdb window (Fig. 3.8a). There are three
buttons (General, Energy forms and Technologies) in the left part of this window and a
Screen command in the menu bar.
Initially, this window is blank and a click on the first button opens a form to enter/edit general
data about the database (see Fig. 3.8b).
A click on the second button opens a form to enter/edit names of energy forms and other
related data. After defining energy forms, the user can define technologies that produce/use
these energy forms. A click on the Technologies button opens a window for that purpose.
The Screen command in this window has three options of Save, Close and Save and Close to
save the changes made in the tdb and to close the tdb window.
.
FIG. 3.8. Window to Select a Database for Editing.??
3.3.1. Editing of General information and Energy Forms in the tdb
In the dropdown menu of the Edit command, a click on technology db opens a window for
editing of the tdb (Fig. 3.8a). In this tdb window, three buttons are given to edit the general
data, energy forms and data on technologies in the selected tdb of the case study.
A click on the General button in the tdb window opens a form to enter general information of
the tdb (Fig. 3.8b). The program shows the case study name for which the tdb is being
modified and the default values for some of the fields such as units of measurement for
energy, power, currency, volume, weight and time variables and a general category of
“other”. The user enters the remaining data such as study period.
Chapter 3 – 11
The “units:” fields are given for different type of variables such as energy and power, and the
default units of measurement are given accordingly. For example, the default units for energy
variables are MWyr. A click on the arrow in this field drops down a list of other units of
measurement for energy variables such as PJ (Peta joule), ktoe (thousand tonne of oil
equivalent). It is highly recommended that the users first work with the default units and only
change them when they are more experienced in the use of MESSAGE.
FIG. 3.12. Data Form to Enter or Modify Data on Load Regions in adb.
Using the number of seasons, the program gives a table (see Fig. 3.12) for entering names of
the seasons, and for each season the starting date, number of types of days (column labelled
days), and parts of each type of day in (column labelled parts). These dates should be given to
complete one calendar year. The first season should start from first January. Table 3.2 gives
the list of data fields in the season table on the load regions form and definition of the input
data.
This data table has a flexible size. For any season, the program adds one cell at the end of the
row when the user increases types of day. A click in the “days” cell increases the cell value
i.e. number of days, and one cell is added at the end of the selected row for entering the
number of parts of that day-type. Similarly, number of parts in a day-type can be increased by
a click on the cell to define parts of a day-type. A click on right button of mouse decreases the
number of days or parts in the selected cell. Section 3.2.3 gives an overview of this
structuring. For example, if in Autumn there is only one type of day (i.e. 1 in the days’
Chapter 3 – 17
column) then there is one cell under the parts column. For summer if the value is 2 in the days
column then there will be two additional cells under the parts column. The value of 3 in the
first cell indicates that there are three parts of first-type of day while the value of 2 in the
following cell shows that the second-type of day is divided in two parts. Para (b) discusses
how to choose day-types from week-days and Para (c) discusses how to set the duration of
each part of the day.
FIG. 3.13. Days Table Opened from the Load Regions Form of the adb Window.
(c) Defining types of days and length of parts of days
The Continue and Reload buttons (see the row of buttons below the Season table in Fig. 3.12)
are used to define length of each part of a day-type. A click on the Continue button opens a
table (Fig. 3.14) showing names of seasons and number of day-types, number of parts of each
day-type for each season as defined by the user in the load region definition. In this table,
there is a button bar with names of seasons. A click on a season shows a data field for each
day-type and a two-column table for parts of the day. There will be two data fields and two
small tables if there are two types of days in a season. The first data field is to select a
predefined day-type for the season. The field drops down the list of the day-type defined
earlier.
In the two-column table (Fig. 3.14), numbers of rows are equal to the parts of the days defined
for the selected day-type and a row to show sum of the column. The first column is to enter
names of the parts of the day, and second column is to enter the length of the part. The sum of
this column should be equal to 1.0 as the length data is given in fraction. If the sum is not
equal to 1.0, the program displays this field in pink colour. Table 3.3 gives description of the
input data on parts of a day-type for defining load regions.
If the user decides to change the number of day-type in a season or number of parts of days in
a day-type, a click on the Reload button updates the size of the day-table (i.e. Fig. 3.14)
according to the new number of day-type and parts in each day-type. It may be noted that all
the previous data on that season is lost and the user has to enter length of each part of the day
again according to the new definition.
Chapter 3 – 19
FIG. 3.14. Days Table Opened in the Load Regions Form of the adb Window.
Table 3.3. List of Data Entities on Days and Parts in Load Region Definition
Screen: Load Region Definition Part Name: Opened by click on Continue/Reload button
Figure No. 3.14
Data Field Label Description
Name Name of a part of a day-type.
Length Length of a part in that type of day in fraction. For example
in Fig. 3.14, a value of 0.2 for part “s1” of “workday” in
the “winter” season means that out of 24 hours of a work
day in the winter season, length of the first part is 20% i.e.
duration of 4.8 hours?
FIG. 3.15. Holiday Table Opened from the Load Region Form of the adb Window.
3.4.3. Editing Energy Forms in an adb
In the dropdown menu of the Edit command in the main menu (see Fig. 3.8), selection of
“application db” opens the adb form. A click on the Energyforms button opens the form
shown in Fig. 3.16a. In this form, the user can work on adb and tdb both.
As discussed in Section 3.2.2, the user can model a chain of an energy form in a case study.
Therefore, names of energy forms in the adb are defined in two steps; at the first step names
of levels are defined, and at the second step names of energy forms in each level are defined.
(a) Defining levels for energy forms
A click on the adb button shows a frame for editing the adb (Fig. 3.16a). In this frame, a table
is given to levels in a system/model to be created in a case study (see Fig.3.16a). The Ins i.e.
insert and Add buttons are used for adding a level in the table before or after a selected level
respectively. If no entry is selected from the table, the program adds the new level at the
bottom of the list. In this table, the user also gives one-character identifier for the level, and
also its detailed description.
The user defines names of the levels and their identifiers. However, identifier “q” is reserved
to define energy forms with default storages. In MESSAGE solution technologies may have
output more than the demand and this surplus in supply is not stored for the next period. For
some energy forms, it may be viable to store this over-production. For all the energy forms
defined at the “q” level, surplus production is accumulated over the period by default. This is
a simple way of modelling storages which is in addition to the storage system that can be
designed using the Storage window (Sub-section 3.4.8) for controlled operation of storages.
All energy forms defined at a level with “q” identifier are treated as stock variables and
surplus production in a period can be used in the next periods.
Chapter 3 – 21
The Del button is given for removing a level from the table. Before removing a level, the user
has to delete all energy forms of that level and energy forms can only be deleted if these are
not being used by any technology.
In the example shown in Fig. 3.16a, level names are given which are commonly used for
defining an energy system. Table 3.4 gives description of the data fields given on this form.
FIG. 3.16a. Data form to Enter or Edit Energy Forms in the adb.
Table 3.4. List of Data Entities in the form for Defining Energy Forms
Screen: Energy forms Part Name: - Figure No. 3.16a
Data Field Description
Label
level name Name given to a level to define chains of energy forms in a model. All energy
forms defined in the model belongs to one of the levels. Therefore, name of an
energy form is always followed by its level name.
id One character id for a level (“q” is reserved id to define a stock level).
description Notes defining a level.
FIG. 3.17. Data Form to Enter Energy Forms in the Selected Level of Energy Chain .
Table 3.5. List of Data Entities for Defining Energy Forms at a Level
Screen: Level: Demand Part Name: Figure No. 3.17
Data Field Description
Label
Energy form Name of an energy form.
Id One character id for the energy from.
Hasldr Switch to choose if demand or supply for this energy form has load regions
(i.e. varying with time which could be seasons, days or parts of days).
fix Switch to choose if the demand equation for this energy form should be set
equal to the bound rather than greater or equal to which is the default case (see
Chapter 4 on the equations).
Description Notes defining name of an energy from.
In giving name of an energy form, the user can make use of the energy forms given in the tdb
or the energy uses to be defined in the system or can define the same name at each level. For
example, at the demand level, it is appropriate to have a name “MfgElect” to identify
manufacturing sector’s demand for electricity while “elect” is an energy form defined at
another level of energy representing a supply level, and “Mfg” is to identify an energy user at
the demand level. Alternatively, s/he can define “electricity” at each level because the
program adds the level with each energy form where ever it reports an energy form. It is
better to keep names of energy forms short with a detailed description given in the last
column.
In the third column (Fig. 3.16a), a check in the “hasldr” box means that the energy form has
variation in its demand/supply and has load regions data (see Section 3.2.3 and 3.4.2).
In the fourth column, a check in the “fix” field that the demand for this energy form should be
equal to the bound rather than greater or equal which is the default case.
A click on the Save button saves the data changes in the variables and closes the window to
go to the main form for defining the levels of Energy forms (Fig. 3.16a).
Chapter 3 – 23
(c ) Editing Energy Forms of the tdb in the adb window
A click on the tdb button, in the adb window (see Fig. 3.16a), opens the tdb of the case study
for a ready reference and also for any required change. The data form discussed in Section
3.3.1 for editing energy forms in tdb window is reproduced here (Fig. 3.16b). The program
opens the tdb selected for the case study at its creation stage (see Chapter 2).
FIG. 3.18. Window for Editing Data on Energy Demand in the adb.
(a) Adding a new energy form in the data table for demands
In the Demands form of the adb window (see Fig. 3.18), the user needs to add all energy
forms defined earlier (Section 3.4.3). A click on the Add button gives a row of blank fields if
there are some energy forms which have been defined in the first energy level of adb but has
not been added in the data table of the Demands form (see Fig.3.19). In the new row, a click
on the arrow in the first data field lists all the energy forms that can be added. After selecting
an energy form for addition (Fig. 3.19), the user can enter the demand data as discussed in
Para (b).
(b) Entering data on an energy form
When an energy form is added in the demands form, the program gives a set of blank fields to
select its Unit (of measurement) and its type of data, and to enter the data values starting from
the first model year.
The user can go field by field for entering them. In the unit field, a double click opens the
Unit window to select the appropriate unit (see Fig. 3.53 and Section 3.7.2 for further details).
A click on the arrow in the switch field gives the list of data switches to select one. Table 3.14
describes the switches values while Section 3.6 discusses them in details.
Alternatively, the user can double click on the data field of the energy form (see Fig. 3.19).
The standard Edit window is opened to enter the demand data in a tabulated form (see
Fig.3.52 in Section 3.7.1). The program adds “demands, entry-data” in the title of the Edit
window for the ready reference.
The other option is to import data. A click on the import button, given above the data table,
opens the import window (Fig. 3.20) including all energy forms given in the Demands form.
The user needs to set the Switch and Unit fields according to the data set imported (Fig. 3.18).
Para (e) in this subsection discusses this option in details.
Chapter 3 – 25
FIG. 3.19. Window for Adding an Energy Form in the Demand Table.
(c) Editing data on an energy form
If there is some demands data in the adb, the demands form shows the existing data (see Fig.
3.18). The user can edit the data for changing the data values or for changing the unit of the
measurement. If the user wants to change the unit of measurement, the program facilitates
conversion of the existing data into a new unit of measurement.
A click on the arrow given in the unit field opens the Unit window (see Fig. 3.53) that gives a
list of the units maintained in the adb. The user can select a new unit from the list. A click on
the Recalc button (see Fig. 3.53) converts the given data set from the previous unit to a new
one.
(d) Deleting data of an energy form
A click in the unit or data field of an energy form in the Demands form (see Fig. 3.18),
followed by a click on the Delete button, removes the demand data of that energy form from
the adb. The complete row for this energy form is removed from the data table.
(e) Importing/exporting data on an energy form
The model allows importing of data on demands from a text file or a work sheet e.g. an Excel
sheet. Sub-section 3.13.4 discusses how these import files are prepared. A click on the Import
button, on the Demands forms (see Fig. 3.18), opens a window to enter name of the file (and
range of cells if importing from a work sheet) for importing data (see Fig. 3.20). The program
displays name of the energy form for which data is being imported beside the field entitled
“file:”. Double click in this data field opens the MS window to locate and open the file in the
system (see Fig. 3.21).
Chapter 3 – 26
FIG. 3.21. Window to Locate the Excel file for Importing Data.
In the import window (Fig. 3.20), the second data field, labelled “sheet:” is given to enter the
sheet name or number, and the third field labelled “range” is given for entering the range of
the cells in the sheet that contain the data. After selection of the file, and entering name of the
sheet and the range, a click on the import button copies the identified data in the data field of
the Demands form. The user needs to edit the unit field and data switch accordingly (Fig.
3.18).
Chapter 3 – 27
If a user wants the program to check the name of the energy form for which the data is being
imported, the check box (entitled chk name) should be ticked (Fig. 3.20) and the range of cells
should include the cell containing the name of energy form. If the chk name box is not ticked,
the program assumes that the correct range has been identified for importing the data and the
cells range does not include the cell containing the name of the energy form.
The Export button given in the Demands form (Fig.3.18) is to export demand data, entered in
the form, to a text file. A click on Export button creates a text file. The user can see this file
using the Edit command as discussed in a section on extracting of intermediate results in
Chapter 4.
(f) Entering/Editing data on load curves
When the user defines an energy form in the adb, he also specifies if the energy form has load
data (see Fig. 3.17). In the Demands form, the “load curves:” field is to get a list of energy
forms which have seasonal variations in demand and the “abs/rel” field to select pattern of
input data giving these variations (Fig. 3.19) either in the terms of shares or absolute load
data. A click on the arrow in the load curves field (Fig. 3.19), gives a list of all energy forms
that need load data (see Fig. 3.22).
FIG. 3.22. Window to Get the List of Energy Forms that have Load data.
A click on one of these energy forms opens a window to enter its load data. As discussed,
there are two alternative methods of entering load data. The share method is the default case
while a click on the “abs/rel” field means load data is given. If there are more than one energy
forms that have load data, the user have the choice of giving shares data for one energy form
and load pattern for another. As the default format is share data, it is better to enter first load
data for those energy forms that have shares data. Then select the “abs/rel” field and edit data
for those energy forms that have load curves data.
The following two paragraphs (g and h) discuss two alternative windows to enter load data. In
both the windows, there are some common features. The name of the selected energy form
and its level are shown in the window’s title. The program allows entering data on load curves
Chapter 3 – 28
for all model years, or for some selected model years or only for the first model year that is
applied for all model years. Similarly, if the load data are given for some selected model
years, values given for a model year are used for all subsequent years until the model year for
which another set of data is given.
Fig. 3.22 also shows two buttons given to enable import/export of the load curve data. A click
on the import button opens a new window to select the import file. Sub-section 3.1.3.4
discusses this window and the option for exporting load data entered through the interface in
to a text file.
(g) Share of seasons and days in the annual demand
When the user does not click on “abs/rel” field, selection of any load curve in the Demand
form (Fig. 3.22), gives a window to enter load data in terms of distribution of annual demand
at each level in the structure of the load curve (Fig. 3.23a). In the Load curve window (Fig.
3.23a), the upper part shows a set of buttons for management of data on load curves — such
as adding or deleting a model year from the data set on a load curve. The middle part of the
window shows two overlapping frames; the first one to show the model years for which load
data have been given. The second frame gives data fields according to the structure of the load
curve defined in the load region window (i.e. names of seasons, types of day in every season,
number of parts of a day type (see Fig. 3.12).
In this window (Fig. 3.23a), by default, the program shows distribution pattern of the annual
demand for the first model year. This pattern assumes that the distribution of the annual
demand is same as the distribution of load regions i.e. distribution of the calendar year. In
other words, it assumes a flat load curve. The program gives the warning message and the
user can edit the given distribution pattern to represent the load curve.
The second frame (Fig. 3.23a) shows a bar labelled with titles of the seasons. A click on a
season shows data fields according to the load regions defined for that season (see Section
3.4.2). For each season, the first row shows titles of the types of days (e.g. SunandHol,
anyday) with data fields below them showing shares of each day type in the total demand for
the season. Every time, when the user enters or modifies share of a day type in the demand,
the program re-computes the share of the last type of the day to have row-sum (i.e. sum of all
types of day) equal to one.
For each day type, a column of data fields is given; one field for each part of the day defined
for that day type. For example in Fig. 3.23a, the SunandHol has two parts, while the other
type has only one part. For each day type, when the user enters or modifies share of a part, the
program re-computes the share of the last part to have column-sum (i.e. sum of all parts of the
day) equal to one. Table 3.6 summarises these data fields and input data to be entered on the
load curves in them.
In the example given in Fig. 3.23a, 49.58% of the annual demand falls in the winter season.
The demand of the winter season is distributed between workday (71.42%) and remaining
(28.57%) in the daytype “SSH”. In the winter season, the demand of the “Workday” is
distributed between three parts and part one (i.e. S1) has only 20% of the workday’s demand.
Assuming D is the annual demand then demand in S1 is D×.4958×.7142×.2. MESSAGE
computes demand for each load region and these are the bound values for the technology
providing this demand (see chapter 4 for details on equation).
Chapter 3 – 29
FIG. 3.23a. Window to Enter Data on Shares of Load Regions in Annual Demand.
Recalculate Re-calculate the data after the user makes any change in absolute or
relative value of a load region.
Renormalize To get the new relative values after the user changes data values.
Rel = 1 To set all values in the data table equal to 1??.
Copy down To repeat value entered in a cell to the remaining cells down word in
the data column.
Import To import load data from a text file. The program opens the standard
window to locate the file in the appropriate folder.
Export To save the data entered in this window into a text file. The program
opens the MS Window to open a new file to save this data.
(i ) Add/Delete an year from the data set on load curves
In the load curve window for any energy form (Fig. 3.23a or b), by default the program shows
the default values for the load curve for the first model year of the case study. The user can
add other model years by a click on the Add year button, which gives a data field to enter a
new year (see Fig. 3.24 or 3.23b). A click on the arrow in this field lists the model years
defined in the case study. A selection of the year adds it to the year bar given in the middle
part of the window (see discussion in section (f) of this section). The program displays the
structure of data fields with the default data set. The program takes the structure from
definition of the load regions for the selected year (Section 3.4.2).
A click on the delete button also gives a field to select the model year for deleting. In this
field, a click on the arrow shows the list of the years for which data has been entered. A user
Chapter 3 – 32
can delete any model year except the first model year. The program also shows a cancel
command; if the operation has to be cancelled.
FIG. 3.24. Window to Add a Year for Entering Data on a New Load Curve.
(j ) Save the data set on load curves
In the load data window (Fig. 3.23a or b), a click on the Save button saves the data on an
energy form entered for the model years and closes the window.
(k ) Make a Graph of the data set on load curves
In the load data window for any energy form (Fig. 3.24), a click on the Graph button opens a
window showing the graph of the input data entered for an energy form.
3.4.5. Management of Constraints/Relations/Variables
In dropdown menu of the Edit command (see Fig. 3.8), selection of application db opens the
adb window and a click on the Constraints button opens the Constraints/Relation/Variables
form (see Fig. 3.25). Using this form, the user can either define a relation or a variable. The
former defines a relation between technologies/storages/resources while the latter defines a
variable that can be used in any relation.
As discussed in Section 3.2.5, there are five predefined groups of constraints/relations. In the
Constraints/Relations/Variables form (Fig. 3.25), the first field is to select one of five groups
and the second field is for selecting name of a relation in the selected group. In this form, the
New and Del buttons are given for adding and deleting a relation from the last four groups,
respectively. The first (i.e. “Costs”) group contains four predefined set of relations pertaining
to operation costs, investment costs and two subgroups. All buttons remained disabled, unless
a group is selected. Selection of a group enables the New button, while selection of a relation
enables the Entries, Copy and Del buttons. The Add or Delete buttons are not enabled for the
“costs” group, which contains only predefined relations and constraints.
Chapter 3 – 33
The following sections discuss the windows to define a relation in the last four groups and to
enter the data on entries in it and constraint values on the resultant values of the relation. The
predefined relations/constrains of the first group are discussed in Para (i) of this Subsection.
(d ) Multiple entries in the relations form for group1, group2, cumulative and cum per period
MESSAGE facilities modelling of deviation of the relation value from the limits defined in
the single entries part and any additional cost that is referred as penalty i.e. cost in addition to
the one defined in the single entries part. This additional cost is to be applied up to certain
limit defined by the user below or above the limits given in the single entries part. The penalty
cost can have stepped increase (one value applied for on step) or can have interpolated values
(i.e. the program interpolates the cost given by the user). These two definitions of the penalty
cost are referred as penalty and soft limits in the model and are entered in the multiple entries
part of the constraints/relations form (see Fig. 3.27).
Penalties Window
In the main window of a relation, the user may enter upper/lower limit on the relation and a
cost associated with this relation (see discussion above on Fig. 3.27). In addition, the user can
define a step function to increase the cost given in the main window and attach limits to it.
Chapter 3 – 38
This is referred to as penalties. The values given in the stepped function are additive including
the values given in the main window.
A click on the penalty button opens a window to edit the penalties data (see Fig. 3.28). A
click on the Edit command in this window gives a set of data fields to enter data on penalty
cost and associated limit. In this data set, the first column is to give data unit, the second to
give data type switch and the last to give data values. A double click in the unit field opens a
window (see Section of 3.7.2) for selection of appropriate unit, and a double click in the Time
series field opens the standard Edit window (Section 3.7.1). See Section 3.6 on data Switch.
The Table 3.8 gives the list of data fields and description of input data for penalties window.
These data values are added to the cost and limit values given in the main window of this
relation. For the limit values, any positive value is added to the upper limit given in the main
window and a negative value is added to the lower-limit?? given in the main window.
A click on the Screen command followed by the selection of Save saves the data entry and
selection of Close closes the window.
Fig. 3.28 shows the step function for a relation named SO2 and Fig. 3.29 gives the graphical
representation of this stepped function. According to the data in these figures, the upper limit
of the relation is 20 MWyr, the lower limit is zero and the cost associated with this relation is
zero (see Fig. 3.28). According to the stepped function defined in the Penalties window (Fig.
3.28), the cost is “US $ -1” if the relation value is between 0 and -15 i.e. lower limit net of
“15”. The cost becomes “US $ 18” if the relation value is between 20 MWyr to 45 MWyr (20
plus 25). The cost further increases to 48 if the relation value is between 45 MWyr to 125
MWyr.
FIG. 3.28. Data Table for Penalties in the Multiple Entries part of the Constraints form.
Chapter 3 – 39
Table 3.8. List of Data Entities on Penalties for the Constraints/Relations
Screen: Penalties Part Name: - Figure No. 3.28
Data Field Time Description
Label Series
Data
Switch
cost Yes A penalty could be imposed if the resultant value of a relation falls
outside the upper and lower limits defined for the relation. It is cost
per unit of additional increase in the resultant value of the relation
that falls outside the limits. Penalty cost is in addition to the cost
defined for the relation and is applied up to the given limit.
limit Yes Value of the limit up to which the penalty cost will be applied. The
user can define this value for the lower and upper limits separately.
A negative value may be defined for the deviation from the lower
limit.
These values are added to the cost and limit values given in the main window of this relation.
For the limit values, any positive value is added to the upper limit given in the main window
and a negative value? is added to the lower-limit given in the main window.
Penalty cost
(US $ 48)
20 Upper limit = 20
0 Lower Limit =0
FIG. 3.30. Data Table for Penalties in the Multiple Entries Part of the Constraints Form.
FIG. 3.31. Window for Load Restriction in the Constraint Form for the Cost Option.
Fig. 3.31 shows the window when the cost option is selected. This form is exactly the same as
discussed in the Para (g) of the Subsection 3.3.4. In brief, it gives the load regions defined for
the case study and the user gives shares of each load region in the value of the selected item
(i.e. cost or upper limit or lower limit) defined for the relation in its main form (see Fig. 3.27
and discussion on Single entries part). The program shows some default values and the user
can edit them.
(f ) Entries window for a defined relation in a constraints group
For defining a constraint on a group of technologies/resources/storages, the user defines a
relation. In the constraints/relations form (Fig. 3.27), the Entries button remains disabled
unless a constraints group and a relation is selected. On selection of a relation, a click on the
Entries button opens a window for entering technologies/resources in the relation (see Fig.
3.32).
This Entries window is to select technologies, energy resources and storages among which the
relation is defined and the coefficient value is given for each technology/resource/storages in
the relation. A coefficient value gives the weight (in fraction) given to the contribution of the
technology/resource/storage in a relation. This weight given corresponds to per unit activity or
capacity of technology/resource. The relation among the technologies could be in their
capacities or in their activities. For the activities, the relation is through the main input or
through the main output. This selection is defined in the main window (Fig. 3.27).
Chapter 3 – 42
FIG. 3.37. A Form to Enter or Modify Data of a Technology in the adb/tdb Window.
Single entries on capacity of a technology in the adb
In the first row of the Single entries part, a data field is given to enter name of the technology,
the program shows an identity code in the second field when the user selects input and output
of its main activity (see next Para (e) on editing of activity data).
Each activity represents a mode of operation. For example, a technology may operate in three
modes: steam generation, electricity generation, and steam and electricity generation both.
These three modes are represented by three activities. The user can choose whether the
operation time of the technology is fixed among the defined activities or variable by selecting
the two toggle buttons of yes and no in the box labelled “fixed”. The box labelled “altern.
Op.” is to show the number of activities i.e. modes of operation of the technology. The
program updates this counter when the user adds a new activity in a technology.
The second row has a data field to select capacity unit of the technology. A dropdown list in
this field gives all units allowed in MESSAGE to represent capacity of a technology. A
technology may be introduced to replace an existing technology under a rehabilitation
program (see Para (h) on rehabilitation in this Sub-section for detail). A dropdown list in the
second gives a list of the existing technologies in the adb. The user can choose on of these
technologies to be replaced by this technology.
The third row has two data fields to enter the first year and the last year for building the
technology.
The following eleven economic and technical parameters may be defined for a technology
(values in the brackets are their default values) and all of these parameters are optional.
Chapter 3 – 49
• Plant factor (1.)
• Minimum utilization rate referred as minutil (0)
• Plant life (30.).
• Investment cost; referred to as “inv cost” on the form (0.).
• Fixed Operation and Maintenance cost; referred to as fixed cost on the form (0.).
• Installed capacity in the base year; referred to as “hist. Cap.” on the form (0).
• Minimum power if in operation; referred to as “min. power” on the form (0).
• Maximum operation time; referred to as operation time on the form (1.).
• Unit size.
• Construction time; referred to as “constr. Time” on the form (5).
• Maximum power; referred to as “max. power” on the form.
For each of these parameters, three data fields are given: first field to select the unit, second
field to select the data type switch, and third field to enter data values. Table 3.10 gives the
list of data fields given on this form and the definition of the data entities to be entered in
these fields.
The user can enter or modify any data field directly one by one. Alternatively a double click
on the field for data values (labelled as “Time series”) opens a window to edit all the data
fields in a table format. This window has a standard format and is discussed in Sub-section
3.7.1 in details.
In editing data, field by field, a double click on the Unit field opens a window listing all the
units appropriate for the selected parameter. This Unit window also has a standard format and
is discussed in details in Section 3.7.2.
A click on the arrow in the Switch field lists the data types that can be entered in the adb.
Section 3.6 discusses this list in details. The user can select one of these types and the data
values should be given accordingly in the Time series field.
It is important to note the difference between the plant factor and minimum/maximum power.
The user may model a technology to either represent a specific production facility such as a
power plant or to represent a facility in general. In the former case, s/he gives the minimum
and the maximum capacity in the fields for “min. power” and “max. power”, the average
capacity factor of the facility. In the later case, s/he gives defines capacity factor as “1” to
indicate that at a certain time all the capacity may be utilized but also defines the operation
time to model maintenance time. The data on operation time is with reference to 8,760 hours
in a year and is defined as share of the time it will be available?.
The user may define a technology that consists of multiple units and define unit-size.
Defining of a unit-size will increase the computational time of the model, therefore it is
recommended that the user first run the model without the unit-size to get the approximate
results and then do the final runs with unit-size to refine those results.
Chapter 3 – 50
Table 3.10 List of Data Entities on Technologies
Screen: Technologies/Capacity Part Name: single entries Figure No. 3.37
Data Field Time Description
Label Series
Switch
name Name given to a technology.
id One character identification code for a technology.
First year First year in which the technology can be built in the future.
Last year Last year in which the technology can be built.
Plant factor Yes The meaning of the plant factor depends on assumption about its load
region.
• It is the maximum availability of the technology per year if it has no
load region.
• It is maximum availability of the technology in each region if it has
load region.
• It is the maximum availability in the load region with the highest
load utilization given by the pattern, if the technology has a fixed
production pattern over the load region.
A technology has load region if one of its inputs/outputs has load region.
Minutil Yes Minimum utilization rate: Fraction of time in a year the technology must
be used /dispatched.
Plant life Yes Operational life of the technology.
Inv cost Yes Investment cost per unit capacity or main output. It is the overnight cost
in constant prices of a certain year.
Fixed cost Yes Fixed operation and maintenance cost in constant prices of 2000 per unit
of installed capacity.
Hist. Cap. Yes Historical capacity. Capacity of the technology built before the 1st. study
period.
• For switch value hc, year-and-capacity pairs defining capacity built
in various years; each value separated by at least one space.
• For switch value cg, capacity in the base year followed by average
annual growth at which this capacity was built.
Min. power Yes Minimum capacity level (power) at which the technology is allowed to
produce Time switch values are the same as discussed for investment.
Operation Yes Fraction of time in a year the technology can be in operation.
time
Unit size Yes This integer number gives the required unit size for addition if new
capacity addition is to be considered as integer capacity block. In
addition to this, the user needs to define constraints on capacity addition.
Constr. time Yes Time required for constructing a technology.
Max. power Yes Maximum capacity level at which the technology can operate.
Chapter 3 – 51
Multiple entries of a technology in the adb
The bottom part of Fig. 3.37 shows a frame to enter multiple entries on a technology. For this
purpose a bar of buttons is given labelled with bounds and constraints on capacity (see
Section 3.2.1 for introduction).
The program has a set of windows to enter data on bounds and constraints. These windows
have a standard format and are discussed in details in Sub-section 3.8.1. A click on any of
these buttons opens the related window, and the program adds name of the selected
technology and type of entry being made in title of the window. If a bound or constraint is
imposed on a technology, the related button is shown in green colour.
(e) Editing data on activities of a technology in the adb
The data set on activities of a technology consists of two parts; a part defining its technical
and economic data (referred to as Single entries in Fig. 3.38), another part defining
relationship of the technology with the energy system modelled in the case study (referred to
multiple entries in Fig. 3.38). An activity represents a mode of operation of the technology.
For example a power plant is a technology and electricity generation is its one activity. The
power plant can be run in the alternative mode to generate only heat for direct supply that is
referred to as a second activity of the technology. For each activity, there could be more than
one input and output that are defined using the inp and outp buttons given in the multiple
entries part (Fig. 3.38). Sub-section 3.8.1 discusses windows for these buttons.
FIG. 3.38. A Form to Modify Activity Data on a Technology in the adb Window.
Fig. 3.38 shows the activity form in the technologies window. For each technology, the user
needs to define at least one activity. In this form, the first row is a bar of buttons to manage
Chapter 3 – 52
the activities i.e. addition, deletion, renaming, and re-sequencing. Below this bar, names of
activities are shown on buttons, along with the data form for the selected activity.
By default, the program defines one activity for each new technology that is considered to be
the main activity. The user can define alternative activities for a technology. A click on the
Add button gives a field (labelled “Enter new id”) on the form to enter single character
identification for the alternative activity. The new activity button is added after the button for
main activity. If 3 or more activities are given, the user can re-sequence the two alternative
activities in the alphabetic order. A click on an alternative activity followed by a click on the
Del button deletes it.
A click on name of an activity opens its data form. For every activity, some basic data ― such
as main input and output of the activity ― are entered in the single entries part and additional
data such as ― any constraint on the activity or its market penetration pattern ― are given in
the multiple entries part (see Fig. 3.38). Except for defining of output of the technology, all
input data in this form are optional.
In the single entries part, a click on the arrow of the main input field gives a list of all levels
of energy forms defined in the adb. Selection of an energy level in the list gives all energy
forms defined at that level to select one as main input of the technology. Similarly, in the
main output field list of levels and energy forms at each level are given to select the main
output of the technology.
One important input in the activity form is power relation between activities if a technology
has two operating modes. Since the same capacity is used to produce different outputs or to
use different inputs, the power relation is defined as ratio of the main output of the main
activity to the main output of the alternative activity. In the activity form of the alternative
technology, the user enters this ratio in the “pow. rel.” field (Fig. 3.38a).
Table 3.11 gives the remaining data field’s names and the required input for them in details.
Definition of the time switch values is the same (as discussed in Section 3.6) for all data fields
except the “pow. rel.” field. For this field two more options are given in the switch field i.e.
“Cminp” and “Cmoutp”. The first one allows to define constant value of ratio between the
input for the main activity to the main input for the second activity, while “Cmoutp” define
constant ratio of main output of the main activity to the main output of the alternative activity
?(Fig. 3.38a).
The data field labelled “additional option:” is given to enter data on “powerchange” i.e.
change in the power of a technology. If a technology produces an output that has variation in
its demand then the technology has to operate its capacity according to the load pattern of the
demand for its output. However, each technology has different load following capability.
Selection of “powerchange” in the field of “additional options:” opens a window to enter
power change data. In this window (Fig. 3.38b), there are four columns, the first two columns
are to enter the possible upward and downward change in the power. The next two columns
are to enter cost corresponding to these allowed upward and downward power change. These
four data values can be specified on hourly, daily, seasonal and annual basis. The units of
measurements are MW and $/MW by default. In the example shown in Fig. 3.38b, the power
of the coal plant can go up by 20 MW and can decline by 20 MW in an hour. There will be
additional cost of 10 dollar per MW for revamping up and 5 dollar per MW for revamping
down.
Chapter 3 – 53
FIG. 3.39. Window to Select a Technology from tdb for Addition into the adb
FIG. 3.40. Window Showing the Selected Technology from tdb for Addition into the adb
Chapter 3 – 56
(g) Copy/Cut a Technology to make a New Technology
The user can add a new technology by copying an existing technology with a new name and
editing it for modification of some of the data. A click on the Copy button (Fig. 3.39) copies
the selected technology followed by a click on the paste button (Fig. 3.39) opens a window to
copy this technology with a new name and identification code (Fig. 3.41). This window
shows the list of the existing technologies to choose the place for insertion of the new
technology.
FIG. 3.38b. A Form to Define Load Curves of Outputs and Variable Costs.
3.4.7. Editing Data on Resources in the adb
On the dropdown menu of the Edit command, a click on the adb opens a window for adb (see
Figs. 3.8. and 3.11). A click on the Resources button in the adb window gives a form for
entering or editing data on resources (see Fig. 3.42). By default, the program shows:
• One data field to select a resource for editing
• New button to add a new resource in the adb, and
• Delete button to remove a resource name from the adb.
A click on the arrow of the data field (labelled select resource) gives a list of all the resource
names defined in the energy forms (see Sub-section 3.4.3). A click on a resource name shows
a data form for data editing (see Sub-section 3.2.6 for an overview of the data structure on
resources).
In the first part of the resources form (Fig. 3.42) data field labelled “fcost” and “uplim” are to
enter data on fuel cost multiplier and upper limit on total extraction of this resource.
For these items, data fields are given to enter unit, data switch and the data values. A click on
the unit field for fcost (i.e. fuel cost multiplier) opens the standard Units window to choose
appropriate unit for the multiplier. Similarly a click on the unit field for upper limit opens the
standard Units window showing the appropriate units for selection (see Sub-section 3.7.2).
See Section 3.6 for data type switch. The user can edit these data fields one by one, or can
double click on the Time series field to get the standard Edit window (see Sub-section 3.7.1).
Table 3.12a gives description of the input data on resources.
Chapter 3 – 59
FIG. 3.46a. Window to Enter Name of the Relation for a Hydro Storage.
Constant One data value for all the years in the case “c”
study
Time series A set of values for the given number of model “ts”
years in the case study. If numbers of values
are less than the number of model years then
the last value is used for the remaining model
year.
Constant growth A growth rate applied for all model period “cg”.
defined in the case study.
Periodic growth A set of growth rates for the given number of “pg”.
periods in the case study. If numbers of values
are less than the number of study periods then
the last value is used for the remaining study
periods.
3.7. Some Standard Windows Opened for Data Editing in the Four Databases
3.7.1. A Standard Edit window
The program has one standard window to edit a data set in any part of the databases. This Edit
window can be opened from any of the windows and data forms discussed in the previous
sections by a double click on the fields given to enter data values. The program shows name
of the parent form in the title of the Edit window after “Edit: “. Fig. 3.49 shows a set of
windows for editing data on demands. In this window, data fields are given to select the type
of data and the unit in which data is entered. Fig. 3.49 shows a set of windows for three types
of data set i.e. constant, constant growth and time series. A data table is also given to enter
data values. The dimension of the table is set according to the data type selected (see Section
3.6).
In the first field, a click on the arrow lists the data switches to select the type of data (see
Section 3.6). The user can modify the data type by choosing a new one from the list. The
program, accordingly, modifies the layout of the data table, and the data set has to be
modified.
A click on the arrow in the Unit field gives the list of appropriate units for the data entity for
selection. The user can also add a unit in this list. Sub-section 3.7.2 discusses this in details. In
the course of editing a data set, the user may like to change the units but then the new data
values will have to be entered. To avoid the conversion process and re-entry of the data, the
user should modify the unit of a data set in the Unit window (see Sub-section 3.7.2) that is not
initiated from the Edit window but directly from the Unit field given in the parent window.
Chapter 3 – 73
Below the table, a button is given to make a graph of the input data given in the table. Two
data fields are also given to set the accuracy points for the data given in the level format and
for the data given in growth rate format. A number in this field shows that up to what decimal
points the input data is to be entered. As the user click on the right arrow the number in the
field increases and so does the decimal points in the input data table given in the window. A
click on the Save button closes the Edit window and displays the data in the parent window
(from where this window is opened).
FIG. 3.49. The Standard Edit Windows Opened from the Demands Form.
A click on the Graph button opens a new window showing the input data in the form of a
graph. (see Fig.3.49a). In this window, the user can choose the type of graph (see the field
labelled “graph type:”) and can also change the Units, data type or data table directly. S/he
can then redraw the graph after these changes.
If the user makes any change in the data type e.g. changing from time series to constant
growth, a click on the Update button updates the data table for the new values. For the time
series data, the user can modify the graph by placing the cursor on a data point. A click on the
Update button then updates the data table according to the graph.
The user can also perform simple algebraic operation i.e. adding or substracting a constant
value from the data series or multiply or dividing by constant factor. A click on the field
labelled “all y” shows these options to select one while the adjacent blank field is to enter the
constant value/factor for the selected operation followed by a press on the return key. The
program updated the graph for the new values. A click on the Update button updates the data
values in the data table.
Chapter 3 – 74
FIG. 3.53. Window for Bounds on a Technology in the tdb, adb and ldb.
Chapter 3 – 77
(b ) Bounds on total installed capacity of a technology
The user can also put a bound on the total installed capacity (existing and new) of the
technology. A click on the bdi button (Fig. 3.51) opens a window (Fig. 3.54) which is very
similar to that for annual capacity (see Fig. 3.53). The program shows the same data fields to
enter bound type (upper, lower or fixed), and the bounds units and values. Figures 3.54 and
3.54a shows an example in which limits have been defined on total installed capacity of a coal
power plant. Assuming that this coal power plant has 100 MW installed capacity in the base
year and no retirement before 2010, the model can add up to 150 MW of this technology in
the period from 2002 to 2005 and up to 100 MW between 2005 and 2010, or alternatively up
to 250 MW between 2005-2010 when there is no capacity addition between 2002 and 2005.
FIG. 3.54. Window for Bounds on a Technology in the tdb ,adb and ldb
.
FIG. 3.54a. Window for Bounds on a Technology in the tdb ,adb and ldb.
Chapter 3 – 78
Table 3.15. List of Data Entities on Bounds on New Capacity
Screen: Bounds on New investment Figure No. 3.53
Path: A click on bdc button in the Technology form in Fig. 3.51.
Data Field Description
Label
Type The type of bounds (i.e. fixed, lower or upper) shows that how data
value given for a bound will be treated.
tmssw Time series data switch value (i.e. c, ts, cg, pg)
Data The user can define a bound for investment on a technology. This
data value is treated as fixed or lower or upper limit depending on
the tmssw value.
• For “c”, a single value of the bound on investment.
• For “ts”, a series of the bound on investment for the base and
the model years. If number of values is less than the number of
model years, the last value is assumed for the subsequent model
years.
• For “cg”, a single value of the bound on investment in the base
year and an average annual growth number for the all model
period.
• For “pg”, a single value of the bound on investment in the base
year and average annual growth number for all model periods.
If number of values is less than the number of model period, the
last value is assumed for the subsequent model periods.
FIG. 3.56. Window for Constraint Type 1 on a Technology in the tdb, adb and ldb.
(e ) Constraint type 2 on a technology
On the technologies form (Fig. 3.51), a click on the con2c button opens the window (Fig.
3.57) to enter the value with which this technology is entered into the relation defined in
group2 and hence can be referred to as coefficient value (see Sub-section 3.4.5 (d) for further
details). This window is similar to that for the constraint type 1 (see Para d above).
Chapter 3 – 80
FIG. 3.57. Window for Constraint Type 2 on a Technology in the tdb, adb and ldb
(f ) Cumulative constrains on capacities of a technology
When a user defines a relation in the constraint group entitled “cumulative” (see Sub-sections
3.2.1, 3.4.5), s/he needs to enter values with which technologies will be included in that group
(see para (d) in Sub-section 3.4.5 for further details). On the technologies form (Fig. 3.51), a
click on the “concc” button opens the window (Fig. 3.58) to enter coefficient values for the
capacity of a technology that will be included in the relation defined in the cumulative
constraint group. This window is similar to that for the constraint type 1 discussed before
(Para (d) in this section).
FIG. 3.58. Window for Constraint Type 3 on a Technology in the tdb, adb and ldb.
(g ) Cumulative constrains per period on capacities of a technology
When a user defines a relation in the constraint group entitled “cum per period” (Sub-sections
3.2.1 and 3.3.6), s/he needs to enter values with which the technologies are included in that
relation (see para (d) in Sub-section 3.4.5 for further details). On the technologies form (Fig.
3.51), a click on the “conpc” button opens a window (Fig. 3.59) to enter the values if capacity
of a technology is to be included in the defined relations. This window is similar to that for
the constraint type 1 and is discussed before.
FIG. 3.59. Window to Enter Cumulative Constrains per Period on Capacities of a Technology
in the tdb and the adb.
(h ) Constrains on capacities of a technology linked to storage
When a user defines a relation in the constraint group entitled “storage” (see Sub-sections
3.2.1 and 3.3.6), s/he needs to enter constraint values with which the technologies will be
Chapter 3 – 81
included in that relation. On the technologies form (Fig. 3.51), a click on the “consc” button
opens the window (Fig. 3.60) to enter the value if capacity of a technology is to be included in
the storage relation. This window is similar to that for the constraint type 1 which is discussed
in Para (d) in this sub-section.
FIG. 3.60. Window for Constraint Type Storage on a Technology in the tdb and the adb.
(i ) Initial and final cores of a fuel for a technology
For the nuclear power technology, the user can give the initial and final values of its input fuel
to model the first fuel loading to the reactor and final unloading from reactor. A click on the
“corin” button on the capacity form of a technology (Fig. 3.27) opens a window (Fig. 3.61) to
enter data on the initial loading and a click on “corout” button opens a window (Fig. 3.62) to
enter data on final unloading from the reactor. A click on the arrow of the first field (labelled
“fuel”) lists all levels of energy demand and energy forms for each level defined in the case
study. The user can select the energy form used as input to the activity. The remaining data
fields are to give unit, time series data switch and the data values. These buttons are needed to
model the back-end of fuel cycle of nuclear power plants where the initial fuel loaded in the
core and final unloading may be of substantial amount.
FIG. 3.61. Window to Put Constrains on Initial Cores of Fuel for a Technology
FIG. 3.62. Window to Enter Constrains on Final Cores of Fuel for a Technology.
(j) Global bounds on activity of a technology
If a technology has more than one activity, the use can put a bound on sum of output of all
activities that is refereed as global bound activity (see Sub-sections 3.2.1 and 3.3.6). On the
technologies form (Fig. 3.51), a click on the gbda button opens a window (Fig. 3.63), which is
similar to the window defined for annual bound on capacity (see Fig. 3.53) and is discussed
Chapter 3 – 82
before. The program shows the appropriate titles and the data field to enter bound type (upper,
lower or fixed), and the bounds units and values. The defined limit is applied on the sum of
output of all the activities of the technology.
FIG. 3.63. Window for Global Bound on a Technology in the tdb and the adb.
(k) Market penetrations on capacity build up of a technology
The user can put constraint on growth or phasing-out of a technology referred to as market
penetration (see Sub-sections 3.2.1, 3.3.5 for details). On the technologies form (Fig. 3.51), a
click on the mpc button opens a window to enter data of market penetration for a new
technology (see Fig. 3.64). The first data field is to select the type of bound on penetration of
the technology i.e. upper, lower or fixed, while the second field is to enter the units of the
data. Table 3.16 gives the description of the input data to define the market penetration data.
FIG. 3.64. Window Market Penetration on New Capacities of a Technology in the tdb and the
adb.
For the market penetration data, the user needs to give the start up values and the growth data
for the remaining model years. Two data fields are given for each of these; one for the data
switch (see Section 3.6) and the other for the data values. In all fields with an arrow, the user
can click the arrow to get the list for selection. In the unit field a double click opens the Units
window for entering data (see Sub-section 3.7.2). Similarly, a double click in the Start up and
Growth fields opens the standard Edit window to enter the data (see Sub-section 3.7.1). Using
this constraint, the user can make a technology part of the solution which is required when a
technology might be economically competitive but there some other physical or social
constraints on its build up, or alternatively a technology may not be economically competitive
but it is being build up under certain other considerations.
Chapter 3 – 83
Table 3.16. List of Data Entities Defining the Constraint on Market Penetration of New
Capacities
Screen: Market Penetration of New Capacities Figure No. 3.64
Path: A click on mpc button in the Technology form in Fig. 3.51.
Data Field Description
Label
Type The type of bounds (i.e. fixed, lower or upper) shows that how data
value given for a bound will be treated.
tmssw Time series data switch value (i.e. c, ts, cg, pg) for entering the
start up data values.
Startup The user can define a constraint on penetration of a new
technology by defining a bound on its capacity building. In this
field, the start up value of this bound is given. This data value is
treated as fixed or lower or upper limit depending on the tmssw
value. Values in
• For “c”, a single value of the capacity is given as the staring
value for all study years.
• For “ts”, a series of values for capacities are given starting from
the base year and followed by the model years. If number of
values is less than the number of model years, the last value is
assumed for the subsequent model years. Each value is treated
as a starting point in its relevant period.
• For “cg”, a single value of the capacity is given for the base
year followed by an average annual growth number for all the
model periods. The model computes the starring value of the
capacity for each model year.
• For “tg”, a single value of the capacity is given for the base year
followed by the average annual growth numbers for all model
periods. If number of values is less than the number of model
periods, the last value is assumed for the subsequent model
periods.
tmssw Time series data switch value (i.e. c, ts, cg, pg) for entering the
growth values.
Growth Values are given in this field to give growth rates for building up
the new technology.
• For “c”, a single value is given that is applied for all study
periods.
• For “ts”, a series of growth factors are given for the base year
and the model years. If number of values is less than the
number of model years, the last value is assumed for the
subsequent model years.
Chapter 3 – 84
3.8.2. A Set of Standard Windows to Edit Constraints on Activities of Technologies in
the Four Databases
As discussed in Sub-section 3.2.1, there are 12 types of bounds and constraints that can be
imposed on activities of technologies in all four databases. A bar of buttons for these bounds
and constraints is given in activities part of the technologies form (see Para (e) in Sub-section
3.4.6). Fig. 3.65 shows a similar window and the set of buttons. A click on one of the buttons
opens the related window. The program shows name of the technology and the activity in title
of the window. The following paragraphs show and discuss these windows.
FIG. 3.65. Window to Put Bounds on Activity in the tdb, adb and ldb.
(a ) Annual bounds on activity
Fig. 3.66 shows the window opened for entering data on annual bounds on output of the
activity. The format of this window is exactly the same as discussed in Para (a ) in Sub-
section 3.8.1 (See Fig. 3.52). Data values in this window are used to limit the level of the
activity on annual basis. In the example given in Fig.3.66, there should be at least 40 MWyr
import of oil every year as activity of the oil_import technology is imported oil.
Chapter 3 – 85
FIG. 3.66. Window to Enter Annual Bounds on an Activity in the tdb, adb and ldb.
(b ) Bounds on activity
Fig. 3.67 shows the window opened for entering data on bounds on output of the activity in
the study period. The format of this window is exactly the same as discussed in Para (b ) of
Sub-section 3.8.1 (see Fig. 3.54). The data values in this window are used to limit the level of
the activity per period. These bounds are different from the annual bounds discussed above. In
these bounds, if a limit defined for a period is not reached then it is accumulated in the limit
of the second period. For example, if limits of 10 MWyrs in period 1 and 20 MWyr in period
2 are given in the bda, and 10 MWyr is not generated in period 1, then the limit for period 2
will become 30 MWyr?.
FIG. 3.67. Window to Enter Bounds on an Activity in the tdb, adb and ldb?.
(c ) Constraint type 1 on an activity
In the Constraints form of the tdb, adb and ldb, the user defines relations under the category of
Constraint type 1 (see Sub-section 3.4.5). In the Entries window, the user identifies the
technologies included in a relation (see Fig. 3.32). For each technology included, the user also
specifies whether it is the capacity or activity of technology that will be included in the
relation. The data values are given with which activity of technology is multiplied in the
relation. Hence, it is referred to as coefficient value. The same information can be given in the
activities form.
On the activities form (Fig. 3.65), a click on the con1a opens the window to enter data on
constraint type 1 (Fig. 3.68). If the user enters this data in the Entries window, the program
displays it in this window. Alternatively, if the user enters this information in this window, the
Entries table is updated for this information.
The format of this window is the same as discussed for the constraint on capacity of a
technology in Para (d) in Sub-section 3.8.1 (see Fig. 3.56).
FIG. 3.68. Window to Enter Cumulative Constrains per Period on Activity of a Technology in
the tdb and the adb.
(g ) Constrains on activities of a technology linked to storage
When a user defines a “storage” (Section 3.4.8), s/he also defines a technology that uses this
storage. The user can define a constraint on this relationship. On the activities form (Fig. 3.38)
or storage form (Fig. 3.45), a click on the consa button opens the window (Fig. 3.69) to enter
the coefficient value of the relation between the storage and the related technology. The
format of this window is similar to that for the constraint type 1 and is discussed before.
Chapter 3 – 87
FIG. 3.74. Window to Enter Time Lag in Output Fuel and Material??
FIG. 3.74. Window to Enter Bounds on a Resource in the adb and ldb.
(b ) Constraint type 1 on an activity on a resource
In the Constraints form of the adb and ldb, the user defines relations under the category of
Constraint type 1 (see Section 3.4.5). In the Entries window (Fig. 3.32), the user identifies the
resources that are included in a relation. The data values are then given for contribution per
unit of this activity in the relation and are referred to as coefficient values. The same
information can be given in the window for con1a (Fig. 3.75), which is opened from the
resources form (see Section 3.4.7 (c)). If the user enters this data in the Entries window, the
program displays it in this window. Alternatively, if the user enters this information in this
window, the Entries table is updated for this information.
A click on the arrow in the Relation field lists all relations that have been defined in the model
in the category of Constraint type 1 to choose from. A click on the Unit field opens the Unit
Chapter 3 – 90
form (see Section 3. 7.2) to make a selection and a click on the arrow in the third field lists
four data Switches to choose from (see Section 3.6). The user can enter values in the last field
directly. Alternatively, a click of this field opens the standard Edit form (see Section 3.7.1) to
make all selections and data entry.
FIG. 3.79. Window to Enter Constraint on Market Penetration of the Activities of a Resource.
3.9. Windows to Edit Input Data Using Text Files
The program facilitates the users to enter input data in an interactive mode using the windows
given for database management. However, it also allows the user to enter or edit input data
using a text editor. On selection of a case study, the Edit command becomes active.
On the dropdown menu of the Edit command (Fig. 3.8), a click on “with text editor” gives the
following options to open these files in a new window:
• gen to edit the general data,
• tdb to edit the technology database,
• adb to edit the application database, and
• ldb to edit the local database.
• upd to edit the up date file.
• UPDS to edit the file containing names of update files.
• ldr to edit the load regions.
• drl to edit the data of day types.
• pch to edit the power change data of a technology.
• cin to edit the cin files written by the user.
• CINS to edit a file containing names of cin files written by the user.
• tit to edit title file.
• fil to edit a text file containing data series not used in MESSAGE but are required for
computation of some indicators in the cin file.
• Imp to edit file for importing data
• Exp to edit a file created by MESSAGE to export the data from the user interface.
• any to open a new file
Selection of one of these options opens a window to edit the relevant file in the Notepad or
any other editor selected using the Settings window (Chapter 2).
Except for two, all these files are generated by MESSAGE in the process of editing of data
bases using the user-interface. Two files (“Imp” and “fil”) are created by the user outside the
user interface of MESSAGE, and the user can then edit these files in the interface.
Chapter 3 – 92
FIG. 3.79a. Window Showing “With text editor” Command.? Double upd
To create a text file to import data, the user can enter some data in the user interface and
export it. S/he can then edit this file to complete the data. That is how s/he can avoid the
problem of finding the right format and right location of saving the import file.
The “fil” file is to enter all data series that are not used in a model developed using
MESSAGE such as GDP or population but they are required to compute some indicators from
the model results. This data from this file is used in the cin file to compute new variables
using the model results and these exogenously given data series.
To create this file, the user can select option of “any” on the drop-down menu of “with text
editor” as shown in Fig. 3.79a. MESSAGE opens a text file in a new window. The user enters
years as given in the general data of the case study and exogenous data series. Fig. 3.79b
shows the format of entering the data. Using the “save as command”, the user gives name to
this file and enters “.fil” as file type. Sub-section 5.2.3 in Chapter 5 discusses how to use the
data from this file in preparation of tables on the model results using cin file.
Chapter 3 – 93
Help to open a window (Fig. 3.82) that provides help on editing of a chain.
FIG. 3.87a. Window to Add a New Technology Using the Energy Chain.
FIG. 3.89. Window to Select a Screen for the General Category of Notes.
Chapter 3 – 100
FIG. 3.91. Window to Edit Notes on a Data Item in the General Category Using the Text
Editor.
In the window to select an item (Fig. 3.90), a click on the Add button opens a window
showing labels of all data fields that appear on the selected screen (Fig. 3.92). The user can
select an item from this list for making notes. A click on a data field name, followed by a
click on the Ok button, opens a file in the text file in a separate window (Fig. 3.91). A click on
the save button adds the selected field into the list.
Chapter 3 – 101
FIG. 3.92. Window Showing Names of All Data Fields for the Selected Screen.
(b) Specific notes
On selection of a case study, the Edit command becomes active. On the dropdown menu of
the Edit command (Fig. 3.8), a click on “Notes” opens a window to select the type of notes
(Fig. 3.88). A click on the Specific button opens a window showing the items on which notes
have been made (Fig. 3.93) and the user can edit them. A click on an item opens a file in the
text editor in a window to edit the note (Fig. 3.94). On any of the data form/window,
placement of cursor on a data field followed by pressing function key F3 opens a window to
edit specific note on that data field.
FIG. 3.93. Window to Edit Specific Notes Using the Text Editor.
Chapter 3 – 102
FIG. 3.94. Window to Edit Specific Notes Using the Text Editor.
(c) Window for all notes
On selection of a case study, the Edit command becomes active. On the dropdown menu of
the Edit command (Fig. 3.8), a click on “Notes” opens a window to select the type of notes
(Fig. 3.88). A click on the All button opens a window showing all items on which notes can
be made (Fig. 3.95). A click on an item opens a file in the text editor in a window to edit the
selected note.
FIG. 3.98. Window to Select a Scenario for Creating or Editing of Update db (upd)
FIG. 3.102. Window Import Data from a File to a Data Field in the tdb, adb and ldb.
Selection of “export” on the dropdown menu writes the data in the field into a file with its
name. This command is similar to the export command discussed in Paragraph (e) in 3.4.4 on
editing of demand data. The user can open this file either using the command of “with text
editor” given on the drop down menu of the Edit command discussed in Section 3.9 or using
the “intermediate command” while analysing the results (see 4.5.8 Section in Chapter 4).
MESSAGE creates the export file in the subdirectory of data in the directory created for a
case study.
3.14. Editing of data bases for a multi-regional study
As discussed in Chapter 2, a multi-region case study consists of a case study for the main
region and case study for each sub-region. All these studies are maintained as independent
studies and each have its own set of data bases i.e. tdb, adb, ldb and upd data base. All the
commands and windows/data forms discussed in Sections 3.1 to 3.13 are also used for editing
of these data bases (tdb, adb, ldb and upd) except:
• General data form
• Window to edit load regions
• Window to enter Technology data
The following sub-sections discuss these windows/data forms for a multi-region study.
3.14.1 General data form in a multi-region study
All the general data for a multi-region case study is entered only in the case study for the main
region as discussed for a single-region study in Section 3.4.1. When the user edits adb of any
region in a multi-region study, MESSAGE shows the data set defined for the main region and
the user can not edit it. As shown in Fig. 3.103, MESSAGE shows the region name in the
field labelled “country” and the name of the multi-region case study in the filed for “case
study”. For formulation of optimum expansion plan for all the regions, the general data have
to be the same for all regions.
3.14.2 Window to edit load regions in a multi-region study
The window to enter load pattern in multi-region case study is exactly the same as shown and
discussed in Section 3.4.2 for a single region study. The user defines load regions in the main
case study and MESSAGE displays that load-region data in all the case studies defined for
different regions in this multi-region study. Though MESSAGE allows editing of load regions
in each regional case study, MESSAGE keeps only one set of load pattern data and shows it
Chapter 3 – 107
for the main as well as all regional studies. Fig. 3.104 shows that MESSAGE displays name
of the main region in the window for the load data from adb of a regional case study.
FIG. 3.105a. Window Showing Input Selected from Other Region in a Multi-region Study.
Chapter 4-i
List of Figures
FIG. 4.1. Main Window Before a Scenrio is Selected............................................................... 2
FIG. 4.2. Window to Select a Scenario. ..................................................................................... 2
FIG. 4.3. Windows to Select a Set of Scenarios. ........................................................................ 3
FIG. 4.4. Window to Select Update db files. .............................................................................. 4
FIG. 4.5. Window Showing the Dropdown Menu of the Run command. ................................... 4
FIG. 4.6. Window showing matrix generation Options. ............................................................ 6
FIG. 4.7. Window for Setting Parameters of the Matrix generation Program (mxg)................ 6
FIG. 4.8. Window for Setting Parameters for the Optimizer. .................................................... 7
FIG. 4.9. Window for Selecting Optimization Program and its Parameters (Opt). .................. 8
FIG. 4.10. Part two for Selecting Optimization Program and its Parameters (Opt)................. 8
FIG. 4.11. Window for Setting Options for the Cap Program (Cap)....................................... 10
FIG. 4.12. Options for the Cap Program (Cap)....................................................................... 10
Fig. 4.13. Window to Reconfirm Selection of Scenarios .......................................................... 11
FIG. 4.14. Window Showing Options of the Intermediate Command. ..................................... 12
FIG. 4.15. Window Showing Error Messages from the mxgerr File. ...................................... 14
FIG. 4.16. Window Matrix Generated by the mxg Program (rows). ....................................... 15
FIG. 4.17. Window Matrix Generated by the mxg Program (columns)................................... 22
FIG. 4.18. Window Matrix Generated by the mxg Program for (bounds)............................... 23
FIG. 4.19. Window Showing the Solution file (Rows-part)...................................................... 24
FIG. 4.20. Window Showing the Solution file (column-part)................................................... 25
FIG. 4.21. Window Showing the Solution file (last part). ........................................................ 26
FIG. 4.22. Window Showing the Solution file in Mathmetical form. ....................................... 27
FIG. 4.23. Window Showing the Solution file in Mathmetical form. ....................................... 28
Chapter 4-ii
FIG. 4.24. Window Showing the Solution file in Mathmetical form ........................................ 28
FIG. 4.25. Window to Find Chain of a Technology. ................................................................ 30
FIG. 4.26. Window Showing the Chain of a Technology. ........................................................ 31
FIG. 4.27. Window Showing the Selected Technology in the Matrix....................................... 32
FIG. 4.28. Window Showing the Selected Technology in the Solution. ................................... 33
FIG. 4.29. Window Showing the Selected Technology in Chain file to Edit............................ 34
FIG. 4.30. Chain Window Showing Relation Names ............................................................... 35
FIG. 4.31. Chain Window Displaying Storage Names............................................................. 36
FIG. 4.32. Window Showing the Dictionary File..................................................................... 37
FIG. 4.33. Window Showing the File Containing Row and Column Numbers........................ 38
FIG. 4.34. Window Showing Iteration Log. ............................................................................. 39
FIG. 4.35. Window Showing the Error Message of an Infeasible Solution. ............................ 40
FIG. 4.36. Description of Infeasibilities................................................................................... 40
FIG. 4.37. Window of Solution file to Search the Technology which Caused Infeasibility. .... 41
FIG. 4.38. Window to See Descriptioin of the Sensitivity Analysis.......................................... 42
FIG. 4.39. Window to See Sensitivity of the Solution............................................................... 42
FIG. 4.40. Window to See Sensitivity of the Solution after Sorting by Magnitude. ................. 43
FIG. 4.41. Window to See Data Exported from the MESSAGE Windows/form....................... 44
FIG. 4.42. Error Message in Export Command....................................................................... 44
FIG. 4.43. Window to See the Report on Some Selected Input Data. ...................................... 45
Chapter 4-1
CHAPTER FOUR
The MESSAGE program has been designed to develop an optimisation model of an energy
system. The previous chapters discussed how a model is built using the MESSAGE program.
This chapter discusses the set of windows used to optimize this model, and get the
intermediate results.
The MESSAGE program solves an optimization model in the following two steps:
1. Generation of a matrix.
Section 2 discusses windows to perform these two steps, while Section 3 discusses windows
for setting parameters for each step.
The program generates a matrix of the model in the standardised format required by software
packages for optimisation. There is a set of such packages that can be used in the MESSAGE
program. The program lists name of these software packages, and gives option to the user to
select one of them.
The MESSAGE program facilitates the users to get the results at the intermediate level.
Section 4 discusses a set of windows to get these results. Section 5.2.5 in Chapter 5 discusses
selection of cinfiles.
When the user opens a case study, its name is given in the title of the MESSAGE’s main
window and also in the middle part of the main window with the title of the “Case Study:” for
a ready reference. The commands for running the model in the menu bar remain inactive (see
Fig. 4.1), unless a scenario is selected. On the main menu bar, a click on the Select command
gives four options. Selection of the Scenario option opens a window that lists names of all
scenarios defined in the case study (see Fig. 4.2). A click on a name of a scenario, followed by
a click on the Ok button, selects the scenario for solving the model.
The user can select a set of scenarios to run one after another with a single run-command.
Furthermore, this selection can be saved in a file type “RUNS” to load the selection next time.
Selection of the second option i.e. Scenarios opens a window that shows list of all Scenarios
(Fig. 4.3). The user can click on more then one scenario to make a set. A click on the Save
button opens the standard MS windows to enter a file name and to choose a folder to save this
file. To run this set of Scenarios next time the user can click on the “load button” (Fig. 4.2b)
to get the file saved earlier for execution of this set of scenarios.
Chapter 4-2
After selection of a scenario, the user can select an update file if s/he wishes to run the
scenario with some updated values. This option is used if the user does not want to modify
any of the data base file but wants to see the impact of the new values on the results.
In the main MESSAGE window (Fig. 4.1) a click on Select followed by a click on update
group opens a window (Fig. 4.4). This window has two parts; one part shows a list of all
update files available for the case study. A click on one of the upd file selects it and this name
appears in the second part of the window. In upd window, there are two buttons to go up or
down on the list of upd files and a search field to enter name of the desired file. The user can
cancel the selection. After the selection, the user can continue with the commands to run the
case study (see Section 4.3).
For each Scenario, there could be one update data file. If the user selects more than one
Scenario to run, he can select more than on upd file.
Chapter 4-4
After selection of a desired scenario from the list, the program shows its name in the main
window form (Fig. 4.5) below the name of the case study. If the user selects a set of
Scenarios, the program writes “multiple” beside Scenario name in the main window. Three
more commands on the main menu bar become active (i.e. Run, Intermediate, and Results).
FIG. 4.5. Window Showing the Dropdown Menu of the Run command.
Chapter 4-5
On the dropdown menu of the Run command (Fig. 4.5), the user can:
• Run the matrix generation program “mxg”, optimization program “opt” and result
extraction program “cap” ( all ).
• Run the above three programs by selecting on at a time (mxg, opt and cap) to see
output of one program before running the second one.
• By default, the program keeps matrix and solution of each scenario to be used again.
By checking in the “NO” box, the user chooses not to save these files for later use and
with selection of an other scenario these files are replaced.??
• The program prepares a summary report of technologies for each scenario in the ascii
format. The user may choose from two other formats which allows her/him to ???.
• By default, the program set the general integer limit to 0 which implies that the integer
variable in the solution may be zero. Accordingly, the equations are created (see
Section ???). Alternatively, the user may choose any other integer to be used.
• The user may choose the accuracy of the solution either to the 30th decimal or 5th
decimal. The infinity data field gives these two options.
• The user may choose to prepare a short report or no report at all.
• The user may select a year or a set of years from the study period for the summary
report prepared by the mxg program. A double click on the data field opens a window
showing study period to enable selection of years.???
Chapter 4-6
FIG. 4.7. Window for Setting Parameters of the Matrix generation Program (mxg).
• Three options are given to set the right-hand side of the equations for which no
upper/lower bindings are given in the model. By default, the mxg program does not
eliminate such equations and set the value of ?. . Alternatively, the user can ?? by
Chapter 4-7
choosing “nbd” or eliminate all such equations by selecting “all” in the data field for
“Eliminate nonbindings”.
4.2.2. Setting Parameters of the the Optimization Program (opt)
On the Options menu (Fig. 4.8), a click on optimizer opens a window for selection of the
optimization program and its parameters. In this window (Fig. 4.9), a bar of buttons shows
names of five optimization programs that can be used for solving the MESSAGE model.
Initially, the program shows the optimization program selected in the Settings window
(discussed in Chapter 2). However, the user can select an other optimization program at this
stage. A click on a name of the optimization program selects it.
Below the button bar, there is a framework that gives a set of parameters with data fields
(Figures 4.9 and 4.10). Table 4.11 explains options for each field. In most of the data fields, a
click on the arrow lists appropriate options for selection. A click on one on the options selects
it, and the selected option appears in the data field (Fig. 4.9). After selection of appropriate
parameters, the user has to save them by pressing the “Save” button.
FIG. 4.9. Window for Selecting Optimization Program and its Parameters (Opt).
FIG. 4.10. Part two for Selecting Optimization Program and its Parameters (Opt).
Chapter 4-9
Table 4.1. List of Data Entities to Set Parameters for Optimization (Figures 4.9 and 4.10)
Data Field Label Description
Use basis Selection of “adb” implies that the solution of “adb” scenario should
be used as a starting value for solving the current scenario.
Alternatively, selection of “no” implies that ??? while “yes” implies
that ???
Scale problem Selection of “no” implies that ??? while “yes” implies that ???
Solution method The user may select “simplex” method or “intpnt” method (see
Annex A for details).
Maximum number of The program by default gives one set of integer values that solve the
integer solutions model. In principal, however, there are more than one set of such
values. The user may want to get more than one set of such values.
Use pre-solver Selection of “yes” implies that ???, alternatively “no” implies ??/
Branching strategy Selection of “first” implies that ???, alternatively “last” implies ???.
While selection of “drtom” will ???
Backtracking strategy Selection of “bfs” implies that ???, alternatively “dsf” implies???.
While selection of “bestp”
Sensitivity analysis By default the program carrys out sensitivity of the objective function
for each solution variable. The user may choose “no” to save time.
Set general integer This limit is initially put in the window for the generation matrix and
upper bound may be reset here for the solution method.
FIG. 4.11. Window for Setting Options for the Cap Program (Cap).
A click on the arrow, in the graph type field (Fig. 4.12), gives five options:
Spr: The program prepares a graph of continious line which can be saved as a picture or the
table data may be imported to a spread sheet.
Sprn: for importing to a spread sheet with zero series suppressed???,
Eps: for importing to encapsulated postscript file,
Py: for a Python plot program, and
Ltx: for latex file???.
Chapter 4-11
These selections are made at the case study level. The user can also select scenarios for
making the selection of the graph type. A click on the scenario field lists names of all the
scenarios in the case study to select one. A field is given to give the name of the title file to
store the titles of the tables to be generated by the cap program.
On the dropdown menu of the Run command (Fig. 4.11), four programs are listed i.e. mxg,
opt,postp and cap. A click on name of a program runs the selected program. Alternatively, a
click on all, exceutes all the four programs one after another ????.
If the user selects a set of Scenarios (see Section 4.1), the program opens a message box that
displays names of Scenarios to be executed (Fig. 4.13). A click on ‘Ok” button continues
execution of the selection. Alternatively, the user can clear the Selection ( a click on the Clear
button) or can make new selection or can cancel the run command. A click on the Reselect
button opens the selection window (Fig. 4.3) discussed in Section 4.1.
The MESSAGE’s background window (Fig. 2.1 in Chapter 2), shows the DOS commands
being executed to run the program and some preliminary features of this excecution. For
example, this window shows number of columns and rows of the matrix generated while
running the mxg program.
The main window of MESSAGE displays name and status of the progam above the User
name in the middle part of the window. After successful excecution of mxg, opt or cap,
MESSAGE displays the name of the program beside the title of “Done:” i.e. Done:mxg,
Done: optimization and Done:cap.
Chapter 4-12
For running the cap program, the user needs to prepare an input file, which is called cinfile
and it is discussed in Chapater 5 in details.
The program allows the user to get results of the model at two stages of computation in
various forms and some other related information, which are referred to as the intermediate
results. For example, the user can view the matrix generated for the user-defined LP model,
solution file of the model and complete model in the mathematical form. These intermediate
results can help the user in finding out any problem encountered in matrix generation or in
optimization of the model, and understanding of the results.
In the main window of the MESSAGE program (Fig. 4.14), the Intermediate command
becomes active after solving the model. The dropdown menu of the Intermediate command
lists 12 options to choose from.
• MXG errors: to open a file of errors messages. This file is generated if the mxg
program encounters any problem in generation of the matrix.
• Matrix: to open a file that contains the matrix generated by the mxg program.
• Solution: to open a file that reports the complete optimum solution by rows and
columns which is the output of the opt program.
• ViewLp: to open a window that shows the user defined model in the mathematical
form i.e. the complete objective function and constraints. A sub-window also shows
Chapter 4-13
the solution of the LP model i.e. optimum values of the variables (columns) and the
constraints (rows/equations).
• Sensitivity: to open a window that shows the maximum increase and decrease in value
of each variable (column) that will not change the base value ???? of the objective
function in the optimum solution.
• Chain: to open a window that shows the structure of the model in the chain form and
the user can select a technology to see its data in the matrix, its optimal value in the
solution, and can also edit value of that technology in the database.
• Dictionary: to open a window in which the user can find names constructed by the
MESSAGE model for energy forms, technologies, resources and constraints/relations
using the user-defined identifiers. These variable names appear as column names
while constraints names appear as row names in the matrix file, solution file and
mathematical presentation of the model.
• Row/col: to open a window that shows rows’ numbers and columns’s numbers of the
matrix along with their names. This information is helpful in solving of any
infeasibility problem.
• Iteration log: to open a window showing values of the objective function at some
major steps before arriving at the final optimum solution.
• Infeasibilities: to open a window that shows the row and column numbers and names
that are most likely causing problem in finding the feasible solution.
• Export sample: to open the worksheet containing data exported from the Demand
form (see (e) of Section 3.4.4. in Chapter 3).
• Report: to get summary of the input data of technologies in a tabulated form if the
user has selected the report option (see Section 4.2.1).
On the dropdown menu of the Intermediates command (Fig. 4.14), a click on these options
opens the related windows that are discussed below.
During execution of the mxg program if it encounters some errors, the program writes error
messages in the “mxgerr” file. On the dropdown menu of the Intermediate command, a click
on MXG errors (Fig.4.14) opens this file in a new window (see Fig. 4.15).
Chapter 4-14
FIG. 4.15. Window Showing Error Messages from the mxgerr File.
The program gives name of the technology/resource that has inconsistent data entities. In the
example shown in Fig. 4.15, the data given on bdi parameter i.e. bounds (lower and upper) on
total installed capacity are incorrect for the technology named CCIG as lower limit is higher
than the upper bound.
After running the mxg program, a file containing the matrix of the user-defined model is
available. On the Intermediate command (Fig. 4.14), a click on the Matrix option opens the
Matrix file in the Notepad (Fig. 4.16). The user can select another text editor for opening this
file using the Settings command (Chapter 2). In this file, the first line shows name of the case
study along with the scenario name. The file contains four blocks of information starting with
their labels i.e. Rows, Columns, RHS and Bounds.
Each row of the matrix represents an equation of the model (see Appendix A) and each
column represents a variable. For some of the equations, there is a Right Hand Side (RHS)
value defined by the user. For example, all demand data are RHS values of the demand
equations and historical capacity of a technology is RHS of the capacity equations. Similarly,
the user may define some bounds for some variables such as a bound on capacity addition in a
technology???.
Chapter 4-15
The program first gives information on all rows i.e. equation-type and name of the equation.
An equation can be greater, lower or equal to its assigned value. The program reports “G, L
and N for these three types of equations. The assigned values are either given by the user as
part of the model which are discussed in the paragraph on RHS values or a standard value
defined by the MESSAGE model i.e. -1.E31 as the upper bound and 1.E31 as the lower bound
value. ???
Tables 4.2 and 4.3 report the template of equation names and column names which are used to
generate these names for every model, respectively. In these tables “zsvd” is a code
representing technology names. This code is composed of user defined identifiers which the
program uses to construct technology names. The user defines these identifiers in building of
her/his database. In this code for technology names,
In addition to the technology code, the program use some standard codes to identify the type
of equation or variable. For example, row name “cscae” in Fig. 4.16 is composed of standard
code “C” for the capacity equation and “scea” is a technology name in which
s: is identifier for secondary level
c: is identifier for coal which is used as input in this technology
a: is identifier of the activity
e: is identifier for electricity which is output of this technology for the “a” activity.
The program generates some of the equations automatically. In the example shown in Fig.
4.16, “ccap…a” is the equation name defined by default by the program to compute the total
investment cost of all technologies in period t. However, if the user goes down in this file,
s/he can find the equation name “fe…..a” that is defined for the electricity demand at the final
level and the demand data is reported as the RHS values of the demand equation (see Fig.
4.18).
Annex A).
Constraint for the user-defined relations
Nm…..t/ pm…..t Equation to compute the relation “m” defined by the user in the
constraint/relation group 1 and group 2 respectively. In Chapter 8 in
Annex A, section 8.1.1 gives the equation for the simple relation
while section 8.1.3 define the equation if the relation is between
periods.
Nm….lt/ Pm….lt Equation to compute the relation “m” (with load region) defined by
the user in the constraint/relation group 1 and group 2 respectively
(section 8.1.2 in Chapter 8 in Annex A).
Chapter 4-20
Variables of storages
sizsv.lt It represents the amount of fuel “s” put into storage “v” in load region
“l”, while “si” is identifier of storage input variable (see section 3.1.1
in Chapter 3 in Annex A).
ozsv.lmt It represents the amount of fuel “s” taken out of storage “v” in load
region “m” which was put into storage in load region “l” while “o” is
identifier of storage output variable (see section 3.1.2 in Chapter 3 in
Annex A).
yzgsv.lmt It represents the generation capacity of storage “v” in load region “m”
which was put into storage in load region “l” while “y” is identifier of
capacity variable and “g” is identifier of the generation capacity for
storage technologies (see section 3.1.3 in Chapter 3 in Annex A).
yzVsv.lmt It represents the volume capacity of storage “v” in load region “m”
which was put into storage in load region “l” while “y” is identifier of
Chapter 4-21
FIG. 4.18. Window Matrix Generated by the mxg Program for (bounds).
As discussed, the “mxg” program construct a matrix; each row representing an equation and
each column representing a variable, and all the input data entered are either coefficients/
bounds of variables or right hand side value of the equations. The solution matrix reports
optimal values of that matrix. In the solution file, the program reports highlights of the
solution matrix: number of rows and columns, number of non-zero elements, status of the
solution and the value of the objective function; if the program has found an optimal solution
of the model. The program then reports the solved matrix first by giving all rows and then all
columns.
Rows part
In reporting an equation or a row the program gives the followings (Fig. 4.12):
i) row number (labelled as “No.),
ii) equation name (labelled as “Row name),,
iii) status of the constraint (labelled as “St.) B if the value is within the range, NU if
the value is equal to the upper bound and NL if the value is equal to the lower
limit. For the NL and NU states, the program gives a “marginal” value. The “NS”
code is used to report ????
iv) value of the equation in the solution (labelled as “Activity”),,
v) the user defined lower bound for the equation (labelled as “Lower bound”),,
vi) the user defined upper bound for the equation (labelled as “Upper bound”), and
Chapter 4-25
vii) a slack value for the equation that converts the inequality of the equation due to
upper and lower bound. This slack value is labelled as “Marginal”. A negative
marginal value implies that there will be a reduction in value of the objective
function of that magnitude if the bound value is reduced by one unit. Alternatively,
a positive value implies increase in the value of the objective function per unit
value of the bound. The objective function of an energy system is the discounted
cost of energy supply from various sources and the program minimizes this total
cost. Therefore, the marginal value of ??? represents the marginal price of that
energy form which will be the market price in the optimum expansion system.
In reporting of columns from the solution file (Fig. 4.20 ), the program follows the format of
row reporting discussed above except that the marginal value now represent increase or
decrease in value of the objective function for one unit increase in that variable???. For
example, a
At the end of the solution file, the program reports the optimality conditions (Fig.
4.21)????????.
Chapter 4-26
The user can enter a name directly in the search field and can then make a selection of the file
to find it either in the parts showing solution, LP input or integer variables.
Alternatively, the program helps the user to get the variable name. In first part of the window
(Fig. 4.22) the dropdown list in the “disc:” field is to select either one of the technologies or
one of the resources. According to the selection, the program gives the list of technologies
(resources) from the model in the item field. The program displays name of the variable in the
search field and in the column filed. The user can now make the selection of the file to search
in.
The dropdown list gives:
• all column names of the model in the “column:” field,
• region names in the “reg:” field for the multi-region studies,
• all load regions of the model in the “ldr:” field,
• all study years in the “tms” field.
After selection from all these fields, a click on the “Make list” button shows the selected item
in the relevant part. If the file is big, the user can use “Next” and “Prev” button to go through
the file. A click on the “Clear sel” button clears the selections made in the various fields.
FIG. 4.29. Window Showing the Selected Technology in Chain file to Edit.
The chain window also shows buttons to get list of relations defined in the five Groups if they
are used????. A click on a Relation button (Fig. 4.30) gives list of all relations defined in that
group. In this window three buttons are given to find a selected relation in the matrix file or
solution file or edit it. The program shows both its own given name and the user defined
name. A click on a name selects it.
Chapter 4-35
FIG. 4.33. Window Showing the File Containing Row and Column Numbers.
Chapter 4-39
A model may not be solved due to some infeasible constraints in it. The optimization program
prepares a report on such infeasibilities. On the dropdown menu of the Intermediate command
(Fig. 4.14), a click on Infeasibility opens a file in the Notepad giving this report (Fig. 4.35).
The user can select another text editor for opening this solution file using the Settings window
(Chapter 2).
Fig. 4.35 shows the infeasibility encountered during the optimization of a scenario. In the first
line of the block of “PRIMAL SOLUTION IS INFEASIBLE” row number is given (31 in this
example). A click on the Description button opens a window (Fig. 4.36) to give names of the
technologies and the infeasibility encountered. In this example, there is no balance between
supply and demand of gas for fertilizer.??? Why tech nu col??
If the user looks at row 31 in the solution file (Fig. 4.37), a technology Df is found. In the
dictionary, this is a technology which supplies gas to fertilizer feedstock. There is no
alternative technology supplying gas to fertilizer feedstock. In line 31 of the solution, the
value of 6925.79 is the annual gas demand for the last study period while the fertilizer
production is only 6200. So the demand could not be met and the solution is infeasible. To
trace the problem further, the user needs to look at the equation for the fertilizer production.
Chapter 4-40
FIG. 4.37. Window of Solution file to Search the Technology which Caused Infeasibility.
4.4.10. Sensitivity
Figures 4.38 to 4.40 show the windows of the sensitivity analysis. On the dropdown menu of
the Intermediate command (Fig. 4.14), a click on sensitivity, opens a window to see the results
of the sensitivity analysis.
Chapter 4-42
FIG. 4.40. Window to See Sensitivity of the Solution after Sorting by Magnitude.
Chapter 3 has discussed windows and forms that allow the user to define various components
of her/his model and to enter data. The user may like to extract the data entered in the
interactive mode for some selected entries. In all the data fields, a right click on the mouse
drops down a menu that allows export of the data from the databases (adb or scenario db).
Section 3.13.4 discusses the export command in Chapter 3.
On the dropdown menu of the intermediate command (Fig. 4.14), a click on “Export sample”
opens a window to show the name and value of the data exported while editing the database
(Fig. 4.41). If the user has not exported any data and this file does not exit, the program shows
the window giving a message on how to prepare this export data file (see Fig. 4.42).
Chapter 4-44
FIG. 4.41. Window to See Data Exported from the MESSAGE Windows/form.
4.4.12. Report
While setting the options for the matrix generator, the user may choose preparation of a
summary of major features of all technologies (see Section 4.2.1). After running the matrix
generator, the user can get this report. On the dropdown menu of the Intermediate command
(Fig. 4.14), a click on Report opens a window showing the summary of the major input data
of technologies (Fig. 4.43) with the levlized cost of supply for the technology. This cost is
correct only if the user has given the investment cost of the technology. The user can get the
levelized generation cost in the Chain window (Section 3. 10 in Chapter 3) for each
technology, where as in this report this cost is given for all technologies along with its
components. This summary report helps in understanding the model’s results. If at any stage
the program does not give the report then running the matrix generation prepares this report.
FIG. 4.43. Window to See the Report on Some Selected Input Data.
Chapter 5– i
CHAPTER FIVE....................................................................................................................... 1
Extracting the Results in the MESSAGE........................................................................... 1
5.1. Extracting the Final Results in the Interactive Mode.................................................. 1
5.1.1 Graph definition .................................................................................................... 1
5.1.2. Case and Scenario Information ............................................................................ 2
5.1.3 Curve Selection ..................................................................................................... 3
(a) Select a Data entity ............................................................................................... 3
(b) Take Curve ........................................................................................................... 8
5.1.4. Balance Selection ................................................................................................. 8
(a) Select an energy form ........................................................................................... 8
(b) Take Balance ...................................................................................................... 13
5.1.5. Getting Graphs and Tables................................................................................. 13
(a) Saving a Graph/Table ......................................................................................... 14
(b) Exporting a Graph/Table .................................................................................... 14
(c) Save as button ..................................................................................................... 15
5.1.6. Saving, Loading and Clearing of the Selections ................................................ 16
5.2. Extracting the Final Results through cin File............................................................ 16
5.2.1. Opening a cin file ............................................................................................... 16
5.2.2. Edit a cin file ...................................................................................................... 18
(a) Add a table .......................................................................................................... 19
(b) Delete a table ...................................................................................................... 19
( c) Reorder tables if there are more than one tables................................................ 19
(d) Edit the title of the table and some other parameters ......................................... 20
(e) Format a table ..................................................................................................... 21
(f) Format a graph .................................................................................................... 22
(g) Search ................................................................................................................. 23
5.2.3. Preparation of a Table in a cin File .................................................................... 23
5.2.4. Cin file and selection of database....................................................................... 28
5.2.5. Conversion of units ............................................................................................ 28
5.2.6. Saving a cin File................................................................................................. 28
5.2.7. Calculation of the Tables Defined in the cin File............................................... 29
5.2.8. Getting Tables Defined in a cin File .................................................................. 30
5.2.9. Extracting Shadow Price .................................................................................... 32
5.2.10. Use of Pre-defined Tables ................................................................................ 32
Chapter 5– ii
List of Figures
FIG. 5.1. Window to Get the Final Results. ............................................................................... 2
FIG. 5.2. Window to Get the Final Results in Interactive Mode................................................ 2
FIG. 5.3. Window to Select Results Type in the Interactive Mode............................................. 3
FIG. 5.4. Window to Select an Aspect for a Selected Relation. ................................................. 5
FIG. 5.5. Window to Select an Aspect for the Selected Technology. ......................................... 5
FIG. 5.6. Window to Select an Aspect for the Selected Resource. ............................................. 6
FIG. 5.7 List of Option for Curve Selection in Interactive Mode. ............................................. 7
FIG. 5.8. Window Showing Selection of Output of Two Electricity Generation Technologies. 8
FIG. 5.9. Window Showing List of Levels in the Interactive Result Mode................................. 9
FIG. 5.10. Window Showing List of Fuels in the Interactive Result Mode.............................. 10
FIG. 5.11. Window Showing List of Options for Extracting Results on a Fuel in the Interactive
Mode......................................................................................................................................... 10
FIG. 5.12. Window Showing List of Technologies for the Selected level and fuel in the
Interactive Mode. ..................................................................................................................... 11
FIG. 5.13. List of Options for Balance Selection in Getting Results in Interactive Mode....... 12
FIG. 5.14. Curve Selection Table in the window for Interactive Results................................. 13
FIG. 5.15. Table of the Balance Selection in Interactive Mode............................................... 14
FIG. 5.16. Graph Window in Interactive Mode. ...................................................................... 15
FIG. 5.17. Window for Saving the Graph in a Different Form................................................ 15
FIG. 5.18. Window for Opening a cin File. ............................................................................. 17
FIG. 5.19. Window for Selecting a cin File. ............................................................................ 17
FIG. 5.20. Window for Selecting a Scenario to Edit an Existing or Create a New cin File.... 17
FIG. 5.21. Window for Editing a cin File. ............................................................................... 18
FIG. 5.22. Window for Reordering Tables in a cin File. ......................................................... 19
FIG. 5.23. Window to Select a Title File.................................................................................. 20
FIG. 5.24. Window for Editing Title of a Table defined in cin. ............................................... 21
FIG. 5.25. File Window for Editing Format for One or All Tables. ........................................ 22
FIG. 5.26. Window for Editing Format of a Graph made in cin file. ...................................... 23
FIG. 5.27. Window for Selecting colours for a Graph Made in a cin file. .............................. 23
FIG. 5.28. Window for Getting Editing Commands in a cin.................................................... 24
FIG. 5.29. File Window to Select a Data Group to Insert a Variable in the cin File Equation.
.................................................................................................................................................. 25
FIG. 5.30. Window to Select the Technology and an Aspect of it............................................ 25
FIG. 5.31. Window to Select a Resource and its Aspect for the Equation............................... 26
FIG. 5.32a. Window to Select a Relation in Constraints/Relations Group 1. ......................... 26
FIG 5.32b. Window to Select a Relation and its Aspects......................................................... 27
FIG. 5.33. Window to Select a Demand and its Aspect. .......................................................... 27
FIG. 5.34. Window to Select an Energy Form and its Aspect.................................................. 28
FIG. 5.35. Window to Select a New Unit of Measurement. ..................................................... 29
FIG. 5.36. Window to Select a cin File for a Scenario for Calculation................................... 30
FIG. 5.37. Window for Computing the Tables defined in a cin File........................................ 30
FIG. 5.38. Window for Selecting a Table defined in a cin File for a Scenario........................ 31
FIG. 5.39. Window Showing a Table defined in a cin File. ..................................................... 31
Fig. 5.40 Window to Extract Summary of Shadow Prices ....................................................... 32
Fig. 5.41. Summary of the Shadow Prices. .............................................................................. 33
Fig. 5.42 Window Showing a Selection and the Corresponding Command. ........................... 33
Chapter 5-1
CHAPTER FIVE
On the drop down menu of the result command (Fig. 5.1), tables and graphs commands are
given to get results in interactive mode in these two forms (Section 5.1.5) discusses these
commands.
One critical high light of an optimum solution is the shadow price. On the dropdown menu of
the results command, there are two commands to get shadow price from the solution file.
Section 5.2.9 discusses these commands.
5.1. Extracting the Final Results in the Interactive Mode
This method facilitates the user to prepare tables/graphs of values of the endogenous variables
from solution of the model. It allows the user to get the micro-level results on four major
component of the model i.e. technologies, resources, constraints/relations and energy forms.
Subsections 5.1.1 to 5.1.4 discuss a window to select data entities from these components,
while Subsection 5.1.5 discusses windows to prepare graphs/tables of these selected data
entities. The program facilitates saving of the selections made in the interactive mode into a
file. Subsection 5.1.6 discusses windows for saving and loading of these selections.
After the selection of a scenario, the Results command becomes active in the main menu bar
of the MESSAGE window. If the model has already been solved successfully, the program
keeps the solution file for each scenario, and the user can extract the result directly.
On the dropdown menu of the Results command (Fig. 5.1), a click on Interact opens the
window for extracting results in the Interactive mode (Fig. 5.2). In this window, the program
needs four types of information for extracting the results in an interactive mode i.e. graph
definition, case study and scenario information, curve selection and balance selection, which
are discussed in the following subsections in details.
5.1.1 Graph definition
This includes:
• title of the graph/table,
• file name for saving the selections,
• time horizon (i.e. annual, or all years, or one selected year),
• if making graph then whether cumulative or single,
• fill up the graph (yes or no),
• type of graph (line, histogram or smooth).
Chapter 5– 2
Apart from the title and file name, the program lists options in all data fields for the user to
select one (Fig. 5.2).
This includes name of a case study and name of a scenario. In the case field, a click on the
arrow lists names of all the existing case studies in the system. A click on a name selects it to
Chapter 5– 3
get the list of scenarios in it. In the “scen” field, a click on the arrow lists names of all
scenarios created in the selected case study. A click on a name selects it to get the solution
file.
For a multi-region case study, the case field shows the main region as well as all sub-regions.
When the user selects a sub-region, the program shows results of that region only.
Under curve selection, the user can extract results on various aspects of technologies,
resources and constraints/relations defined in the model ⎯ such as output of a technology or
remaining volume of a resource. The user can select a single variable such as ⎯ hydropower
generation ⎯ or a set of variables ⎯ such as hydro and nuclear power generation ⎯ to make
a table/graph. These data entities are defined through selection from 4 categories of data.
Under the Curve selection title in Fig. 5.2, a row of data fields shows these data categories;
entitled type, item, aspect and fuel. In each field, a click on the arrow gives a list to choose
from. The selection process goes on as follows.
1. Selection of type i.e. if the results are required on Technologies or Resources or the
constraints/relations defined in the model (Fig. 5.3).
• Four aspects (i.e. value, upper limit, lower limit and shadow price) if a
relation is selected in the item field and a constraints group is selected in the
type field (see Fig. 5.4).
• Six aspects if a resource is selected in the item field and resources in the type
field (see Fig. 5.6).
The combinations of options for these four selection levels are summarised in Fig. 5.7 for a
ready reference.
Chapter 5– 5
In the Interactive results window (see Fig. 5.8), there is a table entitled “Selected Curves”.
After the user selects a variable to get the result, a click on the Take curve button displays the
selections in this table (see Fig. 5.2).
Every time, the user selects a curve and clicks on the take curve button, the program fills up a
row of the table showing the selection. Fig. 5.8 shows the window after selection of output of
hydro and nuclear technologies. The program assigns a colour to each selection for making
the graph of the results on these variables. The user can then make a table/graph of the
selected variable by clicking on the Graph and Table buttons (see Subsection 5.1.6 for
details). A click on the Clear button clears all the selections that have been made.
FIG. 5.8. Window Showing Selection of Output of Two Electricity Generation Technologies.
From the optimal solution of the model, the user can extract results on production,
consumption, and prices of energy forms at different levels.
In the window for extracting results in an interactive mode (Fig. 5.8), under the title of
Balance selection, a row of fields is given for selecting level, energy form, and the variable of
interest (i.e. input, output or price). Since energy forms are used through technologies, the last
field shows the list of all technologies for the selected energy form if the results are required
Chapter 5– 9
on input or output of the selected energy form. The combination of these four types of data
categories is given in Fig. 5.13.
In the first three fields, the user selects from the lists of options. The program gives results on
all technologies using or producing the selected energy form. For example, if a user selects
output of electricity at the secondary level, the program gives electricity generation from all
technologies (i.e. power plants).
In the data field for level, a click on the arrow lists all the levels of energy forms defined in
the selected scenario (see Chapter 3 for defining levels). A click on a level on this list (Fig.
5.9) selects it.
FIG. 5.9. Window Showing List of Levels in the Interactive Result Mode.
In the data field for fuel, a click on the arrow lists all the energy forms defined at the selected
level (Fig. 5.10). A click on an energy form selects it for extracting results. In the next field
labeled “pr/con”, the user chooses whether the results are required on production,
consumption or shadow price of the selected fuel (see Fig. 5.11). A click on the arrow in this
field gives this list, and click on one of the options selects it for extraction. Selection of
producer gives the results on input value of this fuel and selection of consumer gives output
value of this fuel.
In the data field labeled “tec”, the program lists names of all technologies if the user selects
producers or consumer category at the third data field (Fig. 5.12).
Chapter 5– 10
FIG. 5.10. Window Showing List of Fuels in the Interactive Result Mode.
FIG. 5.11. Window Showing List of Options for Extracting Results on a Fuel in the
Interactive Mode.
Chapter 5– 11
FIG. 5.12. Window Showing List of Technologies for the Selected level and fuel in the
Interactive Mode.
In the each of the data field for Balance selection, discussed above, the program gives a
different set of options depending on the selection made in the previous field. Fig. 5.13
summaries these set of options for each field for a ready reference.
Chapter 5-12
Fuel field
List of Energy
Level field* forms*
List of Energy
forms*
FIG. 5.13. List of Options for Balance Selection in Getting Results in Interactive Mode.
Chapter 5-13
On selection of an energy form, discussed in the above section, a click on the Take balance
button selects all the technologies that fall in the selected level and fuel category. For
example, selection of secondary level, electricity and output in the three fields shows that
there are a number of technologies that are producing electricity. A click on the Take balance
button, selects all these technologies for extracting results (see Fig. 5.14).
In the lower part of the Interactive results window; there is a table entitled “Selected curves”
(Fig. 5.14). After selection of data entities for extraction of results, a click on Take balance
button fills up this table with the selections. A click on the Clear button clears the table for
new selection.
FIG. 5.14. Curve Selection Table in the window for Interactive Results.
5.1.5. Getting Graphs and Tables
After selection of data entities for extraction of results, a click on Take balance (or on Take
curve) button fills up the table (entitled Selected curve) with the selections. A click on the
graph (table) button opens a window showing the graph (table) of the results on these selected
variables (Figs. 5.15 and 5.16).
In the Selected Curves table (Fig. 5.14), there are two data fields at the end of each row to
show number and colour assigned to each data entity. The user can edit these data fields to
change the number and the colour of a curve.
At the end of the row, a check box is also given to select the data entity for making the
graph/table. A click on this check box removes the tick, and the selected data entity is not
Chapter 5– 14
included in the table/graph. By default, the program selects all data entities for making the
graph/table.
In the main window (Fig. 5.14) a click on the Table button opens a window showing the
extracted results in a tabulated form (Fig. 5.15). This window gives a set of buttons to save,
export, or make a graph of these results.
The Graph button is given on the window showing the result in tabulated form (Fig. 5.15) and
also on the main window of the Interactive result (see Fig. 5.14). In any of these two
windows, a click on the Graph button opens a window showing the results in the graphic form
(Fig. 5.16). In this window, in addition to the Figure title, the program also displays names of
the case study and the scenario. The Graph window also shows the set of buttons to save,
export, or tabulate the results, and one additional button of Save as.
In both the windows for a graph and a table (Figs. 5.15 and 5.16), a click on the Save button
opens the standard MS window to save the graph or the tabulated result in a file. In this
window, the user can select the result file name, its directory, and type of file.
The user can export the results from both the Table and Graph windows (Figs. 5.15 and 5.16).
A click on export button opens the MS Excel program and a file in it to export the results to
the excel sheet. The user can use these results for further calculation. If the user exports the
result from the Graph window the program exports both the table and graph, while in case of
Table window it only exports the table. The user can save the excel file with an appropriate
name at a desired location.
Chapter 5– 15
In the Graph window, a click on this button opens the standard MS window to save the graph
in different form in a separate file (see Fig. 5.17); the user can choose the form in the type of
file.
In the Interactive results window (Fig. 5.14), the Save button is to save all the selections made
at one time into a file which can be reloaded next time using the Load buttons. There are two
load buttons; (i) with region/scenario substitution (Load/wS), and (ii) without region/scenario
substitution (Load/nS). The user may like to define a set of tables/graphs once and get this set
for different regions in a multi-region study or for different scenarios of a case study. The first
load button facilitates loading the file containing selected tables/graphs. The file name is
given by the user in the file field. In the fields for case and scenario selection, the user can
change the selection and press Load/WS button to get same set of tables for the selected
region/scenario.
The clear button is to clear the selections from the Curves table. A click on this button clears
all the rows of selection given in the Curves table in the lower part of the window (Fig. 5.14).
In this mode, the program gives more freedom to select its generated variable names for
extracting the solution of the model. For this purpose, the user needs to open and edit a file,
called cin file. For each data entity defined in the model, the program generates a variable
name using the user-defined names. In the cin file, the user can get values of these variables in
the solution file. Using these variables, the user can also define an algebraic relation to
compute some new variables for extracting result.
The program facilitates the user to get the program-generated variables which are categorized
into seven groups. The program shows categories of these variables, and a list of variables
included in each category. For example, the user can get the variables used for installed
capacity of a technology and the unit investment cost of it to compute total investment
required to build that technology in the solution.
The following subsections discuss how to open and edit a cin file, and how to get the results
in tabulated/graphic form.
The Edit command in the main window of the MESSAGE program becomes active after a
case study is opened. On the dropdown menu of the Edit command (Fig. 5.18), a click on
“cap input file” opens a window to select a cin file from the list. This window shows a list of
cin files created in the selected case study (Fig. 5.19). On selection of cin file, the progamme
opens a window for selection of a scenario (Fig. 5.20). On selection of a scenario, the
programme opens a window for editing of the selected cin file for the selected scenario (Fig.
5.21). Section 5.2.3 discusses how to prepare a table in the cin file.
If there is no cin file created earlier, selection of “cap input file” command (Fig. 5.18), opens
the window for selection of scenario (Fig. 5.20). On selection of a scenario, the programme
shows the edit window (Fig. 5.21) for creation and editing of a new cin file. The user enters
name of the cin file in the file field.
Chapter 5– 17
FIG. 5.20. Window for Selecting a Scenario to Edit an Existing or Create a New cin File.
Chapter 5– 18
In the cin file window (Fig. 5.21), there is one data field that shows name of the cin file. For a
new cin file, by default, the program shows name of the selected case as file name. The user
can edit this file name. There are two data fields to enter name of a table that the user wants to
prepare. If the user does not edit the title field, the program shows table name as title in the
table/graph. Because the user can enter more than one table in a cin file, this field also lists all
the tables defined in the cin file. A click on the arrow in this field lists names of all the tables.
A click on a table name selects it for editing. The unit field is to enter units of the computed
variables defined by the user for a table.
In Fig. 5.21, below the button bar, the program shows a framework to compute some new
variables using the solution file. The user can get the results of the new variables in a form of
table/graph. The following subsections discuss windows attached with these buttons.
(a) Add a table
In a cin file the user can define as many tables as he likes. A click on the Add button refreshes
the framework and shows a default name for the new table in title field (Fig. 5.21). The user
can edit this name followed by a hit on the Enter key. If the user does not edit the title file, the
program shows the name of the table/graph as its title.
In the framework, the user first gives a name of the new variable and defines an algebraic
expression to compute it. After completing an equation, the user can press enter key to edit a
new variable and its equation. Section 5.2.3 discusses how to edit an equation in this
framework.
A click on the Delete button deletes the table opened in the framework. Every time the user
clicks on the Delete button, the program automatically opens the next table and deletes it (Fig.
5.21).
On the cin file window (Fig. 5.21), a click on the “Reorder the table” button opens a two-part
window (Fig. 5.22). In the left part, the program gives names of all tables defined in the cin
file. At the bottom of the left part, the program gives instructions to change the order.
In Fig. 5.22 a click on name of the table, in the left part, selects it for moving to the right part.
The user selects the place in the right part by a click on it. If there is no name in the right part,
the user can click anywhere, and the program moves the selected table from the left part to the
first place in the right part. If there is a name in the right part, a click on it moves the selected
table after it.
A click on a name in the right part moves it to the end of the list given in the left part. The
user should be careful, that in reordering all table names are placed in the right part because
the program keeps only those names that appear in the right part and the remaining tables are
lost.
(d) Edit the title of the table and some other parameters
On the button labeled “Edit title file” (Fig. 5.21), a click opens a window to edit a file that
will contain title of the table and its format (Fig. 5.23).
On selection of a file, the program opens a window to give title of the table and other related
information (Fig. 5.24). The program sets format of a table by default which the user can re-
define. A click on the “Reset” button clears the existing format, while a click on the
“Defaults” button sets default values in all the fields given in the window.
In this window (Fig. 5.24), data fields are given to enter title and subtitle of the table, title of
the unit, and selection of years for reporting of results. Beside each field, the default value is
shown. By default, the program shows result for all model years.
Two rows of toggles are i) to choose if base year values should be shown, ii) and to select
print direction of the time series values in the table; whether years are reported vertically (i.e.
in a column) or horizontal (i.e. in a row).
The format field is to enter format of the values reported in the table i.e. total number of digits
and digits after the decimal point. By default, the program displays results up to 8 digits with
2 after decimal point. The field labeled “tabeleformat”is to select one of the predefined
Chapter 5– 21
formats for tables. A click on the arrow in this field shows the list of these predefined formats
that include Std, tbl, Tab for tab separated ASCII file, and Tex for text file.
In the main cin file window (Fig. 5.21), a click on the Format table button opens a window to
edit format of a table (Fig. 5.25). This format may be applied to all Tables defined in a cin file
if the user clicks on the “Apply to all” button.. The program provides a facility to compute
some summary variables such as the row/column sum for tables defined in a cin file. In this
window, the user can choose the following calculations on the table:
• sum of columns (i.e. a click on yes toggle beside the totcol: label).
• sum of rows (i.e. a click on yes toggle beside the totrow: label).
• average value of each column (i.e. a click on yes toggle beside the avgcol: label).
• average value of each row (i.e. a click on yes toggle beside the avgrow: label).
• minimum value of a column.
• maximum value of a column.
• minimum value of a row.
• maximum value of a row
• print direction of time series data (vertical or horizontal).
In the table format window (Fig. 5.25), the user can also enter:
• Column width.
• Format of the values.
• Number of digits after comma.
• Points for offsetting title from the left.
• Reported program name.
Chapter 5– 22
FIG. 5.25. File Window for Editing Format for One or All Tables.
The user can also edit format of a graphs made from a table defined in a cin file. A click on
the Graphic format button opens a window (Fig. 5.26) to enter name of the plot file and to
choose variables to make a graph. A double clink in the field labeled “graphcols” opens a
window that shows list of all variables defined in the cin file. The user can select the variable
and its colour for it the graph. Two toggles are given to choose if the graph is filled or not,
and if it is cumulative or not. A third toggle is to select if the lower limit of y-axis is zero or
not for a graph.
The user can select colors for the graph. A double click in the field labeled “graphcols:” opens
a window showing the list of variables names defined in the table and a data field for each
variable (Fig. 5.27). A click on the arrow in a field lists names of all the colours to choose
from. A click on a color selects it for the variable and the colour name appears in the filed.
A click on the Save button saves the format for a graph of a selected Table while a click on
“Apply to all” saves format for all graphs.
Chapter 5– 23
FIG. 5.26. Window for Editing Format of a Graph made in cin file.
FIG. 5.27. Window for Selecting colours for a Graph Made in a cin file.
(g) Search
In the Edit window (Fig. 5.21), a click on the Find button opens a window to enter the word to
be searched in the cin file. The program brings the control back to the cin file and starts
searching. The two buttons labeled “Next” and “Prev” can be used to search the next
(previous) occurrence, respectively.
5.2.3. Preparation of a Table in a cin File
The program generates variable name for each data entity defined in a model. In the cin file
window, the user can compute a new variable using these variable names. The program gives
a frame to enter an algebraic relation or an equation to compute a new variable (see the lower
portion of the cin file window in Fig. 5.28). A click on the Add button refreshes this frame to
enter equations for the new variable for preparing a table (Fig. 5.28).
The user enters name of a new variable followed by the equation sign. Above the framework
(Fig 5.28), there is a row of operators. A click on an operator places it in the equation. A click
on the left part of the mouse is used to place the cursor at the required position, and a click on
the right part of the mouse is to get the set of commands used for editing i.e. copy, paste, cut,
delete, conversion, name and Insert (see Fig. 5.28).
Chapter 5– 24
The Insert command is used to insert name of a data entity from the solution file. The
program facilitates the user in selection of a data entity. For that purpose, the program has
divided all data entities into five categories: Technology, Storage, Resource, Relations,
Demand, and Energy forms.
As discussed in Chapter 4 (Section 4.4.5), the program maintains a dictionary of all variable
names of the model. For preparing a table, the user has access to this dictionary in the cinfile
window (Fig. 5.28). A click on the dictionary button will open a separate window to search a
variable name. However, the user will need to enter an aspect of the technology him/herself.
A right click on the mouse followed by selection of the Insert command shows the list of six
data categories and one category of aspects (Fig. 5.29). A click on any of these categories
opens a new window to show data entities defined in that category and a set of related aspects
of these data entities. In this two parts window, the left hand part shows the list of all data
entities defined in the model under this category, and the right part shows list of aspects.
For example, a click on the Technology group (Fig. 5.29) opens the window that gives the list
of all technologies defined in the model (Fig. 5.30). In the right hand part, there is a list of
aspects that can be extracted on technologies. Selection of a technology (click on the name)
followed by selection of an aspect (click on an aspect) makes one data entity to be extracted
from the solution file. After the selection a click on the Ok button inserts the model-generated
name for the selected data entity in the equation where the cursor is placed. For example, a
Chapter 5– 25
technology name followed by a colon and inv code defines a variable to extract investment on
the technology in the optimal solution.
FIG. 5.29. File Window to Select a Data Group to Insert a Variable in the cin File Equation.
In the right hand side of an equation, the user can insert an operator between the model-
generated variables to compute the new variables for the table. The user can enter back slash
(/) to continue the right side of the equation to the next line.
A click on the Resources option (Fig. 5.29) opens a window to list all the resources defined in
the model (Fig. 5.31) and the resources related aspects. A click on a resource name and an
aspect followed by a click on the Ok button, inserts the program-generated name for the
selected aspect of the selected resource.
The MESSAGE program allows defining of 4 types of constraints/relations for the energy
system (Subsection 3.4.5). The right click on the mouse followed by a selection of Relations
dropdowns a list of these four categories of constraints/relations (Fig. 5.32a).
FIG. 5.31. Window to Select a Resource and its Aspect for the Equation.
In Fig. 5.32a, a click on a category opens a window to show the list of all relations defined in
the selected category. Fig. 5.32b shows a relation defined in group 1. Selection of other
categories opens a similar window showing relations in those categories.
A click on Energy forms (Fig. 5.32a) opens a window to list all energy forms defined at levels
of the energy chain (i.e. the first level) defined in the model (Fig. 5.34) and the related
aspects. A click on an energy name and on an aspect followed by a click on the Ok button,
inserts the program-generated name for the selected aspect of the selected energy form in the
equation in the cin file.
In the cin file window (Fig. 5.35) a click on the Save button saves all the tables defined in the
cin file.
Chapter 5– 29
FIG. 5.36. Window to Select a cin File for a Scenario for Calculation
FIG. 5.37. Window for Computing the Tables defined in a cin File.
5.2.8. Getting Tables Defined in a cin File
In the MESSAGE’s main window, a click on the Result command gives the option to get
tables and graphs (Fig. 5.1), which are prepared using the cin file. On the dropdown menu of
the Results command, a click on tables option opens a window to select a table (Fig. 5.38).
The tables window shows all cin files created for a scenario. Besides each file name two data
fields are given, one to select a table defined in that cin file and the other to delete the selected
table. A click on the arrow in the first field gives the complete list. A click on a table name
shows the table in a separate window (Fig. 5.39). This window has the format similar to the
window that displays a table in the interactive mode of extracting results (see Fig. 5.15). The
Chapter 5– 31
window has the buttons to make a graph of the tabulated results, save the table in a file or
export it to an excel file.
FIG. 5.38. Window for Selecting a Table defined in a cin File for a Scenario.
The format for these tables is defined in the cin file that can be modified (see Subsection
5.2.2). In these tables, column headings are names of the new variables defined and computed
in the cin file.
On the dropdown menu of the Results command, a click on Graphs option opens a window to
select a table (Fig. 5.40) for making a graph. This window is discussed above. A selection of a
table name this time opens a window showing a graph of the table defined in the cin file.
Format of the graph is defined in the cin file.
This window is similar to that given for getting graphs in the interactive mode (Fig. 5.16). It
has a set of buttons to get the result in the tabulated form, to save the graph in a file or to
export it to the MS Excel file. An additional Save as button is also given to save the file in a
format of the user choice. A click on the Graph button shows the graph of the table.
Replacement
2
Chapter 1
Introduction
This part of the document contains the mathematical formulation of MESSAGE. The
computer codes of the matrix generator produce equations according to this formulation, the
input data determine the form these equations actually take. In its general formulation
MESSAGE a dynamic linear programming model with a mixed integer option.1 This implies
that all relations that define the structure of a model are given as linear constraints between
continuous variables. The variables of such a model are called ”Columns”, the equations
”Rows”. This nomenclature is derived from the usual notation used to write down linear
models: in the shape of a matrix.
1. Energy flow variables representing an annual energy flow quantity. The unit is usually
MWyr for small regions and GWyr for bigger areas,
The constraints (rows) generated by MESSAGE be grouped into the following categories:
1. Energy flow balances modelling the flow of energy in the energy chain from resource
extraction via conversion, transport, distribution up to final utilization,
3. dynamic constraints setting a relation between the activities of two consecutive periods,
and
1
Nonlinear constraints or a nonlinear objective function can only be defined for a specific problem, because
the nonlinear functions and, if possible, their first derivatives have to be supplied as FORTRAN subroutines for
MINOS.
3
4. counters that are only used for accounting purposes.
Each of the building stones of MESSAGE handled in a separate chapter, which is again
subdivided into sections on columns and rows. The notation used for the variable and
equation names is the same as in the MPS-file. Uppercase letters are used to indicate
predefined identifiers, while lowercase letters represent characters that are chosen by the user
or varied over a set of characters.
In order to keep the notation simple and the mathematical description as short as possible
the more complex features are omitted from the description of the rows and described in an
additional section (see chapter 10 beginning on page 39). Since practically all parameters of
MESSAGE be defined as time series (i.e. change over the planning horizon), the index for the
period is often omitted in the formulation (e.g., for the efficiencies or the plant factors of
conversion technologies).
4
Chapter 2
Conversion Technologies
2.1 Variables
Energy conversion technologies are modelled using two types of variables, that represent
– the amount of energy converted per year in a period (activity variables) and
– the capacity installed annually in a period (capacity variables).
zsvd.elt
where
z is the level identifier of the main output of the technology.
z = U identifies the end-use level. This level is handled differently to all other
levels: It has to be the demand level and technologies with the main output on
this level are defined without load regions.
s is the main energy input of the technology (supply). If the technology has no
input s is set to ”.” (e.g., solar technologies),
v additional identifier of the conversion technology (used to distinguish technologies
with the same input and output),
d is the main energy output of the technology (demand),
e is the level of reduction of demand due to own-price elasticities of demands (does
only occur on the demand level; otherwise or if this demand has no elasticities e
= ”.”),
l identifies the load region, l ∈ {1, 2, 3, ...} or l = ”.”, if the technology is not
modelled with load regions, and
t identifies the period, t ∈ {a, b, c, ...}.
5
If the level of the main output is not U and at least one of the energy carriers consumed or
supplied is defined with load regions the technology is defined with load regions. In this case
the activity variables are generated separately for each load region, which is indicated by the
additional identifier l in position 7. However, this can be changed by fixing the production of
the technology over the load regions to a predefined pattern (see section 10.4): one variable is
generated for all load regions, the distribution to the load regions is given by the definition of
the user (e.g., production pattern of solar power-plants).
If the model is formulated with demand elasticities (see section 10.10), the activity variables
of technologies with a demand as main output that is defined with elasticity are generated for
each elasticity class (identifier e in position 6).
Y zsvd..t,
where
Y is the identifier for capacity variables.
z identifies the level on that the main energy output of the technology is defined,
s is the identifier of the main energy input of the technology,
v additional identifier of the conversion technology,
d is the identifier of the main energy output of the technology, and
t is the period in that the capacity goes into operation.
The capacity variables are power variables. Technologies can be modelled without capacity
variables. In this case no capacity constraints and no dynamic constraints on construction
can be included in the model. Capacity variables of energy conversion technologies can be
defined as integer variables, if the solution algorithm has a mixed integer option.
2.2 Constraints
6
2.2.1 Capacity Constraints
Czsvd.lt,
where
C is the identifier for capacity constraints,
z identifies the level on that the main energy output of the technology is defined,
s is the identifier of the main energy input of the technology,
v additional identifier of the conversion technology,
d is the identifier of the main energy output of the technology,
l identifies the load region, l ∈ {1, 2, 3, ...} or l = ”.”, if the technology is not
modelled with load regions, and
t is the period in that the capacity goes into operation.
For all conversion technologies modelled with capacity variables the capacity constraints will
be generated automatically. If the activity variables exist for each load region separately
there will be one capacity constraint per load region (see also section 10.4). If the technology
is an end-use technology the sum over the elasticity classes will be included in the capacity
constraint.
Additionally the activity variables of different technologies can be linked to the same capacity
variable, which allows to leave the choice of the activity variable used with a given capacity
to the optimization (see section 10.7).
For technologies without load regions (i.e. technologies, where no input or output is modelled
with load regions) the production is related to the total installed capacity by the plant factor.
For these technologies the plant factor has to be given as the fraction they actually operate
per year. All end-use technologies (technologies with main output level ”U ”) are modelled in
this way.
min(t,κsvd )
X
²svd × zsvd...t − ∆(τ − 1) × πsvd × fi × Y zsvd..τ ≤ hctsvd × πsvd .
τ =t−τsvd
If a technology has at least one input or output with load regions, the activity variables and
capacity constraints will per default be generated separately for each load region. This can
be changed by defining the production pattern over the load regions. If the production
pattern remains free, the production in each load region is limited in relation to the installed
capacity separately for each load region, the capacity is determined by the activity in the
load region with the highest requirements. The plant factor has to be given as the fraction
the system operates in peak operation mode (in general this is the availability factor).
7
Maintenance times or minimum operation times could be included by using additional
relations, if required (see section 8).
min(t,κsvd )
²svd X
× zsvd..lt − ∆(τ − 1) × πsvd × fi × Y zsvd..τ ≤ hctsvd × πsvd .
λl τ =t−τsvd
If a technology has at least one input or output with load regions and the production pattern
over the load regions is predefined only one activity variable and one capacity constraint is
generated per period. The plant factor has, like for technologies with load regions and free
production pattern, to be given for the load region with the highest capacity utilization (i.e.
the highest power requirement). The capacity constraint is generated for only this load
region.
min(t,κsvd )
X
∆(τ − 1) × πsvd × fi × Y zsvd..τ ≤ hctsvd × πsvd .
τ =t−τsvd
Many types of energy conversion technologies do not have fix relations between their inputs
and outputs. MESSAGE has the option to link several activity variables of conversion
technologies into one capacity constraint. For the additional activities linked to a capacity
variable a coefficient defines the maximum power available in relation to one power unit of
the main activity.
In the following this constraint is only described for technologies without load regions; the
other types are constructed in analogy (see also section 10.7).
X
svd 0
relσv 0 δ × ²σv 0 δ × zσv δ...t −
σv 0 δ
min(t,κsvd )
X
∆(τ − 1) × πsvd × fi × Y zsvd..τ ≤ hctsvd × πsvd ,
τ =t−τsvd
8
zsvd..lt is the activity of conversion technology v in period t and, if defined so, load
region l (see section 2.1.1),
Y zsvd..t is the capacity variable of conversion technology v (see section 2.1.2).
²svd is the efficiency of technology v in converting the main energy input, s, into the
main energy output, d,
κsvd is the last period in that technology v can be constructed,
πsvd is the ”plant factor” of technology v, having different meaning depending on the
type of capacity equation applied,
∆τ is the length of period τ in years,
τsvd is the plant life of technology v in periods,
t
hcsvd represents the installations built before the time horizon under consideration,
that are still in operation in the first year of period t,
fi is 1. if the capacity variable is continuous, and represents the minimum installed
capacity per year (unit size) if the variable is integer,
lm is the load region with maximum capacity use if the production pattern over the
year is fixed,
π(lm , svd) is the share of output in the load region with maximum production,
svd
relσv is the relative capacity of main output of technology (or operation mode) svd to
0δ
M Y zsvd.t
The dynamic capacity constraints relate the amount of annual new installations of a
technology in a period to the annual construction during the previous period.
o o
Y zsvd..t − γysvd,t × Y zsvd..(t − 1) ≤ gysvd,t ,
where
o
γysvd,t is the maximum growth rate per period for the construction of technology v,
o
gysvd,t is the initial size (increment) that can be given for the introduction of new
technologies,
Y zsvd..t is the annual new installation of technology v in period t.
LY zsvd.t
9
Y zsvd..t − γysvd,t × Y zsvd..(t − 1) ≥ − gysvd,t ,
where
γysvd,t is the minimum growth rate per period for the construction of technologyv,
gysvd,t is the ”last” size (decrement) allowing technologies to go out of the market, and
Y zsvd..t is the annual new installation of technology v in periodt.
The dynamic production constraints relate the production of a technology in one period to
the production in the previous period. If the technology is defined with load regions, the sum
over the load regions is included in the constraint.
X h i
²svd × zsvd..lt − γaosvd,t × zsvd..l(t − 1) ≤ gaosvd,t ,
l
where
γaosvd,t and gaosvd,t are the maximum growth rate and increment as described in section
2.2.2 (the increment is to be given in units of main output), and
zsvd..lt is the activity of technology v in load region l.
If demand elasticities are modelled, the required sums are included for end-use technologies.
X
²svd × [ zsvd..lt − γasvd,t × zsvd..l(t − 1) ] ≥ − gasvd,t ,
l
where
γasvd,t and gasvd,t are the maximum growth rate and increment as described in section
2.2.3, and
zsvd..lt is the activity of technology v in load region l.
10
Chapter 3
Storage Technologies
3.1 Variables
Energy storage technologies are modelled with two types of flow variables, and one or two
types of capacity variables.
The energy flows in a storage go in two directions: into and out of the storage facility. These
two types of flows are represented by two types of activity variables, the input and the
output variables of storage technologies.
The capacity variables represent the capacity for energy input and output and the volume
capacity of the technology. In this case the relation between I/O capacity and volume
capacity is determined by the optimization. Alternatively the relation can be predefined, no
volume capacity variables are generated.
SIzsv.lt,
where
SI identifies storage input variables,
s is the identifier of the energy carrier to be stored,
z identifies the level on that the energy carrier is defined,
v is an additional identifier of the storage technology (this is necessary in the case
that several storage technologies for the same energy carrier are defined),
l identifies the load region in that the energy is put into storage, and
t is the period identifier.
The storage input variables are energy flow variables and represent the amount of fuel s that
is stored in storage with identifier v in load region l and period t (if storing energy entails
energy losses, the variable represents the amount before the losses apply, i.e. the amount used
for storing).
11
3.1.2 Output from Energy Storage Technologies
Ozsv.lmt,
where
O identifies storage output variables,
s is the identifier of energy carrier stored in the technology,
z identifies the level on that the energy carrier is defined,
v is an additional identifier of the storage technology,
l is the load region in that the energy was put into storage,
m is the load region in that the energy is retrieved, and
t is the period identifier.
The storage output variables are energy flow variables and represent the amount of fuel s
that was put into storage in load region l and is retrieved in load region m (if retrieving
energy entails energy losses, the variable represents the amount before the losses apply, i.e.
the amount by that the contents of the storage is reduced).
Y zGsv..t,
where
Y identifies the capacity variables,
z is the level on that this energy form is defined,
G identifies the I/O capacity variables for storage technologies (generation
capacity),
s is the identifier of energy carrier stored in the technology,
v is an additional identifier of the storage technology, and
t is the period in that the new capacity is built.
The I/O capacity variables of storage technologies are power variables and represent the
annual construction of capacity to fill and empty the storage. They can be defined
continuous or integer like the capacity variables of conversion technologies.
Y zV sv..t,
where
Y identifies the capacity variables,
z is the level on that this energy form is defined,
V identifies the volume capacity variables for storage technologies,
s is the identifier of energy carrier stored in the technology,
12
v is an additional identifier of the storage technology, and
t is the period in that the new capacity is built.
The volume capacity variables of storage technologies are stock-pile variables and have an
energy- and not power-related unit. They represent the annual new installation of the
”container”. They can be defined continuous or integer like the other capacity variables. If
the relation between I/O and volume capacity in a storage system is predefined, the volume
capacity is represented by the I/O capacity with this relation as coefficient.
3.2 Constraints
The flows into and out of a storage technology are balanced by the storage balance constraint.
The input/output capacity of the storage is directly determined from the energy flows in the
I/O capacity constraint. The volume capacity is calculated from these variables and either
used to determine the volume capacity variables or once more the I/O capacity variables via
the relation between volume and I/O capacity.
Szsv..lt
Section 10.5 describes the background of the implementation of energy storage in MESSAGE.
In the storage balance constraints the energy flows into and out of the storage technologies
are balanced. MESSAGE keeps track of the time that a certain amount is kept in storage by
using a separate storage output variable for each pair of input and output load regions. In
the following two examples are given; the equations differ for different kinds of storage (e.g.,
daily, weekly, seasonal).
Daily Storage
The energy can only be balanced over the load regions of one day, not between the seasons.
l+m
Xsv 1
²sv × SIzsv.lt − × Ozsv.lmt ≥ 0 ,
m=l+1
ζl,m
13
Seasonal Storage
The storage can be used for all types of load defined in the model, since the season is the
highest category. An adequate amount of the energy stored at the end of the year is put
forward to the next period.
l+m
Xsv
1 1
²sv × SIzsv.lt − fl,m × × Ozsv.lmt −
m=l+1
ζl,m
l+m
Xsv
2 1
fl,m × × Ozsv.lm(t + 1) ≥ 0 ,
m=l+1
ζl,m
fl,m forwards the appropriate amount of fuel to the next period (this is important for
small time steps, for instance ∆t = 1),
(
1 1 f or l < m
fl,m = ∆t − 1
∆t f or l > m ,
(
2 0 f or l < m
fl,m = 1
∆(t+1) f or l > m ,
14
3.2.2 Input/Output Capacity
CzGsv.lt
This equation defines the capacity of storing or releasing energy per unit of time in a certain
storage technology.
l−1
X
²sv
× SIzsv.lt + Ozsv.mlt −
λl m=l−m sv
min(t,κsv )
X
πsv × ∆(τ − 1) × fi × Y zGsv..τ ≤ hctsv,G × πsv ,
τ =t−τsv
where
SIzsv.lt and Ozsv.mlt are the flows into and out of the storage technology v, as described
in sections 3.1.1 and 3.1.2
Y zGsv..τ is the generation capacity of storage v as described in section 3.1.3
²sv is the efficiency of storage technology v,
λl is the length of load region l as fraction of the year,
κsv is the last period in that technology v can be constructed,
πsv is the plant factor of technology v,
∆(τ − 1) is the length of period τ − 1 in periods,
τsv is the plant life of technology v in years,
hctsv,G represents the installations built before the time horizon under consideration,
that are still in operation in period t,
fi is 1. if the capacity variable is continuous, and equal to the minimum installed
capacity per year (unit size) if the variable is integer.
CzV sv.lt
The amount of energy that can be stored (the maximum content at a time) can either be
linked to the I/O capacity or evaluated during optimization. Thus either a predefined storage
technology like batteries can be modelled or the model can have the choice to optimize the
relation between I/O capacity and storage volume.
l
X l
X 1
ζm,l × ²sv × SIzsv.mt − × Ozsv.mnt ×
n=msv +1
ζm,n
m=l−mlsv
15
min(t,κsv )
X
∆(τ − 1) × πsv × fi × Y zV sv..τ
1 τ =t−τsv
− min(t,κsv )
≤ hctsv,V × πsv ,
nl × λl
X
∆(τ − 1) × πsv × fgv × fi × Y zGsv..τ
τ =t−τsv
where
SIzsv.lt and Ozsv.mlt are the flows into and out of the storage technology v, as described
in sections 3.1.1 and 3.1.2,
Y zGsv..τ is the generation capacity of storage v as described in section 3.1.3,
fgv is the relation of I/O to volume capacity,
Y zV sv..τ is the volume capacity variable as described in section 3.1.4,
nl is the number of occurences per year (1 for seasonal, 365 for daily, etc.),
hctsv,V represents the installations built before the time horizon under consideration,
that are still in operation in period t,
fi is 1. if the capacity variable is continuous, equal to the minimum installed
capacity per year (unit size) if the variable is integer,
ζm,l is the decrease parameter as described in section 10.5,
mlsv is described in section 10.5,
16
Chapter 4
Domestic Resources
4.1 Variables
Rzrgp..t,
where
R identifies resource extraction variables,
z is the level on that the resource is defined (usually = R),
r is the identifier of the resource being extracted,
g is the grade (also called cost category) of resource r, g ∈ {a, b, c, ...}.
p is the class of supply elasticity, which is defined for the resource and grade, or
”.”, if no elasticity is defined for this resource and grade, and
t identifies the period.
The resource variables are energy flow variables and represent the annual rate of extraction
of resource r. If several grades are defined, one variable per grade is generated (identifier g in
position 4). Supply elasticities can be defined for resource extraction as described in section
10.11; in this case one variable per elasticity class (identifier p in position 5) is generated.
4.2 Constraints
The overall availability of a resource is limited in the availability constraint per grade, annual
resource consumption can be constrained per grade (sum of the elasticity classes) and total.
Additionally resource depletion and dynamic resource extraction constraints can be modelled.
17
4.2.1 Resource Availability per Grade
RRrg.g..
Limits the domestic resource available from one cost category (grade) over the whole time
horizon. Total availability of a resource is defined as the sum over the grades.
X X
∆t × RRrgp..t ≤ Rrg − ∆t0 Rrg,0 ,
p t
where
Rrg is the total amount of resource r, cost category g, that is available for extraction,
RRrgp..t is the annual extraction of resource r, cost category (grade) g and elasticity class
p in period t,
∆t is the length of period t.
∆t0 is the number of years between the base year and the first model year, and
Rrg,0 is the extraction of resource r, grade g in the base year.
RRr....t
Limits the domestic resources available annually per period over all cost categories.
X X
RRrgp..t ≤ Rrt ,
g p
where
Rrgt is the maximum amount of resource r, grade g, that can be extracted per year of
period t, and
RRrgp..t is the annual extraction of resource r, cost category (grade) g and elasticity class
p in period t.
RRrg.d.t
18
The extraction of a resource in a period can be constrained in relation to the total amount
still existing in that period. For reasons of computerization these constraints can also be
generated for imports and exports, although they do not have any relevance there (they
could, e.g., be used for specific scenarios in order to stabilize the solution).
" t−1
#
X X
t
∆t RRrgp..t ≤ δrg Rrg − ∆t0 Rrg,0 − ∆τ × RRrgp..τ ,
p τ =1
where
Rrg is the total amount of resource r, cost category g, that is available for extraction,
RRrgp..t is the annual extraction of resource r, cost category (grade) g and elasticity class
p in period t,
t
δrg is the maximum fraction of resource r, cost category g, that can be extracted in
period t,
Rrg is the total amount available in the base year,
∆t is the length of period t in years,
∆t0 is the number of years between the base year and the first model year, and
Rrg,0 is the extraction of resource r, grade g in the base year.
RRrg.a.t
Limits the domestic resources available from one cost category per year.
X
RRrgp..t ≤ Rrgt .
p
where
Rrg is the total amount of resource r, cost category g, that is available for extraction,
and
RRrgp..t is the annual extraction of resource r, cost category (grade) g and elasticity class
p in period t.
M RRr...t
19
The annual extraction level of a resource in a period can be related to the previous one by a
growth parameter and an increment of extraction capacity resulting in upper dynamic
extraction constraints. For the first period the extraction is related to the activity in the
baseyear.
X X
o o
RRrgp..t − γrt RRrgp..(t − 1) ≤ grt ,
g,p g,p
where
o
γrt is the maximum growth of extraction of resource r between period t − 1 and t,
o
grt is the initial size (increment) of extraction of resource r in period t, and
RRrgp..t is the annual extraction of resource r, cost category (grade) g and elasticity class
p in period t.
LRRr...t
The annual extraction level of a resource in a period can also be related to the previous one
by a decrease parameter and a decrement resulting in lower dynamic extraction constraints.
For the first period the extraction is related to the activity in the baseyear.
X X
RRrgp..t − γrt RRrgp..(t − 1) ≥ − grt ,
g,p g,p
where
γrt is the maximum decrease of extraction of resource r between period t − 1 and t,
grt is the ”last” size (decrement) of extraction of resource r in period t, and
RRrgp..t is the annual extraction of resource r, cost category (grade) g and elasticity class
p in period t.
M RRrg..t, and
LRRrg..t
The same kind of relations as described in sections 4.2.5 and 4.2.6 can be defined per grade of
the resource.
20
Chapter 5
5.1 Variables
Imports and exports are modelled by variables that represent the quantity imported per year
in a period. A subdivision into countries and further into elasticity classes can be modelled.
Izscp.lt,
where
I identifies import variables,
z is the level on that the imported energy form is defined (usually primary energy
and secondary energy),
s identifies the imported energy carrier,
c is the identifier of the country or region the imports come from,
p is the class of supply elasticity, which is defined for the energy carrier and
country, or ”.”, if no elasticity is defined for this energy carrier and country,
l is the load region identifier if s is modelled with load regions, otherwise ”.”, and
t identifies the period.
The import variables are energy flow variables and represent the annual import of the
identified energy carrier from the country or region given. If supply elasticities are defined for
the import of this energy carrier and country one variable per elasticity class (identifier p in
position 5) is generated.
Ezrcp.lt,
21
where
E is the identifier for export variables, and
z is the level on that the exported energy form is defined (usually primary energy
and secondary energy),
s identifies the exported energy carrier,
c is the identifier of the country or region the exports go to,
p is the class of supply elasticity, which is defined for the energy carrier and
country, or ”.”, if no elasticity is defined for this energy carrier and country,
l is the load region identifier if s is modelled with load regions, otherwise ”.”, and
t identifies the period.
The export variables are energy flow variables and represent the annual export of the
identified energy carrier to the country or region given. If supply elasticities are defined for
the export of this energy carrier and country one variable per elasticity class (identifier p in
position 5) is generated.
5.2 Constraints
Limits the imports of a fuel from a specific country c over the whole horizon.
X X
∆t × Izrcp..t ≤ Irc ,
p t
where
Irc is the total import limit for r from country c,
Izrcp..t is the annual import of r from country c, elasticity class p in period t, and
∆t is the length of period t in years.
Limits the annual imports of a fuel from all countries per period.
X X
Izrcp..t ≤ Irt ,
c p
where
Irt is the annual import limit for r in period t, and
Izrcp..t is the annual import of r from country c, elasticity class p in period t.
22
5.2.3 Maximum Annual Imports per Country
Izrc.a.t
where
Irct is the limit on the annual imports from country c, period t of fuel r, and
Izrcp..t is the annual import of r from country c, elasticity class p in period t.
The annual import level of a fuel in a period can, like the resource extraction, be related to
the previous one by a growth parameter and an increment resulting in upper dynamic
constraints.
X X
o o
Izrcp..t − γrt Izrcp..(t − 1) ≤ grt ,
c,p c,p
where
Izrcp..t is the annual import of r from country c, elasticity class p in period t,
o
γrt is the maximum increase of import of r between period t − 1 and t, and
o
grt is the initial size (increment) of import of r in period t.
The annual import level of a fuel in a period can also be related to the previous one by a
decrease parameter and a decrement resulting in lower dynamic import constraints.
X X
Izrcp..t − γrt Izrcp..(t − 1) ≥ − grt ,
c,p c,p
where
Izrcp..t is the annual import of r from country c, elasticity class p in period t,
γrt is the maximum decrease of import of r between period t − 1 and t, and
grt is the ”last” size (decrement) of import of r in period t.
23
5.2.6 Dynamic Import Constraints per Country
M Izrc..t and
LIzrc..t
The same kind of relations can be defined per country from that the fuel is imported.
The exports of fuels can principally be limited in the same way as the imports. In the
identifiers of the variables and constraints the ”I” is substituted by an ”E”.
24
Chapter 6
Energy Flows
6.1 Constraints
Energy flows are modelled solely by linking the activity variables of the different conversion
technologies and the resource extraction, import and export variables in balance constraints.
These constraints ensure that only the amounts of energy available are consumed. There are
no further variables required to model energy flows.
Energy demands are also modelled as part of a balance constraint: it is the right hand side
and defines the amount to be supplied by the technologies in this constraint.
The following description of the energy flow constraints in MESSAGE is given for the
following set of level identifiers:
X Secondary energy,
R Energy resources.
The identifier of the demand level (U ) which gives it a special meaning (see section 2.1.1) and
imports and exports are given for primary energy. Clearly any other combination of
technologies is also possible.
25
6.1.1 Demand Constraints
U d.....t
Out of the predefined levels each one can be chosen as demand level. However, level ”U ” has
a special feature. This is related to the fact that useful energy is usually produced on-site,
e.g., space heat is produced by a central heating system, and the load variations over the year
are all covered by this one system. Thus, an allocation of production technologies to the
different areas of the load curve, like the model would set it up according to the relation
between investment and operating costs would ignore the fact that these systems are not
located in the same place and are not connected to each other. MESSAGE represents the
end-use technologies by one variable per period that produces the required useful energy in
the load pattern needed and requires the inputs in the same pattern. For special technologies
like, e.g., night storage heating systems, this pattern can be changed to represent the internal
storage capability of the system.
This representation of end-use technologies has the advantage of reducing the size of the
model, because the demand constraints, the activity variables and the capacity constraints of
the end-use technologies do not have to be generated for each load region.
If another level is chosen as demand level or the demand level is not named ”U ”, all demand
constraints for energy carriers that are modelled with load regions are generated for each load
region. The general form of the demand constraints is
X ed
X X eδ
X
d
²svd × ke × U svd.e.t + βsvδ × ke × U svδue.t ≥ U d.t ,
svd e=0 svδ e=0
where
U d.t is the annual demand for d in period t,
U svd.e.t is the activity of end-use technology v in period t, elasticity class e and period t
(see section 2.1.1),
²svd is the efficiency of end-use technology v in converting s to d,
d
βsvδ is the efficiency of end-use technology v in producing by-product d from s (δ is
the main output of the technology),
ed is the number of steps of demand reduction modelled for own-price elasticities of
demand d, and
ke is the factor giving the relation of total demand for d to the demand reduced to
level e due to the demand elasticity.
(ke × U svd.e.t = U svd.0.t, k0 = 1, ke is increasing monotonously.)
F s....lt
26
This constraint, the final energy balance, matches the use of final energy needed in the
end-use technologies and the deliveries of the distribution systems. It is generated for each
load region, if energy form s is modelled with load regions.
X X ed
X
²svs × F svs..lt − ηd,l × U svd.e.t −
svs svd e=0
X ed
X
s
βσvd × ηd,l × U σvd.e.t ≥ 0 ,
σvd e=0
where
F svs..lt is the activity of the distribution technology in load region l and period t (see
section 2.1.1),
²svs is the efficiency of technology v in distributing s,
U svd.e.t is the activity of end-use technology v in period t and elasticity class e,
s
βσvd is the use of fuel s relative to fuel σ (the main input) by technology v, and
ηd,l is the fraction of demand for d occurring in load region l.
T s....lt
This constraint gives the simplest form of an energy balance equation of MESSAGE. It
matches the output of transmission to the requirements of distribution systems. The
difference to other levels (F, X, A) is not built-in, but emerges from the simplicity of energy
transportation (i.e., transportation technologies do usually not have by-products and only
one input). Also big industrial consumers that are directly connected to the transmission
system would have to be included in this constraint. Like level F it does usually exist for all
load regions if they are defined for the fuel.
X X
²svs × T svs..lt − F svs..lt ≥ 0 .
svs svs
where
T svs..lt is the activity of the transportation technology v (see section 2.1.1), and
all the other entries to the equation are the same as in section 6.1.2.
27
6.1.4 Central Conversion Balance
Xs....lt
In principle the secondary energy balance is built up in the same way as the two previous
ones (sections 6.1.2 and 6.1.3). It matches the production of central conversion technologies
to the requirements of the transmission systems. Secondary energy imports and exports of
secondary energy are usually assigned to level X.
X X X
s
²rvs × Xrvs..lt + βrvσ × Xrvσ..lt − T svs..lt +
rvs rvσ svs
X X
IXscp.lt − EXscp.lt ≥ 0
c,p c,p
where
Xrvs..lt is the activity of central conversion technology v in load region l and period t (see
section 2.1.1); if the secondary energy form s is not defined with load regions (i.e.
l = ”.”) and the activity of technology v exists for each load region, this equation
will contain the sum of the activity variables of technology v over the load regions.
²rvs is the efficiency of technology v in converting energy carrier r into secondary
energy form s,
s
βrvσ is the efficiency of technology v in converting energy carrier r into the by-product
s of technology v,
T svs..lt is explained in section 6.1.3, and
IXscp.lt and EXscp.lt are the import and export variables explained in sections 5.1.1 and
5.1.2, respectively.
Ar.....t
This equation matches production and import of primary energy to the requirements of
central conversion, transport and for export. In the general case primary energy does not
have load regions. Some technologies, like, e.g., nuclear reactors need inventories of primary
energy and also leave a last core that is available at the end of the lifetime. It may be
necessary to model by-products of extraction technologies, for instance the availability of
associated gas at oil production sites.
" #
X X X X X
r
²rvr × Arvr...t − Xrvs..lt + βρvs × Xρvs..lt + IArcp..t −
rvr l rvs ρvs c,p
28
X X · ∆(t − τf vs )
EArcp..t + × ρ(f vs, r) × Y Xf vs..(t − τf vs ) −
c,p f vs
∆t
¸
∆(t + 1)
× ι(f vs, r) × Y Xf vs..(t + 1) ≥ 0,
∆t
where
Arvr...t is the activity of technology v extracting resource r,
²rvr is the efficiency of technology v in extracting fuel r (this is usually 1.),
r
βρvs is the efficiency of technology v in producing secondary energy form s from the
by-input ρ,
IArcp..t and EArcp..t are the import and export variables described in section 5.1.1 and
5.1.2, respectively,
τf vs is the plant life of technology v in periods (depending on the lengths of the
periods covered),
Y Xf vs..t is the annual new installation of technology v in period t (see section 2.1.2),
ι(f vs, r) is the amount of fuel r that is needed when technology v goes into operation
(usually this is the first core of a reactor). It has to be available in the period
before technology v goes into operation, the normal unit is kWyr/kW,
ρ(f vs, r) is the amount of fuel r that becomes available after technology v goes out of
operation (for a reactor this is the last core that goes to reprocessing). The unit
is the same as for ι(f vs, r), and
∆t is the length of period t in years.
Rr.....t
The resources produced by the extraction technologies in a period can come from different
cost categories (also called grades), which can, e.g., represent the different effort to reach
certain resources. Short-term variations in price due to steeply increasing demand can be
represented by an elasticity approach (see section 10.11).
X X
RRrgp..t − Arvr...t ≥ 0 ,
g,p rvr
where
RRrgp..t is the annual extraction of resource r, cost category (grade) g and elasticity class
p in period t, and
Arvr...t is the activity of extraction technology v in period t (as described in section
2.1.1).
29
Chapter 7
Stock-piles
7.1 Variables
Generally MESSAGE does not generate any variables related to an energy carrier alone.
However, in the case of man-made fuels, that are accumulated over time, a variable that
shifts the quantities to be transferred from one period to the other is necessary.
Qf b....t,
where
Q identifies stock-pile variables,
f identifies the fuel with stock-pile,
b distinguishes the variable from the equation, and
t is the period identifier.
The stock-pile variables represent the amount of fuel f that is transferred from period t into
period t + 1. Note that these variables do not represent annual quantities, they refer to the
period as a whole. These variables are a special type of storage, that just transfers the
quantity of an energy carrier available in one period into the next period. Stock-piles are
defined as a separate level. For all other energy carriers any overproduction that occurs in a
period is lost.
7.2 Constraints
Qf.....t
30
Q is a special level on that energy forms can be defined that are accumulated over time and
consumed in later periods. One example is the accumulation of plutonium and later use in
fast breeder reactors.
f
²svf × zsvf u.lt − βsvφ × zsvφ..lt ) + ∆t × ι(svd, f ) × Y zsvd..(t + 1) −
where
f is the identifier of the man-made fuel (e.g. plutonium, U233 ),
τsvd is the plant life of technology v in periods,
ι(svd, f ) is the ”first inventory” of technology v of f (relative to capacity of main output),
ρ(svd, f ) is the ”last core” of f in technology v, see also section 6.1.5,
∆t is the length of period t in years,
zf vd..lt is the annual input of technology v of fuel f in load region l and period t (l is ”.”
if v does not have load regions), and
Y zf vd..t is the annual new installation of technology v in period t.
31
Chapter 8
User-defined Relations
8.1 Constraints
The user-defined relations allow the user to construct constraints that are not included in the
basic set of constraints. For each technology the user can specify coefficients with that either
the production variables (see section2.1.1), the annual new installation variables (see section
2.1.2) or the total capacity in a year (like it is used in the capacity constraints, see section
2.2.1) can be included in the relation. The relations can be defined with and without load
regions, have a lower, upper or fix right hand side or remain free (non-binding) and be related
to an entry in the objective function, i.e., all entries to this relation are also entered to the
objective function with the appropriate discount factor. There are two types of user-defined
constraints, for which the entries to the objective function–without discounting–are summed
up under the cost accounting rows CAR1 and CAR2 (see chapter 9).
The formulation of the user-defined relations is given for relations, that are related to the
main output of the technologies. It is also possible (e.g., for emissions) to relate the
constraint to the main input of the technology, i.e. the amount of fuel used. In this case the
efficiencies (²) would be omitted from the formulation.
N m.....t or P m.....t
Relations without load regions just sum up the activities (multiplied with the given
coefficients) of all variables defined to be in this constraint. If a technology has load regions,
the activity variables for all load regions of this technology are included. If the total capacity
of a technology is included, all new capacities from previous periods still operating are
included, if new capacities are included, the annual new installation of the current period is
taken.
X ed
X t
X
romt × U svd.e.t × ²svd + rcmt +
svd svd × Y U svd..τ
svd e=0 τ =t−ip
32
"
X X
romlt
rvs × zrvs..lt × ²rvs + romt
rvs × zrvs...t × ²rvs +
rvs l
f ree
t
X
≥ rhst
rcmt
rvs × Y zrvs..τ
m
,
= rhstm
τ =t−ip
t
≤ rhsm
where
U svd.e.t and Y U svd..t are the activity and capacity variables of the end-use technologies,
zrvs..lt, zrvs...t and Y zrvs..t are the activity variables of technologies with and without
load regions and the capacity variables of the technologies,
²rvs and ²svd are the efficiencies of the technologies; they are included by the code,
romt
svd is the relative factor per unit of output of technology v (coefficient) for relational
constraint m,
rcmt
svd is the same per unit of new built capacity,
romlt
rvs is the relative factor per unit of output of technology v (coefficient) for relational
constraint m, load region l,
rcmlt
rvs is the same per unit of new built capacity,
The user defined relations can be defined with load regions. Then all entries of activities of
technologies with load regions are divided by the length of the according load region resulting
in a representation of the utilized power.
X ed
X t
X
romlt × U svd.e.t × ²svd + rcmlt +
svd svd × Y U svd..τ
svd e=0 τ =t−ip
"
X romlt
rvs
× zrvs..lt × ²rvs + romt
rvs × zrvs...t × ²rvs +
rvs λl
33
f ree
t
X
≥ rhst
rcmlt
rvs × tl × Y zrvs..τ
ml ,
= rhstml
τ =t−ip
t
< rhsml
where
U svd.e.t and Y U svd..t are the activity and capacity variables of the end-use technologies,
zrvs..lt, zrvs...t and Y zrvs..t are the activity variables of technologies with and without
load regions and the capacity variables of the technologies,
²rvs and ²svd are the efficiencies of the technologies; they are included by the code,
romlt
svd is the relative factor per unit of utilized capacity of technology v (coefficient) for
relational constraint m in load region l, period t (this constraint is adapted to
represent the utilized power, as stated above),
rcmlt
svd is the same per unit of new built or installed capacity,
romlt
rvs is the relative factor per unit of output of technology v (coefficient) for relational
constraint m, load region l,
rcmlt
rvs is the same per unit of new built capacity,
N m.....t or P m.....t
The change of activities over time can either be limited or included in the objective by
constructing relations between periods: The relations expresses the difference between the
annual activity in a period and the following period. This difference can either be limited or
included in the objective function.
" ed
X X m(t−1)
romt
svd × U svd.e.t × ²svd − rosvd ×
svd e=0
ed
#
X X h
U svd.e.(t − 1) × ²svd + romt m(t−1)
rvs × zrvs...t × ²rvs − rorvs ×
e=0 rvs
34
"
X X
zrvs...(t − 1) × ²rvs ] + romlt
rvs × zrvs..lt × ²rvs − roml(t−1)
rvs ×
rvs l
f ree
#
X
≥ rhst
m
zrvs..l(t − 1) × ²rvs t ,
= rhs m
l t < rhsm
where
U svd.e.t is the activity variable of the end-use technologies,
zrvs..lt and zrvs...t are the activity variables of technologies with and without load
regions,
²rvs and ²svd are the efficiencies of the technologies; they are included by the code,
romt
svd is the relative factor per unit of output of technology v (coefficient) for relational
constraint m, period t,
romlt
rvs is the relative factor per unit of output of technology v (coefficient) for relational
constraint m, load region l, and
rhstm and is the right hand side of the constraint.
For this type of constraints only the ro-coefficients have to be supplied by the user, the rest is
included by the model. It can be defined with and without load regions.
The second type of user defined relations differs from the first one in the fact that the
activity of the end-use technologies is multiplied by ke and therefore represents the
production without reduction by demand elasticities.
Thus this constraint can be applied to force a certain reduction level due to the elasticities
reached in one period to be also reached in the following period, allowing the interpretation
of the reduction as investments in saving. The coefficient of the technologies supplying a
demand have to be the inverse of this demand in the current period, then. This constraint
has the following form:
ed
X X κe
U svd.e.t × ²svd × −
sv e=0
U d.t
ed
X X κe
U svd.e.(t − 1) × ²svd × ≤ 0,
sv e=0
U d.(t − 1)
where
the coefficients are supplied by MESSAGE. The user can additionally define multiplicative
factors for these coefficients.
35
Chapter 9
9.1 Constraints
The different types of costs (i.e. entries for the objective function) can be accumulated over
all technologies in built-in accounting rows. These rows can be generated per period or for
the whole horizon and contain the sum of the undiscounted costs. They can also be limited.
The implemented types are:
CCU R – fix (related to the installed capacity) and variable (related to the production)
operation and maintenance costs,
CCAP – investment costs; if the investments of a technology are distributed over the
previous periods, also the entries to this accounting rows are distributed (if the
capital costs are levellized, the total payments in a period can be taken from
CIN V ; CCAP shows the share of investments in the according period, then),
CRES – domestic fuel costs,
CAR1 – costs related to the user defined relations of type 1 (see section 8),
CAR2 – costs related to the user defined relations of type 2 (see section 8),
CRED – costs for reducing demands due to demand elasticities, only related to
technologies supplying the demands directly,
CIM P – import costs,
CEXP – gains for export, and
CIN V – total investments (in case of levellized investment costs, see CCAP )
FUNC
In its usual form the objective function contains the sum of all discounted costs, i.e. all kinds
of costs that can be accounted for. All costs related to operation (i.e. resource use, operation
36
costs, costs of demand elasticities,...) are discounted from the middle of the current period to
the first year. Costs related to construction are by default discounted from the beginning of
the current period to the first year. By using the facility of distributing the investments or
accounting during construction these costs can be distributed over some periods before or
equal to the current one (see section 10.2). This distribution can also be performed for user
defined relations.
ed
"
X X X
²svd × U svd.e.t × ²svd × κe × (ccur(svd, t) + romt
svd × car2(m, t)) +
svd e=0 m
# t
X X X
cred(d, e) + romt
svd × car1(m, t) + ∆τ × Y zsvd..τ × cf ix(svd, τ ) +
m svd τ =t−τsvd
"
X X X X
Rzrgp.lt × cres(rgpl, t) +
r g l p
#)
X X X X X X
Izrcp.lt × cimp(rcpl, t) − Ezrcp.lt × cexp(rcpl, t) +
c l p c l p
(
X t+t
Xd h
td −τ
βbt × ∆(t − 1) × Y zsvd..τ × ccap(svd, τ ) × f risvd +
svd τ =t
# )#
X X td −τ
rcmt
svd × cari(m, t) × f rasvd,m ,
i m
where
∆t is the length of period t in years,
· ¸∆i
Qt−1 1
βbt = i=1 dr(i) ) ,
1+ 100
· ¸ ∆t
2
t 1
βm = βbt × dr(t) ) ,
1+ 100
37
ccur(svd, t) are the variable operation and maintenance costs of technology v (per unit of
main output) in period t,
mlt
rosvd is the relative factor per unit of output of technology v for relational constraint
m in period t, load region l,
car1(m, t) and car2(m, t) are the coefficients for the objective function, that are related to
the user defined relation m in period t,
car1(ml, t) and car2(ml, t) are the same for load region l, if relation m has load regions,
U svd.e.t is the annual consumption of fuel s of end-use technology v in period t and
elasticity class e,
κe is the factor giving the relation of total demand for d to the demand reduced
due to the elasticity to level e,
romt
svd is the relative factor per unit of output of technology v for relational constraint
m in period t,
cred(d, e) is the cost associated with reducing the demand for d to elasticity level e,
Y zsvd..t is the annual new built capacity of technology v in period t,
cf ix(svd, t) are the fix operation and maintenance cost of technology v that was built in
period t,
ccap(svd, t) is the specific investment cost of technology v in period t (given per unit of
main output),
f rinsvd is the share of this investment that has to be paid n periods before the first
year of operation,
rcmt
svd is the relative factor per unit of new built capacity of technology v for user
defined relation m in period t,
f ransvd,m is the share of the relative amount of the user defined relation m that occurs n
periods before the first year of operation (this can, e.g., be used to account for
the use of steel in the construction of solar towers over the time of construction),
Rzrgp.lt is the annual consumption of resource r, grade g, elasticity class p in load
region l and period t,
cres(rgpl, t) is the cost of extracting resource r, grade g, elasticity class p in period t and
load region l (this should only be given, if the extraction is not modelled
explicitly),
Izrcp.lt is the annual import of fuel r from country c in load region l, period t and
elasticity class p; if r has no load regions l=”.”,
cimp(rcpl, t) is the cost of importing r in period t from country c in load region l and
elasticity class p,
Ezrcp.lt is the annual export of fuel r to country c in load region l, period t and
elasticity class p; if r has no load regions l=”.”, and
cexp(rcpl, t) is the gain for exporting r in period t to country c in load region l and elasticity
class p.
38
Chapter 10
The mathematical formulation of MESSAGE as presented in the previous sections shows the
structure of all constraints as the matrix generator builds them up. The background of the
more complicated features is given here for a better understanding.
The whole time horizon of the calculations is divided into periods of optional length. All
variables of MESSAGE are represented as average over the period they represent, resulting in
a step-function. All entries in the objective function are discounted from the middle of the
respective period to the first year, if they relate to energy flow variables and from the
beginning of that period if they represent power variables. The function to discount the costs
has the following form:
Ctr
ct = t−1
,
Y drk ∆k
(1 + ) × fi
k=1
100
where
Ctr is the cost figure to be discounted,
ct is the objective function coefficient in period t,
1
for costs connected to investments,
fi =
∆t
drt
(1 + 100 )
2
else, and
39
10.2 Distributions of Investments
In order to support short term applications of MESSAGE the possibility to distribute the
investments for a new built technology over several periods was implemented. The same type
of distributions can be applied to entries in user defined relations if they relate to
construction. The distribution of investments can be performed in several ways. There is one
common parameter that is needed for all of these possibilities, the construction time of the
technology [ct].
y = a + bx + cx2 , x = 1(1)ct,
where ct is the construction time. The values of the function are internally normalized to 1,
taking into account the construction time. 3. Equal distribution of the investments over the
construction period. 4. A distribution function based on a logistic function of the type
100
f = ,
1 + e−α(x−x0 )
where
ct
x0 = 2 ,
and
2
α = ct ln ( 100
² − 1) .
g gives the accumulated investment at the time x, x is given in percent of the construction
time. The parameter ² describes the difference of the investment in the different years. ² near
to 50 results nearly in equal distribution, an ² close to 0 indicates high concentration of the
expenditures in the middle of the construction period.
In order to shift the peak of costs away from the middle of the construction period the
function is transformed by a polynomium:
40
where
5000 − d2
b = 100d − d2
, 0 < d < 100 ,
and
1−b
a = 100 .
d denotes the time at that the peak of expenditures occurs in percent of ct.
The distribution of these yearly shares of investments is done starting in the first period of
operation with a one years share, the expenditures of the remaining ct − 1 years are
distributed to the previous periods.
The years representing a period can be subdivided into so-called load regions. This can be
done by either ordering the whole year according to the power requirements for the most
important energy carriers like, e.g., electricity, or by grouping the year into load regions with
similar characteristics (hereafter called characteristic loads), like, e.g., winter days and nights
and summer days and nights. The first option results in an interpolation of the usual
representation of the load curve by a step function (see Figure 10.1), the second one in a
step-function where the time is still ordered in a historic way.
Figure 10.1: Example of an ordered (left) and a semi-ordered load curve (right)
(WD stands fpr winter day, WN for winter night, SD for summer day and SN for summer
night.)
41
10.4 Consideration of Load Variations in Conversion
Technologies
The activity of a conversion technology is generated for each load region, if the main in- or
output energy form is defined to have load regions. In this case the relation of these activities
between the load regions is freely chosen by the model. The relations can be fixed by the user
to reflect a certain fixed production pattern. In this case the activity will only be generated
once and written to the energy flow balances with coefficients reflecting the chosen pattern.
A powerplant operating in baseload mode would for instance have the shares of the load
regions in the year as coefficients in the balances of energy forms with load regions.
For end-use technologies (output level ”U ”) the production is assumed to meet the demand
pattern, the input of the technology is fixed to reflect the according demand variations. This
can also be changed into to a different pattern. This would, e.g., model night storage heating
systems that meet the heat demand of a houshold, but generate a final electricity demand
with a different load distribution, namely at night.
MESSAGE contains a quite complex model of energy storage. Section 3 contains the
mathematical formulation. In order to allow for different types of storage like daily and
seasonal the distribution of demands over the year has to be depicted in a semi ordered load
curve: The user has to define the load regions in a physical order. Daily storage would for
instance need the definition of several parts of the day that are ordered like in an actual day.
The model can then store energy in one part of the day and release it in one of the following
load regions, keeping track of the storage contents in each load region. This loop of storage is
closed for all but seasonal storage, where an appropriate part of the energy stored in the last
load region is delivered to the next period.
The length of time that the content of a storage can be held can also be limited to some
fraction of the time it is dedicated to. An example would be a daily heat storage that can
only keep the heat 80% of the day, after that time it could have too low a temperature to be
used. The loss of energy in the case of heat storage can be modeled by a decay function:
col+1 = col × eζ × δl ,
where
col is the content of storage in load region l,
1
ζ is the decay constant of storage [unit: k ],
k is 1 day for daily storage, 1 year for seasonal storage, etc. and
δl is the fraction of k that lies between load regions l and l + 1 [unit: k ].
42
The amount of energy available from storage is reduced over time according to this function.
If several types of load regions are defined, e.g. weekly and seasonal, (it should rather be
named yearly for reasons of consistency) they are ordered according to the length of the time
period they span. The ”bigger” one (the seasonal) can then work like the smaller one
(weekly), too (see Figure 10.2). The decay of content and limitation on time is only applied
to the biggest type of load the storage works in.
The two basic parts of a storing device, namely the input/output part (for a pumped hydro
storage the generator/turbine/pump part) and the real storage (dam and reservoir) can be
handled in two different ways. One of them is to link them in size, i.e. to fix the content (in
MWyrs or GWyrs) in relation to the generation capacity (in MW or GW), as it is usually the
case with batteries.
The other possibility, which could, e.g., be useful for pumped hydropower storage plants, is
to keep them separate with their own costs and leave the relation of the two open for the
optimization process.
Since MESSAGE can be used for very short time steps, even for steps of 1 year per period,
the implementation of lag-times between input and output of a conversion technology seemed
to be appropriate. One possible application are the reprocessing units for nuclear fuels, which
usually keep the fuels for several years.
The lag time for a technology (keyword lag) is given in years and the period in which the
output is available is calculated beginning from the middle of the period when the input is
required.
A lot of power plants can use different fuels for electricity generation, the highest variability
occurs between oil products and natural gas as fuel. This can be modeled by having two or
43
even more energy conversion variables with different inputs, efficiencies and variable
operation and maintainance costs linked to one capacity in one capacity equation (definition
using keywords adda and activity; see also section 2.2.1).
The same link of different conversion activities can be used to model co-generation of
electricity and heat with a variable output pattern. In this case one of the conversions would
be to electricity (with an efficiency ²e ) and the other one producing a mix of electricity and
the maximal possible share of district heat (producing ²c electricity and δc district heat from
one unit of input). In the latter case the efficiency to electricity (²c ) is lower than in the first
case (²e ), but the overall efficiency is naturally much higher. The two conversion variables
have to be related to the same capacity by a factor giving the relative production of the main
product possible with one unit of installed capacity, which is always related to the first
operation mode. In the terms used above this would mean that the plant can produce ²e
electricity in the first operation mode, while it can produce ²c with the same capacity in the
second operation mode. For the model this means that the electric capacity is not utilized
fully in the second mode, the relation has to be defined by the user. (It would be ²e / ²c in
the described case, but could also be independent from the efficiencies for other technologies.)
The possible contribution of an installation that exists in the base year is kept track of over
time. There are two possibilities to give the necessary information to MESSAGE.
1. Define the capacities that were built in the years iyr, ..., iyr − τ + 1, with iyr = base
year and τ = plant life in years explicitly. These capacities are then distributed to
historic periods of the length ν.
2. Define the total capacity, c0 , that exists in iyr and the rate at that it grew in the last τ
years, γ. This information is then converted to one similar to 1. by using the function:
γ −ν − 1
y0 = c0 ,
ν(γ −τ − 1)
τ
yt = y0 γ −t × ν , t = 1(1) ,
ν
where
yt is the annual construction in period −t, (0 = base year),
γ is the annual growth of new installations before the base year,
c0 is the total capacity in the base year,
44
τ is the plant life, and
ν is the length of the periods in that the time before the base year is divided.
The right hand sides in the capacity constraints are derived by summing up all the old
capacities that still exist in a certain period (according to the plant life). If the life of a
technology expires within a period, MESSAGE takes the average production capacity in this
period as installed capacity (this represents a linear interpolation between the starting points
of this and the following period).
If a capacity of a technology is built in one of the last periods its life time can exceed the
calculation horizon. This fact is taken care of by reducing the investment costs by the
following formula:
τp −ν t+k−1
X Y 1
k=1 τ =t
1 + drτ
Ctr = Ct × τp t+k−1
X Y 1
k=1 τ =t
1 + drτ
where
ν is the number of years the technology exists after the end of the calculation
horizon,
drτ is the discount rate for year τ ,
τp is the plant life in years,
Ct is the investment cost in year t, and
Ctr is the reduced investment.
45
The form of the own price elasticity function of demand is
· ¸²
Q P
= ,
Qr Pr
where
Qr is the reference demand level,
Pr is the reference price level, and
² is the elasticity, (assumed to be < 0).
It says that the demand will decrease by a factor of x² if the price rises by x. This function is
approximated by a step-function of the following form:
The demands (Q) and prices (P ) are normalized to the reference levels:
Q = q × Qr ,
and
P = p × Pr ,
the normalized values follow the function
q = p² ,
or
1
p(q) = q ² .
To reduce the demand to the level qi the supply has to have the cost
Z 1 h i
1 1 1
c(qi ) = q ² dq = 1 × 1 − qi 1+ ² ,
qi 1+ ²
a function increasing monotonously with decreasing qi (see also Figure 10.3). In absolute
terms this means that the cost would be higher by an absolute value of
Qi
R(Qi ) = c( ) × Qr × Pr
Qr
compared to the cost at the reference level.
The step-function is then defined by choosing certain levels of demands and prices
(Qi, Pi ), i = 1(1)n with Qi < Qr , that fulfil the elasticity function. The code can choose,
which demand level it supplies, but if it supplies a level Qi < Qr it has to pay addititionally
R(Qi ), the cost of reducing the demand to level i.
46
Figure 10.3: Representation of Demand Elasticities
The reaction of the market prices to changes in demand can be expressed as elasticities:
· ¸α
P S
= ,
Pr Sr
where
Pr is the reference price level,
Sr the reference supply level, and
α the elasticity.
c = sα ,
where
P
c = Pr ,
47
and
S
s = Sr .
The relationship is converted to a step-function with n steps, which is shown in Figure 10.4.
f (s1 ) is the cost of supplying amount s1 relative to supplying sr , while f (s1 ) + (s2 ) ist the
relative cost of supplying the amount s2 . The marginal costs are then defined as
R si
si−1 σ α dσ
µ(s) = ,
si − si−1
where
si−1 < s ≤. si
According to the normalized function the total price of buying the amount s is then
i−1
X
tc(s) = µ(sj ) × (sj − sj−1 ) + µ(si ) × (s − si−1 ) .
j=1
S
T C(S) = Pr × Sr × tc( ).
Sr
48
In the matrix this function is implemented as n + 1 additive elasticity classes for resources
and imports ( R0 = Sr, Ri = Si − Si−1 , i = 1(1)n ), which have increasing costs. The code
takes these classes as supply one after the other and has to pay incrasing prices, then.
If the LP-package used to solve a problem formulated by MESSAGE has the capability to
solve mixed integer problems, this can be used to improve the quality of the formulated
problems, especially for applications to small regions.
The improvement consists in a definition of unit sizes for certain technologies that can only
be built in large units. This avoids for instance the installation of a 10 kW nuclear reactor in
the model of the energy system of a city or small region (it can only be built in units of e.g.,
700 MW). Additionally this option allows to take care of the ”economies of scale” of certain
technologies.
This option is implemented for a technology by simply defining the unit size chosen for this
technology (keyword cmix). The according capacity variable is then generated as integer in
the matrix, its value is the installation of one powerplant of unit size.
If a problem is formulated as mixed integer it can be applied without this option by changing
just one switch in the general definition file (keyword mixsw). Then all capacity variables are
generated as real variables.
In combination with MINOS MESSAGE can be applied to problems with a partly nonlinear
objective function or with nonlinear constraints. The requirements are that the functions are
differentiable and convex with respect to the solution space.
In order to use a nonlinear objective or nonlinear constraints the user has to identify the
variables that are to be included with nonlinear coefficients in the input file (keyword nonl;
they will be written to the matrix as first entries in the columns section–as required by
MINOS) and to supply MINOS with an additional subroutine (Funcon for nonlinear
constraints and Funobj for nonlinear objective gradients), which yields the nonlinear part of
the constraints or objective and the first derivatives as required by MINOS.
In order to start a nonlinear problem it can be solved as linear problem in the beginning.
The nonlinear variables can be fixed to user-defined estimates by specifying ”initial bounds”
in the bounds section.
The order in that the nonlinear variables appear in the input file is essential, because the
same order is used for identifying them in Funcon and in Funobj. MESSAGE generates the
activity variables first, then the capacity variables (both of them in the order in that the
technologies appear in the input file). The loops in producing the columns are nested in the
following order:
49
– load regions,
– time periods.
Weights on Activities
The common way to optimize several objectives at the same time is to define weights for the
different types of activities in the model. MESSAGE provides an easy way to do this: It is
possible to define costs that are added to the objective gradients of all technologies that have
coefficients in a specific additional relation (see chapter 8), e.g. all technologies emitting SO2
could get some addition to the objective gradient, if this addition is defined for the relation
accounting for the emissions of SO2 .
Alternatively additive and multiplicative weights for all activities considered in the ”Cost
Accounting Rows” (see section 9.1.1) can be defined. As an example, additional costs (taxes)
put on energy imports could be imposed this way.
The ”Reference Trajectory Optimization Method”1 is an approach to optimize more than one
objective function for a problem in a way that circumvents the necessity to define weights on
the single objectives. It allows to define reference trajectories for all objectives; the solution
will lie on the ”pareto”-optimal border of the feasible region and be as close as possible to all
reference trajectories.
The way in which the pareto-optimal border is approached can either be problem oriented
with an egalitarian approach between the objectives, or aspiration oriented, meaning that
objectives with a reference point that is closer to the overall optimum (the UTOPIA2 point),
get higher influence on the solution.
The objectives can be grouped to nodes, for each of which a multiobjective approach is
taken. The nodes are just summed up in the objective function. This feature is useful if
interconnected models with separate objectives are depicted in one physical model.
1
This method is based on the ”Reference Point Optimization Method, that has been developed at IIASA
and is implemented in the DIDASS system.
2
The UTOPIA point is the combination of all single-objective optima into one overall optimum, which is
usually not in the feasible region.
50
Mathematically the objective functions are summed into a single function that minimizes the
maximum difference between the reference trajectory and the actual value of the function for
each time step. The difference is calculated using the Chebychev norm of the two points
(reference point and actual value). The time steps are usually handled like the nodes, i.e.
each point in time has a single objective. Alternatively the time steps can be included in one
objective, which means that the compromise solution is searched over all objectives and time
steps at once. This algorithm may lead to unrealistic results, since the dynamics of the model
may not be handled adequately.
where
n is the index for the nodes,
t is the index for the time steps,
Jn is the set of objectives in node n,
j is the index for the objectives,
σj is a scaling factor to improve numerical stability (all objectives should have the
same order of magnitude to avoid rounding-off errors),
yj,t is the actual value of objective j in time step t,
ŷj,t is the reference point for objective j in time step t,
αj,t is the scaling factor for objective j in time step t, it represents the way the
pareto-optimal border is approached, and
² is a small number to drive th solution algorithm in the right direction.
If all time steps are to be aggregated into one objective, the sum over t is added to the sums
over the variables instead of being outside the maximum.
The scaling factors are generated depending on a criterion regarding the way in which the
absolutely optimal (and probably infeasible) point is approached:
1.
Problem oriented scaling: αi,t = ȳi.t
1.
Aspiration oriented scaling: αi,t = ui,t −ȳi.t
where
uj,t is the optimal value for objective j in time step t with single-objective
optimization. The respective values for all objective constitute the UTOPIA
point.
51
Annexure B-1
Combined heat and electricity production power plants (CHP) produce heat and
electricity and are characterized with much more efficient utilization of primary energy –
fuel. They replace condensing power plant and boiler-house that correspondingly serves
for electricity and heat production. An example of energy flows in CHP in comparison
with separate electricity and heat production is shown in Fig. 1.
Conventional Electricity
power plant (oil/gas) 172 MWh CHP
453 MWh (oil/gas)
η= 0,38 584 MWh
η= 0,81
Boiler-house Heat
(oil/gas)
302 MWh
335 MWh
η= 0,9
281 110
33
MWh
MWh MWh
Losses Losses
Total primary energy requirement 788 MWh Total primary energy requirement 584 MWh
Figure 1. Energy flows in the case of separate and combined electricity and heat production.
Two different types of combined heat and power plants should be mentioned when their
modeling with the MESSAGE model is considered.
One type is CHP with back-pressure units. In this case steam produced in steam boiler
drives steam turbine and generator and produces electricity. The rest of thermal energy
from steam leaving steam turbine is taken by industrial or residential consumers using
special heat exchanger and heat distribution network. Principal diagram of such type of
CHP is presented in Fig. 2. Electricity production in this case is only possible if heat
demand exists at the same time. If heat consumption is non-existent electricity production
is not possible because steam leaving turbine is not condensed and not cooled
sufficiently.
Main difference of CHP with extraction units is opportunity of electricity production
without heat production. This is possible because of condenser used for cooling of steam
leaving steam turbine. Principal diagram of such type of CHP is presented in Fig. 3. If
Annexure B-2
there is heat demand available in district heating network steam leaving steam turbine is
cooled by heat agent circulating in the network and is used efficiently. If heat demand is
not available steam leaving steam turbine is cooled in condenser and this heat is lost.
Steam
Generator
Fuel input
Boiler Turbine
~
Heat to consumers
Heat exchanger
Heat
consumers
Condensate
Steam
Generator
Fuel input
Boiler Turbine
~
Heat to consumers
Heat exchanger
Heat
consumers
Heat from
consumers
Condenser
Condensate
Heat and electricity output in back pressure CHP is strictly related one with another.
Relation of heat and electricity output is shown in Fig. 4.
Pn
Qn Heat (Q)
Figure 4. Relation between heat and electricity output in back pressure CHP.
Increasing electricity production in back pressure CHP causes increasing heat output
according so called “Back pressure line” shown in Fig. 4. Nominal electrical capacity Pn
corresponds to the nominal thermal capacity Qn.
Main technical parameters characterizing back pressure CHP are:
• Nominal electrical capacity (Pn),
• Nominal thermal capacity (Qn),
• Total fuel efficiency η∑.
As other types of power plants back-pressure CHP’s may use one particular type or few
types of fuel. The easiest modeling of CHP in the MESSAGE model is modeling of
single fuel back-pressure CHP.
B.2.1 Modeling of CHP with back pressure units utilizing one type of
fuel
Technology with two related outputs is used in order to model CHP with back-pressure
units utilizing one type of fuel. Technology representation and energy flows are shown in
Fig. 5.
Annexure B-4
Electricity
alt a Main output a
Main input η’el
Related output a Heat
η’h
Figure 5. Representation of CHP with back-pressure units utilizing one type of fuel in the MESSAGE
model.
Main output of technology may be selected for electricity output or for heat output.
Related output in this case will be for heat and electricity output correspondingly. In
other words allocation of energy form to one or another output is free of choice, however,
capacity of the plant, investment cost, operation and maintenance costs should be
consentaneous with the main output. This means that if electricity is selected for the main
output capacity of the plant means electrical capacity, investment cost and fixed
operation and maintenance cost should be related to electrical capacity and variable
O&M – to electricity output. If heat output is selected for the main output, plant capacity
represents thermal capacity, investment cost and fixed O&M cost is related to this
thermal capacity and variable O&M cost – to heat output.
If for example we have back pressure CHP with following parameters:
Pn = 23.3 MW,
Qn = 102.3 MW,
η∑ = 0.825,
and electricity is selected for the main output of technology, parameters that should be
entered into MESSAGE model are calculated in a following way:
Capacity (historical capacity) P , = Pn = 23.3MW ,
Efficiency of the main (electricity) output
Pn 23.3
η , el = = = 0.153;
( Pn + Qn ) / η ∑ ( 23.3 + 102.3) / 0.825
Efficiency of related (heat) output
Qn 102.3
η ,h = = = 0.672;
( Pn + Qn ) / η ∑ (23.3 + 102.3) / 0.825
Taking into account fixed cost calculated as total annual fixed cost of the plant divided by
electrical capacity (72.52 $/kW/yr), variable cost calculated as total annual variable cost
of the plant divided by electricity output (89.17 $/kWyr), plant factor (0.9), share of
operation time (0.87), investment cost (850 $/kW), life time (30 years) and others screen
of MESSAGE model containing data about above mentioned CHP looks like it is
presented in Fig. 6.
Annexure B-5
Figure 6. “Technologies” screen of the MESSAGE model representing CHP with back-pressure units
utilising one type of fuel.
Numerical value of efficiency of related (heat) output (0.672) is entered into screen
appearing after consecutive press of button “outp” located in part two of the
“Technologies” screen, representing activity related parameters and “Edit/Add”, located
in the appeared screen, shown in Fig. 7.
Annexure B-6
B.2.2 Modeling of CHP with back pressure units using different fuels
in fixed shares
In the case when CHP with back pressure units utilizes few types of fuel in a fixed
proportion it’s representation in the MESSAGE model is almost similar as back pressure
CHP utilizing one type of fuel. There is only one difference in the part two of
“Technologies” sheet representing activity related parameters. One type of fuel should be
selected as main fuel and share of it’s input should be entered into “Value” cell of main
input of technology. Shares of other fuels have to be entered into separate screen
appearing after press of button “inp” in the “Technologies” screen. For example if we
would like to model CHP with back pressure units utilising 80% of natural gas and 20%
of oil, “Technologies” screen would look like it is shown in Fig. 8.
Figure 8. Representation of fixed fuel input shares for CHP with back-pressure units.
Annexure B-7
B.2.3 Modeling of CHP with back pressure units using few different
fuels
In the case when CHP with back-pressure units utilizes few types of fuels ant their shares
are not limited representation of energy flows in such kind of technology is shown in Fig.
9.
Activities
Main output a Electricity
Main input a alt a
(gas) alt b Main output b
Heat
Related output b
Main input b
(oil)
Figure 9. Representation of energy flows in CHP with back-pressure units utilizing two types of fuels.
Separate alternatives of “Activities” “alt a”, “alt b” and so on are used for representation
of different fuel types utilised at the plant. Individually those alternatives have no
differences in their representation described in section B.2.1, except of different fuel
names in “main input” cells. In addition, if efficiency of energy production is different
using different types of fuels this feature may be reflected in different values of
efficiencies both for the main and related outputs. For example, if efficiency of electricity
production using gas is 0.0676 and 0.662 for heat production, and 0.066 and 0.646
correspondingly using oil “Technologies” sheet for CHP representation looks like it is
shown in Fig. 10.
Annexure B-8
Operation of CHP with extraction units is more flexible. It’s operation diagram or
possible heat and electricity relationship is shown in Fig. 11.
Area
Pn
of CHP
Condensing
line operation Back pressure line
Qn Heat (Q)
Figure 11. Relation between heat and electricity output in CHP with extraction units.
In the case when electricity and heat from turbine is fully utilized electrical and thermal
capacities of the plant are changing according “Back pressure line” from zero until their
nominal values Qn (Nominal thermal capacity) and Pn (nominal electrical capacity in
combined heat and electricity production mode). Later, if heat demand is decreasing from
Qn until zero but fuel supply to the boiler remain stable electrical capacity changes
according “Constant fuel input line” until reaches value Pk (Nominal electrical capacity
in condensing mode). If heat demand is absent but fuel supply is increasing electrical
capacity increases from zero up to value Pk along “Condensing line”. Area constrained
by the “Condensing line”, “Back pressure line” and “Constant fuel input line” is area of
possible CHP operation in the case of different proportion of electrical and heat demand
as it was described above.
CHP with extraction units is characterized by set of following parameters:
• Nominal electrical capacity in CHP mode (Pn),
• Nominal electrical capacity in condensing mode (Pk),
• Nominal thermal capacity (Qn),
• Fuel efficiency in condensing mode (ηk).
• Fuel efficiency in CHP mode (Total efficiency) (ηT ).
Annexure B-10
CHP with extraction units, as CHP with back-pressure units may utilize one particular
type or few types of fuel. The easiest modeling of CHP with extraction units in the
MESSAGE model is modeling of single fuel CHP.
B.3.1 Modeling of CHP with extraction units utilizing one type of fuel
Modeling of CHP with extraction units (See Fig. 12) may be considered as linear
combination of two processes going on in:
• Condensing power plant (“alt a”),
• CHP with back pressure units (“alt b”).
η ’h
Figure 12. Representation of energy flows in CHP with extraction units utilizing one type of fuel.
Main output of “alt a” models electricity production in condensing mode. If heat demand
is absent increasing fuel supply (flow in the main input) causes increasing electricity
supply according “Condensing line” shown in Fig. 11. Efficiency of electricity
production is equal to the CHP efficiency in condensing mode η k. Maximal electrical
capacity reaches nominal capacity in condensing mode Pk. Energy flows in links of “alt
b” in this case are equal to zero.
“Alt b” represents CHP operation in pure combined heat and electricity production mode.
Main output of “alt b” in this case represents electricity production and related output –
heat production. Increasing fuel supply (flow in the main input) causes increasing
electricity and heat supply according “Back presure line” shown in Fig. 11. Maximal
electrical capacity reaches it’s nominal value in combined heat and electricity production
mode Pn and maximal thermal capacity – value of nominal thermal capacity Qn. Energy
flow in link of “alt a” in this case is equal to zero.
If heat demand from CHP is lower than Qn but electricity demand in the system is
sufficiently high both “alt b” and “alt a” are active and an extra electricity production
occurs in condensing operation mode (“alt a”). If energy input to technology is the same
Annexure B-11
as for nominal regime relationship between thermal and electrical output is according the
“Constant fuel input line” shown in Fig. 11. If energy input (fuel input) is lower as in
the nominal regime point of CHP operation is in the “Area of CHP operation” shown in
Fig. 11.
In the case when CHP with extraction units is characterized by the set of following
parameters:
Pn = 171.8 MW,
Pk = 208 MW,
Qn = 302.3 MW,
ηk = 0.357,
ηT = 0.81.
parameters for the MESSAGE model may be calculated in the following way:
Efficiency of the main output of “alt a” η el = η k = 0.357,
Efficiency of the main output of “alt b”
Pn 171.8
η , el = = = 0.293;
( Pn + Qn ) / η T (171.8 + 302.3) / 0.81
Efficiency of the related output of “alt b”
Qn 302.3
η ,h = = = 0.516;
( Pn + Qn ) / ηT (171.8 + 302.3) / 0.81
Power relation
Pk 208
pow.rel. =
= = 1.21;
Pn 171.8
“Technologies” screen with entered numerical values of parameters calculated above is
shown in Fig. 13.
Investment costs and fixed O&M costs are related to the CHP electrical capacity in
condensing mode. Variable O&M costs are related to electricity output in condensing
operation regime.
Annexure B-12
a) part of “Technologies” screen representing combined heat and electricity production mode of CHP
Figure 13. Representation of CHP with extraction units using one type of fuel in the MESSAGE
model.
Annexure B-13
Approach of CHP modelling with extraction units utilizing few types of fuels in a fixed
proportion is similar as for CHP with back-pressure units (See section B.2.2). However,
fuel shares have to be entered for both “alt a” and “alt b” correspondingly representing
condensing and combined heat and electricity production mode of CHP operation. Screen
for data entrée appear after press of button “inp” in the “Technologies” screen.
B.3.3 Modeling of CHP with extraction units utilizing few types of fuel
in free relation
In this case one technology with multiple input is used for modeling of fuel input to CHP.
This technology is linked to the technology representing CHP with extraction units
utilizing one type of fuel which was described in section B.3.1. Connection of
technologies and possible energy flows in such a case is shown in Fig. 14.
alt a
HFO Main input Electri-
alt a Main output a
city
ηHFO=1 Main output
Main input ηel
alt b
Gas Main input
Main output
ηgas/ ηHFO
alt b Main output b
η’el
Heat
Related output b
For modeling of η’h
For modeling of
unrelated fuel input unrelated electricity
and heat output
a) modelling approach when boiler efficiency is combined in total cycle efficiency of CHP
Annexure B-14
Main output
ηgas/ ηHFO
alt b Main output b
η’el / ηHFO
Heat
Related output b
For modeling of η’h / ηHFO
For modeling of
unrelated fuel input unrelated electricity
and heat output
Figure 14. Representation of technology connection and energy flows in CHP with extraction units
utilizing two types of fuel.
Two modelling approaches can be used for CHP modelling in this case:
a) modelling approach when boiler efficiency is combined into whole CHP cycle
efficiency and is represented in technology modeling unrelated electricity and
heat output,
b) modelling approach using real boiler efficiency which is used for technology
modeling unrelated fuel input.
In the case a) when efficiency of heat and electricity production at CHP is different using
different fuel types one type of fuel has to be selected as the “main” fuel. (The heavy fuel
oil (HFO) is such fuel in our case.) All output efficiencies of technology modelling
unrelated electricity and heat output have to be adjusted to this selected kind of fuel. In
other words parameters ηel, η’el, η’h presented in Fig 14a have to represent real
efficiencies of CHP when heavy fuel oil is used. Efficiency correction for other fuels (in
this case for gas) is made in technology for modeling of unrelated fuel input. In this
relation efficiency of “alt a” representing utilisation of HFO in technology modelling
unrelated fuel input has efficiency η HFO=1 (no efficiency correction for CHP), while CHP
efficiency correction when gas is used is made in “alt b” by dividing boiler efficiency
ηgas by boiler efficiency when HFO is used ηHFO.
When modelling approach using real boiler efficiency is used for technology modeling
unrelated fuel input (Fig 14b) real value of boiler efficiency is used for one selected kind
of fuel. In our case this is done for HFO in “alt a” where real boiler efficiency ηHFO is
shown. Boiler efficiency for other kinds of fuel is represented in relation to boiler
efficiency of selected fuel. In case of Fig 14b efficiency of “alt b” has a value ηgas / ηHFO.
Annexure B-15
This is the same efficiency correction as for case shown in Fig 14a. However, in this case
efficiencies have to be corrected and for technology modeling unrelated electricity and
heat output. This means that whole CHP cycle efficiencies ηel, η’el, and η’h have to be
divided by boiler efficiency of the selected fuel. In our case they are divided by ηHFO
because HFO was used as “selected” fuel.
“Technologies” screen representing technology of unrelated electricity and heat output in
the case of modeling approach a) is the same as in Fig 13. The screen difference when
modeling approach b) is used is only in numerical values of efficiencies. Mainly
technology modeling unrelated fuel input has entries only in efficiency cells, however, it
can be used for representation of the whole boiler and all data about cost, capacity and
others can be entered for this technology. Sometimes this is useful when more detailed
analysis of particular plant has to be performed. Different boiler types, boiler
modernization or other things can be modeled in this case. However, it is necessary to
keep in mind that parameters describing technology modeling unrelated electricity and
heat output (especially cost data) should be also correspondingly corrected.
Combined heat and power plants are efficient technologies for both electricity and heat
production. However, their use is constrained because:
• Heat demand should be in the geographical area near the plant,
• Regimes of electricity and heat demand have different shapes.
Heat and electricity demand depend on climatic conditions, type of consumers and other
factors. One possible dynamics of electricity and heat demand is shown in Fig. 15.
Power demand
Figure 15. Electricity and heat demand variation during the year.
Annexure B-16
In the case when electrical and thermal capacities of CHP are adjusted to the demand in
winter time (December or January) shown in Fig. 15 CHP will not have sufficient heat
demand during summer. This will result either reduced electricity production during
summer period (in the case of back pressure units), either CHP operation in condensing
mode (in the case of extraction units). In this turn back-pressure units would require
additional capacities of other power plants to cover electricity demand during winter or
extraction units would be operated in a non efficient condensing mode during summer.
Big seasonal variations in heat demand determine comparatively low capacity factor of
CHP. This reduces efficiency of CHP because of longer payback period of investments.
In order to reduce payback of investments and increase efficiency of CHP it is usually
combined with heat only boilers. Principal schema of CHP with heat only boiler is shown
in Fig. 16.
During short term electricity demand increase excess of heat from turbine is redirected to
heat accumulator, while during short term decrease of electricity demand lack of heat is
covered by heat from heat accumulator. Heat accumulator makes operation of CHP more
flexible. From the other hand heat distribution network in some respect may be
considered as heat accumulator too. Thus, modeling of CHP with heat accumulator may
be necessary in order to reflect better existing reality.
Electricity
CHP distribution
Dummy flow
Extraction Heat to
accumulator
Heat
Boiler Heat from
distribution
accumulator
Heat accumulator
Fig. 18. Part of the MESSAGE model network with CHP consisting from turbine, heat only boiler
and heat accumulator.
X1
ηak
X1
Heat to
accumulator X1’ = X1; X2’ = X2;
X2 X2
ηak
1 Y1
Heat from
accumulator
Y1 = Y1’; Y2 = Y2’;
Y2
-1
X1’ X2’ Y1’ Y2’ X1’ – Y1’ <= active volume;
Fig. 20. “Storage technologies” screen and necessary steps for entry of data about heat accumulator.
Entry of data about heat accumulator starts with pressing of button “Constrains”(1 step
in Fig. 20). Step 2 is selection “storage” in the appeared screen. Step 3 is pressing of
button “New” after which screen shown in Fig.21 appears where name of constrain has to
be entered. Step 4 is fill in data in “Storage technologies” screen.
Fig. 21. Table appearing after press of button “consa” in “Technologies” screen.
Annexure B-20
2000
Lr1 Lr2 Lr3 Lr4 Lr6 Lr7
Lr5
1500
MW
1000
500
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Hours
Approximation Actual
2000
1500
MW
1000
500
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Hours
Approximation Actual
1000
800
600
MW
400
200
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Hours
Approximation Actual
Fig.23. Load regions for heat in region 1, electricity and heat in region 2.
Annexure B-22
Representation of load regions for electricity and heat has to be consistent. This means
that load regions for electricity and heat in each geographical region have to be the same.
They should represent the same season of the year, the same day of the season, the same
number of hours during day and so on.
It is well known that nuclear fuel chain differs from the other ones because of
special properties of nuclear fuel. Since calorific value of nuclear fuel depends not
only on the quantity of “burning” substance but also on fuel residence time, reactor
spectrum, fuel isotopic composition ect., special consideration was given to the
description of nuclear data reduction to MESSAGE data format. Some simple
formulas for the data conversion were given.
One of the possible closed nuclear fuel cycle options was modelled using
MESSAGE. The referenced nuclear fuel cycle includes 2 types of reactor: light water
reactor (LWR) and fast breeder reactor (FR) (see the referenced nuclear fuel cycle
diagram). The steps of the front-end and back-end of nuclear fuel cycle and nuclear
reactor operation were described. The nuclear cycle time lags were taken into
consideration.
It was suggested that LWR and FR spent fuel was reprocessed at separate
reprocessing plants, extracted fissile Pu was accumulated in Pu storage and was
supposed to be used for FR core fuel production.
Different types of storages for short term (cooling), intermediate (before
reprocessing) and permanent (depleted and reprocessed U, HLW) storing of nuclear
materials were modelled.
The reprocessed U extracted at LWR and FR reprocessing plants was
accumulated in 2 separate storages and was not recycled. High-level radioactive
wastes from both reprocessing plants were delivered to HLW storage.
In order to demonstrate MESSAGE ability to model multi-zone nuclear
installations FR was described as a two-zone (a core and a blanket) installation with
proper separate fuel flows. It was suggested that depleted U was used for blanket fuel
production.
One of the possible approaches to the enrichment process modelling was
realized and the appropriate procedure for data preparation was described.
Reactor structure materials consumption and Zr consumption for LWR
assemblies production was modelled.
Estimated costs for nuclear fuel cycle and corresponding references are given.
Annexure C-2
C.1. Introduction
The nuclear fuel cycle (NFC) consists of individual steps and refers to all the
activities related to the use of fissile materials as the main fuel in fission reactors. The
nuclear fuel activities begins with the extraction of uranium ore and ends with the
disposal of radioactive wastes generated during a reactor operation.
There are a lot of possibilities of NFC organizing. The variants depend on the
following options:
a) once-through (open) or closed NFC- depending on whether the spent fuel is reused
or not;
b) once- or multi-recycled spent fuel;
c) fuel composition: UO2, PuO2, MOX, UC, PuN etc.;
d) reactor spectrum (thermal, fast);
e) fuel breeding;
d) NFC fertile material (uranium, thorium).
All the options are interrelated and when chosen define a NFC structure.
NFC steps and relations between them are presented on Fig. 1.
NFC technologies and interrelations can be modelled with different level of
details, but a few particular features of NFC should be taken into account.
Special measures on nuclear fuel management require definite time lags
between some of the NFC steps. In particular, mandatory spent fuel cooling in reactor
cooling pond (minimum 4-5 years for LWR) or utilization of Pu coming from LWR
spent fuel (maximum 3 years [Ref.2]).
For the same reason NFC structure generally contains different types of
storages: cooling, intermediate and final disposal, fissile materials etc.
Nuclear reactors have rather long life- times (up to 60 years). To estimate new
nuclear technologies and fuel cycles competitiveness at least 100 year prognosis
period is required. In order to take into account NFC time lags the prognosis period
should be divided for a year steps.
Activities related to the NFC have became widely spread around the world
and the emergance of new providers and consumers of fuel cycle servicies has
increased the complexity of the market. From the MESSAGE modelling point of view
NFC international market interrelations modelling is a multi-regional problem. A
multi-regional simple case containing “fuel cycle services provider” region was
created. The calculation results obtained showed the ability of MESSAGE to solve
this type of problems.
Annexure C-3
The referenced scheme which was used to illustrate MESSAGE nuclear fuel
cycle data preparation is given on Fig 2.
Resource SWU Fuel Secondary
Reprocessed
ZrZrprod
prod
LWR
FR core fabr.
LWR
Fuel
SWU LWR fuel reproces
LWR
fabr.. sing cooling
t
F_blanket_
dummy LWR
Reprocessed U interim
Enrich
ment FR blanket Reprocessed U
L_dummy
Annexure C-4
fabr.
HLW
disposal
FR
Depleted U
storage
L FR FR core
dummy Fuel
Iron prod cooling
reproces
LWR F_blanc sing FR
U3O fuel
SWU F_bl _dummy blanket
FR _cool
U_e core
F electricity
fuel bl
Zr Reprocessed
iron Pu
Nuclear fuel has some specific features that differ it from hydrocarbon fuels:
1) it should be specially prepared before using in a nuclear reactor; 2) it can be
reprocessed and recycled and 3) spent fuel and radioactive wastes require long-term
management.
The chemical form of U (and/or Pu) is varied at different NFC stages. U is
extracted in the form of oxides (U3O8), than it is converted into UF6 for the
enrichment. Depending on a reactor type different chemical compounds of U and Pu
(oxides, nitrides, carbides) can be used as a nuclear fuel. But in contrast to
hydrocarbon fuels, while burning, the nuclear fuel chemical compound doesn’t
change. It’s important to trace isotopic composition changes of U and Pu because
these are the ones defining the heating of nuclear fuel. So light components of
chemical nuclear fuel compound (O, N, C) may not be taken into consideration. A
special mass unit – tons of Heavy Metal (tHM)- is used for nuclear fuel flows
calculations. The correspondence between (t) and (tHM) is as follows. The molecular
mass of UO2, which is usual fuel composition for LWR, is (238+16*2=) 270. The
share of uranium in this composition is approximately 88%. LWR needs about 23
tHM of uranium as an annual reload, which is 88% of uranium dioxide fuel. The total
amount of UO2 fuel tablets is (23/.88=) 26.1 t. The data used in the following
examples are given in tHM.
Reactor data.
All the mass flow data in MESSAGE are related to the main output:
main input, secondary inputs, secondary outputs – to all the main output value;
To put a nuclear reactor into operation an initial quantity of nuclear fuel (initial
core) that generally differs from the following annual reloads should be loaded.
In case of fast reactor, which has at least two zones (a core and a blanket), two
different types of fuel should be loaded as an initial core. On the capacity form for
FR technology a click on the “corein” button opens a window to input data of core
and blanket initial load (Fig. 3). The data should be entered are specific values related
to the unit of the reactor installed capacity. In our example FR installed capacity is
800 MW, initial load of core fuel is 12.6 tHM and blanket fuel initial load is 11.5
tHM. The corresponding specific values for MESSAGE are 12.6/800=0.0158
tHM/MW (core fuel) and 11.5/800=0.0144 tHM/MW (blanket fuel).
To produce electricity a reactor requires also fuel reloading. Depending on
reactor reload schedule, nuclear fuel can remain in the core from some months to a
few years and a reload can make various shares of initial core. An average annual
reload of nuclear fuel is used for NFC modelling.
The spent nuclear fuel discharged from the reactor must be put to storage for
cooling. In our example cooling storages for core spent fuel and blanket spent fuel are
modelled as separate storage technologies.
Annexure C-7
To link storage and a technology one should click on the button “entries” on
the screen “Storages” and in the field “other technologies” choose the name of the
technology to be linked to the storage from the list suggested by the program.
In the example under consideration spent fuel discharged from the reactor
should be reprocessed after 4 years cooling in the storage. So the “FR_core_cooling”
storage has links with two technologies: FR and FR core fuel reprocessing plant
(FR_repr.) as shown in Fig. 5.
storages: one of them accumulates core spent fuel and the other one accumulates
blanket spent fuel discharged from all FRs. In reality a cooling storage is a part of
nuclear power station built and put into operation at one time with a nuclear reactor. A
user can model individual storages construction using additional user defined
relations.
MESSAGE allows to model direct fuel discharge from a reactor to storage only for a
fuel selected as the main input.
For the fuel selected as a secondary input (in our case it’s blanket fuel) the
spent fuel discharge to a storage is modelled using an additional dummy technology
(F_bl_dummy) which converts the secondary output into the main input. The
discharged blanket fuel (FR secondary output on the FR technology activity form as it
is shown on Fig.7) is transmitted to an auxiliary energy form F_bl_cool (see the
referenced diagram). The same way as for the main input and a secondary input, the
data for a secondary output is related to all the main output value. In our example 8
tHM of spent blanket fuel is discharged from the reactor per 640 MWyr of annual
electricity production.
reprocessing plant after retaining for 4 years in the blanket cooling storage. Here
again we have the opposite signs of the input data. The reprocessing technology
FR_repr takes some amount of blanket spent fuel (-6.01 tHM) from the storage and
the dummy technology puts to the storage a unit of blanket spent fuel (+1 tHM).
In our example we have two reprocessing plants because LWR spent fuel and FR
spent fuel has different isotope composition and requires different management.
According to the scheme described (see the referenced diagram) fissile Pu extracted
at both reprocessing plants is used for FR core fuel production. Reprocessed U is a
by-product which doesn’t return to the cycle. It accumulates in two separate storages
linked to the according reprocessing plants. Radioactive wastes of high level activity
(HLW) from both LWR and FR reprocessing plants are delivered to a HLW storage.
Fig. 10 shows a screen with the data used for FR reprocessing plant (FR_repr)
modelling. In our example we assumed that core and blanket spent fuel are
reprocessed together. To produce 1 tHM of reprocessed Pu the technology requires
5.89 tHM of spent core fuel and 6.01 tHM of spent blanket fuel. Both values are
negative since these are amounts of fuels taken from the cooling storages. The
quantity of HLW extracted per 1 tHM of Pu produced through the reprocessing
process and put into the storage HLW_stor is 0.5 tHM; 10.9 t HM of reprocessed U
per 1 tHM of Pu is delivered to the storage repr_U_FR. The balance of incoming and
outcoming flows differs by quantity of even isotopes of Pu which are not taken into
consideration.
Annexure C-11
The same approach is used to model LWR spent fuel reprocessing plant
(Fig.11). 122 tHM of LWR spent fuel is taken from LWR interim storage (L_int_stor)
to produce 1 tHM of fissile Pu. 4 tHM of HLW and 95 tHM of reprocessed U per 1
tHM of Pu are put in HLW storage and LWR reprocessed U storage.
In the nuclear fuel cycle considered we have 3 different fuel types: FR core
fuel (PuO2), FR blanket fuel (UO2 – depleted U) and LWR fuel (UO2 – enriched U).
No U is required for FR core fuel production as Pu is a product of nuclear
breeding. According to the refferenced scheme Pu extracted at LWR and FR spent
fuel reprocessing plants is delivered to the energy form “Reprocessed Pu” and is used
Unlike FR core fuel to produce LWR fuel and FR blanket fuel U is required.
The same chemical composition of uranium– UO2 – is used for LWR and FR
blanket fuel production. But because of different U235 containment these are different
types of fuel.
In our example FR blanket is loaded with depleted U which is the by-prodact
of the enrichment process. As shown in Fig. 13, we use FR_blank_prod technology to
model FR blanket fuel production. The technology takes 1tHM of depleted U from a
depleted U storage depleted_U_stor to produce 1tHM of FR blanket fuel.
To produce LWR fuel enriched U is required. As a fuel production process
doesn’t include a step of nuclear material preparation, no changes in nuclear fuel flow
happens at this step and the same approach as for modelling FR blanket fuel
production can be used to model LWR fuel production (see Fig. 14).
As was stated above LWRs (and some other reactors) use enriched U as a
nuclear fuel and the content of fissile isotope of U – U235- is different for different
types of reactors.
Annexure C-14
(1) In order to generate a unit of fuel with the enrichment equal to x from
natural uranium, provided that content of 235U in depleted uranium is xdep,
G=
x − x dep (1)
0 . 00714 − x dep
units of natural uranium are required.
(2) To produce a unit of fuel with the enrichment equal to x from natural uranium,
x − 0 . 00714 (3)
G dep =
0 . 00714 − x dep
For our data formula (3) gives 7.24 tHM of depleted U per 1 tHM of LWR
fuel.
Annexure C-15
LWR cooling
storage
L_dummy
Reprocessing
LWR interim
storage
For example reactor cooling pond can be modelled as a separate storage (as in
the referenced case, see also Fig 17). In this case the time lag because of mandatory
cooling of outloaded spent fuel is modelled by retantion time variable which is one of
the MESSAGE input data for storage.
After cooling time (retantion time in cooling storage) LWR spent fuel is
delivered to the interim storage by transport technology (Ldummy) (see the referenced
case scheme).
The corresponding MESSAGE data input is given in Fig 19 (a,b,c). It is
assumed that there is no losses during spent fuel transportation, that is for a unit of
input from LWR cooling storage Ldummy technology delivers a unit of output to the
LWR interim storage (Fig 19 (b)).
The spent fuel accumulated in the interim storage can be reprocessed and
reused in FRs (Fig 19 (c)).
Annexure C-17
Fig 19 (a) LWR spent fuel cooling time is modelled as retantion time.
Fig 19 (b) transport technology connecting LWR cooling storage and LWR interim
storage.
Annexure C-18
Another possible approach to cooling time lag modeling can be used if the
prosess of cooling pond infill is not taking into consideration (for example different
reprosessing options is a central point of a study) and only time lag value is important
for the analysis.
Spent fuel discharged from the reactor can be modelled as a secondary output, and the
fuel cooling in this case is described with a lag parameter for the secondary output
(see Fig 20). Additional technology is needed to deliver spent fuel from the energy
form spent_f_LWR to the interim storage.
As spent fuel in our case must be delivered to the interim storage, MESSAGE
function fix should be used for spent_f_LWR energy form (Fig 21).
The reactor data used in the example considered above was taken from [Ref.3]
as the data presented this report are the most sutable for MESSAGE data format. But
the information resources (reactor data bases, reports, articles etc.) a user may need to
get for an original research work can contain reactor data prepared in a format which
differs from the MESSAGE one. Usually the data in reactor data bases are more
detailed reactor parameters than the data to be entered in MESSAGE. Sometimes an
annual nuclear fuel reload or first core load can be unavailable. If so these input
MESSAGE data can be calculated by the following simple formulas:
365 ⋅ W ⋅ ϕ
Gx = for annual nuclear fuel reload, where
η⋅B
Gx [tHM] is the fuel consumption for annual refueling,
W ⋅ Teff
Gf = for a first core load, where
η⋅B
Teff [day] is mean nuclear fuel residence time.
The installed capacity for LWR we present in our example is 1000 MW, the capacity
factor is 0.8, the efficiency is 0.31 and the fuel burn-up is 41000 MWd/tHM.
According to the formula for annual nuclear fuel reload
(365*1000*0.8/(0.31*41000)=23) 23 tHM are required to produce 800 MWyr of
electricity. As was stated above the annual spent fuel reload should be calculated as
23/800= 0.02875 tHM/MWyr. As Fig.22 shows this annually reloaded spent fuel is
delivered to LWR cooling storage.
If Teff is given ( Teff = 890 days for LWR fuel in our case), a first core load can
be calculated using the correspondent formula G f =1000*890/(0.31*41000)=70 tHM.
For MESSAGE input data a specific first core load should be used :
70 tHM/1000 MW = 0.07 tHM (see Fig. 23).
Annexure C-21
The estimated costs for NFC given in different publications varies in wide
range. Table 1 contains a set of NFC cost data that can be used for MESSAGE
calculations.
Uranium LWR kg U 20 – 80
New installed capacity construction for the system structure obtained is shown
in Fig 25 and 26.
Annexure C-23
According to the model assumptions nuclear power plants built in 1995 had
exhausted their technical resource by 2035 and must be decommissioned and
substituted with the new power plants. This is the reason for the peak in 2035 for
LWR new installed capacities (Fig. 25).
Fig. 25 LWR new installed capacities. Fig. 26. FR new installed capacities.
Nuclear fuel production of LWR fuel and FR fuel (core and blanket) is
presented in Fig. 27. In Fig. 28 fissile Pu quantity used for FR core fuel production
can be seen.
b) Multi-region problem
1) a region which has closed NFC and can provide any kind of fuel services;
4) a region with LWR park, domestic nuclear fuel production and interim
storage.
Region 1:
all fuel cycle services
Enriched U
LWR
fuel SF
LWR
SF U fuel LWR park,
fuel production,
LWR SF storage
park LWR park,
U resources
C.11. Conclusions
MESSAGE can be applied for nuclear fuel cycle modeling, both once-throug
and closed options. All specific features of nuclear fuel cycle can be taking into
account:
Isotopic composition changes for separate isotopes can be taken into account
privided that reactor calculations data for different steps of fuel cycle are available.
References
5. Country Nuclear Fuel Profiles. Technical Reports Series No. 404, IAEA, Vienna,
2001.