sábado, 9 de maio de 2020

Robô Pêndulo Invertido: Dinâmica Não Linear

Olá a todos! Dando sequência nas postagens do robô pêndulo invertido, vou tratar da dinâmica não linear desse robô nessa postagem. Nas próximas, será feita a linearização do modelo e a inclusão da dinâmica do motor CC que será utilizado. Os detalhes da dedução desse modelo serão omitidos desse post mas estarão disponíveis no livro, que eu devo disponibilizar algum dia (quem sabe, na metade do ano que vem).

A dedução das equações de dinâmica foi feita a partir da mecânica de Lagrange e foi feita baseada no livro Advanced Control of Wheeled Inverted Pendulum Systems, do Z. Li. Porém eu analisei cuidadosamente a dedução apresentada naquele livro e acredito que existam erros e imprecisões, principalmente na parte de linearização. Por isso, eu sigo uma dedução diferente da dinâmica do robô. Vale comentar que existem outras técnicas para dedução da dinâmica desse robô, mas a que eu mais gosto, pela simplicidade, é a mecânica de Lagrange.

Indo direto ao ponto, as equações de dinâmica não linear desse robô representadas de uma forma matricial são

$$ \small \begin{bmatrix} \dot{v} \\ \ddot{\alpha} \\ \ddot{\theta} \end{bmatrix} = \begin{bmatrix} \frac{I_{\alpha}}{M_{eq}I_{\alpha}-m^2l^2cos^2(\alpha)} & \frac{-mlcos(\alpha)}{M_{eq}I_{\alpha}-m^2l^2cos^2(\alpha)} & 0 \\ \frac{-mlcos(\alpha)}{M_{eq}I_{\alpha}-m^2l^2cos^2(\alpha)} & \frac{M_{eq}}{M_{eq}I_{\alpha}-m^2l^2cos^2(\alpha)} & 0 \\ 0 & 0 & I_{\theta}^{-1} \end{bmatrix} \begin{bmatrix} ml\dot{\alpha}^2sen(\alpha)+(\tau_d+\tau_e)\frac{M_{robo}r}{2I_{\omega}+M_{robo}r^2} \\ mglsen(\alpha) \\ d(\tau_d-\tau_e)\frac{I_{\theta}r}{2d^2I_{\omega}+I_{\theta}r^2} \end{bmatrix} $$

Lembrando que todos os símbolos utilizados podem ser encontrados na postagem Lista de Símbolos, com link aqui!

Como é possível ver, no modelo apresentado, as entradas são os torques dos motores (\(\tau_d\) e \(\tau_e\)). Nas próximas postagens esse modelo será modificado para incluir a dinâmica do motor CC, onde o torque será uma consequência da verdadeira variável de entrada do nosso robô, a tensão aplicada na armadura do motor.

E, para finalizar, uma foto da montagem que fiz até agora.


Instalei os motores na carcaça. Esses motores tem encoder integrado e, devido a redução, há bastante pulsos de encoder por volta da roda. Ainda tenho que determinar exatamente quantos pulsos por volta existem, mas farei isso futuramente.

Por hoje era isso, até a próxima!