por MOR_AL » 09 Out 2011 18:45
Bom. Vamos lá!
Considerações iniciais:
^ - Elevado a
* - Vezes
Para se ter um PWM com resolução de n bits, significa que você dispõe de 2^n valores, certo? Para n = 8, são 256 valores. Para n = 10, são 1024 valores.
Um PWM é uma onda que tem um período T e um delta entre 0 e 1.
O semi-período Ton = delta*T e o semi-período Toff = (T-Ton) = (T – delta*T) = T*(1-delta).
Para um PWM com n bits, o delta terá 2^n valores.
Mas o PWM real é uma onda com Ton e Toff, onde a tensão média (considerando um delta quase constante durante um período em que o delta pode ser considerado constante) vale:
Vmédio = (Vmáx + Vmín) * delta + Vmín*(1-delta), onde:
Vmédio é o valor médio da tensão do PWM.
Vmáx é o valor máximo da tensão Ton.
Vmín é o valor mínimo da tensão Ton.
(Observar que durante Toff, a tensão vale Vmín)
Para Vmín = 0 e delta = 0,5, Vmédio = Vmáx/2, o que dá o valor esperado.
O que ocorre é que Vmín nunca dá zero, pois tem sempre um valor de saturação de um transistor ou VDSmín de um MOSFET.
O valor de Vmáx também não dá VRef, pelo mesmo motivo.
Como a finalidade de se aumentar o número de bits em um PWM é a de se poderem obter valores intermediários entre dois valores adjacentes para o PWM com menos bits, dificilmente isso será conseguido com precisão. Isso porque o valor Vmáx geralmente vem de uma fonte de alimentação com precisão menor que a que eu expus anteriormente para VRef. Além do mais, não se costuma fazer, por quase impossibilidade, uma fonte com potência com essa precisão. Vale ressaltar também, que o valor Vmín não é zero. Isso contribui para não se obter precisão no PWM.
Mas aí você pergunta.
Ok! Mas então como a coisa é feita? Boa pergunta!! Hehe!
Geralmente o PWM se encontra dentro de um loop em que se monitora o valor obtido (Vmonitorado) para uma variável em questão (tensão, corrente, temperatura, pressão, comprimento, área, volume, etc.) com um sensor apropriado.
Tem-se o valor que se deseja que a variável assuma (Vdesejado). Calcula-se o Erro entre as duas variáveis:
Erro = Vdesejado – Vmonitorado
Ora! Quanto menor for esse Erro, mais o valor monitorado se aproxima do valor desejado, certo?!
A coisa é feita para se reduzir o Erro para níveis tais, que seja menor que se deseja de precisão para o valor monitorado (Vmonitorado).
Como se reduz o Erro?!
O modo mais simples é:
Se o valor de Erro for positivo, significa que Vmonitorado < Vdesejado. Então aumenta-se o valor do delta do PWM, para aumentar o valor médio e aumentar Vmonitorado.
Caso o Erro seja negativo, significa que Vmonitorado > Vdesejado. Então reduz-se o valor do delta, para que o valor médio seja reduzido e com isso diminui Vmonitorado, tendendo a diminuir o Erro.
Mas esse procedimento não é o ideal e nem sempre funciona, podendo até se obter oscilação em Vmonitorado. O correto é se usar o controle PID, mas isso é outra história.
Voltando ao ponto.
Você então vai precisar medir o valor da variável (Vmonitorado). Isso, em um circuito digital, é feito com um CAD.
Aí é que entra a precisão da medida. Se o seu CAD tiver 8 bits, você terá 256 possíveis valores. Então o seu PWM deverá ter no máximo, também 256 valores possíveis. Se o seu PWM tiver mais bits, o CAD, no instante da leitura, vai interpretar os valores intermediários como um dos 256 valores, não dispondo de maior precisão.
Bom. Aí você conclui que, para aumentar a precisão, precisa aumentar a precisão do CAD. Assim, você pode aumentar o número de bits do PWM de acordo com o número de bits do CAD.
Mas a precisão do CAD é função, também, do valor da sua tensão de referência. Os limites dos valores foram apresentados anteriormente.
Bom!
Acho que consegui mostrar que o número de bits do PWM, vai depender da precisão que você vai medir a sua variável, que depende do valor da tensão de referência.
Outro detalhe importante:
Como eu apresentei antes, o valor de Vmáx e de Vmín influenciam no valor médio da tensão do PWM. Isso tenderia a derrubar toda essa teoria, uma vez que esses valores não possuem a precisão necessária. O que ocorre é que você mede e corrige o valor do delta do PWM, de modo mais rápido que o valor de Vmáx e Vmín varia. Com isso, tudo se passa como se o valor de Vmáx e de Vmín fossem CONSTANTES. Esse tipo de correção é conhecido como correção de erros não lineares.
Ele corrige alterações na tensão Vmáx, que é proveniente da alteração da tensão de alimentação com a carga e com a temperatura, da variação da queda de tensão no dispositivo de chaveamento, etc. E tudo isso porque você está monitorando apenas a tensão Vmonitorada, o resultado, e não cada um desses erros intermediários. Eles tendem a ser compensados.
Bom. É isso aí.
Acho que deu para entender, né?!
Um abraço e bons projetos!
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain