Skip to content
RFrftools.io
Motor27 de fevereiro de 202611 min de leitura

Controle de motor DC: PWM, drivers e codificadores explicados

Guia completo para controlar motores DC com PWM: selecionar o driver de ponte H correto, dimensionar o MOSFET e fechar o circuito com um codificador.

Conteúdo

Introdução

Variar a tensão para alterar a velocidade do motor DC parece simples no papel. Na prática, você está lidando com corrente de irrupção que pode atingir um pico 10 vezes maior do que a classificação nominal, EMF traseiro que combate sua tensão de alimentação, limites térmicos que surgem sorrateiramente durante cargas sustentadas e requisitos de precisão de posição que exigem ciclos de feedback. Este guia detalha cada parte da pilha de controle para que você realmente entenda o que está acontecendo nos bastidores.


O modelo de motor DC

Um motor DC escovado não é apenas um resistor — ele tem resistência de armadura, indutância e uma fonte de tensão (EMF traseiro) trabalhando juntos. O modelo do circuito tem a seguinte aparência:

Vsupply=IaRa+LadIadt+VemfV_{supply} = I_a R_a + L_a \frac{dI_a}{dt} + V_{emf}
O EMF traseiro é proporcional à velocidade do eixo:Vemf=KeωV_{emf} = K_e \cdot \omega. O torque vem da corrente:T=KtIaT = K_t \cdot I_a. Essas constantesKeK_eeKtK_tgeralmente estão enterradas em algum lugar da folha de dados, geralmente em unidades mistas que fazem você querer gritar.

Quando o motor atinge o estado estacionário e o indutor para de lutar contra você, a equação simplifica:

ω=VsupplyIaRaKe\omega = \frac{V_{supply} - I_a R_a}{K_e}
Isso explica por que os motores carregados diminuem a velocidade — o termoIaRaI_a R_aconsome sua voltagem efetiva. Um motor que puxa 5A até 0,5Ω perde 2,5 V ali mesmo, o que se traduz diretamente em perda de velocidade.

Experimente essas relações usando a calculadora de velocidade do motor DC para ver como a resistência da armadura e a corrente de carga afetam sua RPM final.


Fundamentos do PWM

PWM (modulação por largura de pulso) é como você controla a tensão do motor sem queimar energia em um resistor em série como se fosse 1985. Você está ligando e desligando rapidamente a fonte — a indutância do motor suaviza os pulsos em uma tensão DC efetiva:

Veff=D×VsupplyV_{eff} = D \times V_{supply}
ondeDDé seu ciclo de trabalho de 0 a 1. Executar 75% de serviço a 12 V fornece 9 V efetivos. Matemática simples, mas a escolha da frequência é mais importante do que a maioria das pessoas imagina.

FrequênciaPrósContras
1—5 kHzBaixas perdas de comutação, fáceis de implementarO ruído audível deixa você louco
20—50 kHzOperação silenciosa, boa eficiênciaPerdas de comutação moderadas
> 100 kHzResposta transitória ultrarrápidaEMI se torna um pesadelo, as perdas de comutação aumentam
Regra prática: Use 20—25 kHz para motores DC escovados típicos. Está acima da faixa audível (sem gemidos irritantes), as perdas de comutação permanecem razoáveis e a maioria dos temporizadores de microcontroladores lida com isso facilmente. Já vi engenheiros chegarem a 100 kHz pensando que mais rápido é sempre melhor, depois passarem semanas depurando EMI irradiado e lidando com o toque do motorista do portão.

A calculadora do ciclo de trabalho PWM permite calcular a tensão efetiva e estimar a aparência da corrente de parada antes de explodir o motorista.


Motoristas da H-Bridge

O controle bidirecional requer uma ponte H — quatro interruptores dispostos para que você possa inverter a polaridade entre os terminais do motor. O nome vem da topologia do circuito, que literalmente se parece com um H.

Discreto versus integrado

Drivers integrados como o DRV8833, TB6612 ou L298N são a melhor opção, a menos que você tenha um motivo específico para não fazê-lo. Eles lidam com inserção em tempo morto (para que você não encurte o fornecimento por meio de MOSFETs do lado alto e do lado baixo), desligamento térmico e proteção contra sobrecorrente. O L298N é antigo e ineficiente, mas praticamente indestrutível — ótimo para aprender, péssimo para projetos movidos a bateria. MOSFETs discretos fazem sentido quando você precisa pressionar uma corrente forte ou deseja a máxima eficiência. Você precisará de drivers de porta (circuitos de bootstrap de alto nível são divertidos de depurar), um layout de PCB cuidadoso para evitar disparos e um gerenciamento adequado do tempo morto em seu código de controle. No entanto, o ganho de eficiência é real — designs discretos podem atingir mais de 95%, enquanto o L298N se esforça para ultrapassar 70%.

Seleção de MOSFET

Quando você escolhe MOSFETs para uma ponte H, quatro especificações são importantes:

  1. VDSV_{DS} — Deve exceder sua tensão de alimentação com margem. UseVDS1.5×VsupplyV_{DS} \geq 1.5 \times V_{supply}como ponto de partida. Transientes e pontas indutivas o morderão de outra forma.
  1. IDI_D — Deve lidar com a corrente de pico de irrupção, não apenas a corrente nominal. Aplique, no mínimo,ID1.5×IinrushI_D \geq 1.5 \times I_{inrush}. Essa corrente de irrupção pode ser 10 vezes o valor do estado estacionário.
  1. RDS(on)R_{DS(on)} — Menor é sempre melhor. Isso determina suas perdas de condução. Um MOSFET com 10 mΩ versus 50 mΩ faz uma grande diferença em altas correntes.
  1. QgQ_g — A carga do portão determina a rapidez com que você pode alternar e quanta energia o motorista do portão consome. Menor é melhor para PWM de alta frequência.
A perda de condução por MOSFET resulta em:
Pcond=I2×RDS(on)×DP_{cond} = I^2 \times R_{DS(on)} \times D
ondeDDé o ciclo de trabalho para o qual um determinado interruptor está ligado. As perdas no lado alto e no lado baixo são diferentes porque ocorrem em ciclos de trabalho complementares.

A calculadora de seleção H-Bridge ajuda você a descobrir os requisitos de pico de corrente e as classificações mínimas de MOSFET. Use a calculadora de potência do driver do motor para estimar a dissipação total de energia e ver se você precisa de um dissipador de calor.


Inrush e corrente de partida

Aqui está o que chama a atenção das pessoas: quando você aplica tensão pela primeira vez a um motor estacionário, o EMF traseiro é zero. Não há nada que se oponha à tensão aplicada, exceto a pequena resistência da armadura. A corrente inicial se torna:

Iinrush=VsupplyRaI_{inrush} = \frac{V_{supply}}{R_a}
Digamos que você tenha um motor com resistência de armadura de 0,5Ω funcionando em 12V. A corrente de partida é de 24 A, embora a placa de identificação do motor indique 2 A contínuos. Isso é um multiplicador de 12 ×. Seu motorista precisa lidar com isso sem deixar a fumaça mágica sair.

Estratégias de mitigação que realmente funcionam:
  • Inicie suavemente o ciclo de trabalho do PWM — aumente de 0% para o alvo em 100—500 ms. Simples, eficaz, não custa nada além de algumas linhas de código.
  • Use um controlador limitador de corrente — Peças como o DRV8434 têm um corte de corrente embutido que limita automaticamente o pico de corrente.
  • Dimensione a ponte H para irrupção, sem corrente nominal — Isso não é negociável. Um motor de 2A precisa de um driver com capacidade de 20—30A se você quiser confiabilidade.
A maioria dos engenheiros ignora a partida suave e se pergunta por que seus motoristas continuam morrendo. Não seja esse engenheiro.

Codificadores para controle de circuito fechado

O controle PWM de circuito aberto funciona bem para ventiladores, bombas e outras aplicações nas quais você não se importa com a velocidade ou a posição exatas. No momento em que você precisa de precisão — robótica, CNC, qualquer coisa com controle de posição — você precisa de feedback de um codificador.

Tipos de codificadores

Codificadores ópticos incrementais usam um disco com fenda e fotointerruptores para gerar pulsos de quadratura AB. Eles são o tipo mais comum, disponíveis de 100 a 10.000 pulsos por revolução (PPR). Sinais limpos, boa resolução, mas eles não gostam de poeira ou vibração. Codificadores magnéticos usam sensores de efeito Hall e um anel magnetizado. Muito mais robusto à contaminação e ao choque. Você os encontrará em motores industriais e aplicações automotivas. A resolução geralmente é menor do que a óptica, mas eles sobreviverão a ambientes que matariam instantaneamente um codificador óptico. Codificadores absolutos exibem a posição real do eixo como uma palavra digital — sem necessidade de contagem, sem necessidade de sequência de localização após a inicialização. Eles são caros e exagerados para a maioria dos projetos, mas essenciais para o rastreamento de posições em várias curvas em coisas como suportes de telescópio ou robôs industriais.

Decodificação em quadratura

Dois canais A e B funcionam 90° fora de fase. Ao observar as bordas ascendentes e descendentes em ambos os canais, você obtém 4 vezes a resolução do PPR básico:

CPR=4×PPR\text{CPR} = 4 \times \text{PPR}
Um codificador de 1000 PPR oferece 4000 contagens por revolução, o que resulta em uma resolução angular de 0,09°. A direção de rotação vem de qual canal conduz — se A conduz B você está indo para frente, se B conduz A você está indo para trás.

A maioria dos microcontroladores tem periféricos decodificadores de quadratura de hardware que lidam com isso automaticamente. Se você tentar fazer isso em um software com interrupções, começará a perder contagens acima de alguns milhares de RPM.

Use a Calculadora de resolução do codificador para descobrir sua RCP real, resolução angular e frequência máxima de pulso que seu contador precisa suportar.


Controle de velocidade PID

Depois de receber o feedback do codificador informando a velocidade real do eixo, você pode fechar o circuito com um controlador PID. A equação clássica do PID:

u(t)=Kpe(t)+Kie(t)dt+Kdde(t)dtu(t) = K_p e(t) + K_i \int e(t)\,dt + K_d \frac{de(t)}{dt}
ondee(t)=ωsetpointωmeasurede(t) = \omega_{setpoint} - \omega_{measured}é seu erro de velocidade.

O termo proporcionalKpK_pfornece uma resposta imediata proporcional ao erro. O termo integralKiK_ielimina o erro de estado estacionário ao acumular erros ao longo do tempo. O termo derivadoKdK_damortece as oscilações ao responder à taxa de variação. Fazer com que os três joguem bem juntos é mais arte do que ciência.

Afinação de Ziegler-Nichols

O Ziegler-Nichols oferece um ponto de partida prático com base na resposta à etapa de circuito aberto. Não será perfeito, mas é melhor do que adivinhar aleatoriamente:

  1. Aplique uma entrada de passo (digamos, pule de 0% para 50% PWM) e meça a resposta de velocidade do motor
  2. Extraia três parâmetros: ganho de processoKK, tempo mortoLLe constante de tempoτ\tau3. Calcule os ganhos iniciais de PID:
-Kp=1.2τ/(KL)K_p = 1.2\tau / (K \cdot L)-Ki=Kp/(2L)K_i = K_p / (2L)-Kd=Kp×0.5LK_d = K_p \times 0.5LNão serão ideais, mas levarão você ao estádio. A partir daí, você ajusta empiricamente — aumente oKpK_paté obter oscilações, recue 50% e, em seguida, ajuste oKiK_ie oKdK_da gosto.

A calculadora de ajuste PID calcula os ganhos iniciais a partir dos parâmetros de resposta da etapa medida. Isso evita que você faça as contas manualmente e cometa erros aritméticos às 2 da manhã.


Gerenciamento térmico

Os motores geram calor nos enrolamentos a partir de perdas resistivas:P=I2RaP = I^2 R_a. Seu motorista gera calor a partir de perdas de condução nos MOSFETs:P=I2RDS(on)P = I^2 R_{DS(on)}. Se ficar muito quente por muito tempo, você sofrerá uma redução térmica ou uma falha total.

A temperatura de operação funciona para:

Tmotor=Tambient+Ploss×RθT_{motor} = T_{ambient} + P_{loss} \times R_{\theta}
ondeRθR_{\theta}é a resistência térmica da caixa do motor ao ambiente. As folhas de dados geralmente fornecem esse número, ou você pode medi-lo empiricamente acionando o motor na potência conhecida e verificando o aumento da temperatura com um termopar.

Aqui está o que irrita as pessoas: a resistência do enrolamento de cobre aumenta com a temperatura em cerca de 0,39% por °C. Um motor 50°C mais quente que o ambiente tem aproximadamente 20% maior resistência ao enrolamento. Isso significa menos torque para a mesma corrente, o que significa que você precisa de mais corrente para manter o torque, o que gera mais calor. É um ciclo vicioso se você estiver correndo perto do limite térmico.

Verifique a curva de redução térmica do seu motor na ficha técnica. A maioria dos motores começa a reduzir a temperatura da caixa em torno de 100° C e é completamente reduzida em 150° C. Se você planeja operar em serviço contínuo com alta carga, precisa de resfriamento de ar forçado ou de um motor maior.


Resumo

Obter o controle correto do motor DC significa entender o sistema completo:

  1. Modele o motor adequadamente — Use oV=IR+KeωV = IR + K_e\omegapara prever velocidade e corrente sob carga, não apenas especificações sem carga
  2. Dimensione o driver de acordo com a realidade — Design para corrente de irrupção (5 a 10 × corrente nominal), não para a classificação da placa de identificação
  3. Escolha sua frequência PWM com cuidado — 20—25 kHz atinge o ponto ideal para silêncio e eficiência na maioria das aplicações
  4. Adicione feedback quando precisar de precisão — Os codificadores de quadratura oferecem resolução de 4 vezes e detecção de direção
  5. Ajuste seu controlador PID — Comece com Ziegler-Nichols e depois refine com base na resposta real do sistema
  6. Não ignore os limites térmicos — Calcule a temperatura do motor e do acionador na carga máxima contínua, não na carga máxima
A diferença entre um sistema de controle de motor que funciona e um que funciona de forma confiável se resume ao manuseio adequado desses detalhes. Dimensione tudo para as piores condições, adicione margem e teste em temperaturas extremas antes de se comprometer com a produção.

Artigos Relacionados