¿Hay una manera de barrer el ciclo de trabajo con el tiempo en LTspice

1

Puedo barrer la frecuencia en el tiempo usando Modular, pero no pude encontrar ningún ejemplo sobre la creación de un ciclo de trabajo variable o un ciclo de trabajo es barrido de cero a 100% a una frecuencia determinada f en un intervalo de tiempo.

¿Existe alguna forma / solución para barrer el ciclo de trabajo a lo largo del tiempo en LTspice?

Editar:

Tengo el siguiente circuito temporizador que puede hacer eso. Pero no era lo que estaba buscando, ya que este tipo de solución ralentiza mucho la simulación. Me preguntaba si hay una forma rápida de hacerlo con una sola función especial o comando SPICE.

Hagaclicconelbotónizquierdoenlasiguientegráficaparaampliarypoderverlavariacióndelciclodetrabajo:

    
pregunta user16307

3 respuestas

3

No estoy seguro de si esto es lo que realmente quieres, pero intentémoslo de todos modos. Primero creamos una rampa de diente de sierra con una cierta frecuencia utilizando nuestra propia función de módulo definida con el tiempo (traza verde):

.function mod(x,y) { (x/y)-int(x/y) }

Luego usamos el tiempo real y la función if como punto de corte para crear una onda cuadrada con una fuente de voltaje arbitraria:

V=if( (mod(time*10,1)) > time, 1, 0 )

Esto debería darle un buen punto de partida para jugar y adaptarse a sus necesidades.

    
respondido por el PlasmaHH
1

No soy un usuario de LTspice, por lo que no sé si los componentes ideales necesarios están disponibles en LTspice.

Pero suponiendo que sean ellos, puedes construir tu propio sistema para esto, así:

simular este circuito : esquema creado usando CircuitLab

Básicamente, el circuito compara una onda triangular (rápida) de 1 MHz con una rampa (lenta) de 100 ms. Cuando lento es de 0,5 V, la salida del comparador tendrá un ciclo de trabajo del 50%, ya que la onda triangular está por debajo de 0,5 V la mitad del tiempo y por encima de la otra mitad del tiempo.

Puede hacer un comparador ideal (cuando no está disponible) usando un VCVS (fuente de voltaje controlado por voltaje) con una ganancia de por ejemplo 1000 y valores de salida limitados, por ejemplo 0 y 1 V.

    
respondido por el Bimpelrekkie
0

Esta no es una respuesta totalmente perfecta, pero debería darle un buen punto de partida (espero)

Lo que intenté es usar una fuente de voltaje de comportamiento arbitrario.

Esta es mi lista de redes:

B1 NC_01 0 V=if((time/{period})-int(time/{period})<time*{ontime},{Von},{Voff})
.param period 1
.param ontime=1/100
.param Von 3
.param Voff 0
.tran 100
.backanno
.end

Y la captura de pantalla con el resultado:

Desglose de la función de fuente de voltaje de comportamiento:

Primero, tenga en cuenta que las fuentes de voltaje de comportamiento tienen acceso al tiempo de simulación utilizando time como parámetro para las funciones. Esto no está disponible en las declaraciones .param .

Primero necesitamos una función que nos permita permitir una función PWM basada en la hora actual. Para esto, la construcción if(x,y,z) es útil. Pero un simple if(time<{ontime},3,0) no producirá una señal recurrente sino solo un pulso al principio.

Aquí es donde entran las siguientes construcciones: (time/{period})-int(time/{period}) Esto es básicamente un período de módulo de tiempo, pero no hay un operador de módulo, por lo que tengo que ir por la ruta para restar la parte entera del tiempo dividido por período de la División del tiempo y período. Duh.

Entonces tienes que variar el tiempo en relación con el tiempo. En este ejemplo simplemente usé el tiempo con un factor de 1/100. ...<time*{ontime} Well ontime no es probablemente el mejor nombre para ese parámetro, es más como un factor de escala.

    
respondido por el Arsenal

Lea otras preguntas en las etiquetas