Um "Gerador PWM" no Programa PSpice Ewaldo Luiz de Mattos Mehl É possível, através do programa PSpice, ter-se um conjunto de fontes de tensão com as quais se obtém "matematicamente" um sinal PWM (Pulse Width Modulated), muito usado em Eletrônica de Potência. Apresenta-se à seguir a descrição de um "gerador PWM" com níveis lógicos TTL, que foi usado na simulação de um circuito para correção do fator de potência de um retificador. Este exemplo pode ser adaptado para outras situações, obtendo-se economia no tempo de simulação em relação a outras alternativas. Figura 1: Circuito do "gerador PWM" *Um Gerador PWM-TTL... *Primeira tensao: senoidal de 60 Hz com 0.8 V de amplitude: V1 1 0 SIN(0 0.8V 60Hz 0 0 0) R1 1 0 1k *Segunda tensao: pulsante +1V/-1V, com mesma frequencia de V1 V2 2 0 PULSE(-1.0 +1.0 0 1ns 1ns 8.3333ms 16.6667ms) R2 2 0 1k *Fonte controlada: E3=V1*V2 >>> obtem-se a tensao "retificada"... E3 3 0 VALUE={V(1)*V(2)} R3 3 0 1k *Fonte para geracao de sinais triangulares na frequencia do PWM=2kHz V4 4 0 PULSE(0V +1V 0 2.5us 2.5us 1p 5us) R4 4 0 1k *Fonte controlada: E5=V4-E3 >>> obtem-se o sinal PWM-TTL E5 5 0 TABLE {V(4)-V(3)} (-10uV,0V) (0V,+5V) (+10uV,+5V) R5 5 0 1k ************************************************************************** .TRAN 1us 17us .OPTIONS ITL5=0 ITL4=40 NOPAGE ABSTOL=1uA VNTOL=1uV RELTOL=0.01 CHGTOL=1uC .PROBE .END O circuito usado está na Figura 1, abaixo da qual tem-se a listagem do respectivo arquivo de descrição para o programa PSpice. Os resistores R1 a R5 foram especificados todos com resistência de 1 kΩ, mas poderiam ter qualquer outro valor, já que servem unicamente para que os nós de saída das fontes não fiquem "flutuando". A primeira fonte de tensão (V1) é senoidal com freqüência de 60 Hz e amplitude de ±0,8 V, sendo usada como referência inicial. Em seguida tem-se a fonte de tensão V2, especificada através da função PULSE, como um gerador de onda "quadrada", também de 60 Hz, sendo a amplitude igual a +1,0 V no "semi-ciclo positivo" e igual a -1,0 V no "semi-ciclo negativo". Multiplicando-se V(1) por V(2), obtém-se uma tensão senoidal "retificada", com amplitude de +0,8 V. Para isso, utiliza-se uma fonte de tensão controlada E3, cujo valor é dado pela expressão VALUE={V(1)*V(2)}. O asterisco tem aqui o significado de multiplicação, sendo a expressão matemática obrigatoriamente inserida entre colchetes. Continuando a verificar a Figura 1, tem-se agora um gerador de "ondas triangulares" com amplitude de 1,0 V, representado pela fonte de tensão V4. No caso do exemplo em pauta, especificou-se uma freqüência de modulação de 2 kHz, o que corresponde a um período de 5 µs para o sinal triangular gerado por V4. Ou seja, a tensão no nó 4 sobe até 1,0 V em 2,5 µs e desce a zero em 2,5 µs. É importante ressaltar, no entanto, que a função PULSE tem como objetivo gerar, em princípio, um sinal trapezoidal. Assim, não é possível especificar-se o período "alto" da função PULSE como igual a zero. No caso, usou-se tal parâmetro igual a 1 ps, obtendo-se assim o sinal "triangular" na verdade a partir de um sinal trapezoidal com o período "alto" muito reduzido. Para ter-se agora os sinais PWM, compara-se a tensão senoidal retificada, disponível no nó 3, com o sinal triangular disponível no nó 4. Uma vez que a amplitude máxima da tensão "retificada" é de 0,8 V e o sinal triangular tem amplitude igual a 1,0 V, o "índice de modulação" empregado neste "gerador PWM" é igual a 80 %, pois: Mf = Vp( senoidal) Vp( triangular ) = 0, 8 = 0, 8 1 Outros valores de "índice de modulação" podem ser obtidos, alterando-se a amplitude da fonte V1. A comparação de tensões é realizada pela fonte de tensão controlada E5. A função TABLE faz com que a expressão matemática contida entre colchetes seja avaliada e em seguida comparada com uma "tabela" de valores, tabela esta dada por pares coordenados listados entre parênteses. No caso, deseja-se um sinal PWM gerado com a seguinte lógica: Para V(4) < V(3) ⇒ Saída em nível lógico ZERO. Para V(4) = V(3) ⇒ Saída em nível lógico UM. Para V(4) < V(3) ⇒ Saída em nível lógico UM. Para isso, a "tabela" de valores escolhida foi: {V(4) - V(3)} ≤ 10µV ⇒ {V(4) - V(3)} = 0 V ⇒ {V(4) - V(3)} ≥ 10µV ⇒ E5 = 0 V E5 = +5 V E5 = +5 V ⇒ (-10uV,0V) ⇒ (0V,+5V) ⇒ (+10uV,+5V) Isto posto, tem-se no nó 5 o sinal PWM desejado. Este sinal, no caso do circuito estudado, foi empregado como comando de uma chave controlada por tensão. A Figura 2 mostra um detalhe dos resultados obtidos na simulação do circuito. Na parte superior da Figura 2 observa-se os sinais triangulares e o nível da tensão de referência num certo intervalo. Na parte inferior, tem-se os pulsos gerados, correspondentes aos períodos em que o sinal triangular ultrapassa a referência senoidal. É importante notar que, tendo em vista a aplicação em pauta, o sinal PWM desejado é aquele ilustrado na Figura 2, ou seja, os pulsos tem largura mínima quando a referência senoidal é máxima. Para outros circuitos, pode-se ter o sinal PWM complementar àquele mostrado; isto é obtido facilmente, invertendo-se os valores de tensões na função TABLE associada à fonte controlada E5, para: E5 5 0 TABLE {V(4)-V(5)} (-10uV,+5V) (0V,+5V) (+10uV,0V) Finalmente, a técnica descrita utiliza uma característica do programa PSpice chamada pela MicroSim de Analog Behavioral Modeling que inclui, entre outras, as funções VALUE e TABLE citadas no exemplo. As versões mais antigas do programa PSpice não tem tais funções incorporadas, de modo que a técnica descrita é impossível de ser usada em tais versões. Figura 2: Sinais observados nos nós 3, 4 e 5 do circuito. ELMM e:\documents\eletronica de potencia\pwm no pspice.doc 14/05/00 20:38h