User Tools

Site Tools


wiki:research:line7:thema1:techdoc

Seguidor Solar

O seguidor solar trata-se de um sistema que conta com uma estrutura mecânica, com dois graus de liberdade, permitindo regular a inclinação do painel em relação ao solo, bem como rotacioná-lo nos sentidos horário e anti-horário.

Além da estrutura mecânica o sistema possui circuitos eletrônicos que permitem acionar os atuadores, no caso motores de passo, e circuitor eletrônicos para fazer a aquisição de dados por meio dos resistores dependentes de luz (LDRs) e dos diodos by-pass. Os circuitos são mostrados na seção Circuits.

Com os sistemas mecânicos e elétricos montados inicia-se a fase do controle, utilizando como entrada para o controlador os dados fornecidos pelos sensores LDRs e a tensão sobre os diodos by-pass, e obtendo como saída a velocidade e o sentido dos motores.

Ao separar o sistema em dois blocos, o kit seguidor solar e controlador foi necessário utilizar dois microcontroladores. O bloco kit seguidor solar é responsável por acionar os atuadores, enquanto o bloco controlador faz a leitura de dados e toma a decisão quanto a velocidade e sentido de rotação dos motores.

Além de acionar os motores o bloco kit seguidor solar também faz a leitura dos sensores de fim de curso a fim de proteger o sistema contra eventuais choques mecânicos. O código responsável pelo bloco kit seguidor solar está disponível em Solar Tracker Kit.

O bloco controlador utiliza outro Arduino Mega, entretanto toda a tomada de decisão é realizada por um computador, por meio do software Matlab® e então transmitido para o Arduino por um cabo USB, e esse transmite para o kit seguidor solar.

Para a tomada de decisão foi utilizado a lógica Fuzzy, uma vez que a radiação solar sofre interferências climáticas as quais não podem ser definidas por uma função de transferência.

A lógica Fuzzy permite o tratamento de imprecisões, como as causadas no sistema seguidor solar pelas intempéries. Essa técnica é capaz de reproduzir conceitos criados pela mente humana em um sistema de controle. Seu funcionamento baseis-se na premissa “se… então”, criando modelos a partir de informações subjetivas resultantes do feeling humano, mas também permitindo incorporar conhecimentos objetivos, como dados numéricos.

Dentre as vantagens de se utilizar a lógica Fuzzy destacam-se:

  • Simplificação do modelo do processo
  • Melhor tratamento das imprecisões relativas aos sensores utilizados
  • Facilidade da criação das regras de controle, visto que a linguagem é próxima ao raciocínio humano

As variáveis de entrada do controlador correspondem as utilizadas pelo operador para tomada de decisão quanto a resposta do sistema. A lógica Fuzzy permite que essas variáveis sejam aproximadas. No projeto em questão trata-se do erro entre os sensores. No caso da direção horizontal o erro entre a média dos dados dos sensores da direita e a média dos dados dos sensores da esquerda, e na direção vertical a média dos dados dos sensores superiores e a média dos dados dos sensores inferiores. Também foi utilizado como entrada a derivada do erro, pois permite perceber quanto o erro diminui ou aumenta a cada iteração, permitindo que a nova iteração melhore a resposta de saída.

As variáveis de saída são de fácil percepção, uma vez que correspondem as variáveis controladas pelo sistema, no caso é a velocidade de rotação dos motores. O sentido é adotado por meio de comparação, para a direção vertical, se o erro é positivo o motor deve levantar a estrutura, enquanto se negativo deve abaixá-la; e para direção horizontal, o erro positivo resulta em rotação no sentido horário, e o erro negativo em rotação no sentido anti-horário.

Após definidas as variáveis de entrada e saída inicia-se a fase de fuzzificação. Esse processo transforma valores discretos advindos das variáveis de entrada em graus de pertinência. Essa técnica não demanda de informações precisas, contudo as informações precisam caracterizar o sistema para que o controle alcance o resultado desejado.

O modelo fuzzy resultado da fuzzificação da variável erro pode ser observada a seguir.

A variável erro varia em um intervalo de [-5,5] devido a alimentação do circuito divisor de tensão com 5V. É considerado um erro positivo quando maior que zero, e negativo quando menor que zero, entretanto o erro é considerado zero no intervalo de [-0.07,0.07], isso ocorre pois pode haver erro de leitura dos sensores que caso não considerados causariam movimentos desnecessários dos motores.

O modelo fuzzy resultado da fuzzificação da variável Δerro, que representa a derivada do erro, pode ser observada a seguir.

A variável Δerro varia em um intervalo de [-5,5], assim como a variável erro. É considerado um Δerro positivo quando maior que zero, e negativo quando menor que zero, entretanto o Δerro é considerado zero no intervalo de [-0.03,0.03], pela mesma razão apresentada para variável erro. Esses valores foram definidos por meio de testes, para valores maiores o sistema perdia precisão, para valores menores o sistema apresentava oscilações quando próximo da posição ótima.

A variável de saída do sistema precisava informar ao kit seguidor solar a velocidade de rotação dos motores. Optou-se por padronizar no kit as velocidades mínimas e máximas permitidas para cada motor e receber um duty-cycle que corresponde a porcentagem da velocidade com a qual deve-se acionar os motores. Logo, a saída do sistema fuzzy deve-se ser esse duty-cycle, que varia no intervalo de [0,1]. Considera-se o duty-cycle como zero no intervalo de [0,0.02] para evitar movimentos desnecessários do motor. Esse valor foi obtido por meio de testes.

O modelo fuzzy resultado da fuzzificação da variável duty-cycle, que representa a porcentagem da velocidade, pode ser observada a seguir.

O próximo passo é criar o conjunto de regras do sistema. Utilizando o modelo de Mamdani, que modela o controlador pelo método de inferência MAX-MIN, foram relacionadas as funções de pertinência dos três modelos fuzzy apresentados anteriormente gerando as regras apresentadas abaixo.

Erro ΔErro Velocidade
Positivo Positivo Alta
Positivo Negativo Alta
Positivo Zero Média
Negativo Positivo Alta
Negativo Negativo Alta
Negativo Zero Média
Zero Positivo Baixa
Zero Negativo Baixa
Zero Zero Zero

Transpondo esse modelo fuzzy no Matlab®, com auxílio da ferramenta Fuzzy Logic Designer cria-se o arquivo fuzzytcc.rar. Esse arquivo é utilizado pelo código implementado no Matlab® para fazer o controle do processo, o qual está disponível na seção Controller.

Esse projeto foi tema do trabalho de conclusão de curso da aluna Thainara de Araújo, o qual está disponível aqui.

wiki/research/line7/thema1/techdoc.txt · Last modified: 2018/09/07 20:27 (external edit)