LTSpice: ¿Cómo variar las resistencias en una simulación dependiendo del valor de un voltaje?

5

Estoy intentando implementar el modelo de Hodgkin-Huxley para simular neuronas utilizando LTSpice. Una característica de este modelo es que las resistencias en un momento dado dependen realmente de la tensión transmembrana en ese momento. ¿Hay alguna manera, en LTSpice, de cambiar dinámicamente los valores de las resistencias en una simulación?

Puedo encontrar "contesta sobre cómo variar el valor de una resistencia en incrementos predefinidos durante una simulación. Sin embargo, este enfoque no funcionará en este caso, porque no conozco estos incrementos antes de que comience la simulación. Más bien, deben recalcularse dinámicamente de un voltaje particular. ¿LTSpice (o cualquier otra versión de Spice, para esa materia) tiene esta capacidad?

EDITAR: para ser más específico acerca de lo que implica el modelo Hodgkin-Huxley, el código de simulación que necesito básicamente se reduce a ,dondelasgrepresentanlasconductancias,lasEsontodastensionesconstantes,gLesconstanteylasotrasconductanciasseactualizandeacuerdocon :

dondem,nyhsonvariablesdeestado,yVmeselvoltajetransmembrana(elvoltajeentreIstim+eIstim-enelesquemaanterior).Elalfayelbetasonfuncionesconocidasdelvoltajetransmembrana.

Enparticular,necesitopoderrealizarunseguimientodelos"valores actuales" de los parámetros m, n y h durante la simulación porque el siguiente valor de estas variables dependerá de ellos.

    
pregunta Ian MathWiz

2 respuestas

8

No he pasado mucho tiempo considerando un método para esto. Pero suena como si pudieras tener una función arbitraria que calcula \ $ R \ $ en base a un voltaje aplicado \ $ V \ $.

Podría usar .FUNC de LTSpice para hacer algo como esto:

.FUNC MYFUNC(A) {3*A}

(Eso es solo una función aleatoria para ilustrar la idea).

Luego, simplemente puede desplegar una resistencia, que se establecerá por defecto en un valor de "R". Ahora, haga clic con el botón derecho en la "R" y obtenga un mensaje que le permitirá cambiarlo. El cuadro de diálogo debe tener el título "Introduzca un nuevo valor para Rx". Ingrese "R = {MYFUNC (V (N005, N006))}" o algo por el estilo (si conoce los nombres de los nodos, use esos.) Eso debería permitirle crear una función arbitraria basada en alguna fórmula que invente.

Por cierto, no tienes que usar .FUNC. Simplemente puede ingresar la fórmula directamente en la expresión "R = {...}" allí.

Sin embargo, el método anterior tiene al menos un problema. Los nombres de los nodos tendrán que estar codificados. Por lo tanto, esto puede ser un problema a medida que avanza en un circuito y desea que la "resistencia" tenga su valor dependiente únicamente de una función compleja de la tensión impresa en él, independientemente de los nombres de nodo del circuito global. Para eso, me gustaría ir con un enfoque .SUBCKT.

Aquí, solo deberías desplegar una nueva R como siempre lo haces. A continuación, haga clic con el botón derecho en el símbolo R. Edite el "Prefijo" a "X", modifique "InstName" para especificar "X1" o "X2" o algo por el estilo, elimine la entrada de "Valor" (edítelo y elimínelo) y modifique la "SpiceLine" entrada para especificar un nombre de subcircuito de su elección. Ahora tienes un bonito símbolo de subcircuito que parece una resistencia, pero LTSpice ahora piensa que es un subcircuito.

Ahora solo agrega un subcircuito. Pulsa "S" y aparece el cuadro de diálogo de la directiva Spice. Ahora ingrese algo como esto (estoy usando el subcircuito nombre de "XYZ" aquí):

.SUBCKT XYZ 1 2
GRES 1 2 VALUE={1.0/(10k*V(1,2))}
.ENDS

Lo que he hecho anteriormente es solo usar un dispositivo "G". Este dispositivo ahora puede ver sus propios terminales, obtener el voltaje de ellos y luego calcular cierta corriente en base a eso. En la fórmula anterior, decidí que quería imitar una resistencia cuya magnitud de resistencia es, ignorando el análisis dimensional por ahora, \ $ R = V ^ 2 \ cdot 10 \: \ textrm {k} \ Omega \ $. (Cuadré el voltaje para asegurarme de que el resultado sea siempre positivo o cero. Permitir cero probablemente no sea la mejor idea. Entonces, tenga en cuenta). Dado que, puede calcular que la corriente debería ser \ $ \ frac {V } {V ^ 2 \ cdot 10 \: \ textrm {k} \ Omega} = \ frac {1} {V \ cdot 10 \: \ textrm {k} \ Omega} \ $. Así es como conseguí la ecuación para usar allí.

Puedes hacer combinaciones. Puede crear funciones .FUNC separadas y usarlas dentro de su subcircuito. También puedes hacer que el subcircuito sea tan complicado como quieras.

    
respondido por el jonk
1

Utilice y Expressions para definir una fuente de voltaje de comportamiento donde el voltaje es proporcional a la corriente, pero la" constante de proporcionalidad "varía con otros voltajes.

La ley de Ohm va de la forma simple:

$$ V_x = I_x \ cdot R_x $$

a una forma donde permitimos que la resistencia sea una función de otros voltajes o corrientes en el circuito:

$$ V_x = I_x \ cdot f (v_a, v_b, i_j, i_k, \ dots) $$

Aquí hay un ejemplo rápido:

simular este circuito : esquema creado usando CircuitLab

Abre el circuito en CircuitLab para simular. En este ejemplo, hemos definido V3 como una fuente de voltaje de comportamiento con la expresión:

$$ V _ {\ text {V3}} = I _ {\ text {V3}} \ cdot 100 \ V (\ text {control}) $$

Dado que el voltaje en forma de elemento es proporcional a la corriente del mismo elemento, parece una resistencia, con resistencia efectiva:

$$ R _ {\ text {eff}} = 100 \ V (\ text {control}) $$

Si ejecuta esta simulación, obtendrá los gráficos de corriente y voltaje esperados para el divisor de voltaje resistivo variable en el tiempo:

    
respondido por el compumike

Lea otras preguntas en las etiquetas

Comentarios Recientes

6 Reseña de libro: Estructuras extremas y trabajos emocionantes 10 Conexión en la estimación del reparto (Edad de anuncio enero de 2012) 10 Eso no es todo ... Título de la imagen: Hace años 7 Técnicas fotográficas y ejemplos en 10 cortos páginas http: //electricalbefiche.co.uk/view ... Y ... Módulos de admisión (Ad Care JAN 2002) ¿Puede contarme sobre ... Publicado por Fat Bunny & Flying Meat p4rol durante 18 años a las 11:07 <| endoftext |> (Foto: Gulf Coast Real Estate) La orden ejecutiva federal de tierras... Lees verder