Contenido principal

damp

Frecuencia natural y coeficiente de amortiguación

Descripción

damp(sys) muestra el coeficiente de amortiguación, la frecuencia natural y la constante de tiempo de los polos del modelo lineal sys. En el caso de un modelo de tiempo discreto, la tabla también incluye la magnitud de cada polo. Los polos se ordenan en orden ascendente de los valores de frecuencia.

ejemplo

[wn,zeta] = damp(sys) devuelve las frecuencias naturales wn y los coeficientes de amortiguación zeta de los polos de sys.

ejemplo

[wn,zeta,p] = damp(sys) también devuelve los polos p de sys.

ejemplo

___ = damp(___,Name=Value) calcula el coeficiente de amortiguación y la frecuencia natural para un subconjunto de polos del modelo disperso sys basándose en uno o más argumentos nombre-valor especificados. Si no especifica ningún argumento nombre-valor, la función calcula el coeficiente de amortiguación y la frecuencia natural para los primeros 1000 polos con la magnitud más pequeña. La función ignora los argumentos nombre-valor cuando sys es un modelo no disperso. (desde R2025a)

ejemplo

Ejemplos

contraer todo

Para este ejemplo, considere la siguiente función de transferencia de tiempo continuo:

sys(s)=2s2+5s+1s3+2s-3.

Cree la función de transferencia de tiempo continuo.

sys = tf([2,5,1],[1,0,2,-3]);

Muestre las frecuencias naturales, los coeficientes de amortiguación, las constantes de tiempo y los polos de sys.

damp(sys)
                                                                       
         Pole              Damping       Frequency      Time Constant  
                                       (rad/seconds)      (seconds)    
                                                                       
  1.00e+00                -1.00e+00       1.00e+00        -1.00e+00    
 -5.00e-01 + 1.66e+00i     2.89e-01       1.73e+00         2.00e+00    
 -5.00e-01 - 1.66e+00i     2.89e-01       1.73e+00         2.00e+00    

Los polos de sys contienen un polo inestable y un par de conjugadas complejas que se encuentran en la mitad izquierda del plano s. El coeficiente de amortiguación correspondiente para el polo inestable es -1, que se considera una fuerza motriz en lugar de una fuerza de amortiguación, ya que aumenta las oscilaciones del sistema, conduciéndolo a la inestabilidad.

Para este ejemplo, considere la siguiente función de transferencia en tiempo discreto con un tiempo de muestreo de 0.01 segundos:

sys(z)=5z2+3z+1z3+6z2+4z+4.

Cree la función de transferencia en tiempo discreto.

sys = tf([5 3 1],[1 6 4 4],0.01)
sys =
 
     5 z^2 + 3 z + 1
  ---------------------
  z^3 + 6 z^2 + 4 z + 4
 
Sample time: 0.01 seconds
Discrete-time transfer function.
Model Properties

Muestre la información sobre los polos de sys utilizando el comando damp.

damp(sys)
                                                                                    
         Pole             Magnitude     Damping       Frequency      Time Constant  
                                                    (rad/seconds)      (seconds)    
                                                                                    
 -3.02e-01 + 8.06e-01i     8.61e-01     7.74e-02       1.93e+02         6.68e-02    
 -3.02e-01 - 8.06e-01i     8.61e-01     7.74e-02       1.93e+02         6.68e-02    
 -5.40e+00                 5.40e+00    -4.73e-01       3.57e+02        -5.93e-03    

La columna Magnitude muestra las magnitudes de polo de tiempo discreto. Las columnas Damping, Frequency y Time Constant muestran valores calculados utilizando los polos de tiempo continuo equivalentes.

Para este ejemplo, cree un modelo de cero-polo-ganancia de tiempo discreto con dos salidas y una entrada. Utilice un tiempo de muestreo de 0,1 segundos.

sys = zpk({0;-0.5},{0.3;[0.1+1i,0.1-1i]},[1;2],0.1)
sys =
 
  From input to output...
          z
   1:  -------
       (z-0.3)
 
            2 (z+0.5)
   2:  -------------------
       (z^2 - 0.2z + 1.01)
 
Sample time: 0.1 seconds
Discrete-time zero/pole/gain model.
Model Properties

Calcule la frecuencia natural y el coeficiente de amortiguación del modelo de cero-polo-ganancia sys.

[wn,zeta] = damp(sys)
wn = 3×1

   12.0397
   14.7114
   14.7114

zeta = 3×1

    1.0000
   -0.0034
   -0.0034

Cada entrada en wn y zeta se corresponde con el número combinado de E/S en sys. zeta se ordena en orden ascendente de los valores de frecuencia natural en wn.

Para este ejemplo, calcule las frecuencias naturales, el coeficiente de amortiguación y los polos del siguiente modelo de espacio de estados:

A=[-2-11-2],B=[112-1],C=[10],D=[01].

Cree el modelo de espacio de estados usando las matrices de espacio de estados.

A = [-2 -1;1 -2];
B = [1 1;2 -1];
C = [1 0];
D = [0 1];
sys = ss(A,B,C,D);

Utilice damp para calcular las frecuencias naturales, el coeficiente de amortiguación y los polos de sys.

[wn,zeta,p] = damp(sys)
wn = 2×1

    2.2361
    2.2361

zeta = 2×1

    0.8944
    0.8944

p = 2×1 complex

  -2.0000 + 1.0000i
  -2.0000 - 1.0000i

Los polos de sys son conjugadas complejas que se encuentran en la mitad izquierda del plano s. El coeficiente de amortiguación correspondiente es menor que 1. Por lo tanto, sys es un sistema subamortiguado.

Desde R2025a

Para este ejemplo, calcule las frecuencias naturales, el coeficiente de amortiguación y los polos de un modelo disperso de espacio de estados de un filtro óptico. Para los modelos de espacio de estados dispersos, puede determinar el coeficiente de amortiguación de un subconjunto de polos calculados en un rango de frecuencia de interés.

Cargue el modelo.

load sparseFilter.mat
size(sys)
Sparse state-space model with 5 outputs, 1 inputs, and 1668 states.

Los modelos dispersos suelen ser de gran escala y calcular todos los polos puede resultar inviable o de alta carga computacional. De forma predeterminada, la función damp calcula los primeros 1.000 polos con la magnitud más pequeña.

[wn,zeta,p] = damp(sys);
size(p)
ans = 1×2

        1000           1

Para evitar calcular una gran cantidad de polos, puede especificar opciones adicionales como un rango de frecuencia de interés. Normalmente, se especifica una banda de baja frecuencia y la función calcula solamente los polos con frecuencia natural en el rango.

damp(sys,Focus=[10 1000]);
                                                           
   Pole        Damping       Frequency      Time Constant  
                           (rad/seconds)      (seconds)    
                                                           
 -3.76e+01     1.00e+00       3.76e+01         2.66e-02    
 -7.78e+02     1.00e+00       7.78e+02         1.29e-03    
 -7.92e+02     1.00e+00       7.92e+02         1.26e-03    

Argumentos de entrada

contraer todo

Sistema dinámico lineal, especificado como un modelo de sistema dinámico SISO o MIMO. Se admiten los siguientes tipos de sistemas dinámicos:

  • Modelos LTI numéricos en tiempo continuo o en tiempo discreto, como modelos tf, zpk o ss.

  • Modelos LTI generalizados o con incertidumbre, como modelos genss o uss (Robust Control Toolbox). El uso de modelos con incertidumbre requiere Robust Control Toolbox™.

    damp asume:

    • valores actuales de los componentes ajustables para los bloques de diseño de control ajustables.

    • valores nominales del modelo para los bloques de diseño de control con incertidumbre.

Si sys es un modelo de espacio de estados disperso (sparss o mechss), el software calcula el coeficiente de amortiguación y la frecuencia natural para un subconjunto de polos en una banda de frecuencia específica de enfoque. Para modelos dispersos, utilice los argumentos nombre-valor para especificar opciones de cálculo. Si no especifica ninguna opción, el software calcula los primeros 1.000 polos con la magnitud más pequeña. Para los modelos mechss con amortiguación de Rayleigh, el software calcula los polos a partir de los valores propios de (K,M). De lo contrario, el software calcula los polos a partir del modelo sparss equivalente. (desde R2025a)

Argumentos de par nombre-valor

contraer todo

Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de los otros argumentos, aunque el orden de los pares no es importante.

Ejemplo: [wn,zeta] = damp(sparseSys,Focus=[0 10],Display="off")

Desde R2025a

Rango de frecuencia de interés, especificado como vector con la forma [fmin,fmax]. Cuando se especifica un rango de frecuencia de enfoque, el algoritmo calcula solo los polos con frecuencia natural en este rango. En el caso de modelos en tiempo discreto, el software aproxima la frecuencia natural equivalente a través de la transformada de Tustin.

Para los modelos dispersos semidefinidos simétricos, puede especificar cualquier rango de frecuencia con 0 ≤ fmin < fmax. Para los modelos sparss no simétricos, debe especificar el rango de frecuencia como [0,fmax] o [fmin,inf].

Dado que el software calcula todos los polos en el rango de frecuencia especificado, normalmente se especifica un rango de frecuencia baja para limitar el cálculo de una gran cantidad de polos. De forma predeterminada, el foco no está especificado ([0 Inf]) y el algoritmo calcula hasta MaxNumber polos.

Desde R2025a

Número máximo de polos y ceros que se desea calcular, especificado como entero positivo. Este valor limita el número de polos calculados por el algoritmo.

Desde R2025a

Desplazamiento espectral, especificado como escalar finito.

El software calcula los polos con la frecuencia natural en el rango especificado [0,fmax] utilizando iteraciones de potencia inversa para A-sigma*E, lo que obtiene valores propios más cercanos al desplazamiento sigma. Cuando A es singular y sigma es cero, el algoritmo falla ya que no existe inversa. Por lo tanto, para los modelos dispersos con acción integral (s = 0 o en z = 1 para modelos en tiempo discreto), puede utilizar esta opción para desplazar de manera implícita polos o ceros hacia el valor más cercano a este valor de desplazamiento. Especifique un valor de desplazamiento que no sea igual a un valor de polo existente del modelo original.

Desde R2025a

Tolerancia de precisión de los polos calculados, especificada como un escalar finito positivo. Este valor controla la convergencia de los valores propios calculados en iteraciones de potencia inversa.

Desde R2025a

Mostrar u ocultar informe de progreso, especificado como "off" u "on".

Argumentos de salida

contraer todo

Frecuencia natural de cada polo de sys, devuelta como un vector ordenado en forma ascendente de los valores de frecuencia. Las frecuencias se expresan en unidades de la recíproca de la propiedad TimeUnit de sys.

Si sys es un modelo de tiempo discreto con tiempo de muestreo especificado, wn contiene las frecuencias naturales de los polos de tiempo continuo equivalentes. Si no se especifica el tiempo de muestreo, entonces damp asume un valor de tiempo de muestreo de 1 y calcula wn en consecuencia. Para más información, consulte Algoritmos.

Coeficientes de amortiguación de cada polo, devueltos como un vector ordenado en el mismo orden que wn.

Si sys es un modelo de tiempo discreto con tiempo de muestreo especificado, zeta contiene los coeficientes de amortiguación de los polos de tiempo continuo equivalentes. Si no se especifica el tiempo de muestreo, entonces damp asume un valor de tiempo de muestreo de 1 y calcula zeta en consecuencia. Para más información, consulte Algoritmos.

Polos del modelo de sistema dinámico, devueltos como un vector ordenado en el mismo orden que wn. p es la misma que la salida de pole(sys), excepto por el orden. Para más información sobre polos, consulte pole.

Algoritmos

damp calcula la frecuencia natural, la constante de tiempo y el coeficiente de amortiguación de los polos del sistema como se define en la siguiente tabla:

 Tiempo continuoTiempo discreto con tiempo de muestreo Ts
Ubicación de polos

s

z

Polo de tiempo continuo equivalente

Not applicable

s=ln(z)Ts

Frecuencia natural

ωn=|s|

ωn=|s|=|ln(z)Ts|

Coeficiente de amortiguación

ζ=cos(s)

ζ=cos(s)=cos(ln(z))

Constante de tiempo

τ=1ωnζ

τ=1ωnζ

Si no se especifica el tiempo de muestreo, entonces damp asume un valor de tiempo de muestreo de 1 y calcula zeta en consecuencia.

Para los modelos de espacio de estados dispersos, el software utiliza el algoritmo de Krylov-Schur [1] para iteraciones de potencia inversa a fin de calcular los polos en la banda de frecuencia especificada. (desde R2025a)

Referencias

[1] Stewart, G. W. “A Krylov--Schur Algorithm for Large Eigenproblems.” SIAM Journal on Matrix Analysis and Applications 23, no. 3 (January 2002): 601–14. https://doi.org/10.1137/S0895479800371529.

Historial de versiones

Introducido antes de R2006a

expandir todo

Consulte también

| | | | |