#that

divmondes@pod.geraspora.de

Analog Computer - Scaling

Analog engines are working with values within the range [-1, +1], thus all values have to be scaled to fit into this range at any time.
I think, this is one of the biggest challenges when realizing an application.
The example about the damped harmonic oscillator was extended to include amplitude scaling as well as time scaling.
The parameter TIMEBASE was added to the scripting language.

The files can be found in my GIT repository https://permondes.de/gitweb/Analog_Engine.git

#analogcomputer #THAT #Anabrid

divmondes@pod.geraspora.de

Analog Computer

Damped harmonic oscillator

Some days ago I finally received my #analogcomputer #THAT from #Anabrid.
The very first trials were easy, the first real application is this damped harmonic oscillator, like a suspension of a car, a pendulum in air or a spring in air.
Attached is the output of such a system in a not optimized way. As can be seen, the oscillations go on for a while before being fully damped. It is easy to adjust spring constant and damping to optimize this circuit.
Further parameters are the mass (used here just to keep the amplitude in range) and the initial speed.
The circuit was realized as said above with an Anabrid-THAT, the visualization with the linux software Xoscope (I am still waiting for my physical oscilloscope).

Differential equation: my’’ + Dy’ + Sy = 0, with m the mass, D the damping with speed and S the spring constant. Rewritten to y’’=-1/m * (Dy’+Sy).
An initial condition is required; we put the deflection to y0 and the speed to y0’.

The wiring is described below. Note that I am using my own "Analog Engine Scripting Language". The syntax and further examples can be found in my git repository https://permondes.de/gitweb/Analog_Engine.git/tree

IDENTIFICATION DIVISION
PROGRAM-ID Damped_Oscillator

ENVIRONMENT DIVISION
ENGINE Anabrid-THAT
REQUIRES COEFFICIENT 5
REQUIRES INTEGRATOR 2
REQUIRES INVERTER 1
REQUIRES SUMMER 2

DATA DIVISION
OUTPUT OUT_u y
COEFFICIENT.1 -y0 # -initial position
Coefficient.2 y0s’  # initial speed
COEFFICIENT.3 S   # spring force
COEFFICIENT.4 D   # damping, linear to speed
COEFFICIENT.5 1/m # 1 / mass

PROGRAM DIVISION
# Colors being used for wiring
# - black:  y0
# - blue:   y0’
# - green:  y0’’
# - yellow: y’’, y’
# - red:    y
-1 -> COEFFICIENT.1 -> -y0 # -initial position of the mass
-1 -> Coefficient.2 -> y0s’ # y’ is scaled to be within -1..+1
+1, y0s’, y0s’ -> Summer.1 -> y0’

y’’, IC:y0’ -> INTEGRATOR.1 -> -y’
-y’,IC:-y0 -> INTEGRATOR.2 -> y
y -> COEFFICIENT.3 -> S*y # springforce times displacement
-y’ -> INVERTER.1 -> y’
y’ -> COEFFICIENT.4 -> D*y’ # damping times speed
S*y, D*y’ -> SUMMER.2 -> -(Dy’+Sy)
-(Dy’+Sy) -> COEFFICIENT.5 -> -1/m*(Dy’+Sy)=y’’

OPERATION DIVISION
MODE REPEAT
SPEED 80ms # REPF 0.800; Osci: 10 ms/div, trigger: rising at 50