Main Content

pole

Polos del sistema dinámico

Descripción

ejemplo

P = pole(sys) devuelve los polos del modelo de sistema dinámico SISO o MIMO sys. La salida se expresa como recíproca de las unidades de tiempo especificadas en sys.TimeUnit. Los polos de un sistema dinámico determinan la estabilidad y la respuesta del sistema.

Un sistema lineal de lazo abierto e invariante en el tiempo es estable si:

  • En tiempo continuo, todos los polos de la función de transferencia tienen partes reales negativas. Cuando los polos se visualizan en el plano s complejo, deben estar en la mitad izquierda del plano (LHP) para garantizar la estabilidad.

  • En tiempo discreto, todos los polos deben tener una magnitud estrictamente inferior a uno, es decir, deben estar todos dentro del círculo unitario.

ejemplo

P = pole(sys,J1,...,JN) devuelve los polos P de las entradas en el arreglo de modelos sys con subíndices (J1,...,JN).

Ejemplos

contraer todo

Calcule los polos de la siguiente función de transferencia de tiempo discreto:

sys(z)=0.0478z-0.0464z2-1.81z+0.9048

sys = tf([0.04798 0.0464],[1 -1.81 0.9048],0.1);
P = pole(sys)
P = 2×1 complex

   0.9050 + 0.2929i
   0.9050 - 0.2929i

En los sistemas discretos estables, todos sus polos deben tener una magnitud estrictamente inferior a uno, es decir, deben estar todos dentro del círculo unitario. Los polos en este ejemplo son un par de conjugadas complejas, y están dentro del círculo unitario. Por tanto, el sistema sys es estable.

Calcule los polos de la siguiente función de transferencia:

sys(s)=4.2s2+0.25s-0.004s2+9.6s+17

sys = tf([4.2,0.25,-0.004],[1,9.6,17]);
P = pole(sys)
P = 2×1

   -7.2576
   -2.3424

En los sistemas continuos estables, todos sus polos deben tener partes reales negativas. sys es estable puesto que los polos son negativos, es decir, están en la mitad izquierda del plano complejo.

Para este ejemplo, cargue invertedPendulumArray.mat, que contiene un arreglo de 3 por 3 de modelos de péndulo invertido. La masa del péndulo varía mientras se mueve de un modelo a otro a lo largo de una única columna de sys, y la longitud del péndulo varía mientras se mueve a lo largo de una única fila. Los valores de masa utilizados son 100 g, 200 g y 300 g, y las longitudes del péndulo utilizadas son 3 m, 2 m y 1 m respectivamente.

Column1Column2Column3Row1100g,3m100g,2m100g,1mRow2200g,3m200g,2m200g,1mRow3300g,3m300g,2m300g,1m

load('invertedPendulumArray.mat','sys');
size(sys)
3x3 array of transfer functions.
Each model has 1 outputs and 1 inputs.

Encuentre polos del arreglo de modelos.

P = pole(sys);
P(:,:,2,1)
ans = 3×1

    2.1071
   -2.1642
   -0.1426

P(:,:,2,1) se corresponde con los polos del modelo con un peso de péndulo de 200 g y una longitud de 3 m.

Argumentos de entrada

contraer todo

Sistema dinámico, especificado como un modelo de sistema dinámico SISO o MIMO, o bien un arreglo de modelos de sistemas dinámicos SISO o MIMO. Los sistemas dinámicos que puede utilizar incluyen modelos LTI numéricos de tiempo continuo o de tiempo discreto como los modelos tf, zpk o ss.

Si sys es un modelo de espacio de estados generalizado genss o un modelo de espacio de estados con incertidumbre uss, pole devuelve los polos del valor actual o nominal de sys. Si sys es un arreglo de modelos, pole devuelve los polos del modelo correspondiente a su subíndice J1,...,JN en sys. Para obtener más información sobre arreglos de modelos, consulte Arreglos de los modelos.

Índice de modelos en un arreglo cuyos polos desea extraer, especificado como un entero positivo. Puede proporcionar tantos índices como dimensiones de arreglos hay en sys. Por ejemplo, si sys es un arreglo de 4 por 5 de modelos de sistemas dinámicos, el siguiente comando extrae los polos para la entrada (2,3) del arreglo.

P = pole(sys,2,3);

Argumentos de salida

contraer todo

Polos del sistema dinámico, devueltos como un escalar o un arreglo. Si sys es:

  • Un solo modelo, entonces P es un vector columna de polos del modelo de sistemas dinámicos sys

  • Un arreglo de modelos, entonces P es un arreglo de polos de cada modelo en sys

P se expresa como recíproca de las unidades de tiempo especificadas en sys.TimeUnit. Por ejemplo, polo se expresa en 1/minuto si sys.TimeUnit = 'minutes'.

En función del tipo de modelo de sistema, los polos se calculan de la siguiente forma:

  • En el caso de modelos de espacio de estados, los polos son valores propios de la matriz A, o los valores propios generalizados de AλE en el caso del descriptor.

  • En el caso de funciones de transferencia SISO o modelos de cero-polo-ganancia, los polos son las raíces del denominador. Para obtener más información, consulte roots.

  • En el caso de funciones de transferencia MIMO o modelos de cero-polo-ganancia, los polos se devuelven como la unión de los polos para cada entrada SISO. Si algunos pares E/S tienen un denominador común, las raíces de dicho denominador del par E/S se cuentan solo una vez.

Limitaciones

  • Los polos múltiples son susceptibles a variaciones numéricas y no pueden calcularse con mucha precisión. Un polo λ con multiplicidad m resulta normalmente en un cluster de polos calculados distribuidos en un círculo con centro λ y radio de orden

    ρε1/m,

    donde ε es la precisión mecánica relativa (eps).

    Para obtener más información sobre polos múltiples, consulte Sensitivity of Multiple Roots.

  • Si sys presenta retardos internos, los polos se obtienen primero estableciendo todos los retardos internos en cero para que el sistema tenga un número finito de polos, creando así una aproximación de Padé de orden cero. En algunos sistemas, establecer los retardos en cero crea bucles algebraicos singulares, lo que resulta en aproximaciones de retardo cero inadecuadas o mal definidas. En estos sistemas, pole devuelve un error.

    Para evaluar la estabilidad de los modelos con retardos internos, utilice step o impulse.

Historial de versiones

Introducido antes de R2006a