Main Content

Derivative

Derivada de tiempo de salida de una entrada

  • Derivative block

Bibliotecas:
Simulink / Continuous

Descripción

El bloque Derivative aproxima la derivada de la señal de entrada u con respecto al tiempo de simulación t. Obtiene la aproximación de

dudt,

calculando una diferencia numérica Δu/Δt, donde Δu es el cambio en el valor de entrada y Δt es el cambio en el tiempo desde la unidad de tiempo (principal) de simulación anterior.

Este bloque acepta una entrada y genera una salida. La salida inicial del bloque es cero.

La relación precisa entre la entrada y la salida de este bloque es:

y(t)=ΔuΔt=u(t)u(Tprevious)tTprevious|t>Tprevious,

donde t es el tiempo de simulación actual y Tprevious es el tiempo del último tiempo de salida de la simulación. Este último es el mismo que el tiempo de la última unidad de tiempo principal.

La salida del bloque Derivative puede ser sensible a la dinámica de todo el modelo. La precisión de la señal de salida depende del tamaño de las unidades de tiempo tomadas en la simulación. Las unidades más pequeñas permiten una curva de salida más suave y precisa de este bloque. Sin embargo, a diferencia de los bloques que tienen estados continuos, el solver no toma unidades más pequeñas cuando la entrada a este bloque cambia rápidamente. Según la dinámica de la señal de activación y el modelo, la señal de salida de este bloque puede contener fluctuaciones inesperadas. Estas fluctuaciones se deben principalmente a la salida de la señal de activación y al tamaño de unidad del solver.

Debido a estas sensibilidades, estructure sus modelos para usar integradores (como bloques Integrator) en lugar de bloques Derivative. Los bloques Integrator tienen estados que permiten a los solvers ajustar el tamaño de la unidad y mejorar la precisión de la simulación. Consulte Circuit Model para ver un ejemplo de cómo elegir el modelo matemático de la mejor forma para evitar el uso de bloques Derivative en sus modelos.

Si debe usar el bloque Derivative con un solver de unidad variable, establezca el tamaño de unidad máximo del solver en un valor tal que el bloque Derivative pueda generar respuestas con la precisión adecuada. Para determinar este valor, es posible que deba ejecutar repetidamente la simulación usando diferentes configuraciones del solver.

Si la entrada a este bloque es una señal discreta, la derivada continua de la entrada muestra un impulso cuando cambia el valor de la entrada. De lo contrario, es 0. Alternativamente, puede definir la derivada discreta de una señal discreta usando la diferencia de los dos últimos valores de la señal:

y(k)=1Δt(u(k)u(k1))

.

Tomando la transformada z de esta ecuación da como resultado:

Y(z)u(z)=1z1Δt=z1Δtz.

El bloque Discrete Derivative modeliza este comportamiento. Use este bloque en lugar del bloque Derivative para aproximar la derivada en tiempo discreto de una señal discreta.

Puertos

Entrada

expandir todo

Señal a diferenciar, especificada como escalar real o vector.

Tipos de datos: double

Salida

expandir todo

Derivada en el tiempo de la señal de entrada, especificada como escalar real o vector. La señal de entrada se diferencia con respecto al tiempo como:

y(t)=ΔuΔt=u(t)u(Tprevious)tTprevious|t>Tprevious,

donde t es el tiempo de simulación actual y Tprevious es el tiempo del último tiempo de salida de la simulación. Este último es el mismo que el tiempo de la última unidad de tiempo principal.

Tipos de datos: double

Parámetros

expandir todo

La linealización exacta del bloque Derivative es difícil porque la ecuación dinámica del bloque es y=u˙, que no se puede representar como un sistema de espacio de estados. Sin embargo, puede aproximar la linealización añadiendo un polo al bloque Derivative para crear una función de transferencia s/(cs+1). La adición de un polo filtra la señal antes de diferenciarla, lo que elimina el efecto del ruido.

El valor predeterminado inf corresponde a una linealización de 0.

Consejos

  • Se recomienda cambiar el valor de c a 1fb, donde fb es la frecuencia de interrupción del filtro.

  • El parámetro debe ser un valor positivo finito.

Uso programático

Parámetro del bloque: CoefficientInTFapproximation
Tipo: vector de caracteres, cadena
Valores: 'inf'
Predeterminado: 'inf'

Características del bloque

Tipos de datos

double

Paso directo

no

Señales multidimensionales

no

Señales de tamaño variable

no

Detección de cruce por cero

no

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a