He leído algunos documentos para controlar sistemas no lineales (por ejemplo, péndulo no lineal). Existen varios enfoques para apuntar a sistemas no lineales. Los más comunes son los controladores de modo lineal de retroalimentación , retroceso y deslizamiento .
En mi caso, hice las partes teóricas y prácticas del control del modelo no lineal de un péndulo simple más otros problemas de manipuladores en C ++. Para el péndulo, he utilizado un controlador de retroceso para resolver la tarea de seguimiento del desplazamiento angular y la velocidad. Los resultados son
donde y .g = 9.81
Los resultados son buenos. Sin embargo, ajustar el controlador lleva mucho tiempo. La mayoría de los artículos utilizan algoritmos genéticos para ajustar sus controladores, como PD, PID y controladores de retroceso. No tengo ni idea en este campo y espero que alguien arroje algo de luz sobre este concepto, preferible si hay una muestra de MATLAB para al menos controlar un péndulo simple.
Hasta ahora, he diseñado una GUI simple en C ++ / Qt para ajustar el controlador manualmente. En la siguiente imagen, la respuesta del controlador para la función de paso.
Los algoritmos genéticos son una técnica de aprendizaje automático para eliminar la necesidad de que un usuario 'ajuste' un sistema y, en su lugar, permita que una computadora descubra cómo ajustar el sistema. Los beneficios de este enfoque son que libera el tiempo de los investigadores / usuarios y, a menudo, puede conducir a un sistema que se ajusta mejor de lo que el investigador / usuario podría haber logrado.
La idea general de usar un algoritmo genético seguiría un flujo de control básico de la siguiente manera:
El mejor ejemplo que puedo mostrar fácilmente de este principio en la práctica es este 'juego' que utiliza la evolución genética para diseñar vehículos que sean capaces de conducir en un curso. La misma idea se aplica a cualquier sistema que desee ajustar sin tener que realizar ningún ajuste usted mismo. Ejemplo: http://rednuht.org/genetic_cars_2/
fuente
Estoy confundido por lo que llamas un algoritmo genético. Los controladores PD, PID, etc., no son métodos heurísticos ni estocásticos, y no se basan en algoritmos evolutivos. Son, en cambio, algoritmos deterministas destinados a permitir la colocación de polos y ceros de una respuesta del sistema para proporcionar el rendimiento deseado (minimización de errores, velocidad de respuesta, tiempo de establecimiento, estabilidad y rechazo de perturbaciones). Una buena referencia de aprendizaje, en mi opinión, es el libro de Sistemas de control automático de Kuo . Puede encontrar un tratamiento menos riguroso en el libro de Ingeniería de control automático de Raven .
fuente