implementación del controlador PID digital

Estoy tratando de implementar un controlador PID en el dominio z. Lo que he hecho hasta ahora es encontrar algunos valores de k pag , k i , y k d que funcionan en el dominio del tiempo. He encontrado información sobre cómo traducir estos valores al dominio z , pero cuando ejecuto la nueva simulación con el controlador PID digital, parece que ya no funciona.

Para su referencia, el k pag , k i , y k d los valores que tengo son 0.25, 0.6, 0.005, y cuando los convertí a la forma canónica (en el dominio z) tuve a 0 = 500.25 , a 1 = 1000.25 y a 2 = 500 . (usado T = 10 6 . Cuando trazo estas dos cosas (usando una entrada sinusoidal), las salidas son diferentes y no puedo entender dónde me estoy equivocando con esto.

EDITAR: supongo que como una pregunta más directa, ¿cómo puedo tomar los parámetros del dominio del tiempo? k pag , k i , y k d y convertir eso en una ecuación de diferencia de dominio digital/z para un microcontrolador? AIT

Con una simple inspección, podemos ver de inmediato que algo está claramente mal con los valores de Ki nd Kd, ya que las unidades no tienen sentido. Ki está en unidades de frecuencia y Kd en unidades de tiempo. Sin dimensiones, como los muestra, es claramente incorrecto y, por lo tanto, no se puede convertir al dominio Z en ningún sentido significativo.
@OlinLathrop Puedo ver de dónde viene, pero estas son fórmulas que obtuve del enlace de wikibooks. ¿Hay otras formas en que puedo transformar mi dominio de tiempo en z?
continuemos esta discusión en el chat @OlinLathrop
@OlinLathrop, creo que su chat funciona, si no es así, podemos encontrar una forma diferente de comunicarnos. Los comentarios aquí no son los más productivos.
@Kortuk: Seguí tu enlace y llegué a una página de chat. Tenía bloques para las cosas que dijiste y yo dije, pero no se completó el texto. El chat nunca me ha funcionado todavía.
@OlinLathrop, ¿tienes skype tal vez? Puedo enviarle mi información de contacto por correo electrónico (puedo obtener su correo electrónico de su cuenta como mod y esto evita compartir públicamente detalles de contacto privados en el foro)
@OlinLathrop, si tiene un método de chat para sugerir, probablemente pueda instalar la mayoría de las opciones.

Respuestas (2)

Como cambiaste tu pregunta, aquí está mi segunda respuesta:

Tienes tus coeficientes k pag , k i y k pag . La función de transferencia es D ( z ) = k pag + k i T 2 [ z + 1 z 1 ] + k d [ z 1 T z ] = a 0 + a 1 z 1 + a 2 z 2 1 + b 1 z 1 + b 2 z 2 . Cuando compares los dos lados de la ecuación, encontrarás que puedes calcular todo lo que necesitas. Supongo que ya has determinado k pag , k i , k pag y T ya sea por medición o de los requisitos.

  1. Calcular los coeficientes

    • a 0 = k pag + k i T 2 + k d T
    • a 1 = k pag + k i T 2 2 k d T
    • a 2 = k d T
    • b 1 = 1
    • b 2 = 0
  2. Los exponentes negativos para z básicamente significan un cambio. la salida es

    y [ norte ] = X [ norte ] a 0 + X [ norte 1 ] a 1 + X [ norte 2 ] a 2 + y [ norte 1 ]

El índice norte es el valor actual, norte 1 el anterior y así sucesivamente.

Eres de un orden de magnitud. a 2 = k d T T = k d a 2 = 0.005 500 = 10 5 y no tuyo) T = 10 6 por lo que sus valores necesitan ser ajustados.

ups, creo que quise escribir 10 10 6 .
@suzu ¿Fue eso lo que causó el error?