Hay varios puntos por los que la forma de transformación Z tiene mayor utilidad.
Pregúntele a cualquiera que promueva el enfoque basado en el tiempo / simple / sans-PHD cuál es el conjunto de su término Kd. Es probable que respondan 'cero' y que digan que D es inestable (sin un filtro de paso bajo). Antes de aprender cómo se combina todo esto, habría dicho y dije esas cosas.
Sintonizar Kd es difícil en el dominio del tiempo. Cuando puede ver la función de transferencia (la transformación Z del subsistema PID) puede ver fácilmente cuán estable es. También puede ver fácilmente cómo el término D afecta al controlador en relación con los otros parámetros. Si su parámetro Kd contribuye 0.00001 a los coeficientes del polinomio z pero su término Ki está poniendo en 10.5 entonces su término D es demasiado pequeño para tener un efecto real en el sistema. También puede ver el equilibrio entre los términos Kp y Ki.
Los DSP están diseñados para calcular ecuaciones de diferencias finitas (FDE). Tienen códigos de operación que multiplicarán un coeficiente, sumarán un acumulador y cambiarán un valor en un búfer en un ciclo de instrucción. Esto explota la naturaleza paralela de los FDE. Si la máquina carece de este código de operación ... no es un DSP. Los PowerPC (MPC) integrados tienen un periférico dedicado al cálculo de los FDE (lo llaman la unidad de diezmado). Los DSP están diseñados para calcular los FDE porque es trivial transformar una función de transferencia en un FDE. 16 bits no es suficiente rango dinámico para cuantificar fácilmente los coeficientes. Muchos de los primeros DSP en realidad tenían palabras de 24 bits por este motivo (creo que las palabras de 32 bits son comunes hoy en día).
IIRC, la llamada transformación bilineal toma una función de transferencia (una transformación z de un controlador de dominio de tiempo) y la convierte en un FDE. Demostrar que es 'difícil', usarlo para obtener un resultado es trivial: solo necesita la forma expandida (multiplicar todo) y los coeficientes polinómicos son los coeficientes FDE.
Un controlador PI no es un gran enfoque: un mejor enfoque es construir un modelo de cómo se comporta su sistema y usar PID para la corrección de errores. El modelo debe ser simple y estar basado en la física básica de lo que está haciendo. Este es el avance hacia el bloque de control. Un bloque PID luego corrige el error utilizando la retroalimentación del sistema bajo control.
Si utiliza valores normalizados, [-1 .. 1] o [0 ... 1], para el punto de referencia (referencia), retroalimentación y avance, puede implementar un algoritmo de 2 polos y 2 ceros en conjunto DSP optimizado y puede usarlo para implementar cualquier filtro de segundo orden que incluya PID y el filtro de paso bajo (o paso alto) más básico. Esta es la razón por la cual los DSP tienen códigos de operación que presumen valores normalizados, por ejemplo, uno que generará una estimación de la raíz cuadrada inversa para el rango (0..1) Puede poner dos filtros 2p2z en serie y crear un filtro 4p4z, esto permite puede aprovechar su código DSP de 2p2z para, por ejemplo, implementar un filtro Butterworth de paso bajo de 4 toques.
La mayoría de las implementaciones en el dominio del tiempo incorporan el término dt en los parámetros PID (Kp / Ki / Kd). La mayoría de las implementaciones de dominio z no lo hacen. dt se coloca en las ecuaciones que toman Kp, Ki y Kd y las convierten en coeficientes [] & b [] para que su calibración (ajuste) del controlador PID sea ahora independiente de la velocidad de control. Puede hacerlo funcionar diez veces más rápido, aumentar las matemáticas a [] & b [] y el controlador PID tendrá un rendimiento constante.
Un resultado natural del uso de FDE es que el algoritmo está implícitamente "sin fallas". Puede cambiar las ganancias (Kp / Ki / Kd) sobre la marcha mientras se ejecuta y se comporta bien; dependiendo de la implementación del dominio del tiempo, esto puede ser malo.
Por lo general, se dedica un gran esfuerzo a los controladores PID de dominio de tiempo para evitar la liquidación integral. Hay un truco simple con el formulario FDE que hace que el PID se comporte bien, puede fijar su valor en el búfer de historial. No he hecho los cálculos para ver cómo esto afecta el comportamiento del filtro (con respecto a los parámetros Kp / Ki / Kd), pero el resultado empírico es que es 'suave'. Esto está explotando la naturaleza 'sin fallas' de la forma FDE. Un modelo de retroalimentación contribuye a evitar la liquidación integral y el uso del término D ayuda a equilibrar el término I. PID realmente no funciona según lo previsto con una ganancia D. (El cambio de los puntos de ajuste es otra característica clave para evitar la liquidación excesiva).
Por último, las transformaciones Z son un tema de pregrado no "Ph.D." Debería haber aprendido todo sobre ellos en Análisis complejo. Aquí es donde va la universidad, el instructor que tiene y el esfuerzo que pone en aprender las matemáticas y aprender a usar las herramientas disponibles puede marcar una diferencia significativa en su capacidad de desempeño en la industria. (Mi clase de Análisis complejo fue horrible).
La herramienta de la industria de facto es Simulink (que carece de un sistema de álgebra computacional, CAS, por lo que necesita otra herramienta para producir ecuaciones generales). MathCAD o wxMaxima son solucionadores simbólicos que puedes usar en una PC y aprendí cómo hacerlo usando una calculadora TI-92. Creo que la TI-89 también tiene un sistema CAS.
Puede buscar ecuaciones de dominio z o dominio laplace en wikipedia para PID y filtros de paso bajo. Hay un paso aquí que no entiendo, creo que necesita la forma de dominio de tiempo discreto del controlador PID y luego necesita tomar la transformación z del mismo. La transformada de Laplace debería ser muy similar a la transformada z y se da como PID {s} = Kp + Ki / s + Kd · s. Creo que la transformada z explicaría mejor los Dt en las siguientes ecuaciones. Dt es delta-t [ime], uso Dt para no confundir esta constante con una derivada 'dt'.
b[0] = Kp + (Ki*Dt/2) + (Kd/Dt)
b[1] = (Ki*Dt/2) - Kp - (2*Kd/Dt)
b[2] = Kd/Dt
a[1] = -1
a[2] = 0
Y este es el FDE 2p2z:
y[n] = b[0]·x[n] + b[1]·x[n-1] + b[2]·x[n-2] - a[1]·y[n-1] - a[2]·y[n-2]
Los DSP normalmente solo tenían una multiplicación y suma (no una multiplicación y resta), por lo que puede ver la negación en los coeficientes a []. Agregue más b para más polos, agregue más a para más ceros.