¿Cómo modelo una matriz de resistencias en SPICE?

Actualmente estoy construyendo una biblioteca de modelos de simulación SPICE que incluirá conjuntos de resistencias.

Estas matrices exhiben tanto tolerancias absolutas como tolerancias relativas. Por lo general, las características relativas son mejores que las características absolutas. Por ejemplo, las 4 resistencias del LT5400 de Linear tienen una tolerancia absoluta de +/-7,5 % y una tolerancia relativa de +/-0,010 %. La misma historia para la deriva de temperatura: tienen una deriva absoluta de 25 ppm/K y una deriva de temperatura de relación de 0,2 ppm/K.

Me gustaría modelar estas matrices para estimar el impacto de la desviación de la temperatura y las tolerancias de los componentes en mi cadena de adquisición de señales. Para este propósito, ya encontré esos dos enlaces que son útiles para componentes discretos: Simulación de tolerancias de componentes y Estimación de efectos de deriva de temperatura . Sin embargo, no me ayudarán a modelar tolerancias relativas y desviaciones relativas.

  • ¿Cómo puedo tener en cuenta en mi modelo SPICE tanto las tolerancias absolutas como las tolerancias relativas de los conjuntos de resistencias?

PD: hay un modelo del LT5400 en LTSpice, pero no he encontrado la forma de acceder al modelo fuente. Por lo tanto, no tengo idea de cómo usarlo en el análisis de monte-carlo o en el paso de temperatura.

¿Por qué tiene estas preocupaciones solo sobre las resistencias de matriz y no sobre cualquier otra resistencia en su diseño?
En realidad, mi cadena de adquisición de señales usa solo conjuntos de resistencias para la estabilidad térmica y la repetibilidad. Sin embargo, me gustaría cuantificar estos rendimientos y ganar estabilidad frente al grado de calidad de mis arreglos.

Respuestas (1)

A menos que haya entendido su pregunta, tiene las respuestas en los enlaces que proporcionó: simplemente haga sus resistencias, todas y cada una, con parámetros encerrados entre llaves, un {mc(1,0.1)}ejemplo falso. Para la temperatura, simplemente agréguela después del valor:

R1 pin1 pin2 {mc(1,0.1)} temp={mc(25,0.2)}

No olvides que la temperatura no es dinámica, no es una función del tiempo. Entonces su matriz se vería así:

R1 pin1 pin2 {mc(1,0.1)} temp={mc(25,0.1)}
R2 pin3 pin4 {mc(10k,0.001)} temp={mc(27,0.2)}
R3 pin5 pin6 {mc(2.7k,0.05)} temp={mc(-100,0.001)}
...

O simplemente haga que las temperaturas sean iguales, {temp}, y agregue .param temp=mc(27,0.1), por ejemplo. Eso los haría a todos dependientes de la misma temperatura.

Gracias por el aporte. Sin embargo, esto no modela las variaciones relativas de los valores de resistencia dentro de la matriz. Cada resistencia individual tiene un valor "aleatorio" que depende del valor de otra resistencia. Después de pensarlo dos veces, sería como tener variables aleatorias correlacionadas. Pero me gusta tu idea de tener un parámetro "montecarlo". Creo que vale la pena explorar esta idea para hacer mi trabajo.