Espero no haberlo entendido mal. Cuando cree su subcircuito, escriba el valor como {R1}
, y en los atributos del símbolo, agregue R1=...
. De esta manera, cuando coloca su símbolo, puede cambiar el valor como desee (tablas incluidas). Si no trabaja con símbolos (directamente con las directivas SPICE como .subckt
), agregue una línea en su subcituit que defina el parámetro: .param R1=...
. Sin embargo, recuerde que esto debe hacerse para todos los subcircuitos que coloque. Por ejemplo:
.subckt Bla 1 2
.param R1=... ; this line is optional, but it can serve as a fallback value
R1 1 2 {R1}
.ends Bla
En el primer símbolo colocado, puedes agregar R1=3
, en el 2do R1=5
, etc.
Si desea un control externo a través de otras declaraciones .param
, directamente desde su esquema, entonces puede usar R1={R1_1}
para el primer símbolo, R1={R1_2}
para el segundo, y así sucesivamente (o el código que desee), y en el esquema tendrás algo como .param R1_1=... R1_2=...
, o puedes hacer una función para abarcar todos los valores, algo como esto:
.func res(x) {table(x, 1, 1k, 2, exp(-2), 3, sqrt(3), ...)} ; or some other function:
.func res(x) {cosh(x)}
Luego, puede escribir: R1={res(1)}
para el 1er símbolo, R1={res(2)}
para el 2do, etc., y dependiendo de la definición en el .func
, cada resistencia tendrá un valor asignado. Esta función se utiliza en el esquema superior.
Una forma de hacer trampa sería usar una hoja de cálculo, utilizando =""&<expression>&""
. Aquí hay un ejemplo:
="C"&$A1&"b "&$A1&" 0 {"&$A1&"/w} Rpar={Rpar}"
mientras que la columna A
tiene números secuenciales. Esto generará estas líneas:
C1b 1 0 {1/w} Rpar={Rpar}
C2b 2 0 {2/w} Rpar={Rpar}
C3b 3 0 {3/w} Rpar={Rpar}
C4b 4 0 {4/w} Rpar={Rpar}
Los valores de la capacitancia se pueden calcular utilizando su expresión matemática favorita (usé una numeración secuencial simple). Para los valores constantes, se utilizó un simple {Rpar}
.
Esto significa que ya no colocará símbolos manualmente, sino que agregará una directiva SPICE (clave S
) e inserte estas líneas. Cualquier adición / sustracción posterior de la lista significa una simple generación de líneas y un copiar y pegar, o eliminación de líneas.
La forma en que funciona lo anterior es definir el elemento SPICE genérico como:
<Designator> <pin1> <pin2> ... <pinN> <Name> <Attributes>
Para el caso anterior, es un condensador, por lo que tiene la letra designada C
, seguida de la instancia numerada en el esquema, dos pines, su valor (se sabe que está en pF
) y atributos opcionales como como parásitos ( Rser
utilizado, pero también Rpar
, Lser
, etc.) y coeficiente de temperatura (no utilizado). No tiene un nombre, ya que es un elemento primitivo, el designador automáticamente dice que es un capacitor. El manual de LTspice tiene más información sobre estos en LTspice > Circuit Elements
.
Los subcircuitos tienen su designador especial, X
, y la cantidad de pines es la cantidad de pines con la que está hecho el subcircuito. El nombre aquí es obligatorio, ya que se usa para saber cómo se llama el subcircuito. Los atributos son opcionales y suelen ser los parámetros.
Mirando el ejemplo en el manual de LTspice, el subcircuito se define como un divisor resistivo, por lo que tiene tres pines. Se conecta entre los nodos in
, out
y 0
(que se reconoce como tierra), el nombre es divider
y los atributos opcionales son sus dos parámetros: top
y bot
.
Usar las directivas SPICE para escribir elementos puede ser una forma conveniente para un proceso iterativo, por ejemplo (como este caso), pero puede resultar un poco engorroso en el caso de sondeo de voltajes dentro de la GUI del esquema. Una solución es simplemente dibujar trozos de redes y etiquetarlos de forma adecuada, listos para sondear.