Empecé a diseñar un modelo para un potenciómetro de tres terminales en LTspice, ya que no se incluye ninguno y es un componente muy común. Al dibujar el símbolo .asy y el terminal del limpiaparabrisas, me di cuenta de que esto iba a ser más complicado de lo que parecía. ¿Cómo se modelarían las diversas velas? ¿Cómo se "controlaría" este estrechamiento durante la simulación? Parece que al menos un subcircuito y una biblioteca están en orden.
Antes de reinventar la rueda, ¿ alguien ya lo ha hecho ? Gracias.
...alguien ha hecho esto ya?
Sí, alguien ya lo ha hecho. (Creo que su nombre es Helmut Sennewald).
El grupo Yahoo LTSpice tiene un conjunto de potenciómetros que funcionan muy bien. Tendrá que registrar una cuenta de Yahoo y unirse al grupo para descargarlos (por cierto, le recomiendo hacer esto si desea buscar LTSpice, el grupo de Yahoo tiene una de las colecciones más grandes de modelos LTSpice de terceros).
Los archivos relevantes son potentiometer_standard.lib
y potentiometer_standard.asy
, así como algunos otros archivos de apoyo.
Los modelos proporcionan modelos lineales, logarítmicos y otros, así como un símbolo de potenciómetro. El siguiente es un extracto del archivo Léame.
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
¿Cómo se "controlaría" este estrechamiento durante la simulación?
Estos potes tienen una wiper
propiedad que se puede parametrizar fácilmente como un parámetro LTSpice regular. Por ejemplo, puede decir wiper={GAIN}
y luego agregar una directiva como .step param GAIN 0 1.0 0.25
.
Traté de seguir las sugerencias anteriores, pero me tomó mucho tiempo crear un potenciómetro que se parece a un potenciómetro y que se puede instanciar desde el esquema principal. Entonces, para el beneficio de cualquiera que sea tan tonto como yo...
Simplemente copie estos 3 archivos en un directorio en la ruta de búsqueda de LTspice (borre los espacios iniciales en cada línea). Espero que los nombres se expliquen por sí mismos.
potenciometro_prueba.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
potenciómetro.asy
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
potenciómetro.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
Potenciómetro Google LTSpice, hay muchos ejemplos con diferentes grados de complejidad. La mayoría usa un subcircuito a lo largo de estas líneas:
* 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
Para variar un parámetro (como el valor de un componente), puede usar el comando .step para realizar un barrido de parámetros. Si todo lo que desea es una resistencia variable de dos terminales, puede usar una resistencia normal para esto. Si necesita tres terminales, la respuesta de Steve parece buena.
En "Funciones especiales" hay un varistor controlado por voltaje que podría usar en su lugar.
IC_Esp