Assumir a primeira ordem Filtro IIR: yn alfa xn (1 - alfa) yn - 1 Como posso escolher o parâmetro alfa s. t. A IIR aproxima tão bem quanto possível a FIR que é a média aritmética das últimas k amostras: Onde n em k, infty), significando que a entrada para a IIR pode ser maior do que k e ainda Id gostaria de ter a melhor aproximação da Média das últimas entradas k. Eu sei que o IIR tem resposta de impulso infinita, por isso estou procurando a melhor aproximação. Id ser feliz para a solução analítica se é para ou. Como poderia este problemas de otimização pode ser resolvido dado apenas 1 ª ordem IIR. Perguntou Oct 6 11 at 13:15 Tem que seguir yn alfa xn (1 - alfa) yn - 1 precisamente ndash Phonon Oct 6 11 at 13:32 Esta é obrigado a se tornar uma aproximação muito pobre. Você não pode pagar mais do que um IID ndash de primeira ordem no dia 6 de outubro às 13:42 Você pode querer editar sua pergunta para que não use yn para significar duas coisas diferentes, p. A segunda equação exibida poderia ler zn fração xn cdots frac xn-k1, e você pode querer dizer qual é exatamente o seu critério de cotas tão bom quanto possível, por exemplo. Você quer que vert yn - znvert seja o menor possível para todos os n, ou vert yn - znvert2 seja o menor possível para todos os n. Eu sei que este é um post antigo, então se você pode se lembrar: como é que sua função 39f39 derivada I39ve codificado uma coisa semelhante, mas usando as funções complexas de transferência para FIR (H1) e IIR (H2 ) E então fazendo a soma (abs (H1 - H2) 2). Comparei isto com sua soma (fj), mas obtive resultados diferentes. Pensei que eu iria perguntar antes de arar através da matemática. Ndash Dom Jun 7 13 at 13:47 OK, vamos tentar derivar o melhor: begin yn ampamp alfa xn (1 - alfa) yn - 1 ampamp alfa xn (1 - alfa) alfa xn-1 (1 - alfa) 2 yn - 2 extremidades de alfa xn (alfa) alfa xn-1 (1-alfa) 2 alfa xn-2 (1-alfa) 3 de forma que o coeficiente de xn-m seja alfa (1-alfa) m . O próximo passo é tomar derivados e equacionar a zero. Olhando para um enredo do derivado J para K 1000 e alfa de 0 a 1, parece que o problema (como Ive configurá-lo) é mal posado, porque a melhor resposta é alfa 0. Eu acho que há um erro aqui. A maneira que deve ser de acordo com meus cálculos é: Usando o seguinte código no MATLAB produz algo equivalente, embora diferente: De qualquer forma, essas funções têm mínimo. Então vamos supor que realmente só se preocupam com a aproximação sobre o suporte (comprimento) do filtro FIR. Nesse caso, o problema de otimização é apenas: J2 (alfa) soma (alpha (1-alfa) m-frac) 2 Traçar J2 (alfa) para vários valores de K versus alfa resulta na data nas parcelas e na tabela abaixo. Para K 8 alfa 0,1533333 Para K 16 alfa 0,08 Para K 24 alfa 0,0533333 Para K 32 alfa 0,04 Para K 40 alfa 0,0333333 Para K 48 alfa 0,0266667 Para K 56 alfa 0,0233333 Para K 64 alfa 0,02 Para K 72. alpha 0.0166667 As linhas tracejadas vermelhas são 1K e as linhas verdes são alfa, o valor de alfa que minimiza J2 (alfa) (escolhido de tt alfa 0: .01: 13). Theres uma discussão agradável deste problema em Embedded Signal Processing com o Micro Signal Architecture. Aproximadamente entre as páginas 63 e 69. Na página 63, inclui uma derivação do filtro de média móvel recursiva exata (que niaren deu em sua resposta). Por conveniência com relação à discussão a seguir, corresponde à seguinte equação de diferença: A aproximação Que coloca o filtro na forma que você especificou exige assumir que x aproximadamente y, porque (e cito a partir da página 68) y é a média de xn amostras. Essa aproximação nos permite simplificar a equação de diferenças precedente da seguinte forma: Definindo alfa, chegamos à sua forma original, y alfa xn (1-alfa) y, o que mostra que o coeficiente que você quer (com respeito a esta aproximação) é exatamente 1over (Onde N é o número de amostras). É esta aproximação o melhor em algum respeito seu certamente elegante. Como a resposta de Peters sugere, a aproximação de um filtro FIR com um filtro recursivo pode ser problemática sob uma norma de mínimos quadrados. Uma discussão extensa de como resolver este problema em geral pode ser encontrada na tese de JOSs, Técnicas para Design de Filtro Digital e Identificação de Sistema com Aplicação ao Violino. Ele defende o uso da Norma Hankel, mas nos casos em que a resposta de fase não importa, ele também cobre o Método Kopecs, que pode funcionar bem neste caso (e usa uma norma L2). Uma ampla visão geral das técnicas da tese pode ser encontrada aqui. Podem produzir outras aproximações interessantes. Introdução à Filtragem 9.3.1 Introdução à Filtragem No campo do processamento de sinal, o design de filtros de sinal digital envolve o processo de suprimir certas frequências e impulsionar outras. Um modelo de filtro simplificado é onde o sinal de entrada é modificado para obter o sinal de saída usando a fórmula de recursão. A implementação de (9-23) é direta e requer apenas valores iniciais, então é obtida por simples iteração. Uma vez que os sinais devem ter um ponto de partida, é comum exigir que e para. Enfatizamos este conceito fazendo a seguinte definição. Definição 9.3 (Sequência Causal) Dadas as sequências de entrada e saída. Se e para, a seqüência é dito ser causal. Dada a sequência causal, é fácil calcular a solução para (9-23). Use o fato de que essas seqüências são causais: A etapa iterativa geral é 9.3.2 Os Filtros Básicos Os três filtros básicos simplificados a seguir servem como ilustrações. (I) Zeroing Out Filter, (note que). (Ii) Boosting Up Filter, (note que). (Iii) Filtro de Combinação. A função de transferência para estes filtros de modelo tem a seguinte forma geral onde as transformadas z das sequências de entrada e saída são e, respectivamente. Na seção anterior, mencionamos que a solução geral para uma equação de diferença homogênea é estável somente se os zeros da equação característica estiverem dentro do círculo unitário. Da mesma forma, se um filtro é estável, então os pólos da função de transferência devem estar todos dentro do círculo da unidade. Antes de desenvolver a teoria geral, gostaríamos de investigar a resposta de amplitude quando o sinal de entrada é uma combinação linear de e. A resposta de amplitude para a freqüência usa o sinal de unidade complexa, e é definida como sendo A fórmula para será rigorosamente explicada após alguns exemplos introdutórios. Exemplo 9.21. Dado o filtro. 9,21 (a). Mostre que é um filtro de zeramento para os sinais ee calcule a resposta da amplitude. 9.21 (b). Calcule as respostas de amplitude e investigue o sinal filtrado para. 9.21 (c). Calcule as respostas de amplitude e investigue o sinal filtrado para. Figura 9.4. A resposta de amplitude para. Figura 9.5. A entrada ea saída. Figura 9.6. A entrada ea saída. Explore a Solução 9.21. Exemplo 9.22. Dado o filtro. 9.22 (a). Mostre que é um filtro de aumento para os sinais ee calcule a resposta da amplitude. 9.22 (b). Calcule as respostas de amplitude e investigue o sinal filtrado para. Figura 9.7. A resposta de amplitude para. Figura 9.8. A entrada ea saída. Explore a Solução 9.22. 9.3.3 A Equação de Filtro Geral A forma geral de uma equação de diferença de filtro de ordem é onde e são constantes. Observe cuidadosamente que os termos envolvidos são da forma e onde e, o que torna esses termos tempo atrasado. A forma compacta de escrever a equação de diferença é onde o sinal de entrada é modificado para obter o sinal de saída usando a fórmula de recursão. A parte zerará os sinais e aumentará os sinais. Observação 9.14. A fórmula (9-31) é chamada equação de recursão e os coeficientes de recursão são e. Ele mostra explicitamente que a saída atual é uma função dos valores passados, para, a entrada atual, e as entradas anteriores para. As sequências podem ser consideradas sinais e são zero para índices negativos. Com esta informação podemos agora definir a fórmula geral para a função de transferência. Usando a propriedade de mudança de tempo retardada para seqüências causais e tomando a transformada z de cada termo em (9-31). Obtemos Nós podemos fatorar fora das somas e escrever isto em uma forma equivalente Da equação (9-33) obtemos o que leva à seguinte definição importante. Definição 9.4 (Função de Transferência) A função de transferência correspondente à equação de diferença de ordens (8) é dada pela Fórmula (9-34) é a função de transferência para um filtro de resposta ao impulso infinito (filtro IIR). No caso especial quando o denominador é unidade torna-se a função de transferência para um filtro de resposta de impulso finito (filtro FIR). Definição 9.5 (Resposta unidade-amostra) A sequência correspondente à função de transferência é denominada resposta de amostra unitária. Teorema 9.6 (Resposta de Saída) A resposta de saída de um filtro (10) dado um sinal de entrada é dada pela transformação z inversa e em forma de convolução é dado por Outro uso importante da função de transferência é estudar como um filtro afeta Várias frequências. Na prática, um sinal de tempo contínuo é amostrado a uma frequência que é pelo menos o dobro da frequência do sinal de entrada mais elevada para evitar a dobra de frequência ou aliasing. Isso ocorre porque a transformada de Fourier de um sinal amostrado é periódica com o período, embora não vamos provar isso aqui. Aliasing impede a recuperação precisa do sinal original de suas amostras. Agora pode-se mostrar que o argumento da transformada de Fourier se mapeia para o círculo da unidade do plano z através da fórmula (9-37), onde é chamada de frequência normalizada. Portanto, a transformada z avaliada no círculo unitário também é periódica, exceto com o período. Definição 9.6 (Resposta de amplitude) A resposta de amplitude é definida como a magnitude da função de transferência avaliada no sinal de unidade complexa. A fórmula é (9-38) sobre o intervalo. O teorema fundamental da álgebra implica que o numerador tem raízes (chamados zeros) eo denominador tem raízes (chamados pólos). Os zeros podem ser escolhidos em pares conjugados no círculo unitário e para. Para a estabilidade, todos os pólos devem dentro do círculo da unidade e para. Além disso, os pólos são escolhidos para serem números reais e / ou em pares conjugados. Isso garante que os coeficientes de recursão são todos números reais. Filtros IIR pode ser todo pólo ou pólo zero ea estabilidade é uma preocupação filtros FIR e todos os zero-filtros são sempre estáveis. 9.3.4 Design de Filtros Na prática, a fórmula de recursão (10) é usada para calcular o sinal de saída. No entanto, o design do filtro digital é baseado na teoria acima. Começa-se selecionando a localização de zeros e pólos correspondente aos requisitos de projeto do filtro e construindo a função de transferência. Como os coeficientes em são reais, todos os zeros e pólos com um componente imaginário devem ocorrer em pares conjugados. Em seguida, os coeficientes de recursão são identificados em (13) e usados em (10) para escrever o filtro recursivo. Tanto o numerador quanto o denominador de podem ser fatorados em fatores quadráticos com coeficientes reais e possivelmente um ou dois fatores lineares com coeficientes reais. Os seguintes princípios são usados para construir. (I) Zeroing Out Factors Para filtrar os sinais e, usar fatores da forma no numerador de. Contribuirão para o termo (ii) Impulsionando Fatores Para amplificar os sinais e, usar fatores do formulário Filtro exponencial Esta página descreve a filtragem exponencial, o filtro mais simples e mais popular. Isso faz parte da seção Filtragem que faz parte de Um guia para detecção de falhas e diagnóstico. Visão geral, constante de tempo e equivalente analógico O filtro mais simples é o filtro exponencial. Ele tem apenas um parâmetro de ajuste (diferente do intervalo de amostra). Ele requer o armazenamento de apenas uma variável - a saída anterior. É um filtro IIR (auto-regressivo) - os efeitos de uma mudança de entrada decai exponencialmente até que os limites das telas ou a aritmética do computador o escondam. Em várias disciplinas, o uso deste filtro também é referido como suavização 8220exponencial8221. Em algumas disciplinas, como a análise de investimento, o filtro exponencial é chamado de 8220Motiva Mínima PonderadaExponencialmente (EWMA), ou apenas 8220Motiva MínimaExponencial8221 (EMA). Isso viola a tradicional terminologia ARMA 8220moving average8221 da análise de séries temporais, uma vez que não há histórico de entrada usado - apenas a entrada atual. É o equivalente em tempo discreto do lag8221 de primeira ordem comumente usado na modelagem analógica de sistemas de controle de tempo contínuo. Em circuitos elétricos, um filtro RC (filtro com um resistor e um capacitor) é um atraso de primeira ordem. Quando se enfatiza a analogia com os circuitos analógicos, o parâmetro de ajuste único é a constante de tempo 8220, geralmente escrita como a letra grega Tau (). De facto, os valores nos tempos de amostra discretos correspondem exactamente ao intervalo de tempo contínuo equivalente com a mesma constante de tempo. A relação entre a implementação digital e a constante de tempo é mostrada nas equações abaixo. Equações do filtro exponencial e inicialização O filtro exponencial é uma combinação ponderada da estimativa anterior (saída) com os dados de entrada mais recentes, com a soma dos pesos iguais a 1 de modo que a saída corresponde à entrada no estado estacionário. Seguindo a notação de filtro já introduzida: y (k) ay (k-1) (1-a) x (k) onde x (k) é a entrada bruta no tempo ky (k) é a saída filtrada no tempo passo ka É uma constante entre 0 e 1, normalmente entre 0,8 e 0,99. (A-1) ou a é às vezes chamado 8220smoothing constante8221. Para sistemas com um passo de tempo fixo T entre amostras, a constante 8220a8221 é calculada e armazenada por conveniência apenas quando o programador de aplicações especifica um novo valor da constante de tempo desejada. Para sistemas com amostragem de dados em intervalos irregulares, a função exponencial acima deve ser usada com cada passo de tempo, onde T é o tempo desde a amostra anterior. A saída do filtro normalmente é inicializada para corresponder à primeira entrada. À medida que a constante de tempo se aproxima de 0, a vai para zero, então não há filtragem 8211 a saída é igual à nova entrada. Como a constante de tempo fica muito grande, um aproxima-se 1, de modo que a nova entrada é quase ignorado 8211 filtragem muito pesado. A equação de filtro acima pode ser rearranjada no seguinte equi - valente preditor-corretor: Esta forma torna mais aparente que a estimativa variável (saída do filtro) é predita como inalterada da estimativa anterior y (k-1) mais um termo de correção baseado No inesperado 8220innovation8221 - a diferença entre a nova entrada x (k) ea previsão y (k-1). Esta forma é também o resultado de derivar o filtro exponencial como um simples caso especial de um filtro de Kalman. Que é a solução ótima para um problema de estimação com um conjunto particular de suposições. Passo resposta Uma maneira de visualizar o funcionamento do filtro exponencial é traçar sua resposta ao longo do tempo para uma entrada passo. Ou seja, começando com a entrada e saída do filtro em 0, o valor de entrada é repentinamente alterado para 1. Os valores resultantes são plotados abaixo: No gráfico acima, o tempo é dividido pela constante de tempo do filtro tau para que você possa mais facilmente prever Os resultados para qualquer período de tempo, para qualquer valor da constante de tempo do filtro. Após um tempo igual à constante de tempo, a saída do filtro aumenta para 63,21 do seu valor final. Após um tempo igual a 2 constantes de tempo, o valor sobe para 86,47 do seu valor final. As saídas após tempos iguais a 3,4 e 5 constantes de tempo são 95,02, 98,17 e 99,33 do valor final, respectivamente. Uma vez que o filtro é linear, isto significa que estas percentagens podem ser utilizadas para qualquer magnitude da mudança de passo, não apenas para o valor de 1 utilizado aqui. Embora a resposta passo em teoria leva um tempo infinito, de um ponto de vista prático, pense no filtro exponencial como 98 a 99 8220 done8221 respondendo após um tempo igual a 4 a 5 constantes de tempo de filtro. Variações no filtro exponencial Existe uma variação do filtro exponencial chamado filtro exponencial não-linear, que pretende filtrar fortemente o ruído dentro de uma determinada amplitude, mas então responder mais rapidamente a alterações maiores. Em um sistema de controle moderno, um filtro é um algoritmo (ou bloco de função) usado principalmente para a redução de ruído em um sinal de medição de processo (Figura 1). Mas esse não é o seu único uso, como veremos mais adiante. Figura 1. Filtro de ruído. Tipos de Filtros Os sistemas de controle geralmente fornecem filtros de atraso e / ou de média móvel de primeira ordem. Alguns sistemas de controle fornecem filtros de ordem superior. Os diferentes tipos de filtros são brevemente discutidos abaixo. Filtro de Lag de Primeira Ordem O tipo de filtro mais comum é o filtro de atraso de primeira ordem do qual a saída se aproxima do valor da entrada de maneira exponencial ao longo do tempo (Figura 2). Isso também é chamado de filtro passa-baixa porque as altas freqüências (mudanças rápidas) são atenuadas e as baixas frequências (mudanças lentas) são passadas. Isso torna o filtro de lag de primeira ordem ideal para reduzir a componente de ruído em um sinal de medição do processo porque o ruído tende a ser de maior freqüência do que as mudanças do processo. Figura 2. Resposta de um filtro de 20 segundos de atraso de primeira ordem para uma mudança de passo em sua entrada. A constante de tempo de um filtro de atraso de primeira ordem é o tempo que leva para sua saída mudar 63,2 de uma mudança sustentada em sua entrada (Figura 2). Filtro de média móvel Outro tipo de filtro é o filtro de média móvel. Este tipo de filtro armazena um número de amostras em um primeiro-em-primeiro-out buffer. Em cada ciclo de execução, um novo valor da entrada de filtros é armazenado no buffer e o valor mais antigo é descartado. O filtro calcula então a média de todos os valores armazenados, que então se torna a nova saída do filtro, conforme ilustrado na Figura 3. Figura 3. Filtro de média móvel. A saída de um filtro de média móvel aproxima-se linearmente do valor final e então chega a uma parada abrupta, ao contrário de um retardo de primeira ordem que se aproxima exponencialmente do valor final (Figura 4). Figura 4. Saída de um filtro de média móvel em comparação com o de um filtro de atraso de primeira ordem. Filtros de Ordem Superior Os filtros de ordem mais alta consistem em vários retornos e derivações dispostos de forma específica para fornecer um corte mais acentuado ou apenas filtrar freqüências específicas (como 60 Hz). Embora esses filtros sejam muito mais comuns na indústria eletrônica, alguns sistemas de controle também fornecem pelo menos um subconjunto deles. Os tipos de filtro de ordem mais alta incluem passagens de banda baixa, passada, passada e passada alta (embora esta última seja muito incomum em aplicações de controle de processo.) Há provavelmente situações nas quais o uso de filtros de ordem superior seria preferível Filtros de atraso simples de primeira ordem, mas para a maioria dos casos no controle de processo geral, filtros de atraso de primeira ordem são adequados para suavizar sinais de medição de processo ruidosos. Desde os filtros de ordem mais alta raramente são usados em loops de controle, eu não aprofundarei em seu design E aplicação aqui. Se eu usar um filtro de primeira ordem ou de média móvel Se você tiver uma escolha, não use um filtro de média móvel para suavizar uma medida de processo ruidoso. Um filtro de lag de primeira ordem é mais adequado para alisar Ruído. A razão é a seguinte: Com um filtro de lag de primeira ordem, os valores recém-amostrados contribuem mais para a saída do que as amostras mais antigas o valor mais recente contribui mais ea contribuição de amostras mais antigas diminui exponencialmente ao longo do tempo. Com um filtro de média móvel, todos os valores no buffer contribuem igualmente para a saída. Se houver um pico na entrada de um filtro de média móvel, sua contribuição permanece inalterada até que ela desapareça subitamente quando o valor cair do buffer. Com um filtro lag, a contribuição do pico vai diminuir ao longo do tempo. Aplicações de filtragem Há três aplicações principais para filtros em sistemas de controle. Estes são discutidos abaixo. Filtro de Ruído Também chamado de filtro de ruído mais suave, são usados para suavizar o ruído de alta frequência a partir de um sinal de medição de processo, conforme ilustrado na Figura 1. Estes filtros são comumente aplicados a sinais de medição de fluxo, devido à tendência destes sinais a terem Componente de ruído substancial. Um filtro de atraso de primeira ordem com uma constante de tempo de dois a três segundos é normalmente suficiente para um loop de controlo de fluxo. Constantes de tempo mais longas podem ser usadas se necessário, mas tenha cuidado para que o filtro não se torne o atraso dominante no loop. Algumas medições de nível podem também ter um componente de ruído grande, e. Onde a ebulição ou separação de gás líquido afeta o nível. Controladores de nível (exceto em tambores de vapor e tanques de compensação) freqüentemente requerem um ganho de controlador alto, tornando a saída do controlador muito sensível ao ruído. Nestes casos podem ser necessários filtros com constantes de tempo mais longas (por exemplo, 10 a 20 segundos). Uma constante de tempo de filtro apropriada (Tf) pode ser calculada como se segue: Tf (Amplitude de Ruído) (Amplitude Desejada após Filtragem) (Período de Ruído) (2 x PI) Onde PI 3.14 eo período do ruído podem ser determinados pela contagem O número de picos em um sinal ao longo de um minuto e, em seguida, inverter este número, ou seja, usar 1x. A equação acima dará então o tempo do filtro em minutos. Converta esse número em segundos (multiplique por 60) se seu sistema de controle usar segundos como a unidade de tempo para filtros. Observe que adicionar um filtro em um loop de controle ou alterar a constante de tempo de filtros altera o comportamento dinâmico do loop de controle. Isso requer retuning o controlador para acomodar a nova dinâmica de loops. Além disso, use a filtragem mínima possível, porque um filtro introduz atraso que provavelmente resultará em um loop de controle de desempenho mais lento, e pode ocultar problemas de processo. Filtro anti-aliasing No controle do processo, os filtros anti-aliasing são usados em sinais de entrada analógicos para remover componentes de alta freqüência dos sinais antes de serem amostrados pelo sistema de controle digital. Isso é feito para evitar problemas de aliasing em que componentes de alta freqüência no sinal original aparecem como aliases de baixa freqüência após a amostragem pelo sistema de controle. O YouTube tem alguns vídeos legais demonstrando alias. A filtragem anti-alias deve ser feita no transmissor, isto é, antes que o sinal analógico seja amostrado pelo conversor AD no módulo de entrada dos sistemas de controle. O filtro anti-aliasing deve fornecer um mínimo de -12 dB de atenuação na freqüência de Nyquist, mas de preferência mais como explicado em um documento de 1994 pela EnTech. Isto pode ser fornecido por um filtro de passagem baixa de primeira ordem com uma constante de tempo ajustada para pelo menos 1,3 vezes o período de amostragem mais lento. Por exemplo, se o cartão de entrada amostrar as entradas analógicas a uma taxa de 1 amostra por 500 milissegundos eo intervalo de execução do controlador for de 1 segundo, deve ser utilizada uma constante de tempo de filtro mínima de 1,3 segundo. Setpoint Filter Um filtro de setpoint passa o setpoint de loop de controle através de um filtro lag de primeira ordem antes que o controlador receba o sinal. Um filtro de setpoint pode ser usado para reduzir ou eliminar overshoot em loops de controle que recebem mudanças de setpoint feitas pelo operador. Isto aplica-se principalmente a processos dominantes retardados que foram sintonizados para rejeição rápida de perturbação. Também pode ser usado para reduzir a quantidade de ação de controle abrupta como resultado da mudança de ponto de ajuste. (No entanto, minha solução preferida em ambos os casos é aplicar os modos proporcional e derivativo somente na variável de processo em vez de em erro, se o algoritmo de controle suportar isso.) Figura 5. Efeito de uma mudança de setpoint padrão versus filtragem de setpoint. O guru de controle Greg McMillan recomenda que a constante de tempo dos filtros de setpoint seja ajustada igual ao tempo integral no controlador ou 1,5 vezes o tempo integral se o controlador for ajustado de forma mais agressiva para o tempo mínimo de sedimentação. Os filtros de setpoint nunca devem ser usados em loops de controle que são necessários para rastrear seus pontos de ajuste (como em cascata, feedforward e controle de relação), porque diminui a resposta dos controladores às mudanças de setpoint. Palavras finais Os filtros são dispositivos úteis em sistemas de controle e têm múltiplos usos, sendo o principal para reduzir o componente de ruído nos sinais de medição. Use apenas filtros quando necessário e, em seguida, filtragem o menos possível. E lembre-se que um filtro altera a resposta dinâmica do loop (exceto para setpoint filtros), para que o controlador tem que ser retuned depois de uma constante de tempo de filtros foi alterado.
Comments
Post a Comment