Problema de modelado de Simulink

0

Recientemente publiqué una pregunta sobre los controladores PID, y la respuesta fue rápida.

Comencé a elaborar un modelo de Simulink y tengo problemas con mi modelo (simplista). Quiero resolver los problemas con este sistema de puntos de saltos masivos antes de completar mi tarea más complicada.

Debajo hay una imagen de mi modelo de Simulink. Tiene un punto de ajuste cargado desde el espacio de trabajo; la señal de error es empujada a través de un controlador PID. La salida de este controlador PID se "supone que es" actual, por lo que lo presioné a través de un bloque de saturación para limitar la cantidad máxima de corriente de salida.

Luego lo amplifiqué con una ganancia equivalente a la constante del motor (observando que el par es proporcional a la corriente en un motor de CC). A la salida (que debería ser algún tipo de posición), agregué ruido Gaussiano blanco aditivo.

Hay algunos problemas con esta simulación.

Uno, la salida del motor es el par, no la fuerza. Esto, sin embargo, es una preocupación menor y como este es solo un ejemplo que estaba elaborando para racionalizar los conceptos en mi cabeza, no importa.

La verdadera preocupación es la salida del controlador PID. Según las especificaciones de mi motor, la corriente máxima permitida es de aproximadamente 10 A, por lo que configuré el filtro de saturación para que se desconecte a -10 A y +10 A. Sin embargo, al usar la función de fantasía "Pune PID" en Simulink, obtengo Valores absurdamente altos para los coeficientes del controlador. Esto, a su vez, da como resultado valores absurdamente altos para la salida del controlador, mucho mayor que 10 A.

Claramente, algo va muy mal aquí, y no estoy seguro de qué. Requiero que mi tiempo de subida sea de ~ 0.1 segundos (para una entrada por pasos), y esto resulta en valores como 10 ^ 8 para el coeficiente integral. Supongo que mi suposición de que la salida del controlador PID es actual es incorrecta (después de todo, el controlador PID en Simulink no sabe qué es lo que me gustaría que produzca), pero no estoy seguro de cómo remediar esto.

Cualquier ayuda es muy apreciada. ^^

Para referencia, indicaré cuáles son mis constantes aquí en lugar de dar un código MATLAB desordenado.

m = 1 kg; k = 98700 N / m; c = 10,5 kg * m / s;

I_max = 10 A; I_min = -10 A; kt = 1.08 N * m / A;

Lo que resultó en valores de:

K_p = 1285705; K_i = 184757940; K_d = 1983; N = 23914;

EDITAR: para evitar confusiones sobre por qué estoy ingresando x_set en mi controlador PID, déjeme aclarar. No ignoro todo lo dicho en mi pregunta anterior, sino que asumo que tengo algunos medios para usar un convertidor de 1 V / m, de modo que pueda ser perezoso y dejar que mi posición en metros sea equivalente a mi entrada en voltaje al controlador PID.

    
pregunta anonymouse

1 respuesta

1

Mi conjetura es que su "afinado PID" apuntó a características de respuesta irrealistas y terminó con esas ganancias absurdas para su controlador, lo que debería ser la causa de las acciones de control también absurdas.

Deshágase del término derivado (K_d = 0; son problemáticos, especialmente si su ruido contiene componentes de alta frecuencia) y comience utilizando pequeñas ganancias para K_p y K_i, y auméntelos a medida que observe la respuesta del sistema. K_p debe configurarse para obtener una respuesta inicial razonablemente buena (pero no sobrepasar) y K_i debe configurarse para que el error de estado estable sea cero en un tiempo aceptable.

    
respondido por el SuperGeo

Lea otras preguntas en las etiquetas