Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Think Different
–
Think Analog
Bernd Ulmann
ulmann@vaxman.de
Kolloquium des Lehrstuhls Medientheorien
HU-Berlin, 27-MAY-2009
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Conclusion
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Outline
1 Overview
2 Analogs and analog computers
3 A bouncing ball
4 Approaching digital computers
5 Extending this approach
6 Conclusion
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Extending this approach
Conclusion
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Overview
The goal of this talk is to show the advantages of using
(indirect and even indirect digital) analogs to solve problems.
Therefore we first need to talk about analogs in general and
indirect analogs in detail.
After these preliminaries a couple of examples will be given
showing how analogs may be applied even using conventional
digital computers.
The conclusion will sum up the main points of this talk and
provide an outlook to possible future developments.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Analogs and analog computers
The term analogy is used in the following in the sense of
”similarity of relation without identity” (cf. [TSE][p. 333]) with
the extension of structural similarity:
Definition of an Analog:
An analog is similar to a given system with respect to is relations
and structure but not necessarily similar with respect to size, time
etc.
So an analog computer is a computer that allows modelling
systems by adapting to their structure and their internal relations
rather than by utilizing an algorithmic approach as in conventional
digital computers.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Analog vs. stored program digital computer
The following picture (cf. [TRUITT][p. 1-40]) shows the currently
dominant algorithmic approach to computing:
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Analog vs. stored program digital computer
The central structural equivalence typical for analog computers is
shown in the following picture (cf. [TRUITT][p. 1-41]):
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
The two competing models
Stored program digital computer: This machine type solves
Problems by a stepwise approach controlled by an
algorithm normally stored in memory. The structure
of the underlying machine does depend on the
problem to be solved but remains fixed.
Analog computer: This machine type is programmed by changing
its structure in a way to create a model, an analog,
of the problem to be solved, so its structure is not
fixed but changes with different problems.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Direct and indirect analogies
We have to distinguish between direct and indirect analogies since
the focus of the following is on the latter type:
Direct analogies: Typical for this type is that a physical foundation
similar to the original problem is used. Examples are
soap bubble models for minimal surfaces, model
rivers for hydrology, wind tunnels etc.
Indirect analogies: These analogs do not have any restrictions
regarding their underlying physical representation. A
mass spring damper system might be investigated
using an electronic model consisting of a capacitor, a
resistor and a coil.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
A direct analogy model
The following picture shows a typical direct analogy – the model
shown was used to develop the ceiling of Munich’s olympic
stadium (cf. [DRESSLER][p. 52]):
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Conclusion
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Two examples for indirect analogies
The following picture shows a mechanical analog computer (a so
called differential analyzer) built by Tim Robinson and set up to
solve a DEQ of second degree representing an oszillator (mass
spring damper system or the like):
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Conclusion
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Two examples for indirect analogies
The picture below shows an analog computer (RA 770) setup to
simulate the flow of air around a so called Joukowski wing –
obviously there is no similarity on the phyiscal layer at all between
computer and problem any more:
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Different implementation variants
The following slides introduce some basic implementation variants
of indirect analog computers with their particular pros and cons
(mechanical implementations are not covered since these are way
too clumsy for any practical application of today).
All variants have in common that the resulting system will be an
indirect analog computer, i.e. a machine whose structure has to be
adapted to the problems being under investigation.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Analog electronic implementations
Advantages: No need to worry about quadrature
formulas/numerical stability since integration is a
natural operation.
Disadvantages: Obsolete, hard to maintain, very limited precision
(10−4 at maximum), limited bandwidth, expensive,
values limited to ±1 machine units, only time as free
variable (no way to solve PDEs directly without
tricks and approximations), generation of arbitrary
functions is really hard (especially when functions of
more than one variable are necesary), stability of
amplifiers is hard to achieve, . . .
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Digital implementations
Advantages: A perfect match for modern devices like FPGAs etc.
Any variable can be the free variable (so solving
PDEs is not a problem any longer). Function
generation is simple and mostly a question of
memory and available macro cells.
Disadvantages: Problem of selecting the proper quadrature
algorithm, numerical stability is an issue, necessity of
choosing the right number representation (integer,
float, double etc.), so all the problems known from
numerical mathematics are back.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Software implementations
Advantages: Cheap and thus fine for evaluation/teaching
purposes. Generation of arbitrary functions is easy.
Could be a really great idea in conjunction with
GPUs as number crunshers (cf. [CT] – this should be
investigated more thoroughly in the future!).
Disadvantages: Comparably slow. Careful selection of underlying
algorithms, number formats etc. is necessary (as with
digital implementations, so all problems from
numerical mathematics are back again).
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
What type of analog computers will we deal with now?
In the following only indirect analog computers will be of interest
(direct analogies are left to the empiricists :-) ). Such a computer
is – regardless of its actual implemention – at first just a collection
of some basic computing elements which can be implemented in
any way (as with analog electronic circuits or digital techniques or
even in software!):
Coefficient devices
Summers
Integrators
Multipliers (dividers, square root devices, . . . )
Arbitrary function generators
Decision elements like comparators and switches
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Basic properties of an analog computer
These basic computing elements can be used as building
blocks to setup models. Obviously such an analog computer is
highly parallel in its very nature and does not suffer from most
of the problems known from parallel digital computers
(synchronization, memory access techniques and the like).
If a problem is larger than the analog computer at hand, there
is no time/complexity-tradeoff as with digital computers but,
on the other hand, the analog computer can be easily
extended with additional computing elements until its size
matches the size of the problem to be modeled.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Simplifying assumptions
In the following we will make some simplifying assumptions to keep
things simples. In particular these are:
We will not care about a possible limitation of values in a
model, so we will not care about scaling.
The representation of variables is assumed to be error free (we
will assume to be able to compute in R).
We will employ a simple graphical representation for the basic
computing elements which will be mostly self explaining when
we deal with digital analogs. In all other cases we will use the
traditional graphical symbols typical for analog computing.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Introductory example
To show the basics of setting up an indirect analogy to model the
behaviour of a more or less complex dynamic system a ball
bouncing completely elastically on a rigid plate will be treated in
the following.
Assuming a constant velocity of the ball in the x direction the
graph showing its overall movement looks (quite) like this:
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
The equations of motion
How is this bouncing ball described mathematically? Its y -position
at any given time is determined from its velocity by
T
y = y0 +
ẏ dt
(1)
ÿ dt.
(2)
0
while its velocity is determined by
T
ẏ = ẏ0 +
0
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
The equations of motion
So the question remains how the ball’s acceleration, ÿ , is
determined. With g being the earth’s acceleration, d a damping
coefficient due to air friction, m the mass of the ball and c a
constant determining the elastic rebound we get
⎧ c
⎨ + m (|y | + 1) if y < −1
ÿ = −g + d ẏ
(3)
⎩ c
− m (y − 1) if y > 1.
The upper term is the elastic rebound when the ball hits the floor
while the lower term gets active when the ball hits the ceiling. To
simplify things we will assume only a floor and no ceiling, so the
equation above reduces accordingly.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Analog circuit
A complete computer setup for generating y has been given in
[N.N.]:
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Conclusion
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Analog circuit
The two integrators on top of this schematic are used to yield ẏ
and y from the central ÿ which was assumed to be known at the
beginning of deriving a circuit from the equations (1) to (3).
Using y which is available at the output of the second integrator
the right hand side of equation (3) describing the rebounce of the
ball can be generated using a trick circuit known as dead zone
which is shown in the lower right half of the schematic.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
A discrete implementation of the bouncing ball
Since I have no analog electronic analog computer which is small
enough to be carried on a plane and brought safely from my home
to the location of this talk, a discrete implementation of this
indirect analogy was done which shows the behaviour of the model
very well.
Only standard circuit elements were employed and a couple of
hours is enough to build a working replica of this circuit which is
shown on the following slide.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
The bouncing ball simulator
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Extending this approach
Conclusion
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
The bouncing ball simulator
The completed circuit looks like this (the similarity to a bouncing
ball is not even marginal as was to be expected with an indirect
analog :-) ):
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
The bouncing ball simulator
The overall setup of the bouncing ball simulator looks like this
using the typical output device of nearly any analog electronic
analog computer, a (very simple in this case) oscilloscope:
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Conclusion
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Approaching digital computers
After this simple introductory example of how to build an analog of
a given problem it will now be shown how to employ this basic idea
of working with indirect analogs can be used to approach
traditional stored program digital processors as well.
Therefore a simple example is used to show the power of analogies
when it comes to programming digital processors especially when
dynamic systems are to be controlled, simulated or otherwise
treated.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
A simple example – generate a sine oscillation
The simple example to be used in the following is the task of
generating the output of a harmonic undamped oscillator, namely
a sine oscillation.
The traditional approach for a digital computer programmer would
be resorting to some (Taylor-)approximation and generating
successive sine values within a loop. Although this approach works
fine, it has some drawbacks:
The structure of the original problem is completely lost –
nothing in the program resembles anything close to an
oscillator at all.
Depending on the series used to generated approximated sine
values the computational overhead can be quite large.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
The traditional approach
A typical way to generate a sine function would be employing a
simple Taylor approximation like
f (x) = x −
x3 x5 x7 x9
+
−
+
3!
5!
7!
9!
This is not a too bad approximation for the sine function in the
interval
−π π
−
:
2
2
as the following picture shows. Bigger intervals either require more
terms or additional logic for reducing input values.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
The traditional approach
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Approaching digital computers
Extending this approach
Conclusion
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
The traditional approach
#include <stdio.h>
#include <math.h>
int main()
{
double x;
int i;
for (x = 0; x < 6.28; x += .01)
printf("%12g", sin(x));
return 0;
}
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Extending this approach
Conclusion
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
The traditional approach
Although this implementation seems quite straight forward the
drawbacks mentioned before are evident – the main problem being
the high CPU overhead necessary to evaluate the Taylor expansion
over and over again, hundreds of times (even more sophisticated
techniques of computing trigonometric functions like the
CORDIC-algorithm – cf. [VOLDER] – require quite a lot of CPU
time to evaluate).
Taking an analog point of view yields a completely different
approach which not only much more closely resembles the original
problem but also needs only a small percentage of the CPU power
necessary for the Taylor approximation.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
The analog approach
Let us now try this analog approach to the problem of the
undamped oscillator’s output. First of all it is noticed that sin(t) is
a particular solution of the following differential equation of second
degree which describes an undamped oscillator:
ÿ = −y .
Taking into account that we have something like an integrator at
hand in an analog computer, this equation can be easily
transformed into a circuit consisting of some basic computing
elements, all working in parallel, as shown on the following slide:
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
An analog electronic implementation
The basic idea to derive a computing circuit from a differential
equation has been developed by Kelvin in 1876 (cf. [THOMSON]).
Generally it is assumed that the highest derivative is known in
advance which then serves as the starting point for generating all
other lower derivatives using integrators etc. At the end of such a
sequence of integrators all necessary signals for generating this
initial highest derivative are available and thus a closed loop can be
set up as shown below:
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
An analog electronic implementation
A complete setup for an analog electronic analog computer taking
into account coefficient setting and initial values is shown here:
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
An analog electronic implementation
The actual setup on the patch panel of such an analog electronic
analog computer (Telefunken RA 741) looks like this:
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
An analog electronic implementation
With proper setting of the coefficients and initial values and a
carefully controlled computing time this analog yields the following
output which is exactly what was desired in the initial problem
statement:
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Towards a digital implementation
Let us now see how this analog approach can be transferred to a
conventional stored program digital computer.
First of all we have to abandon the idea of series approximations
and concentrate on the essence of the underlying differential
equation of second degree.
Redrawing the schematic used in the analog electronic
implementation yields the following setup (note that now dx is an
additional input to the integrators whereas analog electronic
integrators can only integrate over time as the free variable):
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
An indirect digital analog to generate a sine signal
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Conclusion
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
A software implementation
This analog of an undamped oscillator may now be used as the
basis for developing a software implementation which has very low
overhead.
The basic idea behind this is to model the central integrators as
simple triads like
result = result + integrand * time step;
Using this idea the software implementation of the sine generator
looks like this:
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
A software implementation
#include <stdio.h>
int main()
{
double i 0 = 1, i 1 = 0, dx 0, dx 1;
int i;
dx 0 = dx 1 = .01;
for (i = 0; i < 628; i++)
{
i 0 += -i 1 * dx 0;
i 1 += i 0 * dx 1;
printf("%12g", i 1);
}
return 0;
}
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Extending this approach
Conclusion
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Result of the software implementation
The output values of this simple program yield the following graph:
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Generalization of this approach
Obviously it is cumbersome to derive an algorithm for the
approximation of some differential equation(s) using an analog
point of view by hand.
Therefore a simple compiler was developed which accepts
differential equations employing a notation of nested functions and
generates C code which integrates over these underlying
differential equations.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Undamped oscillator revisited
The following code is the description of the second order DEQ
ÿ = −y from above. The int-function takes three parameters:
1
Integrand,
2
increment and
3
initial value.
Please note that the representation of the equation in question is
already in the form yielded by Kelvin’s feedback method:
sine.dda
dt = const(0.01)
ddy = neg(int(int(ddy, dt, 1), dt, 0))
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
dda2c.pl
Using the Perl written compiler dda2c.pl this source file is then
transformed into C source code which implements the simple
integration scheme employed before.
Issuing the command
dda2c.pl sine.dda 628 y
yields a C source file named sine dda.c which will iterate over
the differential equation described and print out the value of the
internal variable y after each iteration.
Plotting those values yields the desired sine function which was
now generated using only its describing differential equation
instead of a clumsy series approximation which is just too
sophisticated when an oscillation is to be generated instead of only
few distinct trigonometric values.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
The Volterra-Lotka-DEQs
In the following a more complex example in form of the well known
Volterra-Lotka differential equation is being treated first with a
historic analog electronic analog computer and then with the
simple compiler dda2c.pl.
In 1925 and 1926 Alfred James Lotka and Vito Volterra both
derived a system of two coupled differential equations describing
the behavour of a dynamic system consisting of prey (rabbits) and
predators (lynxes).
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
The Volterra-Lotka-DEQs
With r representing the number of rabbits, l being the number of
lynxes and with α1 the rate of birth for rabbits, α2 the rate of
rabbits killed by lynxes, β1 the rate of death for lynxes and, finally,
β2 the increase of the lynx population due to food, the Volterra
Lotka DEQs look like this:
ṙ = α1 r − α2 rl
l̇ = −β1 l + β2 rl.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Deriving an indirect analog
The first equation, namely ṙ = α1 r − α2 rl, yields the following
computer circuit:
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Conclusion
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Deriving an indirect analog
The second equation, l̇ = −β1 l + β2 rl, yields this computer circuit:
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Deriving an indirect analog
Combining both partial computer circuits yields the following
overall schematic representing the two coupled DEQs:
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Conclusion
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
An analog electronic analog computer setup
The complete setup of this computer circuit on a historic analog
electronic analog computer (Telefunken RA 741) looks like this:
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Conclusion
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Result of the analog electronic simulation
Using a proper parameterset for α1 , α2 , β1 and β2 the following
result was obtained using this analog electronic approach to the
Volterra-Lotka differential equations:
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Conclusion
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
The digital approach
Using the already mentioned simple compiler dda2c.pl we will
now tackle the Volterra-Lotka differential equations using the
analog computer circuit shown above on a stored program digital
processor.
Therefore we have to describe the analog computer circuit in the
same way as it was done before in the oscillator example which
yields the following source code:
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
The digital approach
volterra.dda
dt = const(.01)
a1 = const(.2)
a2 = const(-.1)
b1 = const(-.2)
b2 = const(.03)
#
r = int(sum(mult(r, a1), mult(r, l, a2)), dt, 10)
l = int(sum(mult(l, b1), mult(r, l, b2)), dt, 1)
Feeding this source code into dda2c.pl yields a C program which
readily simulates the predator-prey-system described by the
Volterra-Lotka equations. The output of a typical simulation run is
shown on the following slide:
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Result of the digital simulation
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Extending this approach
Conclusion
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Extending this approach
Obviously the use of analogs for the investigation of dynamic
systems is very fertile since it’s focus lies on the problem and not
on the machine and its particular idiosyncrasies being used to solve
it.
Using conventional stored program digital computer this is about
the only advantage of this approach, but one can do way better.
The real power of this approach will become apparent when it will
be combined with modern programmable logic circuits like FPGAs
(short for Field Programmable Gate Arrays). Using elements like
this the old dream of a usable digital analog computer will come
true (this dream dates back to the days of MADDIDA and TRICE
– cf. [REED] and [AMELING] – and was spoiled by the crude
digital technology available in the 1950s and 1960s).
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
A modern digital analog computer
The following picture shows a hypothetical system being
completely digital in its implementation but being taylored to the
simulation of dynamic systems using the traditional yet powerful
analog approach described above.
On the left side a conventional digital stored program processor
with attached storage and network connection is shown which
serves as the host system for the specialized attached processor
shown on the right.
This attached processor will consist of a mesh or maybe better a
hypercube of FPGAs which will be changed in their internal
structure from one problem to the next thus resembling the
structure of the problem under investigation.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
A modern digital analog computer
To explore a given dynamic system it will be described in terms of
an analog circuit as with historic analog electronic computers. This
particular analog computer setup will then be used as the source
code by a specialized compiler which will generate structural data
for the FPGAs of the attached processor.
After loading the attached processor with its configuration and
structural data it will resemble a digital analog of the initial
problem which can then be simulated at very high speed while the
host processor can supply input data, gather output data or even
be part of the simulation by generating complex functions etc.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
A modern digital analog computer
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Extending this approach
Conclusion
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Another modern digital analog computer
Recent develops show that is might even be worthwhile to try a
much cheaper approach to building a purely digital analog
computer using state of the art GPUs as number crunshers for the
analog portion of a digital-digital hybrid computer.
These GPUs would, of course, not be able to exhibit the same
amount of fine grain parallelism as might be possible using FPGAs
but considering their comparably low price this approach might
result on a truly low-budget all-digital hybrid supercomputer.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Advantages of the analog approach
It may be concluded that the analog approach is very powerful in
terms of building models for systems described by differential
equations or sets thereof.
Using state of the art technology like FPGAs or modern GPUs it
seems be possible to create an all-digital hybrid supercomputer
system consisting of a conventional stored program digital
processor with an attached processor consisting of FPGAs or GPUs
which will take care of the dynamic part of the system simulation.
Due to the inherently high parallelism of analog computers most of
the problems known from massively parallel conventional digital
processors can be avoided thus putting a high portion of the
computing power of the attached processor to useful simulation
work.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
The heritage of the past is the seed of the future.
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Conclusion
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Bibliography
[AMELING] W. Ameling, Aufbau und Arbeitsweise des
Hybrid-Rechners TRICE, in Elektronische Rechenanlagen, 5
(1963), Heft 1, pp. 28–41
[CT] Manfred Bertuch, Parallel-Werkzeuge, c’t 11 2009, pp. 142
[DRESSLER] Fritz Dressler, Das Dach, in hobby – Das Magazin
der Technik, Nr. 8/72, pp. 50
[N.N.] N. N., Demonstrationsbeispiel Nr. 5, Ball im Kasten, AEG
Telefunken
[REED] Irving S. Reed, The Dawn of the Computer Age, in
Engineering & Science, No. 1, 2006, pp. 7–12
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog
Outline
Overview
Analogs
A bouncing ball
Approaching digital computers
Extending this approach
Conclusion
Bibliography
[THOMSON] William Thomson, Mechanical Integration of linear
differential equations of the second order with variable coefficients,
Proceedings of the Royal Society, Volume 24, No. 167,
pp. 269-270, 1876
[TRUITT] Thos. D. Truitt, A. E. Rogers, Basics of Analog
Computers, John F. Rider Publisher, Inc., New York, December
1960
[TSE] Francis S. Tse, Ivan E. Morse, Rolland T. Hinkle,
Mechanical Vibrations, Allyn and Bacon, Inc., Boston, Second
Printing, August 1964
[VOLDER] Jack E. Volder, The CORDIC Trigonometric Computing
Technique, in IRE Trans. Electron. Comput. EC-8:330–334 (1959)
Bernd Ulmann ulmann@vaxman.de
Think Different – Think Analog