FAVORITAR
Faça login para como favoritoFechar

Um caminho mais seguro para um projeto de controlador de motor – vantagens com o Model-Based Design

O objetivo desse artigo é mostrar a você como partir dos conceitos em controle de sistemas dinâmicos e implementar suas soluções, juntando a teoria com a prática. 

Vamos explorar o conceito de Hardware-in-the-Loop, pensando no controlador para motor DC escovado. Queremos alcançar isso de forma rápida, segura, testada e documentada. Para isso, teremos os seguintes passos:

  • Identificar o sistema através de teste de bancada, no caso os parâmetros do nosso motor;
  • Projetar o sistema de controle no simulador, com os parâmetros já identificados;
  • Testar o controlador em um gêmeo digital do sistema, também conhecido como Hardware-in-the-loop;
  • Testar o controlador na planta real.

Hardware-in-the-Loop é um conceito extensamente usado em Model-Based Design. Assim, adotaremos essa metodologia de desenvolvimento. A simulação, implementação e testes serão todos baseados em modelo(s). 

Se você não conhece, vale a pena ler o artigo do Rodrigo Botelho (link) sobre a metodologia.

Embarcados Experience 2024: Evento Presencial

Participe do Embarcados Experience 2024 em São Paulo. Conhecimento técnico, palestras, workshops e oportunidade de networking com profissionais experientes.

Inscreva-se agora

Esse primeiro artigo será dedicado à identificação dos parâmetros do sistema. No nosso caso, o teste será implementado numa ESP32 acionando uma ponte H. Usando o Model-Based Design, utilizaremos da geração do código automática com a biblioteca Waijung 2 e o Simulink. Aqui, usamos a versão para estudantes, que pode ser encontrada gratuitamente. Se quiser mais detalhes sobre geração automática de códigos para sistemas embarcados, o articulista Evandro Teixeira fez uma apresentação a respeito aqui no Embarcados: (link)

Sendo assim, vamos ao estudo da identificação dos parâmetros do motor!

O sistema a ser identificado e sua representação em modelo

Trabalharemos aqui com um motor DC de ímã permanente, escovado, o qual contém um encoder de 260 pulsos por revolução (ppr) para medições de posição do eixo do rotor:

Desse modo, as equações que regem o funcionamento de um motor de corrente contínua de imã permanente no domínio da frequência são:

Em que:

O primeiro passo é representarmos essas equações em diagramas de bloco no Simulink, com a biblioteca Simscape:

Desejamos identificar os parâmetros ,, ,, do motor. Para isso, vamos utilizar o estimador de parâmetros do Simulink, ajustando a simulação aos valores coletados do teste do sistema.

Na imagem acima, é mostrada a configuração entre a ponte H e o motor. É necessária essa interface entre o mundo lógico do microcontrolador e o mundo de altas tensões e correntes do motor elétrico. Quem se encarrega disso é a ponte H, que representamos aqui com o modelo de chaves ideais. Vale lembrar que nosso projeto aqui é apenas o começo. Modelos mais precisos podem requerer a inclusão da dinâmica das chaves IGBTs, TBJs ou MOSFETs, por exemplo.

Na placa de controle que utilizamos, o driver dedicado para o acionamento do motor é o TB6612FNG. Mais informações podem ser obtidas no datasheet do componente. Porém, o mais importante é a forma de operá-lo: dois terminais controlam o acionamento das pernas da ponte H e um terminal é usado para controlar o fluxo de energia que será transmitido ao motor por meio do sinal PWM.

Contando passos

A coleta de dados é um passo intermediário necessário para garantir que o modelo descrito acima seja aproximado para se comportar próximo ao real. Assim, a coleta de dados deve ser feita através de um estímulo conhecido no comando do motor e a captura de sua posição.

No caso, fazemos o estímulo a partir da ESP32 diretamente na ponte H. Na imagem abaixo, você pode perceber como é a conexão entre o motor, a placa de controle e o módulo ESP32:

O encoder é um dispositivo para medir as voltas do motor. No nosso caso, temos 260 pulsos elétricos (digitais) a cada volta completa do rotor. O diagrama de blocos de um encoder com 260 [ppr] é mostrado abaixo. O bloco denominado “ideal rotational motion sensor” fornece um valor de deslocamento angular. Como temos um encoder de 260 ppr, precisamos converter a saída do simulador para ser próxima ao que devemos encontrar na prática.

Dados e mais dados!

Essa etapa é uma das mais importantes do desenvolvimento. Nela, o engenheiro deve implementar técnicas de identificação de sistemas para levantar os parâmetros da planta e trabalhar com modelos matemáticos representativos da planta. 

Para atingir esse objetivo, utilizou-se um código para acionamento da ponte H e a subsequente coleta dos dados da resposta do sistema a esse acionamento.

Os terminais e da ponte H estão conectados ao GPIO5 e GPIO23 da ESP32, respectivamente. Assim, invertendo-se o valor lógico desses IOs do microcontrolador, pode-se inverter o sentido de rotação do motor. Isso é visto no seguinte trecho do modelo de acionamento para coleta de dados:

PinoFunçãoDescrição
GPIO5IN1Controla o sentido de giro
GPIO23IN2Controla o sentido de giro
GPIO13PWM Controla o fluxo de energia

Na imagem acima, os blocos Simulink em vermelho são as interfaces com a ESP32. Estes estão no Blockset do Simulink, Waijung 2, como comentado anteriormente. O restante são blocos disponíveis no software.

Prosseguindo o raciocínio, o sinal H_Bridge é um gerador de pulsos nativo do Simulink. Esse modelo é usado para excitar a planta. Em seguida, coletamos as posições do motor no tempo.

Os dados acima são enviados pela serial da ESP32 de volta ao PC. Eles serão usados na próxima etapa. Assim como o controle, a lógica de Teste da Bancada também é desenvolvida em modelos, posteriormente convertidos para C/C++ e executada na ESP32.

Do modelo à realidade

Agora que os dados da planta física foram coletados, deve-se fazer uso do aplicativo Estimador de Parâmetros, do próprio Simulink, a fim de encontrar um ponto de ajuste ótimo do modelo, com base nos dados de entrada e saída coletados. O modelo base para essa rotina de ajuste é o seguinte:

O algoritmo de aproximação do modelo baseia-se na identificação de um mínimo local da função de erro entre os dados coletados e a resposta do laço de otimização da função e procura identificar qual combinação dos parâmetros ( ,, ,, ) gera o menor valor da função de erro. A resposta do sistema em função do sinal de acionamento da ponte H pode ser vista ao lado. ”Measured” são os dados coletados via serial com Python a partir de um arquivo escrito na ESP32. Assim, executa-se o estimador de parâmetros a fim de aproximar as curvas, conforme mostrado abaixo.

Após uma rodada de iterações, chega-se aos valores na simulação mais próximos que representam aquela dinâmica. 

Cabe lembrar que uma rotina de identificação acontece em pelo menos duas etapas: Estimação e Validação. Por isso, toda a descrição aqui para Estimação é repetida para Validação, mas com uma diferença: A entrada do sistema é diferente da usada na Estimação.

A partir desse ponto, com a planta identificada, o engenheiro pode seguir seu trabalho no projeto de sistemas de controle, a partir de um modelo próximo à realidade. Esse será o tema do próximo artigo, quando apresento como encaixar isso no simulador/HIL. Até lá!

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Comentários:
Notificações
Notificar
1 Comentário
recentes
antigos mais votados
Inline Feedbacks
View all comments
Rodrigo Botelho
Membro
11/10/2023 10:19

Interessante ver a abordagem de HIL aqui no Embarcados. Parabéns pelo nível de detalhe e clareza do artigo, especialmente por juntar o que encontramos na bancada com o que temos nos simuladores. Apesar de um modelo simples, mostra como é fundamental o trabalho de experimentação para desenvolvimento de modelos representativos.

Home » Hardware » Sistemas Digitais » Um caminho mais seguro para um projeto de controlador de motor – vantagens com o Model-Based Design

EM DESTAQUE

WEBINARS

LEIA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste:


Seminário de
Sistemas Embarcados e IoT 2024
 
Data: 25/06 | Local: Hotel Holiday Inn Anhembi, São Paulo-SP
 
GARANTA SEU INGRESSO

 
close-link