Gibt es ein Potentiometermodell für LTspice?

Ich habe mit dem Entwerfen eines Modells für ein dreipoliges Potentiometer in LTspice begonnen, da keine enthalten sind und es sich um eine so häufige Komponente handelt. Als ich das .asy-Symbol und den Wischeranschluss zeichnete, dämmerte mir, dass dies komplizierter sein würde, als es den Anschein hatte. Wie würden die verschiedenen Verjüngungen modelliert? Wie würde diese Verjüngung während der Simulation "gesteuert" werden? Es sieht so aus, als ob zumindest ein Subcircuit und eine Bibliothek in Ordnung sind.

Bevor ich das Rad neu erfinde, hat das schon jemand gemacht ? Danke schön.Widerstandsmodell mit 3 Anschlüssen, im Aufbau

In der Vergangenheit habe ich einen Standardwiderstand verwendet, dann nur einen parametrischen Sweep der Widerstandswerte, um ein Potentiometer zu modellieren.

Antworten (5)

...hat das schon jemand gemacht?

Ja, das hat schon mal jemand gemacht. (Ich glaube, sein Name ist Helmut Sennewald).

Die Yahoo LTSpice-Gruppe hat eine Reihe von Potentiometern, die sehr gut funktionieren. Sie müssen ein Yahoo-Konto registrieren und der Gruppe beitreten, um sie herunterzuladen (übrigens empfehle ich dies dringend, wenn Sie LTSpice verfolgen möchten, die Yahoo-Gruppe hat eine der größeren Sammlungen von LTSpice-Modellen von Drittanbietern).

Die relevanten Dateien sind potentiometer_standard.libund potentiometer_standard.asysowie einige andere unterstützende Dateien.

Die Modelle bieten lineare, logarithmische und andere Modelle sowie ein Potentiometersymbol. Nachfolgend ein Auszug aus der Readme-Datei.

pot_lin : ideal linear resistance dependency
pot_pow : ideal power function resistance dependency
pot_plog : ideal positive logarithm function resistance dependency
pot_nlog : ideal negative logarithm function resistance dependency
potr_tab: arbitrary(table) based resistance dependency
pot_piher_plog : pseudo logarithm function resistance dependency, Piher
pot_radiohm_plog : measured pseudo logarithm fucntion resistance dependency, Radiohm

Wie würde diese Verjüngung während der Simulation "gesteuert" werden?

Diese Potis haben eine wiperEigenschaft, die einfach als regulärer LTSpice-Parameter parametrisiert werden kann. Sie könnten beispielsweise sagen wiper={GAIN}und dann eine Direktive wie hinzufügen .step param GAIN 0 1.0 0.25.

Großartig! Aber wie bekomme ich es, ohne meine Seele an Yahoo zu verkaufen? D.h. man muss dort kein Konto eröffnen?
Yahoo-Gruppen werden geschlossen. Ist die Gruppe woanders hingezogen?
Eine Alternative könnte sein: groups.io/g/LTspice

Ich habe versucht, den obigen Vorschlägen zu folgen, aber es hat sehr lange gedauert, bis ich ein Potentiometer erstellt habe, das wie ein Potentiometer aussieht und das aus dem Hauptschaltplan instanziiert werden kann. Also, zum Wohle aller, die vielleicht so dumm sind wie ich ...

Kopieren Sie einfach diese 3 Dateien in ein Verzeichnis im LTspice-Suchpfad (löschen Sie alle anfänglichen Leerzeichen in jeder Zeile). Hoffe die Namen sind selbsterklärend.

potentiometer_test.asc

    Version 4
    SHEET 1 880 680
    WIRE 272 48 0 48
    WIRE 528 48 272 48
    WIRE 272 80 272 48
    WIRE 528 80 528 48
    WIRE 0 96 0 48
    WIRE 0 192 0 176
    WIRE 272 208 272 176
    WIRE 528 208 528 176
    FLAG 272 208 0
    FLAG 0 192 0
    FLAG 320 128 out1
    FLAG 528 208 0
    FLAG 576 128 out2
    SYMBOL voltage 0 80 R0
    SYMATTR InstName V1
    SYMATTR Value 10
    SYMBOL potentiometer 272 176 M0
    SYMATTR InstName U1
    SYMATTR SpiceLine2 wiper=0.2
    SYMBOL potentiometer 528 176 M0
    SYMATTR InstName U2
    SYMATTR SpiceLine R=1
    SYMATTR SpiceLine2 wiper=0.8
    TEXT 140 228 Left 2 !.op

Potentiometer.einfach

    Version 4
    SymbolType BLOCK
    LINE Normal 16 -31 -15 -16
    LINE Normal -16 -48 16 -31
    LINE Normal 16 -64 -16 -48
    LINE Normal 1 -9 -15 -16
    LINE Normal 1 0 1 -9
    LINE Normal 1 -94 1 -87
    LINE Normal -24 -56 -16 -48
    LINE Normal -24 -40 -15 -48
    LINE Normal -47 -48 -15 -48
    LINE Normal -16 -80 16 -64
    LINE Normal 1 -87 -16 -80
    WINDOW 0 30 -90 Left 2
    WINDOW 39 30 -50 Left 2
    WINDOW 40 31 -23 Left 2
    SYMATTR Prefix X
    SYMATTR ModelFile potentiometer.lib
    SYMATTR SpiceLine R=1k
    SYMATTR SpiceLine2 wiper=0.5
    SYMATTR Value2 potentiometer
    PIN 0 -96 NONE 8
    PINATTR PinName 1
    PINATTR SpiceOrder 1
    PIN 0 0 NONE 8
    PINATTR PinName 2
    PINATTR SpiceOrder 2
    PIN -48 -48 NONE 8
    PINATTR PinName 3
    PINATTR SpiceOrder 3

potentiometer.lib

    * This is the potentiometer
    *      _____
    *  1--|_____|--2
    *        |
    *        3
    *
    .SUBCKT potentiometer 1 2 3
    .param w=limit(wiper,1m,.999)
    R0 1 3 {R*(1-w)}
    R1 3 2 {R*(w)}
    .ENDS
Willkommen bei EE.SE!

Google LTSpice Potentiometer, es gibt viele Beispiele mit unterschiedlichem Komplexitätsgrad. Die meisten verwenden eine Unterschaltung in dieser Richtung:

* This is the potentiometer
*      _____
*  1--|_____|--2
*        |
*        3
*
.SUBCKT potentiometer 1 2 3
.param w=limit(wiper,1m,.999)
R0 1 3 {Rtot*(1-w)}
R1 3 2 {Rtot*(w)}
.ENDS

Um einen Parameter (z. B. einen Komponentenwert) zu variieren, können Sie den Befehl .step verwenden, um einen Parameter-Sweep durchzuführen. Wenn Sie nur einen variablen Widerstand mit zwei Anschlüssen wollen, können Sie dafür einen normalen Widerstand verwenden. Wenn Sie drei Terminals benötigen, scheint Steves Antwort gut zu sein.

Unter "Sonderfunktionen" gibt es einen spannungsgesteuerten Varistor, den Sie stattdessen verwenden könnten.