Forum: Analoge Elektronik und Schaltungstechnik SPICE / Multisim


von Gerhard R. (p1950)


Lesenswert?

Hallo zusammen,
ich bin neu im Forum und man möge mir Fehler verzeihen ....

Nun zu meiner Frage:
- Multisim14 und bei diversen Röhren-Modellen bekomme ich den folgenden 
Warnhinweis:

Netzlistenwarnung im Schaltungs-RefBez 'v5', Element 'e1':
Wenn log() nicht eindeutig ist, wird der Ausdruck als ln() 
interpretiert.
======= 0 Fehler, 1 Warnung(en) =======

Beispielhaftes Modell, bei dem dieser Hinweis erscheint.

E1 7 0 VALUE=
+{V(1,3)/500*LOG(1+EXP(500*(1/22+V(2,3)/SQRT(300+V(1,3)*V(1,3)))))}
G1 1 3 VALUE={(PWR(V(7),1.3)+PWRS(V(7),1.3))/362}
RCP 1 3 1G ; TO AVOID FLOATING NODES IN MU-FOLLOWER
C1 2 3 5.8p
C2 2 1 5.1p
C3 1 3 0.91p
D3 5 3 DX ; FOR GRID CURRENT
R1 2 5 2000 ; FOR GRID CURRENT
.MODEL DX D(IS=1N RS=1 CJO=0 TT=1N)

Habe schon ausgiebig recherchiert, leider ohne Ergebnis. Ich hoffe ihr 
könnt mir weiterhelfen.

VG und schon mal vielen Dank ...

von Christian L. (cyan)


Lesenswert?

Der Logarithmus log(x) in der zweiten Zeile ist halt nicht eindeutig 
definiert. Deshalb interpretiert das Programm den Ausdruck als den 
gängigen natürlichen Logarithmus zur Basis e:
log_e(x) = ln(x)

Ob das korrekt ist weiß nur der Ersteller des Modells. Er könnte genauso 
gut die verbreitete Variante des dekadischen Logarithmus 
log_10(x)gemeint sein. Gegebenfalls muss du das Modell ein wenig testen, 
ob es durch die Interpretation zu falschen Ergebnissen kommt. Dann musst 
du evtl. von Hand das Modell modifizieren, sodass es stimmt.

https://de.wikipedia.org/wiki/Logarithmus#Bezeichnungen

: Bearbeitet durch User
von Helmut S. (helmuts)


Lesenswert?

In jedem "internationalen" Programm ist log stets der Logarithmus zur 
Basis e. Genau so ist es auch in diesem Modell.

log() entspricht dem deutschen ln().

log10(x) entspricht dem deutschen lg().

von Yalu X. (yalu) (Moderator)


Lesenswert?

Es ist leider komplizierter ;-)

Im SPICE3 (dem Original) ist ln der natürliche und log der dekadische
Logarithmus. Es orientiert sich damit an der Tastenbeschriftung der
meisten Taschenrechner.

In den meisten Programmiersprachen ist aber log der natürliche und log10
der dekadische Logarithmus. Das gilt lustigerweise auch für C, in dem
SPICE3 programmiert wurde. Ebenso für Fortran, in dem SPICE1 und SPICE2
programmiert wurde. Allerdings konnten diese älteren SPICEs noch keine
Formeln, so dass sich die Frage dort nicht stellte.

Die kommerziellen und freien SPICE-Nachfolger spalten sich in zwei
Lager: Die einen sind kompatibel zum Original (bspw. Ngspice und
SIMetrix), die anderen halten sich an die gängigen Konventionen in
Programmiersprachen (bspw. LTspice, PSpice, Multisim).

Im gesposteten Modell kann ich leider keine speziellen Syntax-Features
erkennen, die es eindeutig einer bestimmten Spice-Variante zuordnen
ließe.

Woher stammt das Modell? Vielleicht findet sich an der Quelle ein
Kommentar oder ein sonstiger Hinweis darüber, für welches Spice es
geschrieben wurde.


Helmut S. schrieb:
> In jedem "internationalen" Programm ist log stets der Logarithmus zur
> Basis e.

International korrekt (nach ISO 31-11) wäre eigentlich ln für den
natürlichen und lg für den dekadischen Logarithmus. Aber lg sieht man in
der Computerwelt so gut wie überhaupt nicht.

  https://en.wikipedia.org/wiki/ISO_31-11#Exponential_and_logarithmic_functions
————————————
¹) Mit Ausnahme von Pascal: Dort ist ln der natürliche Logarithmus und
   den dekadischen gibt es überhaupt nicht.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Yalu X. schrieb:
> Im gesposteten Modell kann ich leider keine speziellen Syntax-Features
> erkennen, die es eindeutig einer bestimmten Spice-Variante zuordnen
> ließe.

Hab gerade nachgeschaut: SPICE3, Ngspice und SIMetrix haben die Funktion
PWRS nicht. Das könnte darauf hindeuten, dass LOG(x)=LN(x) ist. Ich weiß
allerdings nicht, ob es vielleicht noch weitere SPICEs gibt, die zwar
die PWRS-Erweiterung implementiert haben, aber dennoch zu SPICE3
"logarithmuskomaptibel" sind.

: Bearbeitet durch Moderator
von Helmut S. (helmuts)


Lesenswert?

> ; TO AVOID FLOATING NODES IN MU-FOLLOWER

Diesen Kommentar oben sehe ich den Modellen in Tube_IM.lib und dort wird 
PSPICE erwähnt. Deshalb nehme ich an, dass log() dem ln() entspricht. 
Den Zehnerlogarithmus log10() verwendet man eigentlich nur bei dB.

* This library was developed by Norman Koren.
*
* For details, refer to the article, "Improved Vacuum-Tube Models
* for SPICE simulations," Glass Audio, Vol. 8, No. 5, 1996,
* available from Audio Amateur Corporation, 305 Union St.,
* PO Box 176, Peterborough, NH 03458 USA.  Phone 603-924-9464.

* TUBE LIBRARY (basing on "Improved vacuum tube models")
* For PSpise
*
* Tube list
*
* 6DJ8, ECC88
* 12AX7

Hier noch ein Link.
http://www.normankoren.com/Audio/Tubemodspice_article.html

: Bearbeitet durch User
von Klaus R. (klara)


Lesenswert?

Gerhard R. schrieb:
> Habe schon ausgiebig recherchiert, leider ohne Ergebnis. Ich hoffe ihr
> könnt mir weiterhelfen.

Versuche es doch mal mit LTspice.
mfg klaus

von Gerhard R. (p1950)


Lesenswert?

Das Modell scheint einwandfrei zu funktionieren, jedoch ist der ständige 
Warnhinweis nervig.
Es existiert noch die Anweisung ".SYNTAX mode MS". Diese wird jedoch mit 
der Fehlermeldung "unbekannter mode" quittiert.
Trotzdem vielen Dan für die Hinweise.

VG

von subaka (Gast)


Lesenswert?

Gerhard R. schrieb:
> Das Modell scheint einwandfrei zu funktionieren, jedoch ist der ständige
> Warnhinweis nervig.
Dann würde ich einfach LOG zu LN ändern.

von Gerhard R. (p1950)


Lesenswert?

@subaka
Wir hatten hier die gleiche Idee. LOG gegen LN getausch und alles ist 
o.k.
Vielen Dank an euch und viele Grüße
Gerhard

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.