Forum: Analoge Elektronik und Schaltungstechnik 0-Node in fremden SPICE-Modell eliminieren


von Abdul K. (ehydra) Benutzerseite


Angehängte Dateien:

Lesenswert?

Moin!

Gibt es eine allgemeingültige Strategie in SPICE-Modellen die 
sogenannten 0-Nodes zu fixen? Viele OpAmp-Modelle sind leider so 
aufgebaut und damit in einer Schaltung in der NICHT mit bipolarer 
Stromversorgung gearbeitet wird, leider nicht einsetzbar. Der interne 
0-Node wird an die Schaltplan-Masse automatisch verbunden.

Ich habe versucht, dem 0-Node einfach z.B. eine ganz sicher nicht 
verwendete Netznummer zu geben und dies an allen Stellen im 
SPICE-Modell. Leider scheint das aber generell nicht zu funzen.
So weit ich mich erinnere, klappte das mal vor Jahren bei einem anderen 
Modell.

Wer so ein 'defektes' Modell sehen will, z.B. der NE5532 von TI.

Irgendeine Idee? Der Fehler ist leider extrem häufig. Sozusagen ein 
unsichtbarer Extra-Pin. toll.

von M. K. (sylaina)


Lesenswert?

Hm, also ich würde ja schlichtweg einen Texteditor drüber jagen mit 
Search&Replace aber bisher hatte ich damit auch noch nie Schwierigkeiten 
mit sowas gehabt.

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Darum geht es nicht. Nach dem Ersetzen funktioniert das Modell dann gar 
nicht mehr! Sieht so aus, als würde der Ausgangsstrom nämlich immer über 
diesen 0-Node fließen. Bei echten OpAmps fließt er aber über beide 
Versorgungsanschlüsse je nach aktueller Phase.

von especia (Gast)


Angehängte Dateien:

Lesenswert?

Wenn es dir nur darum geht, den Ausgangsstrom von der Versorgung zu 
ziehen, könnten zwei zusätzliche Zeilen im lib helfen:
1
B1 3 0 I=uramp((I(EGND)*-1))
2
B2 0 4 I=uramp(I(EGND))

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Nicht schlecht, especia! Werde es ausprobieren. Eventuell geht nun auch 
der Trick den 0-Node zu eliminieren.

von Helmut S. (helmuts)


Lesenswert?

Das was ihr vorhabt ist keine gute Idee. Es gibt in den Modellen oft 
E-Quellen die auf 0 liegen aber trotzdem OK sind. Es wäre geradezu 
falsch deren Strom nach 0 mit zu messen.

In der Yahoo Group gibt es eine bessere Methode den Ausgangsstrom nach 
V+ bzw. V- zu spiegeln. Im Prinzip wird einfach positiver Strom nach V+ 
gespiegelt und negativer Strom nach V-.

LTspice Yahoo Group:

Files > Lib > LM358 > Supply current simulation

von especia (Gast)


Lesenswert?

Helmut S. schrieb:
> Im Prinzip wird einfach positiver Strom nach V+
> gespiegelt und negativer Strom nach V-.

Das ist doch genau das, was ich mache. Das ich EGND zur 
Ausgangsstrommessung benutze ist Zufall (hab damit zuerst etwas anderes 
versucht). Man könnte genausogut VLIM nehmen oder als universelle Lösung 
eine eigene Sense einbauen.
1
*Draw output current from supply
2
B_Iop 3  0 I=uramp(I(VLIM)) ; add positive supply current
3
B_Ion 0  4 I=uramp(-I(VLIM)) ;add negative supply current
1
*.SUBCKT XXXX   1 2 <VP> <VN> <OUT>
2
*                              current sensed output
3
*                              |    
4
.SUBCKT XXXX   1 2 <VP> <VN> XOUT
5
V_Ios  <OUT>  XOUT  0 ;sense output current
6
B_Iop   <VP>     0  I=uramp(I(V_Ios)) ; add positive supply current
7
B_Ion      0  <VN>  I=uramp(-I(V_Ios)) ;add negative supply current

@Abdul:
Was ist der Hintergrund dafür, dass du den internen 0 entfernen 
möchtest?

Auch wenn nun der Ausgangsstrom in die Versorgung hineingerechnet wird, 
liefert den tatsächlichen Ausgangsstrom die Quelle FB. Durch EGND wird 
aber der Bezugspunkt auf ((V+)+(V-))/2 festgelegt, und ist damit 
unabhängig vom 0. Die Schaltung funktioniert auch, wenn  du Rlast gegen 
eine Versorgungsspannung schaltest, oder auch mit unsymetrischer 
Versorgung.
Abgesehen vom Ausgangstrom sind alle anderen Stromkreise intern 
geschlossen, traten also nach außen hin nicht in Erscheinung. (Darum 
auch der Workaround mit dem "Stromspiegel" in die Versorgung.)

von Abdul K. (ehydra) Benutzerseite


Angehängte Dateien:

Lesenswert?

especia schrieb:
> @Abdul:
> Was ist der Hintergrund dafür, dass du den internen 0 entfernen
> möchtest?
>

Ich dachte, daß wäre klar oben beschrieben. Solche OpAmps eben 
asymmetrisch betreiben inkl. der Versorgungspins als Signale, z.B. für 
Bootstrap usw.


> Auch wenn nun der Ausgangsstrom in die Versorgung hineingerechnet wird,
> liefert den tatsächlichen Ausgangsstrom die Quelle FB. Durch EGND wird
> aber der Bezugspunkt auf ((V+)+(V-))/2 festgelegt, und ist damit
> unabhängig vom 0. Die Schaltung funktioniert auch, wenn  du Rlast gegen
> eine Versorgungsspannung schaltest, oder auch mit unsymetrischer
> Versorgung.
> Abgesehen vom Ausgangstrom sind alle anderen Stromkreise intern
> geschlossen, traten also nach außen hin nicht in Erscheinung. (Darum
> auch der Workaround mit dem "Stromspiegel" in die Versorgung.)

Klingt gut, aber was geht mit deinem Modell nicht? Ist doch die 
interessantere Frage. Fast wie in der Werbung ;-)



Ich habe auch heute noch einen Trauerfall für Helmut entdeckt:
Helmut, dein powerOpAmp funzt nicht immer. Habs mal angehangen. Wenn man 
hinter dem OpAmp diesen abklemmt und als Ersatz eine BV-Quelle hinsetzt, 
hat man den gewünschten Sinus, beim OpAmp aber eine Verzerrung - die ich 
mir nicht erklären kann. Kann das sein, daß der Code von Mike nicht mit 
extrem niederohmigen Lasten funktioniert?

von Helmut S. (helmuts)


Lesenswert?

> Ich habe auch heute noch einen Trauerfall für Helmut entdeckt:
Helmut, ...

Ja Abdul wenn du dem Opamp keine Spannungsversorgung gibst dann brauchst 
du dich nicht wundern, wenn die Simulation  nicht wie erwartet 
funktioniert. Wie war das noch mit "sich an die eigene Nase fassen". :-)

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Helmut S. schrieb:
>> Ich habe auch heute noch einen Trauerfall für Helmut entdeckt:
> Helmut, ...
>
> Ja Abdul wenn du dem Opamp keine Spannungsversorgung gibst dann brauchst
> du dich nicht wundern, wenn die Simulation  nicht wie erwartet
> funktioniert.

Er bekommt doch 19V und es wird ein universalpoweropamp (=dein 
Werk!)verwendet, kein NE5532. Also nochmal drüberschauen.... Oder mir 
konkret sagen, wo ich einen Fehler machte. Ich mache auch mal Fehler und 
weiß ganz sicher nicht alles.


BTW:
Schalte mal ".ic i(L1)=9.5" ein, dann liefert die Simulation 1e6V. Kann 
das sein?
Vielleicht sollte ich mal ein paar Tage was anderes machen.


> Wie war das noch mit "sich an die eigene Nase fassen". :-)

In welchem Zusammenhang meinst du das?

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Das mit dem .ic laß mal weg. Ist Blödsinn gewesen.

von especia (Gast)


Angehängte Dateien:

Lesenswert?

Abdul K. schrieb:
> Solche OpAmps eben asymmetrisch betreiben inkl. der Versorgungspins
> als Signale, z.B. für Bootstrap usw.
Das mit dem Strom ist mir schon klar, ich sehe nur keinen Grund, den 
internen 0 umzubauen. Hast eine Beispielschaltung, die deswegen nicht 
funktioniert?

> aber was geht mit deinem Modell nicht?
Wie stellst du dir eine solche Aussage denn vor? Soll ich alle denkbaren 
Möglichkeiten durchtesten?

Als Beispiel für etwas das geht, ein Booster aus einem Lehrbuch(*).
Solange der Bezugspunkt berücksichtigt wird, funktioniert das.
Wenn du also ein Problem mit einer Schaltung hast, vermute ich die 
Ursache in der äußeren Beschaltung und nicht im internen 0.

(*)http://www.analog.com/library/analogDialogue/archives/39-05/op_amp_applications_handbook.html

ps. Anscheinend hat der Server ein Problem mit meinem png - liefert 500 
Internal Server Error nginx/1.2.7

von M. K. (sylaina)


Lesenswert?

especia schrieb:
...
> Wenn du also ein Problem mit einer Schaltung hast, vermute ich die
> Ursache in der äußeren Beschaltung und nicht im internen 0.
...

Das vermute ich ehrlich gesagt auch. Ich hatte noch nie Probleme 
zwischen den internen und externen Nodes in Spice aber so viel mach ich 
mit Spice auch wieder nicht.

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Meine Anfrage an Helmut hat sich erledigt. Der OpAmp hing an nem 
falschen Versorgungsnode. Dummerweise ein ähnlicher Node-Name.

Die zwei neuen Posts schaue ich mir später an.

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.