\chapter{Teoria} \section{Modelagem do motor DC} \par O motor DC utilizado nos três robôs é do tipo com escovas (brushed) de imã permanente. Uma representação gráfica desse tipo de motor pode ser vista na figura \ref{fig:diagramamotordc} \begin{figure}[!ht] \centering \includegraphics[width=\textwidth]{img/MotorDC-crop.pdf} \caption{Representação gráfica de um motor DC. Tirado de \cite{Refdiagramamotordc}} \label{fig:diagramamotordc} \end{figure} \par Na figura \ref{fig:diagramamotordc} podemos ver que o motor gira devido à corrente que passa em seu enrolamento presente no rotor. A corrente cria um campo magnético não paralelo ao criado pelos imãs permanentes do estator. Esse ângulo entre os campos magnéticos faz com que seja gerado um torque entre o rotor e o estator, proporcional à corrente que circula pelo enrolamento do rotor e ao cosseno do ângulo entre os campos magnéticos. Em motores com muitos enrolamentos no rotor chaveados pelas escovas, o que é o caso da maioria dos motores comerciais, inclusive os utilizados neste projeto, podemos considerar que o ângulo entre os campos magnéticos é próximo de 90 graus e, portanto o seu cosseno será aproximadamente igual a 1. Assim, o torque será proporcional apenas à corrente circulante no enrolamento \cite{Franklin2019-dx} e não dependerá do ângulo do rotor. Podemos então levantar a seguinte equação: \begin{equation} \tau = K_t \cdot\ i \end{equation} \par Onde $\tau$ é o torque gerado pelo motor, $K_t$ é uma constante de proporcionalidade a ser determinada experimentalmente, chamada aqui de constante de torque, e $i$ é a corrente circulante no motor. \par Além disso, o rotor girando em torno de um campo magnético criado pelos imãs permanentes do estator faz com que seja induzida uma força eletromotriz sobre o enrolamento. Esta força eletromotriz será proporcional à taxa de variação do fluxo magnético no interior do enrolamento. Como o enrolamento tem área atravessada pelo campo magnético constante, a força eletromotriz induzida será proporcional à velocidade angular do rotor \cite{Franklin2019-dx}, conforme a seguinte equação: \begin{equation} e = K_e \cdot \dot{\theta}_m \end{equation} \par Onde $e$ é a força eletromotriz induzida, $K_e$ é uma constante de proporcionalidade a ser determinada experimentalmente, chamada aqui de constante elétrica, e $\dot{\theta}$ é a velocidade angular do motor. \par Sendo assim, o motor DC pode ser modelado segundo o seguinte circuito elétrico e diagrama de corpo livre \cite{Franklin2019-dx}: \begin{figure}[!ht] \centering \includegraphics[width=\textwidth]{img/CircuitoMotorDC-crop.pdf} \caption{Circuito equivalente e diagrama de corpo livre de um motor DC. Tirado de \cite{Franklin2019-dx}} \label{fig:circuitomotordc} \end{figure} \par Agora, podemos modelar o motor DC pela seguinte função de transferência: \begin{equation} \frac{\theta_m(s)}{V_a(s)} = \frac{K_t}{s [(Js + b)(Ls + R) + K_tK_e ]} \end{equation} \par Onde $\theta_m$ é o ângulo do motor, $V_a$ é a tensão aplicada ao enrolamento, $K_t$ é a constante de torque do motor DC, $K_e$ é a constante elétrica, $J$ é o momento de inércia, $b$ é a constante de atrito viscoso, $L$ é a indutância do enrolamento e $R$ é a resistência do enrolamento. \par Caso queiramos a função de transferência da velocidade, podemos calculá-la multiplicando a da posição por $s$, assim: \begin{equation} \frac{\dot{\theta}_m(s)}{V_a(s)} = \frac{K_t}{(Js + b)(Ls + R) + K_tK_e} \label{eqn:ftMotorDCCompleta} \end{equation} \par Na maioria dos motores DC comerciais, inclusive nos utilizados nos deste trabalho, o efeito da indutância é muito pequeno quando comparado com o efeito do momento de inércia. Assim, a função de transferência \ref{eqn:ftMotorDCCompleta} pode ser simplificada \cite{Franklin2019-dx} para: \begin{equation} \frac{\dot{\theta}_m(s)}{V_a(s)} = \frac{K_p}{1 + T_{p1}s} \label{eqn:ftMotorDC} \end{equation} \par Onde: \begin{equation} K_p = \frac{K_t}{bR + K_tK_e} \end{equation} \begin{equation} T_{p1} = \frac{RJ}{bR + K_tK_e} \end{equation} \par As constantes $K_p$ e $T_{p1}$ podem tanto ser calculadas matematicamente pelas equações acima quanto determinadas experimentalmente com o auxílio de uma bancada de testes e ferramentas computacionais. \par Diante disso, percebe-se que o motor DC é aproximadamente um sistema linear invariante no tempo (LTI) de primeira ordem e, portanto, é atendido por toda a teoria de controle desenvolvida para esse tipo de sistema. \section{Controle PID} \par O controle proporcional integral derivativo (PID) é um dos mais utilizados na robótica devido à sua versatilidade e capacidade de controlar com precisão sistemas com as mais variadas características. É um tipo de controle que se encaixa muito bem com sistemas LTI de primeira ordem, como o motor DC. A malha de controle de um sistema controlado por PID pode ser vista na figura \ref{fig:diagramaControladorPID}. \begin{figure}[!ht] \centering \includegraphics[width=\textwidth]{img/DiagramaControladorPID-crop.pdf} \caption{Diagrama de blocos de um sistema controlado por PID} \label{fig:diagramaControladorPID} \end{figure} \par Em um sistema contínuo a tempo contínuo ideal, a função de transferência do controlador PID será a da equação \ref{eqn:ftPIDIdeal} \begin{equation} \frac{DutyCycle}{Erro} = kp + \frac{ki}{s} + kd \cdot s \label{eqn:ftPIDIdeal} \end{equation} \par Onde $kp$, $ki$ e $kd$ são constantes chamadas respectivamente de proporcional, integral e derivativa. Influenciam diretamente no comportamento do controlador PID e, portanto, do sistema de controle do robô de forma geral. Encontrar os melhores valores para estas constantes torna-se então um trabalho de otimização que pode ser auxiliado por métodos como os de Ziegler-Nichols \cite{Franklin2019-dx}. \par Contudo, esta função de transferência representa um controlador não-causal e, portanto, não pode ser aplicada diretamente a sistemas reais. Sendo assim, é necessário realizar adaptações ao implementar nos robôs. \par No robô de desenvolvimento, a planta pode ser entendida como sendo o conjunto que engloba a ponte H e o motor, enquanto as forças externas aplicadas ao motor serão vistas como perturbações $W(t)$ no sistema. Além disso, existem ainda perturbações $V(t)$ causadas por imprecisões dos sensores utilizados. O controlador PID e os cálculos dos sinais de referência e de erro serão implementados no firmware do microcontrolador, o que faz com que o robô precise ser um sistema discreto a tempo discreto. Dessa forma, o diagrama de blocos do sistema de controle do robô de desenvolvimento será o da figura \ref{fig:diagramaPIDRobo}. \begin{figure}[!ht] \centering \includegraphics[width=\textwidth]{img/DiagramaPIDRobo-crop.pdf} \caption{Diagrama de blocos do controle do robô de desenvolvimento} \label{fig:diagramaPIDRobo} \end{figure}