
Embarque Arduino - Parte 1
Nesta seção estaremos apresentando, o desenvolvimento de uma plataforma de simulação de controle, utilizando Matlab e o Arduino, além de características gerais do procedimento para embarque, pontos de atenção que devem ser observados para o embarque, resultados esperados, e possíveis ganhos didáticos com a aplicação do procedimento de embarque.
Motivação para desenvolver a plataforma de simulação
Para inicio de abordagem utilizaremos inicialmente a figura abaixo para que possamos transcorrer o tutorial aqui proposto:
Analisando de uma maneira rápida podemos entender que um processo depende das entradas que afetam, e podem modificar a dinâmica do mesmo, a planta por si só possui as características Físico-química, que de acordo com os parâmetros de entrada fornecem uma saída, que geralmente, por algum motivo específico possui valores desejados de serem alcançados. O controlador age modificando os parâmetros de entrada, buscando atingir os valores desejados das saídas. Muitos casos de estudo de controle, ficam restritos à simulação apenas computacional, onde softwares dedicados acabam fazendo o papel da planta, bem como causar os distúrbios e realizar o controle. A praticidade de ter o mesmo software realizando todas as tarefas de simulação de um controle, tem a grande vantagem de aproximar o caso estudado do interessado de uma maneira muito simples, no entanto o fato de manter todo o processo “ amarrado na mesma plataforma”( no caso um computador rodando com um software de simulação), pode acabar mascarando problemas que possam vir a ocorrer numa situação real. Sendo assim o processo de embarque de um controlador numa plataforma diferente da que usa somente o computador fazendo as “duas pontas”, além de aproximar um pouco mais o processo da realidade, pode trazer vantagens didáticas não observadas com o processo de controle simulado apenas no ambiente computacional.
Os materiais necessários para o “embarque” proposto são: Computador com os softwares Matlab®, Arduino Ide® , Placa Arduíno, que inicialmente utilizamos a MEGA 2560, mas posteriormente testamos com a UNO, que possui maior limitação de memória, mas que para esta simulação, foi suficiente para rodar o processo. Para facilitar o processamento dos dados no Arduino, pelo fato do processo ser multivariável é conveniente baixar e instalar uma biblioteca que permite realizar operações com matrizes dentro do processador do Arduino, devido à praticidade de manipular matrizes com esta biblioteca. Abaixo segue os passos para a o procedimento citado:
Em "gerenciar Bibliotecas" busque pelo nome BasicLinearAlgebra, faça o download e instale-o.
Outra opção para a instalação é com posse do arquivo .zip, segue abaixo o caminho a ser percorrido para instalação
Estaremos tratando de um processo multivariável, que possui 4 estados, e que temos 3 variáveis de entrada que manipulamos buscando manter os estados nos valores desejados. Admitimos que os 3 estados possam se controlados por um controlador LQI, que já temos os ganhos já calculados e simulados num momento anterior com o software matlab realizando a função da planta e do controlador. Abaixo é mostrada a planta simulada no Simulink, com os parâmetros destacados em azul, indicando o que deve ser realizado na Plataforma do Arduíno
As legendas em verde são os parâmetros que são passados para o controlador (Placa Arduino). Os ganhos são disponibilizados e carregados na placa Mega , as operações (itens em azul) são realizadas pelo processador da placa e onde temos a legenda amarela, são as entradas corrigidas
Inicialmente Mostraremos o mínimo necessário para que seja programado no MATLAB para que a comunicação seja realizada e a troca de dados seja permitida.
Para que fique claro segue abaixo o que ocorre:
Enviamos para o controlador (Arduino) os set-points em variável desvio do que desejamos controlar (Nível concentração Temperatura), e os estados, Nível concentração Temperatura e temperatura da jaqueta, o controlador realiza os cálculos, indicados na figura acima e devolve o valor que deve ser aplicado nas entradas visando manter os estados controlados próximos do valores desejados.
Segue abaixo a parte do código que trata a configuração da troca de dados através da porta serial:
É importante notar que entre uma variável e outra existe um caractere que separa no caso acima utilizamos a letra p, e para indicar o final da transmissão indicamos \n, estes parâmetros , são necessários para que no “outro lado da rede”, a configuração seja realizada de maneira que seja aplicado o devido tratamento as variáveis recebidas pelo Arduino.
As demais partes do código aqui suprimidas são as chamadas das equações diferenciais que representam o processo e o final do lup para reiniciar o processo do próximo envio/recebimentos de dados. ( odo o código será disponibilizado no fim do tutorial caso seja de interesse, a utilização deste exemplo aqui utilizado.
Realizado isto, partimos para a configuração da placa do arduino. Lembrando que alguns dos parâmetros aqui setados devem ser compatíveis com os setados no matlab
Continuamos o nosso tutorial na próxima página...




