¿Cómo trazar el promedio deslizante en ltspice?

6

Me gustaría trazar un promedio deslizante de algunos voltajes y corrientes. Lo ideal sería añadir una nueva traza con alguna expresión, pero todas las expresiones que encontré hasta ahora solo funcionan con valores únicos.

¿Hay alguna expresión (como absdelay para fuentes B) que haría el truco?

    
pregunta PlasmaHH

3 respuestas

6

Resumen
Para trazar el promedio móvil (deslizante) use .MEAS, .PARAM y .STEP directivas LTSpice (consulte la explicación detallada a continuación). Como solución rápida parcial , use acercar y presionar Ctrl + clic en el título de un gráfico para mostrar el valor promedio (solo un valor único, no un gráfico) para el rango de abscisas seleccionado .

Solución. Trazar la media móvil para una señal

Supongamos que hay una configuración siguiente y se necesita conocer el promedio móvil de V (fuera):

Paso1:crealadirectiva

CreelasiguientedirectivaSPICE(Editar->Directivadeespecias):

.paramt=0.stepparamt100n900n100n.paramS=100n.meastranMoving_Averageavg(v(out))TRIGtimeVAL=n-S/2TARGtimeVAL=n+S/2

Comentarioparaladirectiva:

1ªlínea:definaunavariabledetiempot.
2ªlínea:Pasotde100nsa900nsconelpaso100ns.
3ªlínea:Establezcaelrangodepromediomóvil:100ns.
4ªlínea:Sintaxis:Moving_Average:elnombredelavariablereciéncreadaquesecalculará(pongaaquíloquedesee).
TRIGtimeVAL=t-S/2-iniciodepromediación.
TiempoTARGVAL=t+S/2-finaldelpromedio.
P.ej.sit=300ns,elpromedioabarcadesde250nshasta350ns(300+/-100/2).

Paso2:ejecutalasimulación,abreelarchivoderegistroytrazaelpromediomóvil

Ejecutarsimulación

AbraelRegistrodeerroresdelasespecias(Ver->Registrodeerroresdelasespecias),hagaclicconelbotónderechoencualquierlugaryseleccioneTrazardatosmedidosescalonados

Verlamediamóviltrazada

Soluciónrápidaparcial(vervalorpromedioparaunrangodetiempoespecífico)

Supongamosqueunotieneungráficocomoeste:

Ydeseacalcularunvalorpromediodurante[0.7us,0.8us].

Paso1:Especifiqueelrangodetiempo.

Hagadobleclicenelejedeabscisasyespecifiqueelrangonecesario.Alternativamente,uselaherramientaZoomarectángulo(botóndelupaenlabarrasuperior).

Paso2:Calculeelpromedio

Ctrl+clicconelbotónizquierdodelratóneneltítulodeungráfico(títuloverdeennegritaV(fuera)enlaimagen)paraverelvalorpromedioparaelrangoespecificado.

    
respondido por el Sergei Gorbikov
3

La mayoría de las variantes de spice le permitirán imprimir una traza en un archivo (elija el modo de texto para que sea más portátil) que puede manipular en una hoja de cálculo o en su propio código. Así es como lo hago en HSPICE, TSPICE, etc. La forma en que SPICE opera es que se calcula a continuación, determina si los resultados están dentro de los límites y, si no, se detiene, vuelve a evaluar los puntos de sesgo, cambia el tiempo y vuelve a calcular, de modo que salta de un lado a otro de forma nerviosa y luego se transmite a la salida.

    
respondido por el placeholder
1

Hay otro método, además de los métodos de Sergei Gorbikov. .MEAS , .STEP o Ctrl+Click , aunque muy viable, implica ejecutar la simulación y luego ver los resultados. Si necesita una gráfica casi en tiempo real, puede usar la integración definida, que no es más que un promedio móvil de manera analógica: ¿Cómo integrar una señal en LTSpice? (enlace solamente, en lugar de repetir la respuesta). Los resultados se graficarían a medida que avanza la simulación, con un período de retraso. Una mejor solución sería integrar primero y luego demorar, en cuyo caso los integradores pueden ser G+C , que es una opción mucho mejor que idt() .

Si sabe que su señal es periódica y no tiene armónicos, puede modificar el circuito para que solo tenga medio retraso de tiempo, agregando una cuadratura de elaboración casera a la entrada (simple retraso de pi / 2, derivado del original). entrada). Si su frecuencia tiene un período variable, podría usar la versión de la fuente de comportamiento de la integración definida, donde delay() podría haber pasado un retraso externo variable. Este retraso podría ser una versión filtrada de paso bajo de la salida pulsada, correctamente escalada.

Si se necesita tiempo real absoluto, me temo que eso simplemente no es posible, a menos que se conozca su voltaje de modulación (error) y la portadora, pero simplemente podría trazar V(err) como una función de la amplitud de la portadora.

    
respondido por el a concerned citizen

Lea otras preguntas en las etiquetas