\chapter{Fundamentação teórica}
\label{chap:teoria}

\par Neste capítulo será abordada a teoria utilizada para o desenvolvimento do projeto, além das considerações e simplificações adotadas na aplicação desta teoria aos casos particulares presentes no escopo do projeto. Serão também mencionadas as dificuldades e limitações de implementação prática desta teoria.

\section{Modelagem de um motor DC}
\par O motor DC utilizado nos robôs é do tipo com escovas (\textit{brushed}) de ímã 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. Fonte: \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 ímã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 ímã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}

\noindent em que $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}:

% Colocar Va com V maiúsculo
\begin{figure}[!ht]
	\centering
	\includegraphics[width=\textwidth]{img/CircuitoMotorDC-crop.pdf}   
	\caption{Circuito equivalente e diagrama de corpo livre de um motor DC. Fonte: \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}

\noindent em que $\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, que é a derivada da posição, podemos calculá-la multiplicando a função de transferência 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}

% XL é desprezível para omega típicos?
\par Na maioria dos motores DC comerciais, inclusive nos utilizados neste trabalho, o efeito da indutância é muito pequeno quando comparado com o efeito do momento de inércia, para as frequências típicas de operação. 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 pode ser modelado como 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{U(s)}{E(s)} = 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, $U(s)$ é a saída do controlador PID e $E(s)$ é o sinal de erro que entra no controlador PID. 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 Nos robô deste trabalho, 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 \textit{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 dos robôs deste trabalho é o da figura \ref{fig:diagramaPIDRobo}.

\begin{figure}[!ht]
	\centering
	\includegraphics[width=\textwidth]{img/DiagramaPIDRobo-crop.pdf}   
	\caption{Diagrama de blocos do controle dos robôs}
	\label{fig:diagramaPIDRobo}
\end{figure}
