Eu tentei alguns técnicos de média em execução para suavizar a alteração nos dados do ADC no AtMega48 para o controle de luzes (PWM) ao girar uma panela (ADC). Os filtros (pseudo-códigos): observei que os filtros são muito agradáveis. Mas devagar em resposta, o que é esperado. Procuro técnicas como a média móvel exponencial. Disse ser mais receptivo. Existe outro como este Como ele diz: onde está entre 0 e 1. Como codificar e otimizar esses códigos sábios (sem usar flutuadores) Ou Como eu converteria os flutuadores em números inteiros correspondentes para tornar o código pequeno, rápido e responsivo. E eu mantive 1 Outro, então, que não funcionará como esperado. Por Idve mudar todas as variáveis para flutuar. Por favor, não se concentre na seguinte declaração por enquanto, mas observe. Manter flutuadores na minha base de código está preenchendo a memória do programa de 45 a 137, no caso de Você pode implementar com sobrecarga mínima, limitando as frações binárias. Eu usei isso com bons resultados. Pegue o resultado existente, Deslize N lugares direito para dividir por 2N Subtrai-lo do resultado existente. Adicionar novos dados Isso não é tão rápido em mudar com uma mudança de etapa nos dados de entrada como você deseja, mas é fácil de implementar e efetivo o suficiente como um filtro em muitos casos. Você pode acelerar sua resposta ao tomar decisões informais quanto ao seu comportamento em casos que são muito diferentes. Por exemplo, mantenha uma contagem de entradas seqüenciais que são mais que um limite diferente do resultado existente. Se essa contagem ultrapassar algum limite, altere a proporção de divisão N por algum fator. Por exemplo, N é geralmente 4- os resultados são deslocados para direita 4 vezes 16. Se a entrada for mais que xxx longe da resposta, faça apenas duas mudanças para a direita e multiplique a nova amostra em 4 antes de adicionar. Respondeu 4 de outubro 12 às 6: 08Uma filtro digital fácil de usar A média móvel exponencial (EMA) é um tipo de filtro de resposta de impulso infinito (IIR) que pode ser usado em muitas aplicações DSP incorporadas. Requer apenas uma pequena quantidade de RAM e poder de computação. O que é um Filter Filters vem em formas analógicas e digitais e existe para remover freqüências específicas de um sinal. Um filtro analógico comum é o filtro RC de passagem baixa mostrado abaixo. Os filtros analógicos são caracterizados pela resposta de freqüência que é o quanto as freqüências são atenuadas (resposta de magnitude) e deslocadas (resposta de fase). A resposta de freqüência pode ser analisada usando uma transformada de Laplace que define uma função de transferência no domínio S. Para o circuito acima, a função de transferência é dada por: Para R é igual a um quilo-ohm e C é igual a um microfarad, a resposta de magnitude é mostrada abaixo. Observe que o eixo dos x é logarítmico (cada marca é 10 vezes maior que a última). O eixo y está em decibéis (o que é uma função logarítmica da saída). A frequência de corte para este filtro é de 1000 rads ou 160 Hz. Este é o ponto em que menos da metade do poder em uma determinada freqüência é transferida da entrada para a saída do filtro. Os filtros analógicos devem ser usados em projetos embutidos quando amostragem de um sinal usando um conversor analógico para digital (ADC). O ADC apenas captura freqüências que são até metade da freqüência de amostragem. Por exemplo, se o ADC adquire 320 amostras por segundo, o filtro acima (com uma freqüência de corte de 160Hz) é colocado entre o sinal ea entrada ADC para evitar aliasing (que é um fenômeno onde as freqüências mais altas aparecem no sinal amostrado como Freqüências mais baixas). Filtros digitais Os filtros digitais atenuam as freqüências em software em vez de usar componentes analógicos. Sua implementação inclui amostragem dos sinais analógicos com um ADC, em seguida, aplicando um algoritmo de software. Duas abordagens de design comuns para filtragem digital são filtros FIR e filtros IIR. Os filtros Filtros de Filtros finitos de Resposta a Impulso (FIR) utilizam um número finito de amostras para gerar a saída. Uma média móvel simples é um exemplo de um filtro FIR de baixa passagem. As freqüências mais altas são atenuadas porque a média suaviza o sinal. O filtro é finito porque a saída do filtro é determinada por um número finito de amostras de entrada. Como exemplo, um filtro de média móvel de 12 pontos acrescenta as 12 amostras mais recentes, em seguida, divide-se por 12. A saída de filtros IIR é determinada por (até) um número infinito de amostras de entrada. Filtros IIR Os filtros Infinite Impulse Response (IIR) são um tipo de filtro digital onde a saída é inifinetelyin teoria de qualquer forma influenciada por uma entrada. A média móvel exponencial é um exemplo de um filtro IIR de passagem baixa. Filtro médio exponencial exponencial Uma média móvel exponencial (EMA) aplica pesos exponenciais a cada amostra para calcular uma média. Embora isso pareça complicado, a equação conhecida em linguagem de filtragem digital como a equação de diferença para calcular a saída é simples. Na equação abaixo, y é a saída x é a entrada e alfa é uma constante que define a freqüência de corte. Para analisar como esse filtro afeta a freqüência da saída, a função de transferência do domínio Z é usada. A resposta de magnitude é mostrada abaixo para alfa igual a 0,5. O eixo dos e é, novamente, mostrado em decibéis. O eixo dos x é logarítmico de 0,001 a pi. A freqüência do mundo real se correlaciona com o eixo x, sendo zero a tensão CC e sendo igual a metade da frequência de amostragem. Quaisquer freqüências que são maiores que metade da freqüência de amostragem serão alias. Como mencionado, um filtro analógico pode garantir que praticamente todas as freqüências no sinal digital estão abaixo da metade da freqüência de amostragem. O filtro EMA é benéfico em projetos incorporados por dois motivos. Primeiro, é fácil ajustar a freqüência de corte. Diminuir o valor do alfa diminuirá a freqüência de corte do filtro como ilustrado pela comparação do gráfico alfa 0.5 acima com o gráfico abaixo, onde alfa 0.1. Em segundo lugar, o EMA é fácil de codificar e requer apenas uma pequena quantidade de energia e memória informática. A implementação do código do filtro usa a equação de diferença. Existem duas operações de múltiplas operações e uma operação de adição para cada saída. Isso ignora as operações necessárias para arredondar matemática de ponto fixo. Somente a amostra mais recente deve ser armazenada na RAM. Isto é substancialmente menor do que o uso de um filtro de média móvel simples com N pontos que requer N operações de multiplicação e adição, bem como N amostras a serem armazenadas na RAM. O código a seguir implementa o filtro EMA usando matemática de ponto fixo de 32 bits. O código abaixo é um exemplo de como usar a função acima. Os filtros de conclusão, tanto analógicos como digitais, são parte essencial dos projetos incorporados. Eles permitem aos desenvolvedores se livrar de freqüências indesejadas ao analisar a entrada do sensor. Para que os filtros digitais sejam úteis, os filtros analógicos devem remover todas as frequências acima da metade da frequência de amostragem. Os filtros digitais IIR podem ser ferramentas poderosas no design incorporado, onde os recursos são limitados. A média móvel exponencial (EMA) é um exemplo de um filtro que funciona bem em projetos incorporados devido aos requisitos de baixa capacidade de memória e computação. (Esta é a Modificação 2 em uma série maior na escrita de um algoritmo PID sólido) O Problema Esta modificação Vai ajustar o termo derivado um pouco. O objetivo é eliminar um fenômeno conhecido como 8220Derivative Kick8221. A imagem acima ilustra o problema. Desde errorSetpoint-Input, qualquer alteração no Setpoint causa uma alteração instantânea no erro. A derivada desta mudança é infinita (na prática, uma vez que dt isn8217t 0 acaba acabando sendo um número muito grande). Esse número é alimentado na equação de pid, o que resulta em um pico indesejável na saída. Felizmente, há uma maneira fácil de se livrar disso. A Solução Acontece que a derivada do Erro é igual à derivada negativa da Entrada, EXCETO quando o Setpoint está mudando. Isso acaba sendo uma solução perfeita. Em vez de adicionar (Derivado Kd do Erro), subtraimos (Derivado Kd da Entrada). Isso é conhecido como usar 8220Derivative on Measurement8221. As modificações aqui são bastante fáceis. We8217re substituindo dError por - dInput. Em vez de lembrar do ultimoError, lembramos agora do últimoInput The Result Here8217s que essas modificações nos trazem. Observe que a entrada ainda parece da mesma forma. Então, nós conseguimos o mesmo desempenho, mas nós não enviamos um enorme pico de Saída sempre que o Setpoint muda. Isso pode ou não ser um grande problema. Tudo depende de quão sensível é a sua aplicação para produzir picos. Do jeito que eu vejo isso, não precisa mais trabalhar para fazê-lo sem chutar, então por que não fazer coisas bem. Próximo Esta entrada foi postada na sexta-feira, 15 de abril de 2011 às 3:02 pm e está arquivada em Codificação. PID. Você pode acompanhar as respostas a esta entrada através do feed RSS 2.0. Você pode deixar uma resposta. Ou rastreamento de seu próprio site. 9 Responses to 8220Improving the Beginners PID 8211 Derivative Kick8221
5 Dicas para trocar opções binárias com um trabalho a tempo inteiro Não seria incrível se você pudesse negociar opções binárias para se viver e sair do seu dia de trabalho Bem, se você quiser poder fazer isso, você terá que ficar o suficiente e estar fazendo Dinheiro suficiente para considerar fazê-lo racional ou você sentirá muito pena. Infelizmente, existem muitos anúncios de afiliados de opções binárias que dizem aos comerciantes potenciais que abandonem seus empregos do dia, mas essa é uma idéia muito ruim para alguém que acaba de começar com quem não tem uma tonelada de capital e uma quantidade razoável de experiência e rentabilidade . Se você quiser ver um exemplo de um desses anúncios terríveis, assista este vídeo e leia o artigo que acompanha para entender por que é tão ruim. A dificuldade de negociação ao trabalhar um emprego a tempo inteiro decorre do fato de que a própria negociação é um trabalho a tempo inteiro. Isso é verdade praticamente, independentemente de como você es...
Comments
Post a Comment