Main Content

Diseñar un controlador predictivo de redes neuronales en Simulink

El controlador predictivo de redes neuronales que se implementa en el software Deep Learning Toolbox™ usa un modelo de red neuronal de una planta no lineal para predecir el rendimiento futuro de la planta. A continuación, el controlador calcula la entrada de control que optimizará el rendimiento de la planta en un horizonte temporal futuro concreto. El primer paso en el control predictivo de modelos es determinar el modelo de planta de la red neuronal (identificación del sistema). Después, el controlador usa el modelo de la planta para predecir el rendimiento futuro. (Consulte la documentación de Model Predictive Control Toolbox™ para obtener información detallada sobre la aplicación de diversas estrategias de control predictivo de modelos a sistemas lineales).

La siguiente sección describe el proceso de identificación del sistema. A continuación, se describe el proceso de optimización. Por último, se analiza cómo usar el bloque del controlador predictivo de modelos que se implementa en el entorno Simulink®.

Identificación del sistema

La primera etapa del control predictivo de modelos consiste en entrenar una red neuronal que represente la dinámica hacia delante de la planta. El error de predicción entre la salida de la planta y la salida de la red neuronal se usa como señal de entrenamiento de la red neuronal. El proceso se representa en la siguiente figura:

System identification diagram with input u and output y_p.

El modelo de planta de red neuronal usa entradas y salidas anteriores de la planta para predecir los valores futuros de la salida de la planta. La estructura del modelo de planta de red neuronal se muestra en la siguiente figura.

Two layer neural network diagram with inputs y_p(t) and u(t), and output y_m(t+1).

Esta red puede entrenarse sin conexión por lotes, a partir de los datos recogidos durante el funcionamiento de la planta. Puede usar cualquiera de los algoritmos de entrenamiento descritos en Redes neuronales superficiales multicapa y entrenamiento de retropropagación para entrenar la red. Este proceso se analiza con más detalle en las secciones siguientes.

Control predictivo

El método de control predictivo de modelos se basa en la técnica del horizonte decreciente [SoHa96]. El modelo de red neuronal predice la respuesta de la planta en un horizonte temporal determinado. Las predicciones las usa un programa de optimización numérica para determinar la señal de control que minimiza el siguiente criterio de rendimiento en el horizonte especificado

J=j=N1N2(yr(t+j)ym(t+j))2+ρj=1Nu(u(t+j1)u(t+j2))2

donde N1, N2 y Nu definen los horizontes sobre los que se evalúan el error de seguimiento y los incrementos de control. La variable u′ es la señal de control provisional, yr es la respuesta deseada e ym es la respuesta del modelo de red. El valor ρ determina la contribución que la suma de los cuadrados de los incrementos de control tiene sobre el índice de rendimiento.

El siguiente diagrama de bloques ilustra el proceso de control predictivo de modelos. El controlador consta del modelo de planta de red neuronal y del bloque de optimización. El bloque de optimización determina los valores de u′ que minimizan J y, a continuación, la variable u óptima se introduce en la planta. El bloque controlador se implementa en Simulink, tal y como se describe en el siguiente apartado.

Block diagram with inputs y_r and output y_p

Usar el bloque Neural Network Predictive Controller (Controlador predictivo de red neuronal)

Esta sección muestra cómo se usa el bloque NN Predictive Controller. El primer paso es copiar el bloque NN Predictive Controller de la biblioteca de bloques de Deep Learning Toolbox al editor de Simulink. Si tiene dudas sobre cómo hacerlo, consulte la documentación de Simulink. Este paso se omite en el ejemplo siguiente.

El software Deep Learning Toolbox proporciona un modelo de ejemplo para explicar cómo se usa el controlador predictivo. Este ejemplo usa un reactor catalítico con depósito agitado continuo (CSTR catalítico). En la siguiente figura se muestra un diagrama del proceso.

Process diagram with w_1, C_b1, w_2, and C_b2, and outputs w_0 and C_b

El modelo dinámico del sistema es

dh(t)dt=w1(t)+w2(t)0.2h(t)dCb(t)dt=(Cb1Cb(t))w1(t)h(t)+(Cb2Cb(t))w2(t)h(t)k1Cb(t)(1+k2Cb(t))2

donde h(t) es el nivel de líquido, Cb(t) es la concentración de producto a la salida del proceso, w1(t) es el caudal de la alimentación concentrada Cb1 y w2(t) es el caudal de la alimentación diluida Cb2. Las concentraciones de entrada están establecidas en Cb1 = 24.9 y Cb2 = 0.1. Las constantes asociadas a la tasa de consumo son k1 = 1 y k2 = 1.

El objetivo del controlador es mantener la concentración de producto ajustando el caudal w1(t). Para simplificar el ejemplo, establezca w2(t) = 0.1. El nivel del tanque h(t) no se controla en este experimento.

Para ejecutar este ejemplo:

  1. Inicie MATLAB®.

  2. Escriba predcstr en la ventana de comandos de MATLAB. Este comando abre el editor de Simulink con el siguiente modelo.

    Screenshot of predstr model in Simulink.

    El bloque Plant contiene el modelo de planta CSTR de Simulink. Las señales del bloque NN Predictive Controller se conectan de la siguiente manera:

    • La señal de control se conecta a la entrada del modelo Plant.

    • La señal Salida de planta se conecta a la salida del bloque Plant.

    • La referencia se conecta a la señal de referencia aleatoria.

  3. Haga doble clic en el bloque Controlador predictivo de red neuronal. Se abrirá la ventana siguiente para diseñar el controlador predictivo del modelo. Esta ventana permite cambiar los horizontes de los controladores N2 y Nu. (N1 se establece en 1). El parámetro de ponderación ρ, descrito anteriormente, también se define en esta ventana. El parámetro α se usa para controlar la optimización. Determina cuánta reducción del rendimiento es necesaria para que un paso de optimización se realice correctamente. Puede seleccionar qué rutina de minimización lineal usa el algoritmo de optimización y decidir cuántas iteraciones del algoritmo de optimización se realizan en cada tiempo de muestreo. Las rutinas de minimización lineal son ligeras modificaciones de las que se describieron en Redes neuronales superficiales multicapa y entrenamiento de retropropagación.

    Screenshot of Neural Network Predictive Control dialogue box

  4. Seleccione Plant Identification. Se abrirá la ventana siguiente. Debe desarrollar el modelo de planta de red neuronal antes de poder usar el controlador. El modelo de planta predice la producción futura de la planta. El algoritmo de optimización usa estas predicciones para determinar las entradas de control que optimizan el rendimiento futuro. La red neuronal del modelo de planta tiene una capa oculta, como se ha mostrado anteriormente. En esta ventana se selecciona el tamaño de esa capa, el número de entradas y salidas retrasadas y la función de entrenamiento. Puede seleccionar cualquiera de las funciones de entrenamiento descritas en Redes neuronales superficiales multicapa y entrenamiento de retropropagación para entrenar el modelo de planta de red neuronal.

    Screenshot of Plant Identification dialogue box

  5. Haga clic en Generate Training Data. El programa genera datos de entrenamiento aplicando una serie de entradas de pasos aleatorios al modelo de planta de Simulink. A continuación, los posibles datos de entrenamiento se muestran en una figura similar a la siguiente.

    Screenshot of Plant Input-Output Data dialogue box

  6. En la ventana Plant Identification, haga clic en Accept Data y, a continuación en Train Network. Comienza el entrenamiento del modelo de planta. El entrenamiento procede según el algoritmo de entrenamiento (trainlm, en este caso) que haya seleccionado. Se trata de una aplicación directa del entrenamiento por lotes, como se describe en Redes neuronales superficiales multicapa y entrenamiento de retropropagación. Después de que se complete el entrenamiento, se muestra la respuesta del modelo de planta resultante, tal como se indica en la figura siguiente. (También hay gráficas separadas para los datos de validación y prueba, si existen).

    Screenshot of Training Data for NN Predictive Control dialogue box

    A continuación, puede continuar el entrenamiento con el mismo conjunto de datos si selecciona Train Network de nuevo, puede pulsar Erase Generated Data y generar un nuevo conjunto de datos o puede aceptar el modelo de planta actual y comenzar a simular el sistema de lazo cerrado. En este ejemplo, inicie la simulación, como se muestra en los siguientes pasos.

  7. Seleccione OK en la ventana Plant Identification. De este modo, se carga el modelo de planta de red neuronal entrenado en el bloque NN Predictive Controller.

  8. Seleccione OK en la ventana Neural Network Predictive Control. De este modo, se cargan los parámetros del controlador en el bloque NN Predictive Controller.

  9. Vuelva al editor de Simulink y empiece la simulación eligiendo la opción de menú Simulation > Run. Mientras la simulación se ejecuta, se muestran la salida de la planta y la señal de referencia, como en la figura siguiente.

    2-D line plot with title "X Y Plot". The horizontal axis is labeled "X Axis". The vertical axis is labeled "Y Axis".