Forum: Analoge Elektronik und Schaltungstechnik Addierer mit LTspice


von chris_ (Gast)


Lesenswert?

Kann man mit LTspice einen Addierer mit zwei Eingängen erstellen?

Also quasi die Eingänge mit unendlich hohem Eingangswiderstand und der 
Ausgangswiderstand=0.

von stefanus (Gast)


Lesenswert?

Ich bin kein LTSpice Spezialist. Aber ich bin dennoch ziemlich sicher, 
dass es geht, denn er kann ja auch Operationsverstärker simulieren.

von dmwtr (Gast)


Lesenswert?

Mit einer Formel in einer B-Quelle - nennt sich "bv" in der 
Komponentenauswahl.

V=V(a)+V(b)

von chris_ (Gast)


Lesenswert?

>V=V(a)+V(b)

Vielen Dank. Kann ich dazu auch ein Symbol machen? So dass man das 
Symbol einfach in einen Schaltplan ziehen kann?

von Justin (Gast)


Lesenswert?

Das Symbol ist bereits vorhanden. Name: bv. die obige Gleichung nach dem 
Drücken der rechten Maustaste einfach eintragen

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

chris_ schrieb:
> Kann man mit LTspice einen Addierer mit zwei Eingängen erstellen?

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

von chris_ (Gast)


Angehängte Dateien:

Lesenswert?

Ok, danke. Das sieht dann wie oben aus.
Gibt es denn auch ein Möglichkeit, ein Symbol mit zwei Eingängen selber 
zu zeichnen und mit der Funktion zu verknüpfen?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

chris_ schrieb:
> Gibt es denn auch ein Möglichkeit, ein Symbol mit zwei Eingängen selber
> zu zeichnen und mit der Funktion zu verknüpfen?

Ja, du kannst dir natürlich ein Symbol selber zeichen und mit einer 
eigenen Funktion belegen. Im Netz gibt es reichlich Anleitungen dazu.

von chris_ (Gast)


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.

von chris_ (Gast)


Angehängte Dateien:

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

von dmwtr (Gast)


Angehängte Dateien:

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."

von chris_ (Gast)


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?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Du mußt das LTspice noch mit deinem Sub-Circuit bekannt machen.

".lib addierer.sub"

von chris_ (Gast)


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?

von Helmut S. (helmuts)


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

von Helmut S. (helmuts)


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.

von chris_ (Gast)


Angehängte Dateien:

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?

von Helmut S. (helmuts)


Lesenswert?

Hallo Chis,

Änderungen

.SUBCKT addierer v1 v2 vout

Damit läuft es dann schon.
Man kann übrigens verschiedene Arten von Symbolen machen.

von chris_ (Gast)


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 ...

von Helmut S. (helmuts)


Angehängte Dateien:

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

von chris_ (Gast)


Angehängte Dateien:

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?

von dmwtr (Gast)


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

von Helmut S. (helmuts)


Angehängte Dateien:

Lesenswert?

Im Anhang ein Beispiel mit "offset". Dabei habe ich mal die Syntax wie 
im Beiepiel von dmwtr genommen. Das ist eigentlich die PSPICE-Syntax.

von chris_ (Gast)


Angehängte Dateien:

Lesenswert?

Dank für die guten Beiträge. Im Anhang habe ich mal das Symbol von 
Helmut mit den Atributen als Bild angehängt.

Wird Zeile Value ADDIERER_OFFSET da sein? Ich kann sie sonst nirgends 
finden. Warum ist sie groß geschrieben?

von Helmut S. (helmuts)


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

: Bearbeitet durch User
von chris_ (Gast)


Angehängte Dateien:

Lesenswert?

Danke für Deine Antwort.
Mit den neuen Erkenntnissen habe ich mal versucht, etwas 
Regelungstechnik zu machen ( siehe Anhang ).

von Helmut S. (helmuts)


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

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.