Fórum sobre desenvolvimento de sistemas embarcados: Hardware e Software, Tecnologias: Eletrônica digital e analógica, Microcontroladoras, Microprocessadores, Sistemas *NIX (Linux, BSD), Software embarcado Baremetal. Sem fins lucrativos. http://www.asm51.com.br/phpbb/
Bom, como algumas pessoas manifestaram interesse e esse circuito é bem fácil de montar inclusive para quem está começando, estou postando o código fonte para o circuito em malha aberta.
Tem como postar também os códigos dos arquivos "PWM3Niveis.h" e "tabelas.c" ?
Re: Exemplo de PWM 3 níveis com PIC18F4550
Enviado: 10 Mar 2015 09:53
por ze
... e o circuito? 1.jpg>1k.txt
Re: Exemplo de PWM 3 níveis com PIC18F4550
Enviado: 10 Mar 2015 20:29
por KrafT
Bom, seguem os arquivos faltantes.
O interessante nesse circuito é que o trafo de ferro silício filtra os 20 kHz do PWM e deixa o sinal senoidal conforme o vídeo. É possível eliminar o indutor de saída e utilizar a indutância do trafo para esse fim:
080f04.gif
O trafo é necessário para elevação de tensão. Se for circuito abaixador e não for necessário isolação, ele pode ser dispensado. Acredito que reduzir muito sem trafo não fique eficiente, mas essa aplicação não é comum;
Para fazer malha fechada, medir a tensão de saída e aplicar uma lógica de controle sobre o valor lido da tabela PWM;
A tabela foi gerada no Excel;
O uso de dois mosfets só para selecionar o quadrante, permite menos perdas por comutação nos mesmos.
Re: Exemplo de PWM 3 níveis com PIC18F4550
Enviado: 10 Mar 2015 20:32
por KrafT
Tabela: Observem que ela tem dois quadrantes. Seria possível operar só com um, mas como memória de programa não me faltava...
Re: Exemplo de PWM 3 níveis com PIC18F4550
Enviado: 10 Mar 2015 20:33
por KrafT
Esquema do microcontrolador...
Re: Exemplo de PWM 3 níveis com PIC18F4550
Enviado: 10 Mar 2015 20:40
por KrafT
Esquema do módulo de potência.
O capacitor em série com o trafo é para evitar problemas de parar o PWM ao debugar.
A tensão de entrada foi especificada para um sistema foto-voltaico. O mesmo circuito pode operar numa ampla faixa de tensões, a depender só das características dos Mosfets.
Re: Exemplo de PWM 3 níveis com PIC18F4550
Enviado: 10 Mar 2015 22:19
por andre_luis
Voce fez com uma resolução bastante razoável, 42 pontos por ¼ de ciclo da senoide. Eu fiz um inversor com 32 pontos, e ainda assim já era quase imperceptível a variação.
Mas só um detalhe que eu não entendi, que foi o título "PWM 3 níveis". Acho que passei batido por algum detalhe no video...rsrs.
Re: Exemplo de PWM 3 níveis com PIC18F4550
Enviado: 10 Mar 2015 22:28
por KrafT
Três níveis porque não há uma transição de +V para -V na ponte. Temos, +V, zero e -V, ou seja, três níveis.
O interessante dessa técnica é que o núcleo do trafo vai saturando num semicilho, porque o PWm não inverte no semiciclo. Só no próximo semiciclo o núcleo é "desaturado". Se fosse trafo de ferrite, o resultado não seria satisfatório por causa dessa saturação.
Re: Exemplo de PWM 3 níveis com PIC18F4550
Enviado: 11 Mar 2015 09:23
por ze
há alguns anos fiz um treco deste pra girar um motor dum tanquinho. Como de praxe, postei no efêmero boteco e já era. Dicas preciosas do amigo proex, fabim e ... perdoem-me os d+... idade... já viu. Usei um driver igbt sucateado. Devido a alta indutância, eram apenas 17 'steps' de seno. Olhando com mais calma agora, percebo que a tabela poderia ir até 90º só. Mas era minha 1ª vez pow. dá um tempo... A senoide ficou bunitinha e rodou direitinho. Deu um previsível apitinho. Ai que fofo. A fonte era um gerador 110vdc que era tocado a água. Atualmente está parado pois o córrego secou. Colo o conteúdo pra somarmos algo
//controle pwm void duty(unsigned int dt) { CCP1Y=CCP2Y=dt; //LSB (bit0 pro bit4 de CCP1CON) dt>>=1; CCP1X=CCP2X=dt; //LSB (bit1 pro bit5 de CCP2CON) dt>>=1; CCPR1L=CCPR2L=dt; //MSB (byte + significativo) }
static void interrupt isr(void) // Here be interrupt function - the name is unimportant. { TMR0=tmr0;//restaura TMR0IF=0; if (i>16) //completou um semiciclo { CCP2CON=CCP1CON=0;//pwm off para garantir 0... i=0; comuta^=1; //próximo seniciclo PORTC=0;//... 0 no outro canal } if (!comuta) { CCP1CON=0b00001100;//pwm1 on RC0=1;//liga igbt H direita } else { CCP2CON=0b00001100;//pwm2 on RC3=1;//liga igbt H esquerda } duty(tabseno[i]); i++; }
/**********************************************************************/ void main() { TRISA=TRISB=TRISC=0;//tudo saída PORTA=PORTB=PORTC=0;//tudo zerado CMCON=0xff;//pinos cmcon=digital CCP1CON=CCP2CON=0; PR2=0xff;//ajuste freq pwm T2CON=0b00000100; //timer2 on, prescaler 1:1 OPTION_REG=0b10000011;// TMR0 prescaler 1:16 TMR0=tmr0;//520uS TMR0IE=1;//habilita interrupt timer0 GIE=1;//interrupção geral for (;;) { //só interrupt por enquanto }
}
Meu plano era controlar a velocidade, mas ainda não sei como. Creio que tem que diminuir a freq de 60Hz E amplitude, né isso? Bom... dx a água rolar literalmente primeiro. Quem sabe depois de me aposentar... contagem regressiva
Re: Exemplo de PWM 3 níveis com PIC18F4550
Enviado: 11 Mar 2015 09:35
por ze
ah sim. antes que o kraft peça, não tenho o circuito. Ou melhor, tenho. Só que está em aranhaico (aff doeu). Se precisar tiro foto da aranha.
Re: Exemplo de PWM 3 níveis com PIC18F4550
Enviado: 12 Mar 2015 20:13
por KrafT
Que é isso Zé... Esquema é para os fracos, hehehe...
O meu protótipo final ficou assim:
Os TO-220 na frente dos mosfets são diodos rápidos que botei para testar uma outra topologia. Não são necessários ao circuito proposto.
Re: Exemplo de PWM 3 níveis com PIC18F4550
Enviado: 19 Jan 2016 20:51
por Rodrigoev
Olá amigo!
Estou trabalhando num projeto muito parecido, que terá duas variantes: - Uma versão será um inversor 2 em 1, ou seja, será um inversor senoidal com carregador de baterias. Obviamente que o equipamento terá o modo inversor e o modo carregador. - Inversor grid-tie.
Assim que começar a evoluir posto as novidades.
Um detalhe, os pdf's que disponibilizaste no forum, referentes aos esquemas abrem em branco. Poderias postar novamente?
Grande abraço a todos.
Re: Exemplo de PWM 3 níveis com PIC18F4550
Enviado: 20 Jan 2016 21:08
por KrafT
O sol deve ter apagado os PDFs.
SCHEMATIC1 _ 1- CONTROLE.pdf
Re: Exemplo de PWM 3 níveis com PIC18F4550
Enviado: 20 Jan 2016 21:11
por KrafT
Lembrando que esse circuitinho foi um trabalhinho de aula e com o PIC utilizado até dá para fazer um controle rudimentar, que para algumas aplicações pode ser suficiente. Mas grid-tie é beeeeeeeeeeeeeeem diferente. Teria que usar um FPGA ou DSP, ou os dois.
SCHEMATIC1 _ 2- POTENCIA.pdf
Não vá se machucar com as altas tensões do circuito.