Projeto de Filtros Ativos. Considerações sobre componentes


Antes de partimos em direção à descrição de fórmulas e procedimentos de projeto de filtros ativos, vamos compreender o impacto que a utilização de componentes reais tem sobre os cálculos realizados no protejo.

Filtros de ordem maior do que 1 ou 2 são implementados através da interligação série de filtros de ordem 1 ou 2. Para que a função de transferência geral seja obtida, é importante que cada célula tenha muito bem definida a sua frequência de corte e curva de atenuação. Mas, devido as tolerâncias dos componentes reais e disponibilidade de relativamente poucos valores padronizados, isto não é muito fácil de ser obtido, o que resulta em curva finais diferentes das desejadas, e também sensibilidades a variações de temperatura e com a idade dos componentes que podem tornar o seu uso impraticável.

Os capacitores mais indicados para filtros são os capacitores cerâmicos. A variação da capacitância com a temperatura nestes componentes é expressa nas folhas de características dos fabricantes através de códigos alfanuméricos, do tipo COG,COG, X7R, Z5U, and Y5V. Os capacitores COG são os mais precisos.

  • COG: 0.5 pF até 47 nF //tolerância +- 0.25 pF para pequenos valores a 1% para maiores valores
  • X7R: 100 pF to 2.2 μF //tolerância +1%

Caso necessite de valores elevados de capacitância: Utilize eletrolíticos de Tantalum.

Opções ao uso de capacitores cerâmicos são o mica prateada, policarbonato metalizado, polipropileno e poliestireno.

Existem menos valores diferentes de capacitores do que valores de resistores. Uma boa técnica de projeto de filtros é definir um valor de padronizado para o capacitor, e depois calcular o valor do resistor equivalente. Resistores são encontrados com até 0.1% de precisão, o que permite construir filtros de alta performance. Deve-se destacar no entanto, que componentes de alta precisão são normalmente associados a um alto custo.

Um ponto importante a considerar é a faixa de valores úteis a serem utilizados nos filtros. Por exemplo, em teoria podemos especificar um capacitor de 1pF e um resistor de 10 Mohms para um filtro. Porém as capacitâncias parasitas do circuito impresso e dos próprios terminais dos componentes podem ser impactar significantemente sobre este valor pequeno de capacitância, o que resulta em um comportamento não previsto pela teoria.

Na prática, mantenha os resistores entre 100 ohms e 1 Mohm. O valor inferior limita a corrente drenada pela fonte, situação importante em dispositivos portáteis e com amplificadores operacionais com pequena capacidade de fornecimento de corrente na saída. O valor superior procura limitar o ruído gerado pelo resistor, tanto maior quanto maior for o valor ôhmico do mesmo, além do impacto sobre a corrente de offset.

Já os capacitores devem ser mantidos entre 10 pF até 10 uF. Atenção para o caso de eletrolíticos polarizados. Verifique se não ocorre uma situação de uso com polaridade reversa, o que destrói o capacitor em pouco tempo. Eletrolíticos possuem tipicamente uma alta corrente de fuga, de forma que devem ser evitados.

Estas faixas de valores são as ideais, porém existem situações nas quais precisamos ficar fora destes limites. Nestes casos, o que é importante é saber levar em consideração o que poderá ocorrer e procurar atenuar este impacto negativo com outras topologias do circuito, do traçado das pistas do impresso, etc…

No caso do amplificador operacional, atenção deve ser dada ao ganho unitário e slew rate do componente. Aplique as fórmulas a seguir para a escolha correta do amplificador.

1- Filtro de primeira ordem:
f_T= 100 * ganho * fc

ft = frequência de ganho unitário
fc= frequência de corte

2- Filtro de segunda ordem (Q < 1)

f_T= 100 * ganho * fc * k_i

sendo que ki=

k_i= {f_{ci}} / {f_c}

fci= frequência de corte de um filtro parcial fc= frequência de corte do filtro completo

3- Filtro de segunda ordem (Q > 1)

f_T= 100 * Ganho * {f_c}/{a_i}* sqrt { {Q_i^2 - 0.5 } / {Q_i^2 - 0.25}}

Qi= fator de qualidade do filtro parcial

Além das considerações sobre a resposta em frequência de ganho unitário, o amplificador deve também ter slew rate adequado, seguindo as seguinte fórmula:

SR= pi * f_c * V_{PP}

Como podemos observar, um filtro que venha a responder exatamente como foi projetado inicialmente pode sair absurdamente caro, pois componentes de precisão são alto custo e difíceis de serem obtidos. No dia a dia, o melhor a fazer é utilizar componentes mais comuns e simular com estes valores. Um bom simulador permite inclusive avaliar as variações com a temperatura. Se a resposta dada pelo simulador com os valores nominais dos componentes mais a varição dada pela tolerância e variação de temperatura atende aos requisitos globais do projeto, você está feito. Por exemplo, se um filtro passa baixa tiver a frequência de corte 50 Hz abaixo da planejada, e isto não fizer diferença no uso prático do circuito, você não precisa de mudar mais nada.

Em resumo. Calcule os valores “teóricos”. Altere cada valor para o valor comercial mais próximo. Teste com o simulador. Atende ao que você precisa?. Se sim, não precisa se preocupar se a curva não é um perfeito Butterworh, que existe um riple na banda de passagem, etc.

Projeto de filtros passa baixo Butterworth

Qual ordem de filtro eu preciso?

Como vimos, os filtros mais complexos são implementados como conjuntos em série de filtros de ordem um e dois. As equações que definem o projeto de um filtro tem como parâmetro importante a ordem do filtro. Mas, quando estamos analisando a resposta que necessitamos não sabemos ainda a ordem do filtro. Como determinar a ordem do filtro a partir da resposta em frequência desejada?

Vamos focalizar o nosso raciocínio em filtros Butterworth. Estes filtros possuem a seguinte função de transferência:

A_{dB}= 10 * log {(1+ {({f} / {f_c})}^{2*n})}

Como exemplo. A atenuação de um filtro de primeira ordem com frequência de corte de 1Khz em 10 Khz será de :

A_{dB}= -10 * log {(1+ {({10}/ {1})}^{2})}

AdB = -20 dB,

Para facilitar a comparação, podemos traçar curvas correspondentes a ordem de 1 a 5 para filtros passa baixas Butterworth:

Filtro PB Butterworth com 1<=n<=5

Estas curvas foram traçadas com auxílio do script Python apresentado a seguir:
.Geração das curvas com 1<-n<=5


#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
#  tracaAtenuacao.py
#  
#  Copyright 2017 tavares <tavares@tavares-Inspiron-5558>
#  
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
#  
#  
#  
import numpy as np 
import matplotlib.pyplot as plt
 
 
def main(args):
    fc= 1000.0
    order= 1
    pontosX = np.linspace(1,20000,1000,endpoint=True)
   
    atenuacao1= -10.0 * np.log10(1+ (pontosX/fc)**(2*order))
    
    order=2
    atenuacao2= -10.0 * np.log10(1+ (pontosX/fc)**(2*order))
    
    order=3
    atenuacao3= -10.0 * np.log10(1+ (pontosX/fc)**(2*order))    

    order=4
    atenuacao4= -10.0 * np.log10(1+ (pontosX/fc)**(2*order)) 

    order=5
    atenuacao5= -10.0 * np.log10(1+ (pontosX/fc)**(2*order)) 
 
    plt.grid(True)
    
    plt.xscale('log')
    
    plt.plot(pontosX,atenuacao1)
    plt.plot(pontosX,atenuacao2)
    plt.plot(pontosX,atenuacao3)
    plt.plot(pontosX,atenuacao4)    
    plt.plot(pontosX,atenuacao5)  
    
         
    plt.show()
    return 0


if __name__ == '__main__':
    import sys
    sys.exit(main(sys.argv))

Observe que na frequência de 10 Khz, a atenuação é de = -20 dB para ordem 1, -40 dB para ordem dois , e assim por diante.

Exemplos práticos:

Estamos projetando o filtro passa baixo com frequência de corte de 2 Khz, e que em 20 Khz tenha uma atenuação de -40 dB. Qual é a ordem do filtro Butterworth que possibilita esta atenuação?

Bem, está é muito fácil. Como temos -40 dBs por década (2 <-> 20Khz) isto significa que temos que ter um filtro de segunda ordem.

E se os valores numéricos não forem tão simples. Utilize o script abaixo, chamando o programa com o comando:

python calcOrder –fc 2000 –fb 20000 –at 40, sendo que fc= frequência de corte em Hz, fb, frequência onde se inicia a atenuação indicada por at (dBs)

.Calculo da ordem de filtro Butterworth


#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
#  detectaOrdem.py
#  
#  Copyright 2017 tavares <tavares@tavares-Inspiron-5558>
#  
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
#  
#  
#  
import numpy as np 
import sys
import argparse 
import math 
  
def main(args):
    
    parser = argparse.ArgumentParser(description='Identifica parametros')
    parser.add_argument('--fc')
    parser.add_argument('--fb')
    parser.add_argument('--at')
    
    args = parser.parse_args()
     
    frequenciaCorte =  float(args.fc)
    frequenciaBanda= float(args.fb)
    atenuacao= float(args.at)
    
    p1= atenuacao/10.0
    p2= 10**p1 - 1.0
    
    ordem= np.log(p2) / (np.log(frequenciaBanda/frequenciaCorte) ) / 2.0
    
    print(math.ceil(ordem))
    
   
    return 0


if __name__ == '__main__':
    import sys
    sys.exit(main(sys.argv))

Execute o programa com diferentes fc, fb e at e verifique como varia a ordem do filtro necessária para permitir diferentes atenuações.

Deixe um comentário