[EuroPython] extended abstract for refereed paper at Europython
Conference in Sweden
paul.nolan at nuigalway.ie
paul.nolan at nuigalway.ie
Tue Apr 26 17:05:59 CEST 2005
Hello,
I realise that I may be a little late but below is extended abstract for a paper
for the European Python conference. I could manage to have the full paper in
a couple of days.
best regards,
Paul Nolan
-------------- next part --------------
Implementing Continuous Time Simulation Systems in Python
=========================================================
Professor Paul J. Nolan
Department of Mechanical Engineering
National University of Ireland,
Galway
paul.nolan at nuigalway.ie
EXTENDED ABSTRACT
=================
Computer simulation is very well established in studying complex systems.
Simulation, often called 'the laboratory of management' allows us to develop
a model of a real system (either existing or planned) and to run
WHAT-IF experiments on the model to predict what would happen in the real
system. The earliest of the so-called SPLs (Simulation Programming
Languages) were based on FORTRAN but C based system and subsequently C++
and a plethora of other language based systems evolved. There are a huge
number of SPLs - as early as in the 1980's alone well over 100 systems
were reported. In many cases there was huge overlap between 'new' systems
and existing ones, many were promoted by commercial vendors and, their life
cycle of many of these SPLs and packages has ended.
Originally all simulation was performed on mainframes and simulation
was the preserve of academics or of big corporations. In the past 15 years
or so, with the widespread availability of PCs including notebook computers,
simulation .. Recent trends in simulation includes hierarchical modelling and
object orientation, advanced GUIs including visual model builders, animations
and so-called virtual environments.
Given the proliferation of simulation systems, one might be forgiven for being
less that enthusiastic about the introduction of YASL (Yet Another Simulation
Language). We are not proposing a commercial system but rather an open
source system which will allow us to perform medium scale simulations easily.
There are some very strong arguments for using Python including the fact
that it is scripted, relatively easy syntax, allows rapid development,
object orientated, available on a wide variety of platforms, easily
deployable on the web and open source. The fact that there is a huge
fraternity already using Python and the availability of Numerical Python,
easy database integration and evolving GUI tools such as wxPython also add
to its attraction.
A simulation system SimPy has been reported in the European Python conference.
The SimPy system is for so-called discrete event simulation used for modelling
discrete processes when state changes at discrete times (event times). Another
major class of simulation problems involves the study of continuous time
systems. Such systems comprising physical devices e.g. electric, electronic,
mechanical, hydraulic and pneumatic components. The modelling of there is
based the laws of physics and usually involves differential equations and
coupled algebraic equations. These equations may in general be nonlinear.
This is primarily the focus of our simulation work.
In this paper we describe a very small but yet extremely simulation system
written in Python. It is object orientated and different system models may be
readily incorporated. The simulator uses a simple trapezoidal rule for the numer
ical integration of the nonlinear differential equations describing the system.
The system is interactive and currently uses a command line interface. It has
been used as a teaching aid in the study of computer control of
electromechanical systems. As a specific example, the paper shows results
for the dynamic simulation of an asynchronous generator being driven by a
wind turbine.
Future plans on the incorporation of SFG (signal flow graphs), block diagrams
and BG (bond graphs) for modelling as well use of a GUI, including model
generator and animation system using wxPython is discussed.
More information about the EuroPython
mailing list