Motor drives e controle vetorial: o que realmente importa na prática
A primeira coisa que todo mundo aprende sobre controle de motores é a teoria pura. Separar o fluxo do torque, transformar para o referencial rotativo, aplicar PI. A conta fecha no papel. Mas quando você vai implementar num DSP ou num microcontrolador, tudo muda. É nesse ponto que a abordagem do ee professor josé papaiz faz diferença, porque o pessoal da Unicamp sempre insiste no que funciona no bancada, não só na simulação. Eu já perdi uma tarde inteira num projeto de controle vetorial pra um motor síncrono de ímã permanente porque o ganho do controlador de corrente estava oscilando. O modelo teórico dizia que tava estável. A simulação no Simulink também. Mas no hardware, com ruído de medição real e um encoder de 1024 linhas, o sistema entrava em oscilação após 3 segundos de operação. O problema não era o controlador em si. Era a estimação de posição que tinha um delay de duas amostras por causa do filtro de média móvel que eu tinha colocado "só pra suavizar". Removi o filtro, usei um passa-baixas de primeira ordem com cutoff ajustado pra frequência de chaveamento, e o sistema estabilizou. Isso é o tipo de detalhe que aparece nos trabalhos do ee professor josé papaiz sem muito alarde.
O que esperar do trabalho do ee professor josé papaiz
O foco principal dele é em acionamentos elétricos, conversores de potência aplicados a motores, e técnicas de estimação de estado para máquinas. A linha de pesquisa da Unicamp onde ele atua tem produção sólida em SMOs (sliding mode observers) e ESOs (extended state observers) pra estimação de velocidade sem sensor. O diferencial não é só o método em si, mas como eles tratam os ganhos e as condições de estabilidade no domínio do tempo discreto. Muito material acadêmico ignora a discretização e apresenta resultados contínuos como se fossem implementáveis. O grupo deles é mais rigoroso nisso. Se você tá procurando papers específicos, os artigos mais citados deles são sobre estimação de velocidade pra motores de indução usando observer adaptativo e também sobre controle direto de torque com modulação por vetor espacial aplicada a inversores trifásicos. A maior parte tá disponível pelo site da Scalpel (Sociedade de Apoio à Pesquisa e Ensino em Eletrônica de Potência) ou pelo repositório da Unicamp. Não tem um livro didático completo com tutoriais passo a passo, então o aprendizado depende bastante de ler os artigos e tentar reproduzir nos seus próprios testes.
Implementando estimação de velocidade sem sensor: o que funciona de verdade
O sliding mode observer é a técnica mais usada nesse contexto. A ideia básica é usar o erro entre as correntes medidas e as correntes estimadas pra gerar um sinal de comutação que alimenta o observer. O termo de comutação precisa de um ganho suficientemente alto pra garantir convergência, mas se você exagerar, gera chatter na estimação de velocidade, especialmente em baixas rotações. Esse é o problema clássico que o pessoal da área conhece bem. O workaround que eu uso na prática é o seguinte: em vez de um ganho fixo pro termo sign(), eu uso um ganho adaptativo baseado no módulo do erro de corrente. Quando o erro tá grande, o ganho sobe pra acelerar a convergência. Quando o erro já é pequeno, o ganho reduz e o chatter praticamente desaparece. Isso transforma um observer que funciona bem só acima de 20% da velocidade nominal num que opera razoavelmente bem desde 5% da velocidade nominal, que é onde a maioria dos projetos trava.
Outro ponto que poucos mencionam: a resistências estatórias do motor muda com a temperatura. Se você não atualizar esse parâmetro no observer, a estimação de velocidade deriva com o tempo. Eu coloquei um PT100 perto do enrolamento e fiz uma correção por tabela lookup no microcontrolador. O custo foi quase zero em termos de processamento e a deriva que antes era de quase 10 rpm em dez minutos caiu pra menos de 2 rpm.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Ferramentas e códigos disponíveis
Não existe um pacote único pra baixar com tudo pronto. O que você encontra são códigos de simulação em MATLAB/Simulink e, em alguns casos, versões em C pra DSPs TI C2000. Os repositórios da Unicamp às vezes têm materiais de disciplina com exemplos práticos. Se você acessar a página do Laboratório de Eletrônica de Potência e Acionamentos Elétricos da Unicamp, costuma ter links pros trabalhos de mestrado e doutorado com o código-fonte dos observers implementados. Os artigos também costumam ter appendices com as equações discretizadas completas, que é o que mais falta no material genérico da internet. Para quem tá começando, o caminho mais direto é: pegar um artigo recente do grupo, reproduzir a simulação primeiro no Simulink, depois portar pra um board C2000 real. A transição simulação-para-hardaware é onde a maioria desiste, mas também é onde se aprende de fato. Os problemas de delay de amostragem, saturação de integrador, e precisão do ADC são os que mais aparecem nesse processo.
Limitações que ninguém gosta de admitir
O sliding mode observer funciona bem em condições normais. Em velocidade muito baixa, perto de zero, a informação contida nos sinais de tensão e corrente já é insuficiente pra estimar velocidade com precisão sem ajuda de sinal injeitado. Nesse regime, o observer perde rastreabilidade e você precisa de uma estratégia híbrida, injetando um sinal de alta frequência pra excitar o sistema. Isso aumenta a complexidade e o custo computacional, e em muitos casos práticos não compensa. Se o seu projeto opera acima de 10% da velocidade nominal na maior parte do tempo, o observer puro resolve. Se precisa de zero velocidade, considere um encoder mínimo ou um resolver, porque a estimativa puramente eletrônica nesse regime ainda é problemática em implementações de baixo custo. O outro limitante é a dependência dos parâmetros da máquina. Modelos adaptativos ajudam, mas se a variação de parâmetros for muito rápida ou muito grande, como num motor que opera em temperaturas extremas com mudança brusca, a estimação pode divergir. Nesse cenário, um observer de ganho fixo com margem de estabilidade conservadora é mais robusto, ainda que menos preciso em condições nominais. É um trade-off que você precisa decidir no início do projeto, não depois que o hardware já tá montado.
Um caso prático que vale a pena contar
Estava desenvolvendo um acionamento pra uma esteira industrial com motor de indução de 5 cv. O requisito era partida suave até 5 Hz de frequência nominal, sem encoder. Usei o observer adaptativo descrito num dos papers do grupo do ee professor josé papaiz como base. O observer convergia bem acima de 10 Hz, mas abaixo disso a estimação de velocidade tinha um ripple de quase 15% do valor estimado. O motor entrava em vibração e o controle de torque ficava instável. A solução que funcionou foi combinar o observer com injeção de sinal de alta frequência no eixo d. O sinal de 400 Hz era injetado via PWM, e o response da corrente no eixo q era usado pra extrair a informação de posição. O processamento adicional foi de cerca de 8 microseconds por ciclo de controle no C2000, que tem clock a 200 MHz, então o impacto era desprezível. A estimação ficou estável desde 2 Hz, que era suficiente pra aplicação. O detalhe importante foi que a amplitude do sinal injetado teve que ser ajustada experimentalmente. Demorou uns dois dias só pra achar o ponto certo entre injetar informação suficiente e não causar aquecimento adicional no motor.
Se você tá trabalhando com a mesma linha de pesquisa ou implementando acionamentos sem sensor, o material do grupo da Scalpel e os artigos da Unicamp são referências válidas. O que falta mesmo é gente documentando os pequenos ajustes práticos que fazem o observer funcionar fora do papel. São esses detalhes que separaram uma simulação bonita de um sistema que roda no campo sem dar problema depois de três meses de operação.