Estoy tratando de obtener una mejor comprensión de cómo funciona la solución SPICE interna, y en su mayor parte, entiendo los conceptos básicos del análisis de DC y el análisis de transitorios cuando se trata de redes RLC. El gran problema que estoy encontrando es cómo manejar circuitos con fuentes de voltaje en lugar de fuentes de corriente. Dr. Las notas de lectura de Mitcheson's sugieren convertir fuentes de voltaje a una fuente de corriente equivalente de Norton. Sin embargo, me resulta difícil descubrir cómo calcular automáticamente los parámetros del circuito equivalente de Norton en el código.
Estrategia actual (sin juego de palabras):
- Los resistores tienen una matriz de conductancia elemental básica de 2x2. \ begin {equation} \ boldsymbol G = \ begin {bmatrix} \ frac {1} {R} & \ frac {-1} {R} \\ \ frac {-1} {R} & \ frac {1} {R} \ end {bmatrix} \ end {ecuación}
- Los condensadores se convierten en un derivado numérico simple: \ begin {equation} \ frac {I_c ^ {k + 1} + I_c ^ k} {2} = c \ frac {V ^ k - V ^ {k-1}} {\ Delta t} \ end {ecuación} Aquí k es el paso de tiempo actual y k-1 es el paso de tiempo anterior. Se puede convertir fácilmente en una matriz de conductancia elemental 2x2.
- Los inductores se aproximan con una integración numérica (regla trapezoidal). \ begin {equation} I_L ^ k = \ frac {\ Delta t} {2 L} \ left (V ^ k + V ^ {k-1} \ right) + I_L ^ {k-1} \ end {ecuación} Aquí k es el paso de tiempo actual y k-1 es el paso de tiempo anterior. Se puede convertir fácilmente en una matriz de conductancia elemental 2x2.
- Las corrientes deben ser conocidas para todos los nodos en el paso de tiempo anterior y en el paso de tiempo actual.
- Superponga todos los elementos para obtener un sistema lineal que se pueda resolver con cualquier solucionador de matrices. Repita para cada paso de tiempo.
A partir de las aproximaciones de condensador e inductor anteriores, puedo crear un modelo de resistencia equivalente que sea válido solo en ese momento y trabajar solo con una red pseudo-resistiva para calcular el equivalente de Norton, que sería bastante simple a mano.
¿Mi estrategia es válida? Si es así, ¿cómo dar el siguiente paso y hacer que una computadora realice el mismo cálculo?