• .
  • Willkommen im Forum!
  • Alles beim Alten...
  • Du hast kaum etwas verpasst ;-)
  • Jetzt noch sicherer mit HTTPS
Hallo, Gast! Anmelden Registrieren


Röhrenmodelle mit neuronalen Netzwerken
#1
Ich sondiere mal, ob sich überhaupt jemand dafür interessiert  lachend .

Seit kurzen (heute  Big Grin ) bin ich in der Lage, Röhrenmodelle zu erstellen, die mit einem neuronalen Netzwerk arbeiten. Die Genauigkeit ist unerreicht... hier mal ein Plot der Netzwerkausgabe (bunte Linien) auf einem Datenblatt:
   

Einen Probelauf in LTspice gab es inzwischen auch schon, sogar mit akzeptablem Tempo. Das Programm braucht ein paar Augenblicke, um die Schaltungsmatrix zu analysieren, aber dann rennt es.
   

Ich mach die Tage ein komplettes Modell für die ECC82 fertig, dann schiele ich vielleicht mal zu einer Pentode  Confused . Da hat ja noch nie jemand was ordentliches zusammengekriegt...

Ups, ich fahr in 2 Tagen in Urlaub... da mach ich was anderes  Weih . Soll ich überhaupt hier weitermachen?
 
Reply
#2
Finde ich sehr cool. Ich bin nur noch ein wenig am hadern mit der Unterscheidung zwischen der Aproximation durch ein neuronales Netz und der durch einen Gleichungssatz...wie stehen die beiden gegeneinander? Konvergenz, Rechenleistung, Präzision? Die Gleichungsmodelle laufen irgendwo dann weg, wenn man den vorgesehenen Bereich verlässt...was machen da die Netze?

Ich hätte gut Lust drauf das auch zu probieren, aber für Transistoren....kannst du ein wenig beschreiben was du getan hast?
 
Reply
#3
Die Präzision des neuronalen Netzwerkes ist durch Gleichungen nicht zu erreichen. Zumindest nicht bei so schrecklichen Bauteilen wie Röhren. NNs brauchen aber mehr Rechenleistung. Das Verhalten ausserhalb des Trainingsbereiches ist interessant und kommt der Natur von Röhren entgegen:
   

Das Datenblatt deckt nur den Bereich bis 375V/25mA ab (siehe oben).

Ein erstes Modell macht eine Menge Arbeit, der Workflow ist lang (und noch nicht ganz fertig). Angefangen wird mit der Digitalisierung eines Trainingsdatensatzes. Dann wird mit Python ein neuronales Netz dimensioniert und trainiert. Das Ergebnis (die Gewichtungen der Neuronen) wird gespeichert. Dann braucht man Scripte, die das Netzwerk in Spice übersetzen. Das kann man nicht von Hand schreiben. Am Ende bleibt noch eine Menge Handarbeit, um das lauffähig zu bekommen. ChatGPT hat geholfen, aber aus den vielen Sackgassen musste ich selbst herausfinden... Spice kann es nicht gut.
 
Reply
#4
Das komplette Modell der ECC82 auf Basis eines neuronalen Netzwerks. Wahrscheinlich das genaueste, was es gibt  Big Grin .


.lib   ECC82_nn.lib (Größe: 175,14 KB / Downloads: 17)

Und ein Testschaltkreis:

.asc   ECC82_nn_tran.asc (Größe: 841 Bytes / Downloads: 14)

Wenn ihr euch die Library mit einem Texteditor anseht, erkennt ihr einen gewissen Aufwand. Die perfekte Nachbildung der Kennlinien lässt mich vermuten, dass das Netzwerk etwas zu gross ist und hier noch gespart werden kann.
 
Reply
#5
Da die Sache noch am Anfang der Entwicklung ist, kann es dramatische Verbesserungen geben  Big Grin . Eine simple Triode braucht anscheinend nur ein simples Netzwerk. Ich konnte auf 19 Neuronen reduzieren. Das hier reicht für eine akkurate Simulation:
   

Das ist nun wirklich rasend schnell in der Simulation Smile . Die .lib wurde von 175kB auf 5kB geschrumpft, das kann man fast von Hand eintapern  klappe .

.lib   ECC82_3x8.lib (Größe: 4,06 KB / Downloads: 14)
 
Reply
#6
Im vorigen Post habe ich es mit der Reduktion übertrieben: Ausserhalb des vom Datenblatt definierten Bereiches geht es nun wild durcheinander. Ich brauche also doch ein paar mehr Neuronen. Zur Zeit ist diese Struktur mein Favorit:
   

Das liefert auch ausserhalb des Datenblattbereiches sehr schöne Kurven und die Simulation ist immer noch sehr schnell Weih .
   

Damit ist das Kapitel ECC82 abgeschlossen:

.lib   ECC82_nn.lib (Größe: 7,67 KB / Downloads: 16)

Die Pentoden handle ich nach meinem Urlaub im inneren Bereich ab klappe lachend .
 
Reply