Ein analoger Computer?

Im Gegensatz zu einem Digitalcomputer, der mit diskreten Binärwerten rechnet, verarbeitet ein Analogcomputer Daten, die durch kontinuierliche physikalische Größen dargestellt werden, zum Beispiel elektrische Spannungen oder mechanische Bewegungen. Diese Maschinen können komplexe Differentialgleichungen lösen und physikalische Systeme in Echtzeit simulieren. Historisch gesehen wurden Analogcomputer früher häufig in der Luft- und Raumfahrt sowie im militärischen Bereich eingesetzt, wo sie halfen, komplexe dynamische Systeme und die Regelungstheorie zu verstehen.

Aufgrund ihrer Komplexität, ihrer begrenzten Präzision und eingeschränkten Flexibilität wurden Analogcomputer jedoch allmählich durch digitale Computer ersetzt. Genau hier setzt das Berliner Unternehmen Anabrid an. Ihr Ziel ist es, den Analogcomputer als Ergänzung zum Digitalcomputer wieder einzuführen, um das mooresche Gesetz zu verlängern, Energie zu sparen und die Sicherheit zu erhöhen. Ein wichtiges Werkzeug, das sie dabei nutzen, ist The Analog Thing (THAT).

Ein verblüffendes User-Interface

The Analog Thing ist ein flaches, rechteckiges Gerät (20 cm × 24 cm) mit einer Höhe von etwa 38 mm, bestehend aus zwei weißen Platinen. Auf der unteren Platine befinden sich die elektronischen Bauteile, während die dickere obere Platine als Benutzeroberfläche dient. Darauf sind verschiedene schwarze Symbole aufgedruckt. Etwa die Hälfte der Platine ist von einer 17 × 10 großen Steckmatrix beziehungsweise einem Panel besetzt, wobei jedes Patch-Loch in der Mitte eines grafischen Symbols sitzt: einem Kreis, einer Raute oder einem Dreieck. Diese Symbole sind farbcodiert — weiß, schwarz oder gemischt — was zusätzliche visuelle Hinweise bietet (siehe Bild 1).

user interface symbols
Bild 1. Seltsame Symbole in Schwarz-Weiß auf dem Patch-Panel geben Hinweise zur Programmierung von THAT.

Das Steckfeld ist in 17 Rechenelemente unterteilt, die jeweils eine mathematische Funktion darstellen, zum Beispiel Integrator (5×), Multiplizierer (2×), Summierer (4×), Inverter (4×) und Komparator (2×). Außerdem gibt es acht Koeffizienten und vier ±1-Maschineneinheiten.

Unter dem Patchfeld befinden sich zwei weitere Lochreihen mit Kondensatoren (5×), Dioden (4×), Z-Dioden (2×) und vier Signalausgängen.

Das Patchfeld ist vom Bedienfeld durch den groß aufgedruckten Namen des Geräts getrennt. Dieses Bedienfeld besteht aus neun Potentiometern (beschriftet als COEFF 1 bis COEFF 8 und OP-TIME) sowie zwei Drehschaltern (COEFFICIENT und MODE). Es gibt auch ein numerisches LC-Display und drei LEDs für Statusinformationen.

Auf der Oberseite von THAT finden wir alle Anschlüsse: für die Versorgung (USB-C, nur ein Kabel ist enthalten, kein Netzteil), Ausgänge (Cinch, ein Stereokabel ist enthalten) und Erweiterungen (Stiftleisten, ein 2×5-Flachbandkabel ist enthalten).

Patch-Kabel

Wie digitale Computer funktioniert auch The Analog Thing nicht ohne ein Programm. Allerdings ist das Laden von Software hier nicht einfach eine Frage des Anschließens eines USB-Sticks oder einer microSD-Karte. Die Programmierung erfolgt vielmehr durch das Einstecken von 2-mm-Bananenstecker-Patchkabeln in die Löcher des Patchpanels. Im Lieferumfang sind 30 Patchkabeln in fünf verschiedenen Farben enthalten.

Display nicht inbegriffen

The Analog Thing erzeugt analoge Signale in Form von Spannungen im Bereich von -1 V bis +1 V (der Fehler des THATs beträgt etwa 1 %). Ein Signal kann an den vier Ausgangsbuchsen X, Y, Z und U zur Verfügung gestellt werden. Um sie anzuzeigen, wird ein Oszilloskop oder ein Computer mit Soundkarte (oder einem anderen analogen Eingang) benötigt. In vielen Fällen möchte man eine XY(Z)-Darstellung, weshalb das Oszilloskop idealerweise über einen Z-Eingang verfügen sollte. Für optimale Ergebnisse sollten die Eingänge des Oszilloskops DC-gekoppelt sein. Eine Soundkarte ist daher nicht die beste Wahl.

Da The Analog Thing bis zu vier Signale ausgeben kann, ist ein 4-Kanal-Oszilloskop ideal. Leider sind die Ausgangsanschlüsse als Cinch- und nicht als BNC ausgeführt, was die Handhabung etwas erschwert. Diese Entscheidung wurde vermutlich getroffen, um die Kosten niedrig zu halten. Cinch-zu-BNC-Adapter sind leider nicht im Lieferumfang enthalten.

Das Panel-Meter in Bild 2 ist ein 3,5-stelliges Voltmeter (Zählung ±1.999). Soweit ich feststellen konnte, kann es jedoch nicht an Signale angeschlossen werden, die von den Computing-Elementen des Geräts erzeugt, sondern dient zur Anzeige von Koeffizient-Werten und der Ausführungsgeschwindigkeit.

lcd panel meter
Bild 2. Das Panelmeter dient der Einstellung von Koeffizienten, nicht zur Anzeige von Signalen, die vom Analogprogramm erzeugt werden.

Master-Minion-Verkettung

Ein weiterer Punkt, den ich erwähnen möchte, bevor wir zur Programmierung von The Analog Thing übergehen, ist die Erweiterungsmöglichkeit. Wenn mehr Rechenelemente benötigt werden, als das Gerät bietet, können ein oder mehrere Geräte in Reihe geschaltet werden. Das erste Gerät fungiert dann als Master, während die anderen als Minions arbeiten. Die Anzahl der verketteten Geräte soll unbegrenzt sein.

Nebenbei bemerkt: Ich bin schon auf andere Versuche gestoßen, das Master-Slave-Paradigma aus der Elektroniksprache zu entfernen, aber nie auf diesen. Auch wenn ich es ganz nett finde, bin ich mir nicht sicher, ob ich es übernehmen soll, da Master und Minion beide mit „M“ beginnen. Auf einem SPI-Bus zum Beispiel würden MISO (Master In Slave Out) und MOSI (Master Out Slave In) beide zu MOMI werden. Vielleicht sollte man Master in Gru umbenennen?* Dann hätten wir GIMO und GOMI.

* Felonius Gru ist der zum Helden gewordene Superschurke, der von einer Armee gelber Minions unterstützt wird, die durch die „Unverbesserlich“-Filmreihe bekannt geworden sind.

Was kann man mit dem THAT machen?

Die Programmierung von The Analog Thing erfolgt nicht durch das Eintippen seltsamer Befehle in ein Terminal oder einen Texteditor, sondern durch das Einstecken von Kabeln in das Patchpanel. Es ist ähnlich wie bei der visuellen Programmierung, wo Funktionsblöcke mit virtuellen Drähten verbunden werden.

Ein analoges Programm ist ein mathematischer Ausdruck, der ein dynamisches System beschreibt, das sich im Laufe der Zeit nach bekannten Beziehungen entwickelt. Damit THAT also etwas Sinnvolles tut, muss man sich zunächst ein geeignetes mathematisches Modell ausdenken. Das allein macht das analoge Computing für die meisten Sterblichen nahezu unzugänglich, denn ob Sie es glauben oder nicht, aber Differentialgleichungen sind einfach nicht so beliebt wie Python oder TikTok.

Beispiel-Programme

Um den Einstieg in die Analogprogrammierung mit THAT zu erleichtern, enthält das Benutzerhandbuch neun Beispiele, von mathematischen Kuriositäten bis zu realen Anwendungen. Jedes Beispiel erklärt das Modell, das es implementiert, stellt die mathematischen Gleichungen und das entsprechende Signalflussdiagramm, das Verkabelungsdiagramm im Patchfeld und das erwartete Ausgangsdiagramm dar.

Um ein Patch anzuwenden, stecken Sie die Patchkabel entsprechend dem Verkabelungsschema in das Feld. Für diejenigen, die alt genug sind: Es muss mit der gleichen Sorgfalt geschehen wie das Kopieren eines BASIC- (oder noch schlimmer, eines HEX-) Programmlistings aus einer Computerzeitschrift in den achtziger Jahren. Ein kleiner Fehler und das Programm funktioniert nicht. Die Gefahr besteht hier nicht so sehr darin, ein Kabel in das falsche Loch zu stecken, da die mehrfarbigen Patchdiagramme recht eindeutig sind, sondern darin, ein Kabel zu vergessen. Es ist nicht einfach, sich durch den Patchkabelsalat zu wühlen, um herauszufinden, welches Kabel nun falsch ist oder welches fehlt (Bild 3).

analog thing figure 3
Bild 3. Wie das Sprichwort sagt: „Chaos rein, Chaos raus“. Dieses Patchkabel-Spaghetti-Durcheinander stellt einen Lorentz-Attraktor dar, das „Hello World!“ der Chaostheorie.

Einstellen der Koeffizienten

Nachdem Sie das THAT gepatcht haben, müssen Sie die im Patch verwendeten Koeffizienten einstellen. Ein Koeffizient ist einfach ein „Lautstärke“-Potentiometer, das seinen Eingang in der COEFF-Sektion hat. Um den Wert eines Koeffizienten einzustellen, stellen Sie den COEFFICIENT-Drehschalter auf die Nummer des Koeffizienten (1...8) und den MODE-Schalter auf COEFF. Die LCD-Anzeige zeigt nun den Wert des Koeffizienten an. Sie können ihn durch Drehen des entsprechenden Potentiometers einstellen. Drei Dezimalstellen sind (mit etwas Geduld) einstellbar. Schauen Sie, wie im Beispiel der Mondlandung zwei Koeffizienten in Reihe geschaltet werden, um noch genauere Werte zu erhalten!

Ausführen eines analogen Programms

Nun ist es an der Zeit, das Patch auszuführen. Drehen Sie dazu den MODE-Schalter auf die Position OP. Die OP-LED leuchtet auf. Schließen Sie ein geeignetes Anzeigegerät an die Ausgänge des THAT an. Das Beispiel Lunar Landing hat drei Ausgangssignale (X, Y und U), daher wäre ein 3-Kanal-Display am besten geeignet.

Im OP-Modus wird das Patch einmal ausgeführt, im REP-Modus wiederholt. Der REPF-Modus wiederholt sich 100-mal schneller als der REP-Modus. Jeder Wiederholung geht ein Neustart des Patches voraus, da die Integratoren auf ihren Anfangszustand zurückgesetzt werden müssen. Das macht es schwierig, einen Patch zu erstellen, der sich nahtlos wiederholt. Wer das THAT zum Beispiel für musikalische Anwendungen nutzen möchte, ist mit sich kontinuierlich entwickelnden Patches wahrscheinlich besser bedient als mit sich wiederholenden Patches.

Hallo Analogwelt!

Das erste Beispiel aus dem Benutzerhandbuch, Radioactive Decay, kann wahrscheinlich als das Äquivalent des „Hello World!“ in der digitalen Computerprogrammierung betrachtet werden. Es implementiert eine Differentialgleichung erster Ordnung, die Elektronikliebhabern gut bekannt ist, da sie auch für die Entladung eines Kondensators C durch einen Widerstand R gilt:

first order difference equation

Im Beispiel wird λ anstelle von 1/(RC) verwendet und U heißt N, aber das ändert nichts.

Der Patch benötigt sechs Drähte und läuft im REP-Modus. Das Oszilloskop zeigt eine schöne Exponentialkurve, die den radioaktiven Zerfall darstellt (oder halt einen Kondensator, der sich über einen Widerstand entlädt, siehe Bild 4). Potentiometer 1 steuert die Amplitude, Potentiometer 2 die Steigung.

analog thing figure 4
Bild 4. Das „Hello World!“ ist das Ergebnis einer Differentialgleichung erster Ordnung. Beachten Sie den waagerechten Teil des Signals, der auf die Initialisierungssequenz zurückzuführen ist.

Als zweites Beispiel habe ich den Lorenz Attractor ausprobiert, der mit dem bekannten Schmetterlingseffekt zusammenhängt (eine winzige Änderung in einem frühen Systemzustand kann zu großen Unterschieden in späteren Zuständen führen). Dieses komplexe Patch benötigt 22 Drähte (siehe Bild 3), und sechs Koeffizienten müssen sorgfältig einer nach dem anderen eingestellt werden. Ein 2-kanaliges (analoges) Oszilloskop im XY-Modus liefert die besten Ergebnisse. Es gelang mir, das Programm fehlerfrei zu patchen, und ich war anschließend wie hypnotisiert von der sich ständig verändernden Grafik.

Hauptsächlich ein pädagogisches Werkzeug

Die Qualität von The Analog Thing ist hervorragend. Es ist nicht nur ästhetisch ansprechend, sondern auch durchdacht konstruiert. Die Patch-Löcher, obwohl einfache, vergoldete Löcher, gewährleisten eine solide Verbindung, selbst mit den manchmal etwas wackeligen Patchkabel-Bananensteckern. Die Anzeigen auf dem LCD-Panel sind stabil, und die Potentiometer lassen sich präzise und leichtgängig drehen.

Elektronikingenieure könnten sich von THAT angezogen fühlen, da sie an Schaltungen mit Integratoren und anderen Rechenelementen gewöhnt sind, die darauf zu finden sind. Ein einfaches Modell in ein Patch-Diagramm umzuwandeln, sollte für einige Enthusiasten machbar sein, aber wie man die Gleichungen der Euler-Spirale aus Beispiel 9.5 umwandelt, bedarf etwas mehr Erklärungen als in der Broschüre First Steps zu finden sind. Das wahllose Einstecken von Drähten wird höchstwahrscheinlich zu frustrierend „flachen“ Ausgängen führen, die am Minimal- oder Maximalwert clippen.

Vielleicht wird The Analog Thing eines Tages zum Arduino des analogen Rechnens, unterstützt von Tausenden von Modellen und Patch-Diagrammen, die von einer Community erstellt wurden. Die Grundvoraussetzungen für eine große Popularität sind bereits gegeben. Wie Arduino ist auch THAT quelloffen, und die Entwicklungsdateien sind auf GitHub zu finden. Bis zum Start ist THAT jedoch hauptsächlich ein Lehrmittel und eine Kuriosität für Leute, die sich für das Spielen mit mathematischen Modellen interessieren. Auf jeden Fall ist es ein großartiger Gesprächsanlass, egal was man damit macht.