Hallo,
ich habe heute schon versucht das Spice Modell des Optokopplers
PS2801C-1 ins LT Spice einzubinden.
Dazu habe ich zuerst das Modell von dieser Herstellerseite geladen:
http://www.cel.com/parts.do?command=load&idRootPart=959#spicem
Anschließend habe ich das Modell in eine neue SUB-Datei namens PS2801C-1
kopiert. Als Symbol habe ich das Symbol vom PC817A kopiert und nur den
Namen bzw. bei den Anschlüssen noch die Pin-Nummern angepasst. Die
SUB-Datei und das Symbol habe ich in die entsprechenden Ordner im
Installationsordner LTC kopiert.
Das ganze Bauteil wird nun im LT Spice erkannt, ich kann es auch ohne
Fehlermeldung in Schaltungen verwenden. Nur ist es so, dass das ganze
Bauteil noch nicht richtig. Habe mal eine kleine Testschaltung simuliert
und mit den Daten im Datenblatt verglichen. Die Diodenseite funktioniert
wie im Datenblatt, aber auf der Transistorseite wird bisher nicht
richtig durchgeschaltet. Bei einem Diodenstrom von ca. 5mA beträgt der
Kollektorstrom erst ca. 10µA. Laut Datenblatt sollte er bei etwa 12.5mA
liegen.
Im Anhang habe ich jetzt mal die Modell-Datei, das Symbol und die
Testschaltung angehängt.
Wäre nett, wenn jemand sich das mal anschauen könnte und mir sagen
könnte, was ich falsch gemacht habe.
Gruß
Update: Wenn ich in meinem Symbol in der Netlist-Order die beiden
Ziffern von Kollektor und Emitter vertausche, sie also genau umgekehrt
wie im Modell belege, dann schaltet mein Transistor durch und es fließt
auch ein Kollektorstrom. Ist das nun ein Fehler im Modell?
Was ich auch noch etwas eigenartig finde ist, dass der Vorwärtsstrom
durch die Diode in der Simulation um Faktor 5 größer ist, als der Strom
welcher im Datenblatt bei dieser Spannung angegeben ist.
Gruß
1. Filenamen von Modellen braucht man nicht ändern. Auch abc.xyz ist ein
möglicher Name.
2. Die Netlist order der Pins muss mit der Reihenfolge in der
.subckt-Zeile übereinstimmen.
3. Ich habe dein Symbol gerichtet und den Original-Filenamen des
Herstellers belassen. Außerdem habe ich die Testschaltung erweitert.
Es läuft. Danke dass du gefragt hast. Ich helfe gerne.
Gruß
Helmut
Hallo Helmut erst mal vielen Dank für deine Hilfe. Jetzt funktioniert
der Baustein wirklich richtig.
Helmut S. schrieb:> Ich habe dein Symbol gerichtet
Kannst du das ein bischen genauer erläutern. Als einzigen Unterschied
kann ich nämlich bisher nur nen geänderten Bauteilnamen erkennen.
Du hast doch sicher noch etwas anderes geändert, oder?
Gruß
Helmut S. schrieb:> Die Netlist order der Pins muss mit der Reihenfolge in der> .subckt-Zeile übereinstimmen.
Das hat doch bereits gestimmt, oder nicht?
Gruß
Ich habe an deinem Symbol die Attribute neu gesetzt und das Überflüssige
Igain entfernt. Außerdem habe ich den .lib file vom Hersteller
heruntergeladen und den dann verwendet. Vielleicht hast du ja an deinem
".sub"-File herumgeschraubt.
Wenn man ein Symbol ändert, dann muss man es neu in den Schaltplan
setzen, also Altes raus, Neues rein.
Ja die netlist order hat bereits gestimmt.
Also irgendwas anderes musst du noch geändert haben. Ich schaff es
nämlich nicht nur durch das Abändern des Bauteilnamens bzw. Bauteilfiles
mein Symbol/Modell zum Laufen zu bringen.
Wenn ich dagegen dein geschicktes Modell und Symbol bei mir ins
Verzeichnis kopiere funktioniert alles problemlos.
Darum wärs nett, wenn du mir sagen könntest, was sonst noch falsch
definiert war, damit ich in Zukunft auch ohne fremde Hilfe Modelle in LT
Spice einbinden kann.
Gruß
1.
SpiceModel: PC817.sub den File gibt es doch gar nicht. Trag den
richtigen Filenamen ein.
2.
Value: PS2801C-1
Value2: PC817
Trag in beiden den Namen ein der in .subckt steht.
3.
"Igain=1" hat bei dem Modell nichts verloren.
4. Save drücken
Ich denke das waren die Änderungen im Symbol.
Jetzt muss das Symbol im Schaltplan gelöscht werden und neu eingesetzt
werden. Noch sicherer ist löschen des Bauteils, save, Schaltplan
schließen und dann wieder öffnen. Außerdem solltest du keine eigenen
.asy oder Modell- Files(.lib,.sub) im LTspice-Verzeichnis herumliegen
lassen. Ich kopiere da nie etwas in dieses Verzeichnis.
Helmut S. schrieb:> 1.> SpiceModel: PC817.sub den File gibt es doch gar nicht. Trag den> richtigen Filenamen ein.>> 2.> Value: PS2801C-1> Value2: PC817>> Trag in beiden den Namen ein der in .subckt steht.>> 3.> "Igain=1" hat bei dem Modell nichts verloren.
Obwohl ich jetzt 10 Minuten in meinem Modell bzw. Symbol nach diesen
Dingen gesucht habe, konnte ich kein einziges finden.
Darum wärs nett, wenn du mir ein wenig ausführlicher sagen könntest wo
die fehlerhaften Sachen zu finden sind.
Wo habe ich zum Beispiel PC817.sub eingetragen?
Oder wo steht das Value: PS2801C-1 Value2: PC817?
Auch das Igain=1 kann ich nirgends finden.
Gruß
Schau dir mal deine Datei an die du als erstes angehängt hast. Da stehen
diese "komischen" Werte(Texte) drin.
PS2801C-1.asy
Es gibt drei Arten von Subcircuit-Symbolen plus eine Untervariante.
Spezifisches Symbol: LT1013
Universelles Symbol: opamp2
Eine Unterart des universellen Symbols hat zusätzlich den Filenamen des
subcircuits im Attribute "Modelfile".
Drop-down-selection Symbol: UniversalOpamp2
Im Anhang ist meine Beschreibung die ich vor Jahren in die Yahoo group
eingestellt habe.
Vielen Dank für deine Hilfe, jetzt hab ich es verstanden. Ich habe das
Symbol immer nur mit LTSpice und nie mit dem Editor angeschaut. Deshalb
konnte ich die von dir genannten Dinge nie sehen.
Ich denke jetzt hab ich die ganze Erstellung von neuen Modellen
verstanden und werde jetzt mal zur Übung noch weitere hinzufügen.
Gruß
@Helmut: Jetzt hab ich mal noch zur Übung das Modell der Barrier-Diode
BAT54C eingebunden und es mit einer kleinen Testschaltung getestet und
dabei die Werte von Strom und Spannung an der Barrier Diode mit denen
aus dem Datenblatt von NXP verglichen.
Beim Sperrverhalten kommt der simulierte Wert des Stromes sehr nahe an
den Wert aus dem Datenblatt hin aber beim Durchlassverhalten ist mein
simulierter Wert der Flussspannung um rund 50% kleiner ist als der Wert
im Datenblatt.
Da ich mir jetzt nicht ganz sicher ist ob das davon kommt, dass das
Modell evtl nicht für 25°C gemacht wurde bzw. der Wert aus dem
Datenblatt ein Maximalwert ist wärs cool, wenn du dir mein Modell bzw.
die Testschaltung kurz anschauen könntest.
Gruß Andi
Ja das Modell ist entweder für eher 80°C oder zu optimistisch. Ich habe
dir mal eine Korrektur mit N=1.3 gemacht. Das sieht dann schon recht gut
für 25°C aus. Siehe Subcircuit am Ende.
Kleine Korrekturen:
1. In BAT54C.sub fehlt am Ende das ".ENDS"
2. Das Attribute sollte so sein: Symboltype:Cell
(Der Wert "Block" ist für hierarchische Schaltpläne gedacht. Allerdings
macht das meines Wissens nach kein Problem.)
*
.SUBCKT BAT54C 1 2 3
* The resistors do not reflect
* physical devices. Instead they
* improve modeling in the reverse
* mode of operation.
*
R1 1 3 3.6E+07
D1 1 3 BAT54C
R2 2 3 3.6E+07
D2 2 3 BAT54C
*
.MODEL BAT54C D(
+ IS = 2.117E-07
+ N = 1.3
+ BV = 36
+ IBV = 1.196E-06
+ RS = 2.637
+ CJO = 1.114E-11
+ VJ = 0.2013
+ M = 0.3868
+ FC = 0
+ TT = 0
+ EG = 0.69
+ XTI = 2)
*
*
.ENDS
Helmut S. schrieb:> Ja das Modell ist entweder für eher 80°C oder zu optimistisch. Ich habe> dir mal eine Korrektur mit N=1.3 gemacht. Das sieht dann schon recht gut> für 25°C aus. Siehe Subcircuit am Ende.
Ich habe bisher gar nicht gewusst, dass der Emissionskoeffizient
temperaturabhängig ist. Aber gut zu wissen. Hab mich schon die letzten
Tage immer gefragt, wo im Spice-Modell die Umgebungstemperatur eines
Halbleiterbauelements drin steckt.
Den Wert aus dem Datenblatt erreich ich zwar immer noch nicht ganz aber
jetzt liegt die Abweichung bei der Flussspannung nur noch bei 20%, von
daher kann man glaub ich nun mit der Modellierung zufrieden sein.
Gruß
Hallo Andi,
vielleicht habe ich mich da etwas missverständlich ausgedrückt. Ich
wollte nur sagen, dass man mit dem Originalmodell eher die Kennlinie für
hohe Temperaturen trifft.
Mit dem Parameter N wir die Steilheit der Kennlinie Id(Ud)eingestellt.
Mit IS verschiebt man die Kennlinie. Mir Rs modelliert man den Verlauf
bei hohen Strömen.
Id = Is*e^(Ud'/(N*Ut)
Ud'= Ud-Id*Rs
@Helmut: Dank deiner Hilfe komm ich mittlerweile mit dem Einfügen der
Modelle ganz gut klar. Heut hab ich zum Beispiel schon das Modell eines
STB11NM80T4 MOSFET hinzugefügt.
Ich habe das Modell mit einer kleinen Testschaltung getestet, es scheint
zu laufen.
Ich habe jetzt nur das Problem, dass wenn ich den MOSFET in einer
Simulation eines Sperrwandlers verwende, dass dann die Simulation extrem
langsam wird. Im Prinzip so langsam (50ns/s), dass das Simulieren keinen
Sinn mehr macht. Wenn ich anstelle des STB11NM80T4 den MOSFET
BSC42DN25NS3 nehme, läuft die Simulation dagegen richtig flüssig.
Da ich annehme, dass die extreme Verlangsamung vom recht ausführlichen
Spice-Modell des STB11NM80T4 kommt, wollte ich fragen, ob man so ein
Spice-Modell vereinfachen kann, also einzelne für die Anwendung
unwichtige Effekte aus dem Modell entfernen kann?
Ich habe im Anhang mal das Modell und das Symbol des MOSFETs mit
angehängt.
Ich habe auch schon nach alternativen MOSFETS geschaut. Da ich aber
einen mit Vds,min= 650V oder besser noch größer benötige, konnte ich
bisher keinen anderen MOSFET finden.
Gruß
Vermutlich läuft die Simultion so langsam, weil in dem Modell
ausnahmsweise Induktivitäten drin sind. Ersetze die mal durch 0V
Spannungsquellen.
LG 2 4 7.5n
LS 12 3 7.5n
LD 6 1 4.5n
-->
VLG 2 4 0 ;7.5n
VLS 12 3 0 ;7.5n
VLD 6 1 0 ,4.5n
Nachtrag: Die Namen von Modell-Dateien müssen nicht unbedingt mit ".sub"
enden. Jeder beliebige Name ist erlaubt.
Helmut S. schrieb:> Vermutlich läuft die Simultion so langsam, weil in dem Modell> ausnahmsweise Induktivitäten drin sind. Ersetze die mal durch 0V> Spannungsquellen.>>> LG 2 4 7.5n> LS 12 3 7.5n> LD 6 1 4.5n>> -->>> VLG 2 4 0 ;7.5n> VLS 12 3 0 ;7.5n> VLD 6 1 0 ,4.5n>>>> Nachtrag: Die Namen von Modell-Dateien müssen nicht unbedingt mit ".sub"> enden. Jeder beliebige Name ist erlaubt.
Ich habe das Modell jetzt mal so abgeändert wie du gesagt hast (siehe
Anhang). Ist das Komma anstatt eines Semikolons in der VLD-Zeile
erwünscht oder ein Tippfehler? Ich hab es auch einmal als Komma
probiert, ändert aber auch nichts.
Die Simulation läuft jetzt schon mal ein wenig schneller, geschätzt in
etwa doppelt so schnell wie vorher, aber halt immer noch viel zu
langsam, als dass das Simulieren Sinn macht.
Die Simulation hab ich dir mal noch mit angehängt.
Vielleicht gibts ja noch eine andere Stelle im Modell wo man für meine
Anwendung, in welcher der MOSFET ja nur als Schalter eingesetzt wird
vernachlässigt werden kann.
Gruß
Update: Jetzt ist mir gerade aufgefallen, dass ich ja die falsche
Simulation mitangehängt habe. In der Simulation habe ich noch einen
anderen MOSFET verwendet, deshalb läuft sie auch flüssig.
Jetzt habe ich dir die richtige Simulation angehängt. Der Unterschied in
der Simulationsgeschwindigkeit ist schon sehr krass.
Noch was anderes habe ich festgestellt. Und zwar bringt mir LTSpice ne
Fehlermeldung, wenn ich das Komma anstatt dem Semikolon im Modell
verwende.
Also scheint wohl doch das Semikolon richtig zu sein.
Gruß
Ach noch was. Hab ich ganz vergessen. Das Modell des TL431 hab ich
selbstständig erstellt, also noch nicht in diesem Thread hochgeladen.
Hab es mal mit angehängt, damit du die Sperrwandler-Simulation mal
testen kannst.
Gruß
Jetzt muss ich gerade ein wenig schmunzeln. Habe nämlich gerade
festgestellt, dass in der Bauteilbibliothek vom LTSpice doch ein paar
High Voltage MOSFETs sind, darunter auch der STW11NM80, welcher das
selbe Datenblatt besitzt wie mein hinzugefügter MOSFET STB11NM80 :)
Und die gute Nachricht ist, dass mit dem MOSFET aus der Bibliothek auch
die Simulation flüssig läuft.
Gruß
Hallo Andi,
in deiner Schaltung sind zu viele Fehler im Regelpfad drin.
Du musst einfacher anfangen. Rechter Mausklick auf den LT3758. Dann
"Open this macromodel's test fixture". Siehe auch Anhang.
Diesen Schaltplan "bohrst" du auf deine 370V auf; Mosfet, Dioden,
Spannunsgteiler ändern.
Erst wenn das funktioniert, baust du den Optokoppler ein.
Helmut S. schrieb:> Hallo Andi,> in deiner Schaltung sind zu viele Fehler im Regelpfad drin.> Du musst einfacher anfangen. Rechter Mausklick auf den LT3758. Dann> "Open this macromodel's test fixture". Siehe auch Anhang.> Diesen Schaltplan "bohrst" du auf deine 370V auf; Mosfet, Dioden,> Spannunsgteiler ändern.> Erst wenn das funktioniert, baust du den Optokoppler ein.
Hallo Helmut,
diesen Schaltplan kenne ich bereits. Der Unterschied von meiner
Schaltung zu diesem ist aber, dass bei dieser Beispielschaltung keine
galvanische Trennung zwischen Eingang und Ausgang besteht.
Aus diesem Grund habe ich für meinen Schaltungsentwurf die Schaltung vom
Datenblatt des LT3758 Seite 30 genommen bzw. eher die Schaltung des
Demoboards:
http://cds.linear.com/docs/Demo%20Board%20Schematic/1412asch.pdf
Aber das meine Schaltung bisher noch nicht korrekt arbeitet ist schon
richtig.
Gruß
Hallo zusammen,
ich kämpfe mich gerade an LTSpice ab. Kann es sein, das in der oben
angegebenen Anleitung "Symbol_types.txt" das Beispiel "Drop Down Symbol
(Type-2)" kompletter Mumpitz ist. Ich kann das so gar nicht
nachvollziehen.
Grüße, Michael
Hallo Michael,
hol dir mal den [Opamps] UniversalOpamp2 auf einen Schaltplan.
Zusätzlich öffnest du dessen Symbol mit dem Symboleditor.
Wenn du dann Unterschiede zu meiner Beschreibung findest, dann
korrigiere ich die natürlich.
Gruß Helmut
Nachtrag: So sieht der Dialog aus, wenn man mit Klick "rechte Maustaste"
auf das Symbol im Schaltplan klickt. Dann zusätzlich Doppelklick linke
Maustaste auf "level2".
Hallo Helmut,
ok, ich nehme alles zurück und behaupte das Gegenteil. Ich konnte das
jetzt nachvollziehen.
Das Beispiel mit LTC1013 war aber ein bischen verwirrend gewählt.
Einfacher wäre es wenn da direkt das Symbol stünde, an dem man es
nachvollziehen kann.
Jedenfalls wird LTSpice an der Stelle etwas holperig.
Danke und Grüße, Michael