efectos-discretizacion-polos-plano-z

Efectos de la discretización y plano z

  • 5 min

Los efectos de la discretización son los cambios dinámicos que aparecen al ejecutar un control continuo por pasos dentro de un microcontrolador.

En el artículo anterior vimos cómo el Teorema de Nyquist nos advertía sobre quedarnos ciegos (efecto Aliasing) si leíamos el sensor demasiado despacio. Sin embargo, hay un problema mucho más profundo y oscuro cuando saltamos al mundo de los microcontroladores.

Tú diseñas un PID en papel. Calculas tus ganancias , y . El Lugar de las Raíces te jura y perjura que tus polos están a la izquierda y el sistema es súper estable. Metes ese código en tu Arduino… y el robot sale ardiendo. ¿Por qué nos han mentido las matemáticas?

Hoy vamos a dar una intuición rápida (sin morir en integrales complejas) de qué le pasa a la física cuando el tiempo deja de ser continuo y empieza a ir a saltos.

El retenedor de orden cero (ZOH)

En el mundo continuo, si un motor necesita cambiar su fuerza, lo hace fluyendo suavemente. En el mundo de tu microcontrolador, tú calculas una salida (ej. PWM a 120), la envías al driver, y esa señal se queda congelada hasta que el bucle vuelva a dar la vuelta y calcule un nuevo valor.

A este efecto se le llama Retenedor de Orden Cero (Zero-Order Hold, ZOH).

Durante esos milisegundos en los que la señal está congelada, el robot se sigue moviendo en el mundo físico real, pero tu código no está haciendo absolutamente nada para adaptarse a esa nueva posición. Matemáticamente, este “congelamiento” actúa exactamente igual que si hubieras introducido un retardo puro (Dead Time) en el sistema.

Y si recuerdas nuestro artículo sobre los diagramas de Bode… el retardo es el archienemigo del margen de fase. El simple hecho de digitalizar un control empuja al sistema hacia la inestabilidad.

Del plano s al plano z

Para analizar sistemas discretos, los ingenieros abandonan la Transformada de Laplace (la variable ) y utilizan su equivalente digital: la Transformada Z (la variable ).

Para relacionar un modo continuo con su equivalente muestreado usamos el periodo T_s:

Este mapeo exacto tiene una consecuencia visual muy útil cuando dibujamos el mapa de la estabilidad.

La frontera de estabilidad

En el mundo continuo (Plano S), dijimos que la frontera de la vida y la muerte era el eje vertical. Si un polo cruzaba al semiplano derecho, el sistema explotaba.

Al aplicar z = e^{sT_s}, el semiplano izquierdo de Laplace se transforma en el interior de un círculo de radio 1: el círculo unidad. Por eso, un polo continuo con parte real negativa se convierte mediante el mapeo exacto en un polo discreto con módulo menor que uno, sea cual sea el periodo de muestreo.

Regla práctica del control digital: Un sistema LTI discreto es asintóticamente estable si todos sus polos están estrictamente dentro del círculo unidad, es decir, |z| < 1. Los polos simples sobre el círculo corresponden a estabilidad marginal; fuera de él, la respuesta crece.

La aproximación de Euler

En el artículo de programación del PID usamos aproximaciones sencillas para la integral y la derivada. Si además aproximamos la evolución de una dinámica continua con Euler hacia delante, sustituimos el mapeo exponencial exacto por una recta:

El método de Euler no usa la exponencial exacta, sino que hace una aproximación lineal “barata”:

Esta aproximación puede dejar de conservar la estabilidad cuando el paso es demasiado grande.

Imagina que simulamos la ecuación ẋ = -10x mediante Euler hacia delante. Su polo continuo está situado en s = -10.

  • Si tu Arduino va rapidísimo ( s): El polo digital se ubica en . Está dentro del Círculo Unidad. Estable.
  • Si tu Arduino va a pedales ( s): El polo digital se va a . Está en el centro. Perfecto.
  • Si metes delays en el código y el bucle tarda mucho ( s): El polo se va a .

-1,5 está fuera del círculo unidad porque su magnitud es mayor que 1. La planta física no se ha vuelto inestable: la aproximación numérica con ese paso produce un modelo discreto inestable. El mismo riesgo aparece al discretizar un controlador sin comprobar el resultado completo del lazo.

Por qué importa al programar un control

A nivel de código en un Arduino o ESP32, no solemos sacar la libreta para calcular la Transformada Z de nuestro horno de convección. Pero esta intuición visual te regala un “superpoder” a la hora de depurar:

  1. Si tu robot oscila casi muestra a muestra, puede haber un polo discreto cerca de -1 o fuera del círculo unidad, pero también pueden intervenir ruido, saturación o retardos. Reduce el periodo o las ganancias de forma controlada y analiza los datos antes de atribuirle una causa única.
  2. Métodos como Euler hacia delante pueden ser problemáticos con pasos grandes. Para discretizar controladores solemos considerar alternativas como la transformación bilineal o método de Tustin, que mapea todo el semiplano izquierdo dentro del círculo unidad, aunque introduce deformación de frecuencia.

Con esto cerramos definitivamente el bloque más matemático y abstracto del control digital. Ya entendemos por qué el tiempo es un factor crítico y cómo puede destruir nuestra estabilidad por la espalda.