News RTspice: Analoge Schaltungssimulation in Echtzeit


von Christoph B. (birki2k)


Angehängte Dateien:

Lesenswert?

Simulationstools wie SPICE sind aus heutiger Sicht kaum noch wegzudenken. Sie erlauben es, das Verhalten selbst komplexer Schaltungen ohne langwierigen Aufbau abschätzen und anpassen zu können. Dennoch ersetzt dies nicht den Test im Zusammenspiel mit realen Ein- und Ausgangssignalen. Doch was, wenn man den neuen Gitarrenverzerrer ganz ohne Aufbau gleich ausprobieren könnte?



Genau hier setzt RTspice an. Einer am PC erstellten Schaltung können mittels Soundkarte Ein- und Ausgänge hinzugefügt werden, über die sich die Simulation mit physisch vorhandener Elektronik kombinieren lässt. Dies ist insbesondere für den Audiobereich interessant. So könnte man etwa Filter für Frequenzweichen am Computer abstimmen und das Ergebnis im Zusammenspiel mit den Lautsprechern gleich testen.

Doch mit RTspice können nicht nur lineare Netzwerke aufgebaut und überprüft werden. Durch die Modellierung von Dioden und Transistoren sind auch komplexere Simulationen, bei denen neue Frequenzanteile entstehen, realisierbar. Dies wird etwa für Limiter- oder Verzerrungsschaltungen benötigt.

Natürlich beschränkt sich der Anwendungsbereich nicht nur auf die Audiotechnik, jedoch ist der Frequenzbereich aufgrund der Verwendung einer Soundkarte vorgegeben. Weiter schränkt die zur Simulation bereitstehende Rechenleistung die Komplexität der Schaltung ein. Hierbei wird derzeit eine Nvidia Grafikkarte benötigt, da die Implementierung auf den CUDA-Bibliotheken aufbaut.

Die Schaltungseingabe erfolgt durch die Erstellung einer Netzliste, wobei die Syntax der klassischen SPICE-Syntax stark ähnelt. Eine grafische Eingabe ist derzeit nicht vorhanden, findet sich aber als Punkt in der To-Do-Liste auf GitHub. Auch muss RTspice derzeit selbst kompiliert werden. Für Linux gibt es eine Beschreibung für das Vorgehen. Für Windows ist dies nicht getestet, sollte aber ebenfalls funktionieren.


von -gb- (Gast)


Lesenswert?

Warum geht keine beliebige Quelle wie bei GNURadio? Noch cooler wäre 
dieses RTspice als ein GNURadio Block. Sprich man kann dann irgendwo in 
den GNURadio Signalpfad eine beliebige Schaltung rein hängen. Oder 
vielleicht auch irgendwie als Export dass man eine Schaltung als Block 
für GNURadio exportieren kann. Die Schaltung ist ja eigentlich nur eine 
Übertragungsfunktion.

von Christian (Gast)


Lesenswert?

Christoph B. schrieb:
> Simulationstools wie SPICE sind aus heutiger Sicht kaum noch
> wegzudenken.

Nein. Aber deine Beitrage sind aus heutiger Sicht kaum noch zu ertragen.

Was hat dieses RTSpice mit einer Spice-Simulation zu tun?

NICHTS! Außer der netlist-Syntax.

Man muss nicht das Rad neu erfinden und eine Übertragungsfunktion zum 
x-ten mal in CUDA neu implementieren, bloß weil die Sau noch nicht oft 
genug durchs Dorf gehypet wurde. Transiente Simulation ist außer für 
riesige Schaltungen mit separierbaren Blöcken nicht parallelisierbar, 
also ist CUDA hier Schwachsinn.

Was das Programm kann, schreibe ich dir in 10 Zeilen Python oder Matlab. 
Und muss dabei kein 500W für eine Nvidia-Grafikkarte verbraten, um meine 
CO2-Bilanz zu versauen.

Manchmal ist weniger mehr, vor allem in deiner Rubrik "Neuigkeiten".

von Ihr werdet es nicht glauben was dann geschah (Gast)


Lesenswert?

Christoph B. schrieb:
> Doch was, wenn man den neuen Gitarrenverzerrer ganz ohne Aufbau gleich
> ausprobieren könnte?

Kann man.
http://www.google.com/search?q=wav+file+voltage+source+LTspice

Seit wann greift Clickbait in Foren um sich?
Ekelhaft

von rbx (Gast)


Lesenswert?

Die "FM- und PD-Synthese" hatten vermutlich Modulsysteme als 
Abhör/Planungshilfe  - so ganz aus dem Stehgreif glaube ich nicht- 
schließe ich aber auch nicht aus:
https://www.youtube.com/watch?v=z8byYyB2HVc
(dazu gibt es heute auch ganz gute Softsynth-Simulationen)

Hier im Forum würde ich auch 1000 mal lieber nach Röhrenschaltungen 
fragen, Logistik von Röhrenvocoder o.ä.
Die Cudanummer oben kann man aber vielleicht gut für Hallalgos o.ä. 
missbrauchen.

Direkt gedacht hatte ich, ob nicht die Filtertabellen vom TX16w 
https://www.youtube.com/watch?v=gYo8LXbofkc
https://usermanual.wiki/Yamaha/TX16WG.4105885794.pdf

..irgenwdie als Hardwarezusatz/Steckzusatz gingen.

von Sven D. (Gast)


Lesenswert?

Ihr werdet es nicht glauben was dann geschah schrieb im Beitrag 
#5926327:
> Christoph B. schrieb:
>> Doch was, wenn man den neuen Gitarrenverzerrer ganz ohne Aufbau gleich
>> ausprobieren könnte?
>
> Kann man.
> http://www.google.com/search?q=wav+file+voltage+source+LTspice
>
> Seit wann greift Clickbait in Foren um sich?
> Ekelhaft

Zwischen dem Verarbeiten von wav-Dateien und dem direkten Verarbeiten 
eines Signal das in die Soundkarte geschickt wird besteht meiner Ansicht 
nach ein Unterschied. Für den im Startbeitrag genannten Anwendungsfall 
der Entwicklung eines Gitarrenpedals ist RTSpice sicher praktischer als 
was dein Googlelink auswirft. Das gleiche kann ich mir auch sehr gut für 
das Testen von Schaltungen für Synthesizern vorstellen.

von römischer motorroller (Gast)


Lesenswert?

Christian schrieb:
> Was das Programm kann, schreibe ich dir in 10 Zeilen Python oder Matlab.

Na dann mal los!

Sorry, ich vergaß, dont feed the troll.

von chris_ (Gast)


Lesenswert?

>Christoph B. (birki2k)
Eine grafische Eingabe ist derzeit nicht vorhanden,

Du könntest die Netzlisten von LtSpice verwenden, dann musst Du für's 
erste keinen eigenen Editor schreiben. LtSpice läuft bei mir ganz gut 
auf Ubuntu mit Wine.
Erzeugt wird das *.net-File so:
http://ltwiki.org/LTspiceHelp/LTspiceHelp/Spice_Netlist.htm

Eine andere gut Möglickeit wäre, die Netzliste von KiCad zu verwenden. 
Dort müsstest Du aber erst noch einen Konverter schreiben, dafür ist der 
Editor deutlich komfortabler als bei LtSpice.

von Christoph B. (birki2k)


Lesenswert?

Christian schrieb:
> Transiente Simulation ist außer für
> riesige Schaltungen mit separierbaren Blöcken nicht parallelisierbar,
> also ist CUDA hier Schwachsinn.

Parallelisierung lässt sich durchaus sinnvoll für transiente Vorgänge 
nutzen, auch ohne separierbare Blöcke:
https://ieeexplore.ieee.org/abstract/document/6777551

Derartige Implementierungen lassen sich kommerzielle Hersteller von 
Simulationstools übrigens einiges kosten, etwa durch Bedarf einer Lizenz 
pro verwendetem Kern.

> Was das Programm kann, schreibe ich dir in 10 Zeilen Python oder Matlab.
> Und muss dabei kein 500W für eine Nvidia-Grafikkarte verbraten, um meine
> CO2-Bilanz zu versauen.

Das Angebot nehme ich natürlich gerne an und bin gespannt. Selbst würde 
ich mir nicht mal das Einlesen der Netzliste in 10 Zeilen zutrauen, 
denke da kann nicht nur ich einiges lernen.

von Christoph B. (birki2k)


Lesenswert?

Ihr werdet es nicht glauben was dann geschah schrieb im Beitrag 
#5926327:
> Kann man.
> http://www.google.com/search?q=wav+file+voltage+source+LTspice
>
> Seit wann greift Clickbait in Foren um sich?
> Ekelhaft

Clickbait zeigt sich üblicherweise durch vorenthaltene oder falsche 
Informationen in der Überschrift. Die wesentliche Information, nämlich 
dass es hier um Echtzeitverarbeitung geht, kann man jedoch schon der 
Überschrift entnehmen. Wie Sven oben geschrieben hat, geht es hier eben 
nicht um das Einlesen von Dateien.

chris_ schrieb:
> Du könntest die Netzlisten von LtSpice verwenden, dann musst Du für's
> erste keinen eigenen Editor schreiben. LtSpice läuft bei mir ganz gut

Danke für den Hinweis, aber das Program stammt nicht von mir ;-)

von S. Z. (ceving)


Lesenswert?

Christian schrieb:
> Was das Programm kann, schreibe ich dir in 10 Zeilen Python oder Matlab.

Mach mal Gist: https://gist.github.com
Oder Snippet: https://gitlab.com/explore/snippets

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.