Simulaciones de tolerancia de piezas en ltspice

5

Recientemente he encontrado este tutorial (y varios en otros lugares que mencionan una técnica similar) al intentar evaluar cómo se comporta uno de mis circuitos al usar componentes del mundo real con tolerancias del mundo real.

Sin embargo, normalmente lo diseño con valores ideales, juego con la directiva .step , etc. así que solo para hacer esa evaluación tendría que cambiar todas las declaraciones de valores para usar las funciones mencionadas, y cuando no esté satisfecho, cambie De vuelta y jugar con los valores de nuevo y así sucesivamente. Esto parece una gran cantidad de trabajo. Probablemente podría escribir un script que lo haga en los archivos .asc por mí, pero me preguntaba si realmente no hay otra forma.

Para la mayoría de los componentes, tiene un campo "Tolerancia [%]", así que me preguntaba si esto se puede usar de alguna manera global. Al igual que algunos componentes parecen reaccionar en la variable .step temp . Desafortunadamente, en la documentación encuentro la temperatura mencionada, pero no la tolerancia (que resulta en SpiceLine tol=xxx en el archivo .asc, si eso ayuda a alguien).

Entonces, ¿existe una manera fácil de hacer que LTSpice (aleatoriamente) varíe las tolerancias de los componentes en múltiples ejecuciones, sin tener que poner fórmulas en todas y cada una? (Estoy más interesado en resistencias y condensadores hoy, si eso ayuda a encontrar una solución al 90%)

    
pregunta PlasmaHH

2 respuestas

1

El análisis de Monte Carlo y el peor de los casos suele ser la forma en que se hace, exactamente como lo describe el artículo vinculado. Para Monte-Carlo no tiene que cambiar sus componentes a mano, simplemente ejecute los sims de Monte Carlo y el simulador cambiará automáticamente los componentes según su campo de Tolerancia. Debe ejecutar suficientes casos para obtener un resultado estadísticamente significativo, y puede calcular cuántas ejecuciones necesita para una confianza determinada. El peor de los casos requiere un poco más de trabajo y conocimiento de cómo funciona el circuito, pero el artículo vinculado lo explica también.

    
respondido por el John D
1

Utilizo lo siguiente para el valor de los componentes: el ejemplo para una resistencia es {if (nom, R1, mc (R1, tolr))}. Luego defino un parámetro 'nom' tal que si se establece en 1, la resistencia obtiene el valor nominal (parámetro R1 en este caso, pero podría ser un valor 'duro' como '10k'), de lo contrario, si es 0, entonces obtiene el valor de Monte Carlo.

    
respondido por el DEngland

Lea otras preguntas en las etiquetas