Eu li alguns artigos para controlar sistemas não lineares (por exemplo, pêndulo não linear). Existem várias abordagens para direcionar sistemas não lineares. Os mais comuns são controladores de linearização de feedback , backstepping e modo deslizante .
No meu caso, eu fiz as partes teóricas e práticas de controle do modelo não linear de um pêndulo simples, além de outros problemas de manipuladores em C ++. Para o pêndulo, utilizei um controlador de backstepping para resolver a tarefa de rastreamento do deslocamento e velocidade angulares. Os resultados são
onde e .
Os resultados são bons. No entanto, o ajuste do controlador é demorado. A maioria dos artigos utiliza algoritmos genéticos para ajustar seus controladores, como PD, PID e controladores de backstepping. Eu sou ignorante neste campo e espero que alguém lance alguma luz sobre esse conceito, preferível se houver uma amostra do MATLAB para pelo menos controlar um pêndulo simples.
Até agora, projetei uma GUI simples em C ++ / Qt para ajustar o controlador manualmente. Na figura abaixo, a resposta do controlador para a função step.