Avançar para o conteúdo principal

RMS: A raiz quadrada da média do quadrado

Quem estudou electricidade, cedo aprendeu a diferença entre valores máximos, valores médios e valores eficazes de um sinal, por norma sinusoidal. Aprendeu também a decorar a relação entre valor máximo e valor eficaz de uma onda, também e só sinusoidal.
Mas se usarmos outra forma de onda, essas relações já não são válidas. Se usarmos uma rectificação de meia onda, qual é o valor médio da tensão obtida? e o valor eficaz? e se for uma rectificação de onda completa? ou uma onda dente de serra? Bem, podemos consultar livros ou mesmo procurar na Internet e temos o problema resolvido. Decoramos durante uns tempos e mais tarde voltamos a esquecer.
O meu objectivo com estas linhas é tentar abordar o assunto de forma a facilitar o entendimento sobre a obtenção dos valores médios e eficazes de um sinal periódico, seja ele qual for, sinusoidal ou não.

Valor máximo

O valor máximo é fácil de entender. É simplesmente o valor máximo que o sinal atinge durante um ciclo ou período T.

Valor médio

Penso que todos nós estamos habituados a fazer médias, desde o tempo da escola. 15 a português, 19 a matemática e 14 a inglês dá uma média de (15+19+14)/3=16. 
Da mesma forma, o valor médio de um sinal é a média dos valores que o sinal toma ao longo de um período T. Para obter essa média de valores, divide-se o período T em fatias o mais pequenas possível, mede-se o valor que o sinal toma em cada uma dessas fatias, somam-se todos os valores obtidos e no final divide-se pelo número de fatias.

Sinais Rectangulares:


Fig.1 sinal rectangular
Na figura 1 temos um sinal rectangular com um "duty cycle" de 20% e 10V quando activo e -10 quando em repouso. O tempo em repouso corresponde a 80% de T. A pergunta é: qual o valor médio? ora bem, se dividirmos o sinal em 100 fatias e medirmos o valor em cada uma delas ficamos com 20 fatias a medir 10V e 80 a medir -10. somamos tudo e ficamos com 20*10 + 80*-10=-600. Dividimos pelo número total de fatias e ficamos com o valor médio: -600/100=Vmed=-6V. Neste caso podemos até fazer Vmed = 0.2*10 + 0.8*-10 = -6V. No entanto vamos preferir a técnica das fatias por uma questão de universalidade de aplicação. Sem querer assustar ninguém, apresento na figura 2 a forma de abordar o tema nas publicações de engenharia:
Fig.2 
Como estamos a lidar com uma onda rectangular, o que interessa é a relação entre o tempo on e o tempo off e os respectivos valores tomados em cada um dos estados. Usando a fórmula da Fig. 2, e só para exemplificar, assumimos T=1 e dizemos que até 0,2T temos 10V e entre 0,2T e T temos -10V. Podemos fazê-lo de 2 maneiras conforme mostra a figura 3 
Fig. 3
No primeiro caso usamos uma função por ramos e no segundo integramos separadamente cada uma das partes do sinal (on de 0 a 0.2T e off de 0.2T a T). Se tem uma calculadora que resolva integrais e se sentir á vontade com este processo, é um dos mais rápidos. Caso contrário pode usar a técnica das fatias conforme já foi apresentado.

Sinais triangulares

Todos os tipos de sinais periódicos, sejam de que tipo forem, utilizam a mesma técnica de cálculo do valor médio: dividir T em fatias finas, medir o valor em cada fatia de T, somar todos os valores medidos e dividir pelo numero de fatias. Podemos automatizar o processo de cálculo, usando calculadoras, folhas de cálculo, ou até simples programas  em C ou qualquer outra linguagem.
vou exemplificar o uso de uma folha de cálculo,  para obter o valor médio de um sinal triangular, dividindo-o em 400 fatias:
  • Colocamos numa coluna números inteiros entre 1 e 400. Representa as fatias.
  • Dividimos o sinal em 4 partes 
    1. sobe entre a fatia 1 e 100, atingindo o valor máximo de 1;
    2. desce entre a fatia 101 e 200 até 0; 
    3. desce entre a fatia 201 e 300 até -1;
    4. sobe entre a fatia 301 e 400 até 1.
  • Noutra coluna vamos colocar o valor atribuído à onda triangular. Como queremos que o sinal varie entre 0 e 1 na primeira parte do sinal, o incremento por fatia será de 1/100 uma vez que cada parte do sinal tem 100 fatias. Vamos começar colocando 1/100 na primeira célula, correspondente á fatia 1, digamos B1.
  • Na célula imediatamente abaixo, em B2, coloque a fórmula =B1+1/100. Como vamos querer um valor crescente entre 0 e 1, entre as fatias 1 e 100, incrementamos 1/100 avos em cada fatia. Copie esta fórmula até à posição relativa à fatia 100. Deve nessa posição relativa à fatia 100 obter o valor 1.
  • Na célula abaixo, em B101, coloque a fórmula =B100-1/100. Vamos agora querer um valor decrescente entre 1 e -1, entre as fatias 101 e 300. Copie a fórmula até á posição relativa á fatia 300. 
  • Na posição relativa á fatia 301 coloque a fórmula =B300+1/100. Copie até à posição relativa à fatia 400.
  • Numa posição à sua escolha, formate a célula de forma a obter números com 3 casas decimais e  introduza a fórmula que nos dá a média dos valores entre B1 e B400. A fórmula será =MÉDIA(B1:B400) Obterá então o valor médio que neste caso será zero, porque as alternâncias positiva e negativa são simétricas. Poderá também somar os valores entre B1 e B400 e dividir o resultado por 400 que é neste caso o numero de fatias. É importante que formate a célula do resultado com 3 decimais pois se não o fizer poderá obter números muito pequenos, próximos mas diferentes de zero, devido ao facto de não analisarmos todos os pontos da onda que sendo de variação contínua não se limita a 400 valores por ciclo. Isto dá origem a um pequeno erro. que será tanto menor quanto maior for o número de fatias.
Usando a calculadora talvez seja mais rápido se encontrarmos uma função que descreva a onda triangular. Eu usei a seguinte função por ramos  ilustrada na fig.4

Fig. 4
Fiz o gráfico da função, para ter certeza que correspondia ao pretendido. O gráfico obtido está ilustrado na Fig. 5  

Fig. 5
Agora que tenho a certeza que a função descreve o sinal pretendido, vamos aplicar a fórmula que nos dá a média:


Fig.6 
Conforme mostrado no canto superior direito da Fig.6, o resultado é zero, conforme era expectável.

Sinais sinusoidais e afins

Os sinais sinusoidais e derivados (rectificação de meia onda e onda completa) são oriundos da função seno que todos bem conhecemos. O valor médio da função seno é zero, pois existe uma alternância positiva e outra negativa de onde resulta um valor médio igual a zero. Se quisermos comprovar, podemos fazer os cálculos conforme mostra a figura 7

Fig. 7
No topo da Fig. 7, vemos o resultado do cálculo do valor médio de 1 período inteiro da função seno (360º).
No meio da mesma figura, calculamos o valor médio de uma rectificação de meia onda. Só consideramos os valores na alternância positiva (0-180º) porque na segunda alternância são iguais a zero. Temos no entanto de dividir o total por 360 fatias, pois os zeros contam para a média. Obtemos 1/pi ~= 0.318 Vmax.
Se os integrais o assustam podemos fazer o cálculo com outras ferramentas desde que entendamos o conceito que está por detrás do valor médio de um sinal. Vamos por exemplo calcular o mesmo valor médio através de um pequeno programa para o Arduino. Neste caso usamos 400 fatias.

// Valor médio de um sinal rectificado de 1/2 onda
// Soma os valores de todos os senos dos primeiros 180 graus ou meio período
// Divide pelo numero de fatias em que cortamos o período 
// Obtemos assim o valor médio no período T

#define fatias 400 //Numero de fatias
#define pi 3.1415927 //O Arduino não conhece o valor de pi. Temos de o ensinar :)

float valormedio = 0; //Inicialização de variáveis
float vtotal = 0;

void setup() {
Serial.begin(9600); // inicializa porto serie
for (float i = 0; i <= pi; i = i + pi / (fatias/2)) { //O arduino trabalha em radianos. 
vtotal = vtotal + sin(i); //vamos somando o valor dos senos de 0 a 180º ou pi radianos
}
valormedio = vtotal / (fatias); 
Serial.println(valormedio, 3);
}
void loop() {
}

Obtivemos novamente o valor de 0.318 Vmax, o que confirma os primeiros cálculos.

Na parte inferior da figura 7, calculamos o valor médio de um sinal rectificado em onda completa. Como sabemos, na onda completa a frequência duplica e consequentemente o período T passa a metade. Vamos portanto adaptar o cálculo, dizendo que basta analisar meia alternância (0-180º) e calcular o valor médio dessa alternância. Obtemos 2/pi que é o dobro do valor médio obtido com a rectificação de meia onda. 2/pi é igual a 0.637 Vmax.
Voltando ao método de cálculo usando um programa para Arduino:

// Valor médio de um sinal rectificado de onda completa
// Soma os valores de todos os senos dos primeiros 180 graus
// Divide pelo numero de fatias em que cortamos o período. De notar que o período do sinal rectificado corresponde a meio período do sinal de entrada
// Obtemos assim o valor médio no período T
#define fatias 400 //Numero de fatias
#define pi 3.1415927 //O Arduino não conhece o valor de pi. Temos de o ensinar :)
float valormedio = 0; //Inicialização de variáveis
float vtotal = 0;
void setup() {
Serial.begin(9600); // inicializa porto serie
for (float i = 0; i <= pi; i = i + pi / (fatias)) { //O arduino trabalha em radianos.
vtotal = vtotal + sin(i); //vamos somando o valor dos senos de 0 a 180º ou pi radianos
}
valormedio = vtotal / (fatias);
Serial.println(valormedio, 3);
}
void loop() {}



Obtivemos o mesmo resultado. 0.637 * VMax que é igual a 2/pi * Vmax.

Valor eficaz

Ao observar o gráfico de uma corrente alternada sinusoidal, verificamos que ela varia constantemente a um ritmo sinusoidal repetindo-se a cada ciclo. Toma vários valores entre -Imax e +Imax, passando duas vezes por zero em cada ciclo. Cada ciclo ou período tem uma alternância positiva e outra negativa, iguais mas de sinal contrário. Para além do valor máximo, mínimo e médio existe um outro valor muito importante que se chama o valor eficaz. O valor eficaz da corrente alternada é o valor que produz o mesmo efeito calorifico que uma corrente contínua, numa mesma resistência. O efeito calorifico acontece tanto na alternância positiva como negativa, mas como temos uma variação constante entre valores máximos e mínimos precisamos saber qual é o valor que produz o mesmo efeito calorífico na resistência que uma corrente contínua. Por exemplo: se tivermos uma corrente alternada com um Imax de 10A, provoca na resistência um efeito calorifico igual a uma corrente continua de quantos amperes? Esta questão coloca-se tanto num sinal sinusoidal como em outro qualquer. 
O valor eficaz ou RMS (Root Mean Square), é por definição a raiz quadrada da média do quadrado de um sinal. Vamos então ver como calcular esse valor, qualquer que seja o sinal em análise. No caso de uma onda sinusoidal, todos decoramos que o Valor eficaz é igual a raiz de 2 sobre 2 ou 0,707 * Imax. Vamos ver como se calcula. Dizem os livros que o valor eficaz é:

Quer isto dizer que para calcular o valor eficaz:
  • Elevamos ao quadrado os valores da função que descreve o sinal;
  • Calculamos a média do quadrado dos valores obtidos em cada fatia;
  • Calculamos a raiz quadrada da média do quadrado dos valores.
Vamos então aos cálculos:


Confirma-se que o valor eficaz de uma sinusóide é raiz de dois sobre dois * Imax ou Vmax, consoante estejamos a falar de uma corrente ou de uma tensão.
Como já praticámos o cálculo das médias, vou-me focar no cálculo dos valores eficazes. Voltamos agora à figura 1 para exemplificar o calculo do valor eficaz. Usamos a mesma fórmula que quando calculamos as médias, mas desta vez elevamos os valores ao quadrado:



Como podemos ver, o valor eficaz é de 10V como consta na figura.

No caso da onda triangular:




Pegamos na fórmula usada na média, elevamos os valores da função ao quadrado, Calculamos a média do quadrado da função e seguidamente calculamos a raiz quadrada para obter o valor RMS de 0.577 * Imax ou Imax/raiz de 3.

Vamos seguidamente exemplificar o cálculo de um valor eficaz, por exemplo da sinusóide, usando o ambiente de desenvolvimento do Arduino:

// Valor eficaz de uma sinusoide
// Soma os valores de todos os quadrados dos senos dos 360 graus
// Divide pelo numero de fatias em que cortamos o período.
// Calcula a raiz quadrada da média dos quadrados do seno (RMS)
// Obtemos assim o valor eficaz no período T

#define fatias 400 //Numero de fatias
#define pi 3.1415927 //O Arduino não conhece o valor de pi. Temos de o ensinar :)
float vmedio = 0; //Inicialização de variáveis
float vtotal = 0;
float veficaz = 0;

void setup() {
Serial.begin(9600); // inicializa porto serie
for (float i = 0; i <= 2*pi; i = i + (2*pi) / (fatias)) { //O arduino trabalha em radianos.
vtotal = vtotal + sin(i)*sin(i); //vamos somando o valor dos quadrados dos senos de 0 a 360º
}

vmedio = vtotal / (fatias);
veficaz = sqrt(vmedio);
Serial.println(veficaz,3);
}

void loop() {}



Obtemos 0,707 que é equivalente a raiz de dois sobre dois.

Percebendo o princípio de cálculo, podem-se usar as mais diversas ferramentas como folhas de cálculo ou outras que estejam ao dispor.
Vou terminar com dois programas exemplo para o cálculo de ondas quadradas e triangulares:

Valor eficaz de ondas quadradas:

Vamos usar o sinal da figura 1, pois já sabemos os resultados e podemos assim verificar se o programa faz os cálculos correctamente.

// Valor eficaz de uma onda quadrada
// Soma os valores de todos os quadrados dos valores obtidos em cada fatia
// Divide pelo numero de fatias em que cortamos o período. Ficamos com a média dos quadrados
// Calcula a raiz quadrada da média dos quadrados
// Obtemos assim o valor eficaz no período T

float fatias = 400; //fatias, embora seja um numero inteiro, deve-se declarar float para coerencia de tipos nas operações
float valor = 0; //Valor instantaneo do sinal
float vmedio = 0; //Inicialização de variáveis
float vtotal = 0;
float veficaz = 0;
float dutycycle = 0.2; //Definir aqui o duty cycle (Ton/Toff)
float vhi = 10.0; //Definir aqui o valor alto em volts
float vlow = -10.0; //Definir aqui o valor baixo em volts

void setup() {
for (float i = 0; i <= 1; i = i + 1 / fatias) { // fatiamos o periodo T em n fatias
if (i < dutycycle) {
valor = vhi;
}
else {
valor = vlow;
}
vtotal = vtotal + valor * valor; //vamos somando o valor dos quadrados
}
vmedio = vtotal / (fatias);
veficaz = sqrt(vmedio);
Serial.begin(9600); // inicializa porto serie
Serial.print( "Valor Eficaz: ");
Serial.print(veficaz, 1);
Serial.println( " V");
}
void loop() {
}


Obtemos o mesmo resultado que anteriormente, o que significa que o programa está a calcular bem o valor eficaz.

Valor eficaz de ondas triangulares:

Vamos agora fazer um programa para calcular o valor eficaz de uma onda triangular. Podemos usar a onda triangular da fig 5 com um Vmax de 1V. Já efectuamos o cálculo do valor eficaz com outro método e obtivemos um valor eficaz de 0.577 Vmax ou Vmax sobre raiz de 3. Vamos ver se obtemos o mesmo resultado agora. O princípio de cálculo é o mesmo. Dividimos o sinal nas suas partes constituintes, em que na primeira parte sobe de 0 a 1, na segunda desce de 1 a -1 e na última sobe de -1 até zero.

// Valor eficaz de uma onda Triangular
// Soma os valores de todos os quadrados dos valores obtidos em cada fatia
// Divide pelo numero de fatias em que cortamos o período.
// Calcula a raiz quadrada da média dos quadrados
// Obtemos assim o valor eficaz no período T

float fatias = 400; //numero de fatias. Embora seja um numero inteiro, deve-se declarar float para coerência de tipos nas operações aritméticas
float valor = 0; //Valor instantâneo do sinal
float vmedio = 0; //Inicialização de variáveis
float vtotal = 0;
float veficaz = 0;

void setup() {
Serial.begin(9600); // inicializa porto serie
for (int i = 0; i < fatias; i ++) { // fatiamos o período T em n fatias
if (i <= (fatias / 4)) { //primeiro quarto do periodo
valor = valor + 1 / (fatias / 4); //Sobe de zero a 1 em 1 / 4 do período
}
else if (i > (fatias * 3 / 4)) { //ultimo quarto do período. (3/4 do período ate ao fim)

valor = valor + 1 / (fatias / 4); //Sobe de - 1 a 0 no ultimo quarto do período
}
else {
valor = valor - 1 / (fatias / 4); // periodo entre 1/4 e 3/4 é sempre a descer
}
vtotal = vtotal + valor * valor; //vamos somando o valor dos quadrados
}
vmedio = vtotal / (fatias);
veficaz = sqrt(vmedio);
Serial.print( "Valor Eficaz: ");
Serial.print(veficaz, 3);
Serial.println( " Vmax");
}

void loop() {
}


Obtivemos o mesmo resultado que na calculadora. 0,577 Vmax que é equivalente a Vmax * 1/ raiz de 3

O objectivo principal destes exercícios é melhorar a compreensão dos valores médios e eficazes de uma qualquer onda, através dos vários meios e formas possíveis. Ao entender o conceito é fácil fazer os cálculos.

Espero que tenham gostado.

Até breve,
Luís Sousa

Comentários

Mensagens populares deste blogue

Transístores Bipolares BJT - Exercício - ponto de funcionamento DC em repouso

O desafio de hoje é ca lcular o VCE do  transístor, no circuito mostrado na fig.1. O Beta do transístor é 200 e o VBE de 0.7V. O VCC é de 12V conforme mostrado no esquema da figura 1 e o transístor está a funcionar na zona activa directa (não está ao corte nem à saturação). Fig.1 - Circuito a analisar Vamos então ver como chegar ao valor de VCE. Sabemos que VCE=VC-VE. No entanto para conhecer os valores de VC e VE temos de calcular as quedas de tensão em R1 e R4, o que só é possível se conhecermos IC e IE. IC e IE dependem de IB e do Beta do transístor que neste caso é 200. IC=Beta * IB e IE=(Beta+1) * IB. Como temos o Beta, falta-nos então conhecer o valor de IB para poder determinar o valor de IE e IC, que por sua vez nos permitem calcular as tensões no colector e emissor do transístor. Fig.2 Cálculo da tensão de Thevenin Vth Para calcular o IB, vamo-nos socorrer do teorema de Thévenin , que simplifica muito o circuito. Começamos por abrir o ci...

OPAMPs - Ganho em malha fechada - Amplificador inversor

Quanto tempo já gastou a decorar as fórmulas do ganho de tensão das várias montagens possíveis com Ampops? Já imaginou donde vêm essas fórmulas? Fig.1 Montagem Inversora Sabendo as características dos AMPOPs  ideais   não é difícil chegar às fórmulas do ganho de tensão. Vamos então relembrar as características dos amplificadores operacionais ideais: Ganho infinito em malha aberta; Largura de banda infinita; Impedância de entrada infinita; Impedância de saída nula; Ausência de ruído; Offset = zero (exactamente 0 V na saída quando as duas entradas forem exactamente iguais); Sem dependência térmica. Tomando como exemplo a montagem inversora representada na fig 1, vemos que ao abrigo das características ideais dos OPAMPs não existe corrente de entrada, pois a sua impedância é infinita. Logo: A corrente que circula em R1 é igual à corrente que circula em R2; A diferença de potencial entre a entrada positiva e negativa é ~= 0, pelo...

Espelhos de Corrente com Transístores Bipolares

Considerações Iniciais Apesar de alimentação geral de um sistema ser feita por fontes de tensão, é por vezes  vantajoso  alimentar  circuitos com fontes de corrente.  Uma fonte de corrente é um circuito que gera uma corrente constante obtida a  partir de uma fonte de tensão.  No caso dos circuitos integrados, as fontes de corrente são usadas com frequência para impor uma corrente num circuito, evitando assim usar resistências.  As resistências não são adequadas para uso interno em circuitos integrados, pois ocupam uma área grande na pastilha de silício .  A polarização de transístores  dentro de um circuito integrado é frequentemente baseada no uso de fontes de corrente constante. Como normalmente são precisas várias, estabelece-se uma corrente de referência que posteriormente é replicada ou copiada as vezes necessárias através de um circuito designado espelho de corrente . A corrente de referência pode ser gerada com uma resistênci...