Introduction to Modelling and Simulation

advertisement
Chapter 1 Introduction to Modelling and
Simulation
[First Draft CBPrice September 22 2011]
[Revised Oct 3]
[Revised Dec 11]
The Nature of Modelling and Simulation
The Purpose of Modelling and Simulation
We view modelling and simulation as a tool to solve problems, e.g.,(i) how to hit a badminton shuttle-cock
to just clip over the net, or (ii) how to design a wind turbine farm to most optimally extract energy from the
wind and convert it into electricity, (iii) how to design a car suspension system to provide the best ride. You
will experience all of these problems in this module. We also view the problem as relating to a system, a
number of components whose individual behaviour can be described in some way, but also where the
interactions between the individual components can be described. Think of a car as a system. You may
conclude that its components are the engine, the gearbox, the suspension, the wheels the interior. That’s not
a bad choice, and we shall return to this example later.
You may have noticed some common elements in the examples given above. There was first the statement
of the problem context (“car suspension”) but an associated problem goal (“to provide the best ride”). That’s
what modelling and simulation is about. First you have to identify the problem context and then you have to
identify the problem goal. The goal may be something like striving for the “best” or “optimal” solution, or it
may be a “what-if” question, such as to find out what happens if the car hits a sleeping policeman at high
speed. If you were working in a company, then more than likely, the context and the goal will be given to
you. This is the approach we shall take in this Workbook, where we shall consider some models in the fields
of (i) Physics, (ii) Engineering, (iii) Biology and (iv) Sociology. These fields are all highly significant in our
contemporary world; they are the focus of much academic and industrial/commercial research, and your
study of these fields will enhance your own employability!
Today, modelling and simulation is based on the use of the computer. A correctly crafted computer
simulation of a problem will provide a deep understanding of the problem and therefore an advantage to a
commercial company. For example, a deep understanding of car suspension systems (obtained through
modelling and simulation) will give a motorcar manufacturer a competitive advantage in the design of their
suspension systems. Yes, this is also true of “Formula 1”.
Indeed, the existence of the computer has allowed us to simulate (and therefore understand) systems of a
high degree of complexity (that means having a large number of components) such as weather prediction,
climate change, nuclear power station controls and even social interactions (marriage, divorce, panic, riot
behaviour).
The whole point of a simulation of a system is to provide some data showing how that system behaves,
without having to engage with or experiment with the real system in the real world. This data will help us
understand the real system. A modelling and simulation of a potential riot situation would not replicate the
actual riot, by conducting experimental riots (which would involve harm or even loss-of-life). It would be
through the riot model, and its simulation that an understanding of this situation could be obtained, and
therefore used to plan how best manage the real riot situation. So the results of modelling and simulation
have a real use.
A correct simulation of a wind-turbine farm could accurately predict the power output of a particular windturbine design. The simulation would be able to investigate the effects of changing the mechanical design
details of the rotor blades, the power conversion system structure and of expected wind conditions. This
would not be possible in the real physical world, since it is not economically viable to construct real physical
wind turbines to investigate all design possibilities.
Not convinced? You may ask “what is the point of simulating a system when the system exists in the real
world”? That system exists and can be investigated and analysed. Continuing our example of a car
suspension system, well cars exist and so do their suspension systems in the real world, so why simulate?
Think about it. How much time and effort is required to produce 100 variants of a real suspension system,
involving all the associated processes of mechanical engineering? How much time is needed to investigate
these systems and analyse their properties? This will typically involve years and many engineers working on
the project. This is where modelling and simulation realises its power. The investigation of these 100
variants may take one week using the modelling and simulation approach.
Application of Modelling and Simulation
As hinted above, a model and its simulation provide a surrogate for a system in the real world, which means
that it replaces the real-world system in some sense. You may ask again what is the point of working with
this surrogate when the real-world system exists and can be observed? Well, remember that simulation
involves experimentation, finding out what happens when some aspect of the system changes, e.g., when a
wind-turbine is subject to very high speed winds. Performing real-world experiments may not be appropriate
because of the following reasons:
(i)
(ii)
(iii)
(iv)
(v)
It is impossible to perform the real-world experiments, e.g., we can’t control the wind speed near
a wind-turbine. Yet within a simulation we can!
An experiment may have irreversible consequences, e.g., allowing student doctors to perform
treatments may be harmful to real patients. Simulated treatments (such as laparoscopy) within a
simulation can be reversed through a click on the “reset” button.
The problem context may render real-world experimentation too dangerous. Think about
investigating the limits of a nuclear reactor control system, or subjecting a 747 to a real partial
loss of hydraulic pressure. “Simulations are safe”
A real-world problem exists and there may only be one attempt to solve it; there is no room for
experimentation. Think about the Apollo 13 mission where an internal explosion in the fuel tanks
destroyed much of the Command Module functionality. Here there was no opportunity to test out
various ideas. Thanks to a ground-based series of planned simulation experiments, the correct
power-up sequence was obtained, uploaded and executed with the successful return of the Apollo
13 astronauts.
The context may make real-world experimentation too costly, e.g., changing the number of
“express checkout counters” in all supermarkets of a particular chain, to investigate the possible
gains in customer throughput.
(vi)
There may be moral or ethical implications. Is it ethical to try to control the population of one
species in an ecological environment by the introduction of a predator?
This list of justifications for the need for modelling and simulation (which you are invited to extend) leads in
to possible areas of application of modelling and simulation. Here’s some possible examples:
(i)
(ii)
(iii)
(iv)
(v)
(vi)
Education and Training. There is currently research into the use of computer game technology in
the training of doctors (e.g., laparoscopy) and of “triage” within a disaster scenario. Other
approaches used simulated bodies. My own research group is developing physics and
engineering simulations to be used in secondary school and undergraduate courses. Training of
pilots using simulations is important since this avoids the cost of training in real-world planes
and the safety issues involved.
Forecasting. Super-computers are used in weather forecasting with the results we know. It is
impossible to experiment with the weather, so forecasting relies on simulations.
Engineering design. Simulations are used in many engineering disciplines, including the design
of bridges, aircraft, cars as well as medical devices. These simulations avoid the problem of
development costs.
Safety and Risk assessment. Good examples are the evacuation of buildings when there is a
spreading fire, or a terrorist attack; the control of nuclear power stations.
Prototyping. The design and development of a new system usually will involve a cycle of
producing and evaluating prototypes. This may be costly for the development of a new product
which starts out at the “concept” stage, which means it is not based on a previous product. For
example, a manufacturer of solar panels wishes to move into the wind-turbine market. Their
development team suggests that they have a novel product with unique features, but they cannot
construct a real-world prototype, since they do not have the manufacturing skills. Modelling and
simulation would help them to evaluate their concept, to produce a prototype and refine this and
so decide on a new business plan, which leads onto
Making decisions. Continuing the above example, the manufacturer can make a business
decision, whether or not they should extend their product range, into the wind-turbine market.
What is a Model?
You may already have experience of commercial computational models, for example trying out Flight
Simulators, or playing computer games where you control the behaviour of cars. You may have felt that the
underlying simulation was perfect (in the sense that it totally reproduced reality) where you experienced a
high-fidelity graphical display and responsive interaction. Those of you who really drive cars or fly planes
(or even *board) will realise that this is nonsense, in reality the simulations you experienced were far from
perfect.
A model and its computational simulation is not intended to reproduce reality in all of the details of the real
physical world. This is impossible, since the real physical world works on the level of atoms and whereas
the simulation of an atom in computer code is possible (and has been done), this requires a computer
programme, which in itself requires many, many atoms when compiled and stored in memory. So a
computer simulation of reality which reproduces reality requires more atoms that exist in reality. This
implies an increase in complexity, or dimensionality which cannot help us in understanding real-world
scenarios since ultimately it would create a world larger than the world we live in. That is nonsense, and
therefore is the subject of a philosophical reflection. What we need in our modelling and simulation
enterprise is a reduction in the complexity or the dimensionality of the system.
Let’s consider this from the point of view of an automobile manufacturer who wishes to develop a new
suspension system [goal ???] which will enable its cars to negotiate bends at an increased speed. This is a
realistic goal and has been attempted before in the rail industry, where the first attempts at the Advanced
Passenger Train (did they simulate?) failed, but the Virgin “Pendulino” system worked (did they simulate?).
To return to our example, the question is, at what level of detail does the automobile manufacturer need to
model? The suspension system comprises at least, springs and shock absorbers. But springs are made of
geometrical structures (helices) and metals which are also systems. Shock absorbers comprise pistons and
cylinders and gases; clearly they are systems. You get the idea, each system is composed from a number of
(sub-) systems. And moving down the levels of (sub-) systems we experience an increase in complexity.
So what the automobile manufacturer needs to know is which level of complexity, ie which system
description is appropriate to solve the problem goals. This defines the model and its associated simulation. It
is therefore important to understand the problem goals before stepping down to create a model and a
programmed simulation.
Historical Overview
The original computer technology used in modelling and simulation was the analogue computer. Such
computers implemented the required models through various electrical circuits which were connected with
wires. Let’s consider how we would write a computer programme to calculate the change in speed of a
projectile (ball, shuttle-cock or missile) as a function of time. We would code the equivalent of the physics
acceleration = rate of change in speed as 𝑎 =
𝑑𝑣
𝑑𝑡
and so compute the change of speed as ∆𝑣 = 𝑎∆𝑡 and so
write the code speed += acceleration*dT. Of course the acceleration will be defined by the model.
But the important aspect of our computation is that we compute the speed change in a particular interval of
time dT. The analogue computer works differently , it establishes a direct electronic model of the physical
situation, and through tis electronic circuits could simulate the model in real-time (which means that time is
continuous, without the need for a time increment dT. So these simulations were exact in the sense that they
solved exactly the underlying mathematics of the particular model. So why do we not use analogue
computers today in the general realm of modelling and simulation? Whereas the analogue computer was an
expert at solving models based on differential equations (such as describing projectile motion, hydro-electric
power stations or wind turbines), they could not be used to model and simulate other interesting scenarios
such as the spreading of disease, or of fire in space, the behaviour of queues in shopping markets, petrol
filling stations etc.
While analogue computers became commercially viable in the 1950’s, the speed of digital computers and
their software support had a major impact on the simulation industry in the 1960’s. Digital computer
approaches reached a level where they could replicate the results of analogue computers, and moreover,
digital approaches showed they could implement models and provide solutions not possible for analogue
computers. In the 1970s and 1980s software support for digital computer solutions was established, with
many ‘software libraries’ created for scientific and engineering solutions.
Recent years have shown the emergence of a number of professional associations and organisations that are
committed to research and deployment of modelling and simulation, and especially their implementation in
code. Noteworthy are safety-critical systems, especially in the automotive and aerospace industries. For
example the ‘MISRA’, the Motor Industry Software Reliability Association provides guidelines on how to
write C (and C++) code in a safety critical context, within the motor vehicle industry.
[devel here].
The Process of Modelling and Simulation
You can see an outline of the process of modelling and simulation in the figure below.
Project
Description
Conceptual
Model
Simulation
Model
Simulation
Program
Project Description
A M&S project begins with a project description document. This includes the project goals and the required
results of the M&S to achieve the project goals. This document will usually be laden with jargon associated
with the project, which has to be unravelled and interpreted at later stages in the project. Nevertheless, this
document would normally form the basis of further discussions which will lead in to the actual M&S
realisation.
Conceptual Model
This is the starting place for the M&S project. There are various ways to build such a model. For continuous
time simulations we would normally use a model based on differential equations. This would be appropriate
for modelling economics scenarios, rocket flight or car suspension. We could also use Petri Nets which may
be appropriate for modelling the flow of components in a manufacturing process, the flow of information in
an organisation, or the behaviour of shoppers in a check-out queue.
Simulation Model
The simulation model is in effect computer code which captures the details of the conceptual model. There
are many platforms available for the construction of this code, such as Vensim, Modelica, Labview though in
an academic research context the code may be developed in C/C++, Fortran or using Matlab. In terms of our
Computation Visualisation Interaction approach to simulation code, this model is clearly associated with
the computation code. This code captures the details of the conceptual model, but does not include the
algorithms which actually solve the model. For example, a simulation model of interacting predator-prey
populations (such as Lynx and Hares) may establish code which correctly calculates the interactions
between the animals, but does not actually solve the interactions.
Simulation Program
While the simulation model code is intended to correctly “compute” the conceptual model, this code must be
supplemented with additional support code. This falls into two categories: (i) For the case of a continuous
time M&S (such as the Lynx and Hares system), we need additional code to solve the interactions. There are
various approaches to doing this, such as Euler, Runge-Kutta, and this code needs to be incorporated into
our software which clearly is additional computation code. (ii) Additional features need to be provided to
the investigator to provide visualisation of the simulation experiments and interaction with the software to
easily observe key parameters and variables and to change these.
Verification and Validation
Before a simulated model can be used in an experimental investigation it has to be verified and validated.
Here is a way of remembering these and the difference between them
Verification: Are we building the model and simulation right?
Validation: Are we building the right model?
Let’s start with an example. Consider a wind turbine MS. Working from principles of aerodynamics (for the
blades), mechanics (for the gearbox) and electrics (for the generator) we may construct a conceptual model
using differential equations. The task of writing these down correctly and transforming them into correct
computer code falls into the realm of verification, (this is “building the M&S right) Confirming that the
actual behaviour of the equations and code accurately reproduce the behaviour of a real wind-turbine falls
into the realm of validation, (this is building the right Model).
So how would we verify and validate our M&S? Validation can be straightforward. We can compare the
results of our Simulation code with the behaviour of a real wind-turbine for a small set of experiments where
we vary say one parameter such as wind speed. If there is a clear difference between the real data and the
simulated data then the validation fails and we must revisit the whole M&S process.
[insert falling raindrop discussion here]
Verification may also be straightforward, e.g., our model may be cast as a set of differential equations, and
these will be converted into computer code and then solved using some algorithm (procedure). Verification
means checking that this algorithm and computer code implementation actually works. We’re not thinking
about buggy code here, we’re assuming that the code is OK. Rather we are asking the question, does this
code accurately work in solving the differential equations? There are various algorithms we can choose from
to do this. Have we made the right choice and have we implemented this correctly?
Verification can be approached by using the code to solve a simpler problem before moving on to our real
problem. For example, the code written to model and simulate the full control system of a wind turbine
could be tested on a baby problem, such as the thermostatic control of our domestic boiler. If our code fails
this baby problem, then there is no point in applying it to the wind-turbine.
In solving our differential equations which represent our model we need to use a “numerical integration”
algorithm. These algorithms provide only an approximation to the analytical mathematical solution, there is
always an error involved, since we are computing changes at discrete time intervals, whereas real-life time
flows continuously. Often we can control how large this error is, in general to reduce the error we need more
CPU cycles, so there is a trade-off between accuracy of the simulation and how quickly it can be computed.
In this context, verification involves making sure we have an acceptable level of error in our simulation.
So let’s attempt to summarise this.
Verification is done to ensure that (i) the correct algorithm is used to programme the model, (ii) the
programme has been written correctly, (iii) the errors in the simulation are acceptable.
Validation is done to ensure that (i) the Model correctly reproduces the behaviour of the real-world situation
being modelled, (ii) the Model meets its intended requirements. (iii) In some simple cases, the M&S can be
validated against an exact mathematical solution. The process of validation aims to invalidate a model by
pushing the model to its extreme limits. This will provide information about the model’s capabilities and
limitations, and will allow the investigator to know the ‘zone of reliability’ of the model.
Now let’s pull down some of this thinking into one of the tasks on this module, a M&S of the flight of a
badminton shuttlecock. The task involves development of a conceptual model for the flight of a shuttlecock
starting with a consideration of forces on the shuttlecock. Unlike the case of a tennis-ball, the shuttlecock
experiences a large amount of drag due to air resistance. This means that a “mathematical analytical”
solution does not exist. We cannot validate the M&S against a mathematical solution, unlike the case of a
tennis ball where air resistance may be neglected in the model and where an exact “mathematical analytical”
solution does exist.
So how do we proceed when we have created the model and implemented it in code? Verification would
start by testing the simulation on a simpler situation, where there is no air resistance and where a
“mathematical analytical” solution is available. If the simulated data do not agree with the predictions of the
“mathematical analytical” solution, then we have a problem with the model (differential equations) or our
transformation of this into computer code. Verification could be attempted by considering a highlysimplified scenario such as the vertical behaviour of a shuttlecock, where we choose to examine the
“terminal velocity” of the shuttlecock. There is a “mathematical analytical” solution for this velocity which
we could test. Verification should also consider the level of error in this simplified scenario where.
Validation of our M&S can be achieved in various ways: A “scientific” validation can only be achieved by
comparing our simulated shuttlecock trajectories with actual experimental trajectories recorded e.g. through
actual video recording of a badminton game using a motion capture facility such as available at the
Worcester “Motion and Performance Centre”. If our verified simulation code cannot be validated, then there
is something wrong with our initial model, perhaps we have incorrectly modelled air resistance.
A “face validation” could be obtained from the experience of players playing badminton, by comparing the
observed shuttlecock behaviour with the simulated results. The players would evaluate the simulation
against their real-world experience. As mentioned above, this “face validation” is a useful first step in a
validation process.
The Process of Modelling and Simulation – Application to Wind Turbines
Let’s discuss this using the example of modelling and simulating a Wind Turbine, focussing on the control
systems.
Project Description
A wind turbine has a complex control system which ensures that the turbine blades rotate with a variable
speed in order to extract the maximum power from that available in the wind at any speed. However this
rotational speed must be limited when the wind speed becomes too high, otherwise the turbine could
experience excessive stresses and fail. This project should work from the theoretical understanding of
aerodynamics and mechanics
Conceptual Model
The control systems of a wind turbine are designed (and therefore described) using differential equations.
This is because all of the details of the wind turbine behaviour and its excitation (the wind) vary
continuously with time. The model of the wind turbine may include several components such as (i) the
aerodynamics of the turbine blades, (ii) the mechanics of the shafts and gearboxes, (iii) the electrical
generator and, (iv) the overarching control system.
Here we shall focus on the control system which is designed with two goals in mind: (i) to extract the
maximum possible power from the wind (which is subjected to gusts of a variable speed and occurrence),
(ii) to limit the turbine behaviour in conditions of extreme wind speed, ie those speeds which may occur
above the design specification of the turbine. The control model will be specified as a number of differential
equations specifying the behaviour of the turbine elements, such as the torques on the drive-train and the
pitch of the rotor blades.
Simulation Model
The simulation model will be constructed according to the components of the conceptual model described
above which will normally be cast as a number of differential equations describing the dynamics of the
turbine sub-systems such as the rotor/generator speed and the rotor blade pitch-angle.
Simulation Programme
Since this system is complex, involving many components, the choice of the computational algorithm is
important. The simple Euler algorithm will surely fail. More appropriate is the time-adaptive Runge-KuttaFehlberg (RKF) algorithm, which copes well with most simulations (except “stiff” problems). We feel that
coding this algorithm within Unreal Script is infeasible due to the mechanics of the UDK programming
interface available. Therefore we choose to use standard RKF algorithm, implemented in C/C++ and bound
to the UDK engine
Verification and Validation
The verification of the wind-turbine code is no different from other situations. Primary verification involves
running the code and looking for a reasonable and stable result. This means that given an initial wind
velocity, the turbine should rotate with a constant velocity. If the velocity increases or decreases with time
and does not settle down then there is a problem with the code.
Validation is also quite straightforward. The wind-turbine model provides a theoretical graph of power
output versus wind speed, deduced from the mathematical analysis, using several key parameters. The
results of the simulation investigations using the parameters of a real wind turbine (footnote CART3) must
agree with this to validate the model.
Design of Investigations
Types of Dynamic Model
Most dynamic models consider two conceptual dimensions, time and space (or place). These dimensions
may be continuous or discrete. So we have a number of options which we summarise here according to the
syntax TiSj. Here “T” represents time and “S” represents space. The values of “i” and “j” may be “c”
(continuous) or “d” (discrete)
(1) TcSc: Continuous time and continuous space. For example projectiles, wind turbines. The motion of both
of these examples changes continuously.
(2) TcSd: Cellular automata of spreading fires. Here the simulation uses continuous time but discrete space,
where the area is divided into a number of discrete cells. The burning operates in continuous time.
(3) TdSc
(4) TdSd: Supermarket Queues. People arrive at queues at definite intervals in time. As the customers get
served, they move forward at definite intervals. Space is also discrete since the people move up the queue
which consists of a line of customers at discrete places in the queue.
Glossary








Model
Simulation
Complexity
Dimensionality
Real-World
Computer Code
Dynamic
Validation

Verification
Download