sistemas-de-segundo-orden

Sistemas de segundo orden y oscilaciones

  • 6 min

Un sistema de segundo orden es un modelo dinámico cuyo denominador tiene grado dos. Puede tener dos polos reales o una pareja de polos complejos conjugados; en este último caso aparece la capacidad de oscilar.

Si en el artículo anterior vimos que los sistemas de primer orden (como calentar un bloque de aluminio) eran aburridos y predecibles porque solo subían suavemente, hoy entramos en el verdadero campo de batalla de la ingeniería.

Los sistemas de segundo orden son los que hacen que tu coche bote cuando pasas por un bache, que el brazo de tu robot tiemble cuando se detiene de golpe, o que tu dron pierda el control y se estrelle haciendo eses.

La física: masa, muelle y amortiguador

Para entender por qué las cosas oscilan, los ingenieros usamos siempre el mismo modelo mental: un peso colgado de un muelle, metido dentro de un bote de aceite (el amortiguador).

Cuando tiras del peso hacia abajo y lo sueltas, ocurren dos cosas:

  1. El muelle quiere volver a su posición original, así que tira de la masa hacia arriba. Al hacerlo, convierte su energía potencial elástica en energía cinética (velocidad).
  2. Cuando la masa pasa por el centro (el punto de equilibrio), el muelle ya no tira, pero la masa tiene inercia. Esa inercia hace que se pase de largo, comprimiendo el muelle hacia el otro lado. Ahora la energía cinética se vuelve a transformar en potencial.

Este intercambio de energía entre inercia y elasticidad es lo que crea la oscilación. Y seguiría rebotando eternamente si no fuera por la fricción del aceite (el amortiguador), que va robando un poquito de energía en cada ciclo en forma de calor hasta detenerlo.

La función de transferencia canónica

Muchos sistemas físicos con estas características (ya sea un mecanismo, un circuito RLC o un motor conectado a una polea elástica) se pueden aproximar en el dominio de Laplace con esta forma canónica de ganancia estática unitaria:

Igual que en el primer orden teníamos a K y τ, aquí los reyes del mambo son dos parámetros que dictan todo el comportamiento:

Frecuencia natural (ωn)

Se lee “omega sub ene”. Responde a la pregunta: ¿a qué velocidad rebotaría esto si no hubiera ninguna fricción? Cuanto más duro sea el muelle y más ligera sea la masa, mayor será ωn y más rápido vibrará el sistema.

Coeficiente de amortiguamiento (ζ)

Se lee «zeta» y responde a la pregunta: ¿cuánto se amortigua la oscilación? No siempre representa una fricción física; también puede recoger otros mecanismos que disipan o compensan energía.

Dependiendo del valor que tome ζ, nuestro sistema va a comportarse de formas muy distintas.

Comportamientos del sistema

Aplicamos un escalón unitario (un cambio brusco en la entrada) a nuestro sistema. ζ determina la forma de la respuesta, mientras que ω_n fija su escala temporal:

  1. Sobreamortiguado (ζ>1): Hay tanto “aceite” que el sistema ni siquiera intenta oscilar. Se mueve hacia el objetivo de forma extremadamente lenta y perezosa. (Ej: Una puerta con el muelle de cierre muy apretado).
  2. Críticamente amortiguado (ζ = 1): Dentro de esta familia de segundo orden, ofrece la respuesta no oscilatoria más rápida.
  3. Subamortiguado (0<ζ<1): El caso más común. El sistema es rápido, pero la inercia le puede y se pasa de la marca (overshoot), oscilando unas cuantas veces antes de estabilizarse en el centro.
  4. No Amortiguado (ζ=0): Fricción cero. El sistema oscilará como una onda senoidal pura hasta el fin de los tiempos.

Si ζ < 0, la amplitud crece con el tiempo y el sistema es inestable. No es una quinta respuesta «normal», pero conviene saber que el modelo también permite representarla.

Métricas para evaluar el rendimiento

Cuando nos den un sistema mecánico para controlar, tenemos que medir lo “malo” que es para poder compensarlo. Para ello, extraemos de la gráfica tres valores fundamentales:

  • Sobreoscilación o Overshoot (Mp): Es el porcentaje máximo que el sistema se pasa del setpoint en su primer rebote. Si quiero ir a 100 mm y llego hasta 130 mm antes de retroceder, tengo un overshoot del 30%. ¡En una máquina CNC esto significa romper la herramienta!
  • Tiempo de Asentamiento (ts): Es el tiempo que tarda el sistema en entrar dentro de una banda aceptable de error (normalmente el ±2% del valor final) y no volver a salir de ella.
  • Tiempo de Subida (tr): Lo rápido que llega al objetivo por primera vez.

En muchos ajustes aparece un compromiso: hacer la respuesta más rápida puede aumentar la sobreoscilación, mientras que amortiguarla demasiado puede volverla lenta. No es una ley inevitable para cualquier controlador, pero sí una tensión habitual al ajustar un sistema.

Cómo simularlo

Si quisiéramos simular (no controlar, solo simular) la física de este sistema de segundo orden dentro de un Arduino usando el método de integración de Euler, el código se vería parecido a esto:

// Parámetros de nuestro sistema físico
float omega_n = 4.0;
float zeta = 0.3;

// Variables de estado
float posicion = 0.0;
float velocidad = 0.0;
float dt = 0.01; // Bucle de 10ms

void simular_fisica(float entrada_escalon) {
    // 1. Calculamos la aceleración basada en la ecuación diferencial:
    // a = entrada*Wn^2 - 2*zeta*Wn*v - Wn^2*p
    float aceleracion = (entrada_escalon * omega_n * omega_n) 
                      - (2.0 * zeta * omega_n * velocidad) 
                      - (omega_n * omega_n * posicion);
                      
    // 2. Integramos la aceleración para obtener velocidad (Euler)
    velocidad += aceleracion * dt;
    
    // 3. Integramos la velocidad para obtener posición
    posicion += velocidad * dt;
}
Copied!

Esa variable velocidad multiplicada por el factor de amortiguamiento en el código es la que roba energía.

Si tienes un sistema físico muy «rebotón» (bajo amortiguamiento), puedes aumentar el amortiguamiento mediante software programando un controlador que tenga en cuenta la velocidad de cambio. Esa es una de las funciones de la acción derivativa (D) de un controlador PID.