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!

sábado, 11 de abril de 2020

Robô Pêndulo Invertido: Lista de Símbolos

Olá a todos!

Eu iria começar a falar do robô pêndulo invertido pela sua dinâmica, ou seja, pelas equações que governam o comportamento do robô. Porém eu percebi que eu teria que introduzir uma série de símbolos utilizados para representar parâmetros desse robô. Por esse motivo, eu decidi compilar todos os símbolos utilizados em um único post, para consulta.

Símbolos que são parâmetros do robô e do ambiente.

\(M\) - Massa da plataforma do eixo das rodas [kg]; \(M_w\) - Massa de cada uma das rodas [kg]; \(m\) - Massa do pêndulo [kg];
\(l\) - Comprimento do pêndulo [m];
\(r\) - Raio da roda [m];
\(d\) - Distância entre cada roda e o centro da plataforma [m];
\(v\) - Velocidade de translação da plataforma [m];
\(\dot{v}\) - Aceleração de translação da plataforma [m/s^2];
\(g\) - Aceleração gravitacional [m/s^2];
\(\alpha\) - Ângulos de inclinação do pêndulo [rad];
\(\theta\) - Ângulo entre a frente do robô e um eixo de referência [rad];
\(\dot{\alpha}\) - Velocidade angular de inclinação do pêndulo [rad/s];
\(\dot{\theta}\) - Velocidade ângular da plataforma em torno do eixo vertical [rad/s];
\(\ddot{\theta}\) - Aceleração ângular da plataforma em torno do eixo vertical [rad/s^2];
\(\ddot{\alpha}\) - Aceleração angular de inclinação do pêndulo [rad/s^2];
\(I_M\) - Momento de inércia da plataforma em torno do eixo das rodas [kgm^2];
\(I_w\) - Momento de inércia da roda em torno de seu eixo [kgm^2];
\(I_p\) - Momento da plataforma e pêndulo em torno do eixo vertical [kgm^2];
\(\tau_r\) - Torque gerado pelo motor direito [Nm];
\(\tau_l\) - Torque gerado pelo motor esquerdo [Nm];

Símbolos que são compilação de outros parâmetros do robô.

\(M_{robo}\) - Massa total do robô, equivalente à \((M+2M_w+m)\) [kg];
\(M_{eq}\) - Massa equivalente à \((M_{robo} + 2I_w/r^2)\) [kg];
\(I_{\alpha}\)  - Momento de inércia equivalente à \((I_M+ml^2)\) [kgm^2];
\(I_{\theta}\) - Momento de inércia equivalente à \((I_p+2M_wd^2+2I_wd^2/r^2)\) [kgm^2].

Por hoje era isso. No próximo post vamos usar essa simbologia para começar a falar do robô pêndulo invertido em si. Até a próxima.

Robô Pêndulo Invertido: Introdução

Bem vindos a 2020! Que apesar de ter começado há bastante tempo (já estamos em abril!) ainda não começou direito por causa do Coronavírus.

Nesta série de posts eu quero trazer trechos do livro que estou escrevendo sobre Robô Pêndulo Invertido. Sabe? Aquele que se equilibra sobre duas rodas. Eu sempre quis montá-lo. Mas mais do que isso! Eu sempre quis ter um bom entendimento da física que governa seu comportamento. E foi essa vontade que me motivou a começar a escrever um livro sobre o assunto, sendo este livro um lugar onde eu compilo tudo que vou pesquisando sobre esse robô. Mas como esse é um projeto de longo prazo (nem sei se o terminarei, dada a correria do mestrado), vou publicando aqui algum material, com uma linguagem mais informal.

Até a próxima!

quarta-feira, 7 de agosto de 2019

Mudanças de 2019

Fazia bastante tempo que não escrevia no blog. Um dos motivos disso foi que no último ano eu estava terminando a graduação em engenharia de controle e automação na UCS. Portanto, estava com TCC, formatura, etc. Mas agora estou formado e, além disso, consegui a láurea acadêmica, pois minha média no curso foi 3,9 sobre 4,0 pontos (e nenhuma nota inferior a 3).

Além disso, eu passei em um mestrado na UFRGS com bolsa (ainda bem) para estudar ainda mais a área de sistemas de controle que eu adoro. Fiquei feliz pela UFRGS ter me aceitado pois eles são referência na área de controle. Agora vou ter a oportunidade de estudar com aqueles que deram aula para meus professores da graduação.

Mas admito que estou ansioso com esse novo desafio, pois são muitas mudanças. A universidade é federal, o nível de curso é mais alto (me falaram que 3 disciplinas do mestrado equivalem a 8 da graduação), os professores são diferentes, além de outras mudanças que só perceberei no dia-a-dia.

Agora, me resta encarar os próximos desafios.

sábado, 31 de março de 2018

Transistor BJT em AC: Par Darlington em AC

No último post falamos sobre a associação de transistor conhecida com par Darlington em DC. Hoje, vamos complementar o que vimos com a análise AC dessa associação.


Vamos partir do circuito acima, que é o mesmo apresentado no último post. Quando passamos para a análise AC, utilizamos a aproximação de pequenos sinais, chegando ao seguinte circuito.



$$ \large r_{\pi 1} = \frac{0,025}{I_{B}}$$
$$ \large r_{\pi 2} = \frac{0,025}{(\beta_1 + 1) I_{B}} $$

A corrente drenada pelo nó do coletor é:

$$ \large i_{c} = \beta_1 i_{b1} + \beta_2 i_{b2} $$
$$ \large i_{c} = \beta_1 i_b + \beta_2 (1 + \beta_1) i_b $$
$$ \large i_{c} = (\beta_1 + \beta_1 \beta_2 + \beta_2) i_b $$

Assim, chegamos à equação da corrente AC do coletor. Para finalizarmos nosso modelo AC de pequenos sinais equivalente da associação, precisamos achar a resistência pi equivalente. Para achar a resistência equivalente, vamos verificar a queda de tensão provocada pela injeção da corrente de base ib.

$$ \large v_{be} = i_{b1} r_{\pi 1} + i_{b2} r_{\pi 2} $$
$$ \large v_{be} = i_b r_{\pi 1} + (\beta_1 + 1) i_b \frac{r_{\pi_1}}{(\beta_1 + 1)} $$
$$ \large v_{be} = 2 i_b r_{\pi 1} $$
$$ \large r_{\pi eq} = \frac{v_{be}}{i_b} = 2 r_{\pi 1} $$


$$ \large r_{\pi eq} = 2 r_{\pi 1} $$
$$ \large \beta_{eq} = \beta_1 + \beta_1 \beta_2 + \beta_2 $$

Por hoje era isso. Nos próximos posts vamos usar essas informações para projetar e analisar um amplificador que utiliza transistores em associação Darlington.

Até a próxima.

segunda-feira, 26 de março de 2018

Transistor BJT em AC: Par Darlington em DC

Post rápido de intervalo de almoço. Hoje vamos determinar a equação que rege a associação de transistores conhecidas como Darlington, cuja imagem está abaixo. Pois muita gente aprende que quando se associa transistores BJT da forma abaixo, o ganho total é o produto dos ganhos individuais. Mas será que é isso mesmo? Hoje vamos botar isso a prova.


Nosso objetivo é deduzir a equação de ganho do "transistor equivalente", que relaciona a corrente total de coletor (Ic, em vermelho) com a corrente total de base (Ib, em vermelho), a partir dos ganhos \(\beta_1\) e \(\beta_2\) dos transistores Q1 e Q2. Ou seja, em um transistor, temos a seguinte equação:

$$ \Large \beta = \frac{I_c}{I_b} $$

Como o \(\beta\) está relacionado com \(\beta_1\) e \(\beta_2\), onde \(\beta\) é o ganho do transistor equivalente?

Sabemos que no transistor Q1, a corrente do coletor é \(\beta_1\) vezes maior que a corrente de base. Também sabemos que no emissor, a corrente de coletor se soma com a corrente de base. Assim temos:

$$ \Large I_{B2} = I_{E1} = I_{B1} + I_{C1} = (\beta_1 + 1) \times I_{B1} $$

Como a corrente na base do transistor Q1 também é a corrente de base do transistor equivalente, temos:

$$ \Large I_{B2} = (\beta_1 + 1) \times I_{B} $$

O transistor Q2 aplica seu ganho \(\beta_2\) na corrente que entra na sua base. Assim temos que a corrente de coletor do transistor Q2 é:

$$ \Large I_{C2} = I_{B2} \times \beta_2 =  (\beta_1 + 1) \times I_{B} \times \beta_2 $$

Mas a corrente de coletor total, do transistor equivalente, não é apenas \(I_{C2}\), pois temos que somar com \(I_{C1}\). Assim:

$$ \Large I_{C} = I_{C1} + I_{C2}$$

$$ \Large I_{C} = I_{B} \times \beta_1 + (\beta_1 + 1) \times I_{B} \times \beta_2 $$

$$ \Large I_{C} = I_{B} \times (\beta_1 + (\beta_1 + 1) \times \beta_2) $$

$$ \Large I_{C} = I_{B} \times (\beta_1 + \beta_1 \times \beta_2 + \beta_2) $$

$$ \Large \beta = \beta_1 + \beta_1 \times \beta_2 + \beta_2 $$

E é isso. Acontece que o produto dos ganhos costuma ser tão maior que a soma que o ganho total é aproximado pelo produto dos ganhos. Mas vimos hoje que não é bem assim. Para o transistor BC 337, que tem ganho mínimo de 100, erraríamos por 2% em considerar apenas o produto dos ganhos. 

Abraço e até a próxima.

P.S. Não sei o porquê, mas não consigo deixar este post com formatação justificada. Por ser um post de intervalo de almoço, vai assim mesmo.

sábado, 24 de março de 2018

Transistor BJT em AC: Parâmetros de Projeto do Amplificador (3)

Boa tarde, pessoal.

Vou usar essa série de posts para relatar o projeto do amplificador final do nosso curso. Espero que fique tudo bem explicado. Mas, em caso de necessidade, me perguntem.

Nesse post, vou definir os parâmetros do amplificador, deixando claro o motivo por algumas escolhas de projeto.

1) Multiestágio

Multiestágio nada mais é do que mais de um amplificador conectados um depois do outro. Por que vou fazer isso? Vimos que para amplificar o sinal do celular (Vpp = 0,5 V) para nossa tensão de alimentação (12 V) seria legal alcançarmos um ganho de 25. Porém, fazer um único estágio classe A com ganho 25 e que, ainda por cima, atenda todos os outros requisitos (baixa impedância de saída, alta impedância de entrada, etc...) seria muito difícil. Qual a solução? Quebramos nosso amplificador em mais de um. Dessa forma, o primeiro estágio (primeiro amplificador) pode cuidar de apenas alguns parâmetros do projeto, enquanto o segundo estágio (segundo amplificador) cuida de outros parâmetros. Pela minha experiência, acredito que dois estágios (classe A, mais um terceiro estágio de saída classe B) serão suficientes para atender a todos os nossos requisitos (que vou explicar mais para frente).

2) Impedância de entrada alta e fixa

No nosso projeto, havia um divisor de tensão na entrada (onde conectamos o celular) para ajustarmos o volume do som, composto de um resistor de 100 Ohms e um potenciômetro de 1 kOhm para o GND. Isso faz com que a impedância de entrada mude conforme o volume e causa um comportamento curioso: no mudo (volume mínimo), temos a menor impedância de entrada. Ou seja, quanto menor o volume, mais gastamos a bateria do celular. É claro que nossa impedância de entrada mínima, que era de 100 Ohms, não era tão baixa assim. Afinal, a maioria dos fones de ouvido tem 32 Ohms de impedância. Porém, visto que podemos controlar esse parâmetro, por que não fazê-lo mais alto para economizar a bateria do celular? Então é isso que vamos buscar. Vamos nos esforçar para que a impedância de entrada seja de, pelo menos, 1 kOhm.

3) Ganho total de 25

O ganho total do amplificador deverá ser de 25 vezes, para aproveitarmos ao máximo a nossa tensão de alimentação de 12 V. Porém, como usaremos dois estágios, cada um precisa amplificar apenas 5 vezes, já que 5 x 5 = 25. Além disso, um dos estágio deverá ter seu ganho variável, para que possamos ajustar o volume sem mexer na impedância de entrada (como fazíamos anteriormente).

4) Largura de banda para toda a faixa audível (20 Hz até 20 kHz)

Como não queremos perder o batidão, precisamos que o nosso amplificador seja capaz de amplificar sinais de frequência igual a 20 Hz, que é a menor frequência do espectro audível. Outra informação necessário para conseguir projetar esse parâmetro é a carga esperada de saída. Projetaremos esperando uma carga de 2 Ohms, que pode ser composta por 4 auto-falantes de 8 Ohms em paralelo, por exemplo.

5) Potência de saída de 50 W (para carga de 2 Ohms)

Queremos uma potência de saída de, pelo menos, 50 W para uma carga de 2 Ohms. Todo o sistema deve suportar essa potência continuamente sem apresentar problemas.

6) Temperatura de operação até 50 °C

Queremos que nosso amplificador suporte trabalhar em uma temperatura ambiente de 50 °C em potência máxima sem apresentar nenhum tipo de falha ou perda de desempenho.

Pois bem, para esse post era isso. Vou começar a rabiscar o circuito. Se eu lembrar de mais algum parâmetro, vou atualizar esse post. Abraço.