Demand Side Management Simulator
A DSM EMCS (or Energy management
control system) system is an automation system that helps reduce electrical
consumption by turning off electrical equipement according to priority and
usage rules to constrain the global electricity demand to a user specified
constrain: the maximum demand.
(for more info see EREN
- Power - Demand Side Management)
DSM Simulator
is a set of tools written in Java to help electrical engineers and energy
consummers to simulate the savings that the use of a DSM system may bring
to them according to their electrical equipment, the consumption profiles
and the maximum demand applied to them.
By varing the maximum demand, consumption profiles or even equipments, the
engineer has the opportunity to fine tune the solution.
The electrical installation is described in a specific language that DSM Sim
compile into Java code, links with its libraries and executes to provide graphical
and tabular text outputs.
The grammar of the description language is defined in JavaCUP
format. However, the original JavaCUP parser has been modified to fix a few
minor bugs and to add custom code entry points. The modified version is supllied
with DSM Simulator.
Being written in Java, DSM Sim is portable to any Java-enabled platform at
the following condition: access to the java compiler must be possible from
a Java program.It's
also better if Java code can access OS-level feature but this not mandatory.
UI interface
is made of AWT frames for the standard version.
Currently, code has been tested on Mac OS 9 and Mac OS X. Only invocation
of the java compiler and class loading has required very limited changes.
However, a Mac OS X specific version has also been written which uses Cocoa-Java
specific features to offer better user interface experience on Max OS X (faster
and better integrated with other OS features).
The AWT-based version should be considered as the basic version for porting
on other platforms.
CodeWarrior, ProjectBuilder, JBuilder projects are supplied along with the
sources.
The description
language lets the user describes individual electrical equipments, their power
consumption (in both kW and kVA) as a function of time, the constrains to
be respected (such as minimum turned-on time, minimum turn-off time, etc.).
Each equipment may be associated to "flows" to describe situation
like a water pump fiiling up a reservoir which has min. and max capacity or
a compressor maintaining the temperature of a cold-room (the output flow being
the increase of the temperature).
Variouses equipment have been defined and more may be defined by subclassing
existing ones.
Among the already defined equipments and constrains are some pure mathematical ones that let the engineer defines random or pseudo-random consumption and flow profiles (like water or light consumption in hotel rooms) or to define consumption for which statistical data (consumption profiles) exists.
Cuurently the definition of the installation is done in a very easy to learn description language which provides an "escape" CODE instruction to allow direct writing of Java code at various level.
Future development:
i. a "sketch" board to let the user defines the electrical installation
in a graphical way;
ii. add description of utility tarification to also output savings in $$$;
iii. based on the same Java technology, develop the associated DSM software
to drive electrical equipments in the real world using TCP to serial bridges
(most control systems and automates use RS485).