


               The Analog Computer Emulator & Simulator


  AMIGA - ACES                                        March 10, 1994



                     (Preliminary Documentation)
















                            Robert Berkey




-------------------------------------------------------------------------

                             -Index-

Introduction .........................................Page 2
ACES Modules .........................................Page X
Data Preparation .....................................Page X
Functional Setup......................................Page X
Operation ............................................Page X
Control Panel ........................................Page x
Data Editor ..........................................Page X
Plotter Setup ........................................Page X
Plot Exporting .......................................Page X

ACES Module Definitions ..........................Appendix A 
Plotter Data Format ..............................Appendix B  
Macro Collection .................................Appendix C
Examples .........................................Appendix D

   Example 01 --SpringMass----------------------------Page x
   Example 02 --SineWave------------------------------Page x
   Example 03 --PHYSBE--------------------------------Page x
   Example 04 --CurveFit a,b,c -----------------------Page x
   Example 05 --Splat---------------------------------Page x
   Example 06 --Plate---------------------------------Page x
  Example 07 --Algebra-------------------------------Page x
   Example 08 --PID-----------------------------------Page x
   Example 09 --Sample--------------------------------Page x
   Example 10 --Implicit------------------------------Page x


Conclusions ..........................................Page x


-------------------------------------------------------------------------


                          -Introduction-

    Analog computing had it's heyday back in the 1960's, 70's, and 80's. 
The analog method of simulating physical systems and solving differential
equations gave engineers and scientists the power to attack and solve
many scientific and engineering problems by using the analog method.

    Analog computing equipment was and is expensive to buy, maintain, 
and use. Since analog elements have to be connected with wires plugged 
into a patching board, programming becomes a somewhat tedious exercise. 
With the presence of faster and more capable digital computers were 
being developed, attempts where made to emulate the analog computer 
functionality on the digital machines. Many of these emulations were run 
on the large "mainframe" machines, and later implemented on some of the 
smaller "mini" computers. Emulation languages developed include MIMIC, 
MIDAS, CSSL, and CSMP to name a few. Most of these programs were run 
"batch" fashion where data and parameters were entered on punched cards 
and submitted to the machine room for computation. The output (plots and 
print-outs) from the computer was received some time later and the 
results evaluated. This method, while not giving as good of a "feel" for 
the problem, as with analog methods, did solve problems and  reduced or 
totally eliminated the need for an analog facility. During this period 
the problems, to be solved, also increased in complexity requiring even 
larger investments for an analog facility.

    With the introduction of the "Personal Computer" and the 
availibility of faster and more capable hardware and software, it is now 
possible to put analog style computing on your desktop. Analog Computer 
Emulator System (ACES) is a program for the  Amiga computers to do 
analog-style computation and simulation. ACES doesn't have the 
capability to do massive simulations and can't replace software packages 
designed for specific purposes. ACES can solve those everyday smaller 
problems that could be handled with a medium-sized analog computer.
 
    Think of ACES as, sort of, a calculator for differential equations. ACES is designed to run on any current Amiga. The language is easy to 
learn, contains a rich assortment of emulated analog and hybrid modules, 
and provides most of the look and feel of an analog computer. ACES has 
an optional analog Control Panel, Plotter facility, and on-screen Data 
Editor. With the optional Control Panel, the user can control modes, 
monitor variables, and vary parameters. A simple plotting window, is 
included, to show trends in the selected variables. A plot export 
facility tailors the data for several popular off-line plotting 
programs. Data (configuration, parameters, outputs etc..) can be 
prepared "off-line" with any text editor capable of outputing vanilla 
ASCII characters. (ED is fine.) Optionally the user may take advantage 
of the Screen Editor facility to enter and modify the input data.  

    ACES, like any analog emulator, computes the independent variable in 
discrete "steps". Generally, decreasing the step size increases the 
accuracy of the solution. Internally, ACES uses an "open loop", fourth 
order, Runga-Kutta scheme of integration and double precision floating 
variables throughout. Obtaining slightly different solutions, to a given 
problem, is one thing the user must get used to with open-loop 
integration. It is common practice to use coarser steps to approach  a 
solution then "tighten down" the step size when higher accuracy is 
desired. There is always a trade-off between accuracy and speed of 
calculations. Varying step size gives you this flexibility. Hopefully by 
the time you work through the given examples you will get a feel for 
varying the step size and gain confidence in the method.

    ACES includes a rich assortment of analog and hybrid-type computing 
modules. Most of the usual analog linear and non-linear functions are 
included. Currently, up to 75 modules can be programmed in one model. 
plus the independent variable, denoted block (76). ACES has built-in 
Proportional + Integral + Derivitive (PID) modules. The PID modules can 
be used stand alone or in "cascade". The PID module is, in reality, a 
macro built of ACE modules but uses only one of the available modules 
for each controller. The PID controller can be used to evaluate control 
action on simulated processes. 

    ACES expects the dependent variables to be "amplitude-scaled". 

    Scaling is common practice for analog computers, where the operating 
voltage is fixed and usually ranges from +- 10.0 to +- 100.0 volts. In 
ACES , scaling helps maintain the solution between reasonable dynamic 
limits, and as a by-product, increases the accuracy, usability, and 
forces the user to know more about his problem. ACES uses +-1.0 as the 
scaled maximum. This is also common analog practice and is known as 
"unity" scaling. The real-world value of the computed variable can be 
found simply by multiplying the scaled value by the scale factor. Analog 
computers must  also scale the independent variable (for the analog has 
a fixed independent variable (seconds) due to the electrical nature of 
the integration mechanism.) We can use any quantity ,for the independent 
variable in ACES, as long as all integration scaling is CONSISTENT 
throughout.

                             -Modules-

    Computing elements are provided for most of the useful mathematical 
operations.  Elements that add, subtract, multiply, divide, and negate 
are available. Integrator and mathematical transcedentals, (log, sine 
cosine, etc.) are supplied.  Up to 3 arbitrary function types, each with 
twenty segments, can be utilized in any number of blocks.  There are the 
so-called "hybrid elements", (digital and analog functions combined) 
such as sample/hold devices, transport delays, relays, latches and 
flags., which have both kinds of input and output.  There are several 
digital-only elements such as pulse generator, and "AND" gate.  Several 
special devices are the PID controller and iteration module.  Algebraic 
loops can be handled by the CSMP style wye and vacuous elements.  There 
can be a total of 75 blocks programmed plus the independent variable 
(block 76) which can be used by any module.  The limitations are as 
follows: 25 integrators, 3 PID controllers, 3 Unit delays, 3 function 
types.  All in all, ACES has at it's disposal a very rich assortment of 
module type (see the appendix for complete description of the ACES 
computing elements).

                         -Data Preparation-

    Having amplitude-scaled the system equations, prepared a suitable 
flow diagram, and calculated the initial conditions, parameters, and 
arbitrary function tables, a data set can be prepared using an editor of 
choice. 

    First the configuration of the modules must be specified. Each 
configuration statement is on a single line. An, up to 16 character, 
Identifier, a space, Block number of the module, a space, Block type 
code, a space Input block 1, a space, Input block 2, a space, and Input 
block 3. Unused inputs are given Block 0 as a block number. Block number 
assignments can be arbitrary except for vacuous (V) modules. The 
efficiency of the computation is increased by giving these modules the 
highest number in the system.(75 down). A pound sign (#) , after the 
last configuration statement  line, ends the configuration data section.

    The second part, of the dataset, consists of the initial conditions, 
parameters, and scaling information. There should be a parameter 
statement for every module configured. Unused parameters are given a 
value of 0.0. Scale factor is the actual multiplication factor used for 
the variable in the scaling process (or 1.0) if un-scaled. Bias factor 
is generally 0.0... Each parameter statement is on a single line. An, up 
to 16, character Identifier, a space, Block number, a space, 1st 
parameter, a space, 2nd parameter, a space, 3rd parameter, a space, 
Scale factor, and Bias factor. A pound sign (#), on the next line, after 
the last parameter statement, ends the parameter data section.

    The third part, of the dataset, is where the parameters for the 
independent variable are specified. Step size is first followed by a 
space, then Maximum value, a space, then Frequency of printing. A pound 
sign (#), on the next line, ends the independent variable 
specifications. The value of the independent variable always starts at 
0.0 and increases to the maximum value. The computation can be 
interrupted or terminated beforehand through use of a Quit (Q) element 
or placing the analog into "Hold" mode.

    The fourth part, of the dataset, is where assignment of the module 
Block numbers, to be printed, is specified. The independent variable and 
up to seven dependent variables can be printed in the log. On a single 
line, seven block numbers are entered separated by single spaces. 
A pound sign (#), on the next line, ends the print assignment data. 
Unused variables should be assigned to block 0. The independent variable 
(Block 76) is always printed.

    The fifth part, of the dataset, is the plot specification data. The 
first line is required, the others are optional. The first line 
specifies the block number for the X axis and up to five Y axis 
channels, each entry separated by a single space. Unspecified channels 
must use block 0. If no other data is specified, default values will be 
used for the plot. A pound sign (#), on the next line, ends the plot 
specifications. The optional lines contain the plot Title, X and Y axis 
labels, plot X and Y maximums and minimums, and Y axis identification 
text, the format and order, of which, can be found in Appendix B. A 
pound sign (#), on the next line , ends the plot specifications portion 
of the data set.

    The last specifications, in the data set, are for the optional 
arbitrary function tables. There are three different function 
specifications, Type 1, Type 2, and Type 3. Each Type of function can be 
assigned to multiple blocks. 

    The functions use equally spaced ordinate values and arbitrary 
values for the abscissa. The data should also be amplitude-scaled. There 
are 20 function segments for each function. The ordinate values are 
entered on four lines, the range of the abscissa is specified in the 
parameter section for each block using this Type. All 20 abscissa values 
must be specified, any value, including 0.0, can be specified for unused 
values. Values,out of range, of the function ordinate extend the 
endpoints of the function abscicca. A pound sign, on the next line, ends 
the specifications for up the functions. A pound sign is required, for this section, even if no function tables are used. The function table 
format will be explained, in detail, later on. 

    A pound sign, on the last line ends the dataset file.

  
                     -Function Generator Setup-

    The arbitrary function generator scheme used in ACES consists of 
fixed divisions of the ordinate and arbitrary points on the abscissa. 
There are 20 divisions or segments equally spaced.  The total range of 
the ordinate is set by the parameters P1 and P2 for the block assigned. 
P1 is the maximum value and P2 is the minimum. The value of the ordinate 
must increase from P2 to P1 (P1 must be more negative than P2).  The abscissa can be any arbitrary float value but good scaling practice 
dictates keeping values between +1.0 and -1.0 . Three different types of 
function can be stored.  Each type function can be re-used as many times 
as required.  Don't forget to set P1 and P2 parameters in  all the block 
parameter specifications. Overrange of the ordinate (P1 and P2 settings) 
is allowable with the function values above P1 or below P2 equal to the 
end point of the abscissa (Y) value. The first line of data includes the 
type # (1, 2, or 3) and first 5 data points, the second line points 6 - 
10, third line points 11-15, and the fourth and last line points 16-21.  A pound sign (#) follows each type specification. 


                             -Operation-

    After creating a dataset, the dataset may be loaded into ACES and 
"RUN". Running the data, in this sense, means checking the syntax, legal 
block assignments, number of allowable modules, ranges, and suitability 
for operation. There are several datasets in the EXAMPLES drawer, which 
can be used to gain familiarity with loading data and running ACES. (It 
is suggested to go through the examples, in order,.)

    Select the "ARCHIVE" item from the "SYSTEM" menu. Select the desired 
dataset from any of the available drives. Select "Load" to access the 
desired file. We can now "RUN" the dataset through ACES to check for 
legal block numbers, available modules, ranges etc. We do this by 
selecting the menuitem "RUN" from the "SYSTEM" menu.

    If there are no syntax or assignment errors ACES will put the 
emulator in "I/C" mode (applying the initial condition values to all of 
the integration modules.) The emulator is now ready to operate on the 
variables and provide a solution. When it is desired to start operation 
select the "OPERATE" Subitem from the "MODE" Item on the "SYSTEM" Menu. 
The independent variable, and up to seven, selected dependent variables 
will be printed on the screen, during the operation. The emulator will 
be placed in "Hold" at the end of the specified "Operate" period. This 
is the simplest way to operate ACES, and if a single "answer" is desired 
this may be all you have to do.

    ACES, normally, only outputs the log to the screen. The screen only 
holds output for a few seconds when full, erases, then continues to show 
 the log. A "Screen Pause" feature can be selected during setup which 
allows the user to view each screen. Select "Continue" to continue 
operation. The log may, optionally, also be directed to the Preferences 
printer or a file volume for permanent record. The log documents the 
initial dataset when the dataset is first run. Subsequent changes are 
reflected in the log of the sections involved.

A Static Test may be printed in the log by selecting "STATIC TEST" 
Subitem from the "MODE" Item in the "SYSTEM" Menu. The output values, of 
all currently used blocks, are printed in scaled and unscaled form. A 
static check can be generated at any time from Initial Condition or Hold 
modes. A static check of variables can be very helpful in debugging an 
analog system of equations.

  Normally, all setup for the system is done before the dataset is 
"RUN". In "Setup" Mode, you may choose to use the Screen Editor to 
modify the dataset. The editor must be closed before the dataset can be 
run. All changes ,at this point, are temporary. The dataset must be 
"Saved" for the changes to be updated in the dataset file volume. The 
Control panel may be enabled while in Setup and used to control the 
operation of the emulated analog computer. The Control panel allows the 
user to select modes with the mouse, monitor any two blocks continuously, 
and change parameters in all blocks in any mode. The parameter changes 
are temporary. The Screen Editor can be used to change the current 
dataset. 

    If the dataset is re-run the parameters will revert back to the original values. The Plotter window may be enabled in "Setup" Mode. The 
plot density, annotation, and up to 5 Y axis channels selected for 
plotting.

    There is a mode available with the optional Control Panel that is 
not available from the "MODE" Menu. The name of this mode is "REP/OP", 
which stands for repeated operation mode. In REP/OP the compute mode of 
the analog cycles from initial conditions to operate - to hold - back to 
initial condition - etc. Several of the analog and hybrid modules 
respond to this mode enabling such things as parameter sweeps and 
iteration. The REP/OP mode can be canceled by going to "Hold" mode. The 
last cycle can be completed,if desired,  by selecting "Operate" mode. 
There are several examples included that utilize repetitive operation.

    The optional QWIK-PLOT window gives a basic, Intuition driven, line 
plot of up to 5 abscissa (Y axis) variables verses any 1 ordinate 
(X axis) variable. A sidebar, on the QWIK-PLOT screen shows the current 
values of the annotation, scale factors, and other information currently 
in the dataset. From the QWIK-PLOT menu, plot density (the number of 
points for each variable) can be specified. Lines, tics and grids are 
optionally put on the plot. Plot data can be "exported" to a off-line 
plotting program. 

    A plot record can be exported at the end of any operate period 
while in the hold mode. The pertinent data in the plot section of the 
dataset, the unscaled ordinate variable and all 5 unscaled abscicca 
values are included in the plot file. Export files for Multiplot and 
ListPlot can currently be generated. These data files are ASCII coded 
text and can be edited, after the fact, to include other plot options 
which are currently not implemented.


                        -Control Panel Window-

   The ACES optional Control panel emulates features normally found on 
an actual analog computer console. The output of any two blocks can be 
continuously monitored, parameters may be entered in potentiometer 
devices, and modes can be controlled. The outputs of any of two blocks 
can be read in any mode. The coefficients for all block parameters can be 
adjusted while the analog is stopped or running. (Parameters, so 
adjusted, are changed only while the data is loaded. To make the changes 
permanent you must resave the dataset back on the volume where stored). 
The parameters cam be entered on the slide potentiometer gadgets (Range 
-10. to +10. ) or enter the floating number directly into the text type 
gadget.
    The analog mode pushbutton gadgets directly select the Initial 
condition (IC), Hold(HD), Operate(OP), and Repeated operation(REP/OP) 
modes on the analog computer. Box indicator gadgets indicate the present 
mode selected. A spare indicator is energized when a flag(F) element is 
triggered. This can notify the operator of some event occurring during 
the solution (sign change, limit, etc.). The Control Panel window can be 
closed at any time by clicking on the quit box at the upper left corner 
of the window.

                           -Editor Window-

    A window-based editor is optionally available to MODIFY, ADD, or 
DELETE lines from the loaded dataset. You may use the editor to enter a 
completely new dataset,if you wish. All sections of the dataset 
[Configuration, Parameters, Timing, Functions, Print and Plot 
parameters] can be entered. A handy FORMAT display indicates the proper 
format for each section. One thing to remember... The changes apply only 
to the dataset loaded. To save changes permanently you must SAVE these 
changes back to the original storage volume. You can do this from the 
SYSTEM Menu ARCHIVE. You must close the editor window before re-RUNning 
the dataset.


                           -Plotter Setup-

    The QWIK-PLOT Plotter Screen must be enabled while in SETUP mode. Up 
to 5 variables may be plotted against any module output. Several 
presentation options are available and may be selected by the screen menu. Plot conditions, on the screen, are sent to the Export plot file. 
Labeling and annotation information are entered in the dataset. (See 
Appendix B for data format.)


                       -Plot Export Facility-

    ACES primary design aim is to provide a system for getting timely 
and accurate answers to your problem. Every effort has been made to hold 
down on the frills.  There are occasions, however, that documented 
results, particularly professionally plotted results are required.

    ACES includes an export facility for several popular shareware 
plotting programs.  Listplot (a subset of PLPLOT) and Multiplot are 
currently supported.  Listplot is available in Fred Fish collection # 
391 and a version of Multiplot is available on Fred Fish collection # 
572.  Either of these programs a can render professional looking plots 
to a number of different output devices.  Every effort is made to export 
, to each program,  all plot data it can accept, such as plot scaling, 
tic spacing, labels, grids, annotation, etc.  Listplot is included with 
the distribution.  Multiplot is available from a number of sources.

 
                               -Examples-

    The following example datasets can be found in the Examples folder. 
They are supplied for informational purposes only. There is no guarantee 
or implied warranty as to their applicability to any given application. 
Their main purpose is instructional and as a basis for validating the
modules and the emulator.

-------------------------------------------------------------------------


EXAMPLE NAME:        DESCRIPTION:              NOTES:
-------------        ------------              ------

SpringMass           A spring-mass-damper     Basic implementation of 
                     oscillatory system.      F=MA equation commonly 
                                              found in  engineering.

SineWave             A basic sine-omega-t     Purpose is to show effect 
                     and cosine-omega-t       of step size upon accuracy                      linear oscillator.       of integration in both 
                                              frequency and amplitude. 
                                              Results of integration
                                              compared against math trig.
                                              functions.

PHYSBE               Volumetric model of      Medium sized simulation
                     the human circulatory    uses arbitrary functions
                     system and heart.        and discrete logic. A 
                                              classic example....

CurveFit-1           Minimization of error    Purpose is to show 
                     between field data and   methods using Repetitive 
                     a mathematical model.    Operation to manually 
                                              adjust parameters.

CurveFit-2           (Same as above) with one  Purpose is to show method 
                     parameter calculated.     of adding automatic 
                                              iteration of one
                                              parameter. Features the 
                                              Iterative module (?).

CurveFit-3           (Same as above) with two  Purpose is to show method 
                     parameters calculated.    of adding additional 
                                              automatic iteration of 
                                              multiple parameters.

Splat                Study of pilot eject-    Shows use of hybrid logic
                     ion from an airplane.    to control solution of 
                                              differential equations 
                                              containing limits.

Plate                Unsteady-state heat      A practical diffusion 
                     transfer in a steel      model of a solid with 
                                              variable surface boundary 
                                              conditions.

Algebra              Algebraic loop           Method for solving 
                     calculation.             algebraic loops involved 
                                              in analog models.

Pid                  Control of an first-     Demonstrates use of the 
                     order process with an    use in PID controller 
                     analog controller.       (%) module to control a
                                               simulated process.

Sample               (Same as above) with     Shows use of hybrid /
                     built-up digital-type    analog modules.
                     sampling controller.     Zero-order-hold (Z) and 
                                              unit delay (U) modules
                                              are implemented.

Implicit             Computing the inverse    Shows use of the Vacuous 
                     of log e function        (V) and Wye (Y) modules 
                     (limited range).         to simulate the 
                                              calculations normally
                                              done with the high-gain 
                                              analog  operational 
                                              amplifier.

------------------------------------------------------------------------
                                              

                           -Conclusions-

    ACES has been designed as a very basic but capable analog computer 
system emulator. Every effort has been made to hold down the frills, in 
this program, so that it may be run on any AMIGA computer 
system. ACES is very usable to solve those small to medium-sized 
problems that have a way of cropping up. ACES has not been designed as a 
production tool. You would hardly use ACES to generate any volumeous 
amount of data on any particular model. That's the purpose of all the 
great packages tailored to a specific application. Think of ACES as more 
of a universal calculator for systems of linear and non-linear 
differential equations. Through the use of ACES, you will gain a feel of 
the problem, be able to interact, intuitively make changes, and possibly 
solve that problem.  Good Luck!; I hope you enjoy using ACES...


-------------------------------------------------------------------------

 
                              [end]                      



