Addierer mit LTspice

Gast #3713804
Lesenswert?

>Wenn dir 1 GOhm und eine Differenzverstärkung von 10E9 nicht reichen,
>kannst du es ja noch erhöhen.

Ich vermute, dass es besser ist, keine OPs und Widerstände zu verwenden, 
da diese extra Rechenzeit benötigen.
Gast #3713814
Lesenswert?

Wäre das so korrekt:
1
Version 4
2
SymbolType BLOCK
3
RECTANGLE Normal 113 -3 1 -92
4
TEXT 30 -51 Left 2 plus
5
PIN 0 -80 RIGHT 8
6
PINATTR PinName v1
7
PINATTR SpiceOrder 1
8
PIN 0 -16 RIGHT 8
9
PINATTR PinName v2
10
PINATTR SpiceOrder 2
11
PIN 112 -48 LEFT 8
12
PINATTR PinName vout
13
PINATTR SpiceOrder 3
Angehängte Dateien:
Gast #3713898
Lesenswert?

Du mußt dein Symbol noch mit dem Circuit verknüpfen z.B. als .lib File.

Für einen Anfänger ist es aber einfacher, mit der Schaltplanhierarchie 
zu arbeiten.

Zeichne also deinen Schaltplan - entweder die oberere oder untere 
Version, wenn sich alle Signale immer auf 0 beziehen, speichere ihn und 
wähle dann im Menu

Hierarchy=>Open this Sheet's Symbol
Anpassungen vornehmen und speichern (Automatisch wird das .asy im Order 
..LTSpice\lib\sym\AutoGenerated abgelegt, sollte aber im aktuellen 
Arbeitsverzeichnis gespeichert werden).

Siehe LTSpice-Hilfe
"Schematic Capture" - "Creating New Symbols" - "Automatic Symbol 
Generation"
                    - "Hierarchy" - "Rules of Hierarchy"

p.s. wenn Rechenzeit wirklich wichtig ist, solltest du mit realistischen 
Widerständen und Kapazitäten arbeiten - Zitat aus der Hilfe:

"Note: It is better to use a G source shunted with a resistance to 
approximate an E source than to use an E source. A voltage controlled 
current source shunted with a resistance will compute faster and cause 
fewer convergence problems than a voltage controlled voltage source. 
Also, the resultant nonzero output impedance is more representative of a 
practical circuit."
Angehängte Dateien:
Gast #3720652
Lesenswert?

Ich versuche gerade, das Symbol mit einem Sub-Circuit zu verbinden, die 
Funktion habe ich mit dem * auskommentiert.
1
.SUBCKT addierer 1 2 3
2
* B1 1 2 V=V(1)+V(2)
3
.ENDS addierer

Das Pice-Netzlistenmodell zum testen sieht folgendermaßen aus ( eine 
Spannungsquelle an beiden Eingängen ):
1
* C:\users\christoph\Desktop\graphProg\Draft4.asc
2
XX1 N001 N001 NC_01 addierer
3
V1 N001 0 V
4
.tran 1
5
.backanno
6
.end

Wenn ich die Simulation starten will, kommt folgendes:

Unknown subcircuit called in
XX1 N001 N001 NC_01 addierer

Was mache ich falsch?
Gast #3720816
Lesenswert?

Danke für die Antwort. Gerade eben habe ich dieses Dokument zu LTspice 
überflogen:

http://denethor.wlu.ca/ltspice/

Im Abschnitt "Method 2 and Method 3: Setup" steht, dass man den Prefix 
des Symbols auf 'X' setzen kann. Dass soll LTspice dann anzeigen, dass 
es sich um ein Sub-Circuit handelt. Ich habe es so verstanden, dass dann 
das Simulationsmodell aus dem addierer.sub file geladen werden soll. 
Braucht man dann zusätzlich noch das lib-File?
#3721266
Lesenswert?

> Braucht man dann zusätzlich noch das lib-File?

Wenn im Symbol das Attribut "Prefix" auf X gesetzt ist, dann sucht 
LTspice nach einem Subcircuit mit dem Namen der im Attribut "Value" 
steht.
Das Subcircuit kann entweder direkt im Schaltplan stehen oder in einer 
Datei sein. Falls es in einer Datei ist, dann benötigt LTspice den Namen 
der Datei. Der Dateiname kann entweder im Symbol selbst oder im 
Schaltplan stehen. Im Falle eienr Datei muss dazu eine include-Zeile im 
Schalplan stehen.
.inc dateiname
oder
.lib dateiname

Gruß
Helmut
#3721301
Lesenswert?

Helmut S. schrieb:
>> Braucht man dann zusätzlich noch das lib-File?
>
> Wenn im Symbol das Attribut "Prefix" auf X gesetzt ist, dann sucht
> LTspice nach einem Subcircuit mit dem Namen der im Attribut "Value"
> steht.
> Das Subcircuit kann entweder direkt im Schaltplan stehen oder in einer
> Datei sein. Falls es in einer Datei ist, dann benötigt LTspice den Namen
> der Datei. Der Dateiname kann entweder im Symbol selbst oder im
> Schaltplan stehen. Im Falle einer Datei muss dazu eine include-Zeile im
> Schalplan stehen.
> .inc dateiname
> oder
> .lib dateiname
>
> Gruß
> Helmut

Kleiner Tipp:
Die Datei mit dem Modell legt man am besten in das Verzeichnis in dem 
sich der Schaltplan befindet.
Gast #3724432
Lesenswert?

Nachdem ich ein anderes Modell mit zwei Anschlüssen erstellen konnte, 
habe ich noch einmal einen Versuch mit der von dmwtr (Gast) unternommen.

Es ergeben sich zwei Dateien

addierer.sub:
1
.SUBCKT v1 v2 vout
2
R1 v2 0 1000k
3
R2 v1 0 1000k
4
B1 vout 0 V=V(v1,0)+V(v2,0)
5
.ENDS

addierer.asy
1
Version 4
2
SymbolType BLOCK
3
RECTANGLE Normal 113 -3 1 -92
4
TEXT 30 -51 Left 2 plus
5
SYMATTR Prefix X
6
SYMATTR SpiceModel ADDIERER
7
SYMATTR Description addierer
8
SYMATTR ModelFile addierer.sub
9
PIN 0 -80 RIGHT 8
10
PINATTR PinName v1
11
PINATTR SpiceOrder 1
12
PIN 0 -16 RIGHT 8
13
PINATTR PinName v2
14
PINATTR SpiceOrder 2
15
PIN 112 -48 LEFT 8
16
PINATTR PinName vout
17
PINATTR SpiceOrder 3

Und die Testschaltung:
1
Version 4
2
SHEET 1 880 680
3
WIRE 160 96 -32 96
4
WIRE -32 160 -32 96
5
WIRE 160 160 -32 160
6
WIRE -32 224 -32 160
7
WIRE -32 336 -32 304
8
FLAG -32 336 0
9
SYMBOL voltage -32 208 R0
10
WINDOW 123 0 0 Left 2
11
WINDOW 39 0 0 Left 2
12
SYMATTR InstName V1
13
SYMATTR Value 5
14
SYMBOL addierer 160 176 R0
15
SYMATTR InstName U1
16
TEXT -64 360 Left 2 !.tran 2

Leider mit der obigen Fehlermeldung.
Fällst euch dazu was ein?
Angehängte Dateien:
Gast #3724556
Lesenswert?

Danke Helmut, das war der Fehler. Ich habe 100mal hingeschaut, mit 
anderen Modellen verglichen und es nicht gesehen.

>Man kann übrigens verschiedene Arten von Symbolen machen.

Wie meinst Du das? Für den Addierer habe ich einfach ein Rechteck 
genommen. OK, vielleicht wäre ein Summenzeichen aus Linien schöner. Mal 
sehen ...
#3724805
Lesenswert?

Hallo Chris,
Es gibt ca. 5 Arten für Symbole. Gesteuert wird das über die Verwendung 
oder Nichtverwendung bestimmter Attribute.

Spezifisches Symbol
(Vorteil: Kann nicht im Schaltplan verändert werden.)

Universal Symbol
(Vorteil: Kann für verschieden Bauteile verwendet wedren.)

Auto generiertes Symbol   -> ähnlich deinem Symbol

Auswahl Symbol (Vorteil: Man kann aus eienr LIste wählen.)

Hierarchisches Symbol (
Vorteil: Man hat einen Schaltplan für das Subcircuit.)

Im Anhang mal dein Beispiel mit einem spezifischen Symbol.
Einfach in einem neuen Verzeichnis auspacken, z. B. C:\Test
Angehängte Dateien:
Gast #3724907
Lesenswert?

>Im Anhang mal dein Beispiel mit einem spezifischen Symbol.
>Einfach in einem neuen Verzeichnis auspacken, z. B. C:\Test

Ah, tatsächlich, das Symbol kann man nicht editieren. Das hat mich zum 
experimentieren animiert. Im Anhang liegt noch eine Variante.

> z. B. C:\Test

Ich habe kein C: aber ein "home". LTspice funktioniert mit "wine" 
ziemlich gut.

Kann man dem Addierer eigentlich auch einen Offset verpassen, den der 
Anwender mit einem Eintrag in "value" einstellen kann?
Angehängte Dateien:
Gast #3724920
Lesenswert?

Geht mit einem Parameter (im Beispiel Defaultwert=0) der dann im Symbol 
(SYMATTR SpiceLine offset=xx) geändert werden kann.

.SUBCKT addierer v1 v2 vout PARAMS:offset=0
R1 v2 0 1000k
R2 v1 0 1000k
B1 vout 0 V=V(v1,0)+V(v2,0)+offset
.ENDS
#3725894
Lesenswert?

Hallo Chris,

du kannst ADDIERER_OFFSET auch klein oder gemischt groß und klein 
schreiben. LTspice unterscheidet da nicht.

Value: addierer_offset

addierer_offset ist der Name des Subcircuits. Den könnte man auch im 
Schaltplan sichtbar machen, aber dann würde ich empfehlen einen kürzeren 
Namen zu nehmen damit der Schaltplan gut lesbar bleibt.

Lesbarkeit von Attributen im Symbol stellt man so ein:

Symbol mit dem Symboleditor öffnen, dann

Edit -> Attributes -> Attribute Window -> Attribut auwählen
#3728719
Lesenswert?

Hallo Chris,
dazu gibt es meines Wissens mindestens zwei verschiedene Bibliotheken in 
der Yahoo group.


https://groups.yahoo.com/neo/groups/LTspice/files/%20Examples/Educational/Control%20Theory/


https://groups.yahoo.com/neo/groups/LTspice/files/%20Examples/Educational/Automatic%20control/

Es gibt noch eine weitere im Internet.

http://home.scarlet.be/nap0/ltspice/index.html


Gruß
Helmut

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren