Esse repositório implementa o algoritmo SINDy Control com PySINDy para encontrar as equações diferenciais que definem o sistema ball on plate MOAB da Microsoft.
Como estudo de caso do algoritmo SINDy, diferentes abordagens são realizadas:
- Modelo simplificado do MOAB e sua aplicação com o SINDy.
- Modelo padrão do MOAB e sua aplicação com o SINDy.
- Uso apenas de dados da posição da bola (x e y) da simulação em Simulink (Deve dar errado).
- Uso de dados da posição da bola (x e y) e da entrada da plataforma (\theta_x e \theta_y) n SINDy Control, e uso das velocidades da simulação.
- Uso de dados de um sistema ball on plate real.
São necessários as seguintes dependências instalados:
- NumPy
- Scypy
- Pysindy
Aqui cada estudo de caso do SINDy é computado.
Aqui estão scripts auxiliares como os modelos do MOAB, leitura e organização de arquivos CSV em Arrays, etc.
Pasta com conjunto de dados de simulações em .csv para utilizar no algoritmo sindy. Cada vetor de dados se encontra em um csv separado dentro de uma pasta Batch_# de acordo com a seguinte estrutura:
- Posição x da bola: ball_x.csv
- Posição y da bola: ball_y.csv
- Velocidade x da bola: ball_vel_x.csv
- Velocidade y da bola: ball_vel_y.csv
- Ângulo theta x da plataforma: theta_x.csv
- Ângulo theta y da plataforma: theta_y.csv
- Tempo: time.csv