Ir ao conteúdo

Posts recomendados

Postado

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

Postado
Seria um controle PWM para motor DC e universal ou um inversor para motor AC trifásico?

Seria um para motor AC, vai ser trifasico, depois vou fazer para que fique tanto trifasico como bifasico.

Tiago Souza

Postado

Sugestão? Tenta fazer primeiro o inversor bifásico, é interessante pois nele você vai entender como deve ser o princípio de chaveamento dos semicondutores de potência e inclusive obter o sinal senoidal a partir de um controle PWM.

Abs.

  • Curtir 1
Postado

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

Postado
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

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

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

  • 2 meses depois...
Postado
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

  • 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...