Ir ao conteúdo
  • Cadastre-se

Ajuda para fazer um Inversor de Frequência com Microcontrolador PIC.


ogaittiago

Posts recomendados

Gostaria de estar fazendo um Inversor de Frequência com Microcontrolador PIC.

Porém olhando alguns tópicos aqui e em outros fóruns não entendi muito bem como é feito o PWM. :(

Já tenho a ideia de como será o circuito, porém ainda não sei da lógica em si.

Vai ser para um motor AC trifasico.

Ficaria agradecido se conseguir alguma ajuda e/ou orientação.:)

Obrigado

Tiago Souza

Link para o comentário
Compartilhar em outros sites

Fala Matheus!!!

É algo assim que também estou querendo fazer, porém no meu caso será um inversor onde a fonte será a rede eletrica mesmo.

Como já estou pesquizando já faz algum tempo. Juntando algumas ideis que achei cheguei a esse controle do inversor:

Inversortcc.png

Não sei se uso os photoacopladores com está ou depois dos ir2102. E tb tenho que ver se ele serão para o VCC ou GND.

valeu!!

Tiago Souza

Link para o comentário
Compartilhar em outros sites

você pode conectar o PIC direto nos IR2112.

Falou

O meu é IR2102, mas pode ser IR2108, IR2109 ,IR2106, ou outro da mesma familia. Pequei ele pois é o que tem no Proteus.

Fui ver o DataSheet e vi que o IR2112 é um pouco diferente.:confused:

Pensei nos photoacopladores, pois estava pensando em isolar o PIC do motor, note que no Esquema tenho até dois GND's.

Falou!

Tiago Souza

Link para o comentário
Compartilhar em outros sites

  • 3 anos depois...
  • 1 ano depois...

Já desenvolvi um projeto de inversor de frequência trifasico 10A para uso comercial.

Usei um modulo IGBT usei o STK551U3A2A-E ligado diretamente a um PIC DSPIC30F com resistrores de 1K. Também foram usados muitos outros periféricos.

Não é algo simples, gastei muito tempo e dinheiro. Mas com pesquisa e estudo você consegui, apenas avalie qual é seu objetivo nessa empreitada.

Se você for a fundo nesse desenvolvimento, isso pode te ajudar muito na programação:

para uma meia senoide crie uma tabela de Seno, de 3 em 3 graus.

float32 const seno_tab[61]={0, 0.052, 0.105, 0.156, 0.208, 0.259, 0.309, 0.358, 0.407, 0.454, 0.5, 0.545, 0.588, 0.629, 0.669, 0.707, 0.743, 0.777, 0.809, 0.839, 0.866, 0.891, 0.914, 0.934, 0.951, 0.966, 0.978, 0.988, 0.995, 0.999, 1, 0.999, 0.995, 0.988, 0.978, 0.966, 0.951, 0.934, 0.914, 0.891, 0.866, 0.839, 0.809, 0.777, 0.743, 0.707, 0.669, 0.629, 0.588, 0.545, 0.5, 0.454, 0.407, 0.358, 0.309, 0.259, 0.208, 0.156, 0.105, 0.052, 0};

 

Cria uma um algorítimo, como o abaixo, chame-o com o auxilio de um timer, exemplo. quando o motor estiver rodando em 10hz, uma senoide terá 100ms meia senoide terá 50ms. Como 1/2 senoide foi dividida em 60 pedaços de 3 graus. 50ms/60=0,833ms. faça o timer chamar a função a cada 0,833ms

//////////INTERRUPÇÃO USADA PARA PWM///////////////////////////////////////
#int_timer3 
void trata_t3()
{
set_timer23(set_tempo23);  ////// seta timer 2-3  

/////////incrementa numero de graus da senoide
graus1++;
if (graus1>60) {graus1=1;}                     //180 graus dividido por 18 (180/60=3) estamos pulando de 3 em 3 graus
graus2= graus1+40; if(graus2>60) {graus2-=60;} //graus esta adiantado 120 graus (defazamento trifasico)
graus3= graus2+40; if(graus3>60) {graus3-=60;} //cada posição da tabela tem 3 graus devemos pular 40 posições(40x3=120graus)

////////tensão instantanea
v_inst1 = v_pico*seno_tab[graus1];
v_inst2 = v_pico*seno_tab[graus2];
v_inst3 = v_pico*seno_tab[graus3];

////////Seta PWM////////////////////////////////////////
set_motor_pwm_duty(1,1,v_inst1); 
set_motor_pwm_duty(1,2,v_inst2); 
set_motor_pwm_duty(1,3,v_inst3); 
}

 

 

 

 

 

drive 10A_.jpg

00900a.pdf

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois...
Em 13/04/2017 às 16:00, Douglas Furlan disse:

Já desenvolvi um projeto de inversor de frequência trifasico 10A para uso comercial.

Usei um modulo IGBT usei o STK551U3A2A-E ligado diretamente a um PIC DSPIC30F com resistrores de 1K. Também foram usados muitos outros periféricos.

Não é algo simples, gastei muito tempo e dinheiro. Mas com pesquisa e estudo você consegui, apenas avalie qual é seu objetivo nessa empreitada.

Se você for a fundo nesse desenvolvimento, isso pode te ajudar muito na programação:

para uma meia senoide crie uma tabela de Seno, de 3 em 3 graus.

float32 const seno_tab[61]={0, 0.052, 0.105, 0.156, 0.208, 0.259, 0.309, 0.358, 0.407, 0.454, 0.5, 0.545, 0.588, 0.629, 0.669, 0.707, 0.743, 0.777, 0.809, 0.839, 0.866, 0.891, 0.914, 0.934, 0.951, 0.966, 0.978, 0.988, 0.995, 0.999, 1, 0.999, 0.995, 0.988, 0.978, 0.966, 0.951, 0.934, 0.914, 0.891, 0.866, 0.839, 0.809, 0.777, 0.743, 0.707, 0.669, 0.629, 0.588, 0.545, 0.5, 0.454, 0.407, 0.358, 0.309, 0.259, 0.208, 0.156, 0.105, 0.052, 0};

 

Cria uma um algorítimo, como o abaixo, chame-o com o auxilio de um timer, exemplo. quando o motor estiver rodando em 10hz, uma senoide terá 100ms meia senoide terá 50ms. Como 1/2 senoide foi dividida em 60 pedaços de 3 graus. 50ms/60=0,833ms. faça o timer chamar a função a cada 0,833ms

//////////INTERRUPÇÃO USADA PARA PWM///////////////////////////////////////
#int_timer3 
void trata_t3()
{
set_timer23(set_tempo23);  ////// seta timer 2-3  

/////////incrementa numero de graus da senoide
graus1++;
if (graus1>60) {graus1=1;}                     //180 graus dividido por 18 (180/60=3) estamos pulando de 3 em 3 graus
graus2= graus1+40; if(graus2>60) {graus2-=60;} //graus esta adiantado 120 graus (defazamento trifasico)
graus3= graus2+40; if(graus3>60) {graus3-=60;} //cada posição da tabela tem 3 graus devemos pular 40 posições(40x3=120graus)

////////tensão instantanea
v_inst1 = v_pico*seno_tab[graus1];
v_inst2 = v_pico*seno_tab[graus2];
v_inst3 = v_pico*seno_tab[graus3];

////////Seta PWM////////////////////////////////////////
set_motor_pwm_duty(1,1,v_inst1); 
set_motor_pwm_duty(1,2,v_inst2); 
set_motor_pwm_duty(1,3,v_inst3); 
}

 

 

 

 

 

drive 10A_.jpg

00900a.pdf

Olá amigos, também estou tentando desenvolver um projeto de inversor para controle de motores até 5CV,  achei muito bacana a dica dada para setar o PWM, porém uma duvida que tenho é quanto a ativação dos IGBTS, nesse caso voce apresenta as tres saidas pwm e essas saidas são destribuidas aos IGBTs corretos a cada certo tempo estimado ativando sempre 3 IGTBTs por vez com os 3 PWM formados, é isto..?
Obrigado por enquanto

Link para o comentário
Compartilhar em outros sites

  • 7 meses depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...