Exemplo Médio Móvel Labview
Calculando a média móvel Este VI calcula e exibe a média móvel, usando um número pré-selecionado. Primeiro, o VI inicializa dois registros de deslocamento. O registro de deslocamento superior é inicializado com um elemento e, continuamente, adiciona o valor anterior com o novo valor. Este registro de deslocamento mantém o total das últimas x medições. Depois de dividir os resultados da função de adicionar com o valor pré-selecionado, o VI calcula o valor médio móvel. O registro de deslocamento inferior contém uma matriz com a dimensão Média. Este registro de deslocamento mantém todos os valores da medida. A função de substituição substitui o novo valor após cada loop. Este VI é muito eficiente e rápido porque usa a função de elemento de substituição dentro do loop while e ele inicializa a matriz antes de entrar no loop. Este VI foi criado no LabVIEW 6.1. Bookmark amp ShareSimple Media móvel 6 Normalmente, quando as pessoas falam sobre uma média móvel, significam substituir o ponto N pela média dos pontos M em torno do ponto N. Suponha que eu tenho 100 pontos cujos valores são 1, 2, 3. 100 e eu quero Faça uma média móvel de 5 pontos. A primeira coisa a notar é que existe uma média móvel do terceiro ponto é a média de 1, 2, 3, 4, 5 3. A média do quarto ponto é a média de 2, 3, 4, 5, 6 4. No entanto, este é talvez um exemplo muito simples. Como sobre a média de uma função Step, 0 de 1 a 10, então 20 depois. Novamente, jogue fora os pontos 1 e 2. A média dos pontos 1-5 (para entrar no ponto 3) 0 (já que todos os pontos são 0). Da mesma forma com o ponto 4, 5, 6,7 e 8. No entanto, o ponto 9 é a média de 0, 0, 0, 0, 20 4. Como sobre o ponto 10 Bem, deve ser a média de 0, 0, 0 , 20, 20 8, mas você se lembrou de não substituir Point 9 Hmm, parece que precisamos manter duas cópias da matriz (o que, em geral, é caro). Há várias maneiras de evitar isso. Você entende onde o problema surge no parágrafo anterior Se não, tente fazer isso com lápis e papel (ou tente codificá-lo no LabVIEW). Eu vou dar-lhe a resposta para que você possa verificar - a média móvel da função Step é -, -, 0, 0, 0, 0, 0, 0, 0, 4, 8, 12, 16, 20, 20 , 20. -, - (onde - são os valores vazios nas extremidades da matriz, os pontos que você não tem vizinhos suficientes). P. S. - não me surpreenderia se houvesse uma função LabVIEW que faça isso por você. Mas se você está aprendendo o LabVIEW e quer ter uma melhor compreensão de como os algoritmos que você está conectando no trabalho, nunca dói jogar e experimentá-lo sozinho. Você pode até encontrar uma melhoria (vários de nós já o fizeram). Obrigado por sensibilizar sobre os pontos mais finos do método da Moeda Variável. Esta é uma ferramenta estatística que ajuda a ver o que você deseja ver, abstraindo os distractores. Portanto, o método é obrigado a ter algumas falhas em algumas situações ou contexto. Mas acho que é perfeitamente adequado para o meu tipo de registro de dados dof - é uma pressão ou temperatura ou sinal de fluxo - e adquiro em algo como 400 amostras de segundo e depois use uma amostra única calculada em média. E o processo é bastante lento, pois meu código principal é executado a uma velocidade não superior a 20 Hz. Então, quando eu faço uma média de 5 amostras, a minha primeira amostra chega 5 x 50 ms depois, então, por cada 50 ms, recebo uma amostra válida. Basicamente, estou mais preocupado com as tendências e sem valores pontuais. Nisto há pouca preocupação com amostras perdidas ou valores desonesto. Claro, eu não ousaria usar isso para uma função Step. Isso seria cruel. Raghunathan LV2012 para automatizar plataformas de teste hidráulico. Mensagem 4 de 15 (822 Visualizações) Re: Simple Moving Average VI 03-30-2016 11:58 PM Há ptbypt médio que faz o mesmo. Você pode inspecionar o código se desejar. Uma grande falha em seu código é o fato de que você cresce constantemente e encolhe uma matriz existente. Você deve tentar encontrar uma solução que funcione no local em uma matriz de tamanho fixo. Alguns exemplos foram postados no fórum ao longo dos anos (veja hee, por exemplo). A média não se importa se os elementos estão fora de ordem, então você pode simplesmente substituir o elemento mais antigo, não importa onde ele esteja localizado. Você também está antecipando o novo elemento ao início de uma matriz existente, que é sempre muito mais cara do que adicionar até o fim. O tamanho da amostra não pode mudar quando o VI estiver sendo executado. Seu registro de deslocamento deve ser inicializado com uma matriz vazia, não uma matriz que já contém um único elemento que é zero. (Este zero extra dará médias erradas) Seu código deve ser transformado em um subVI para que ele possa ser reutilizado (semelhante à versão Ptbypt). Seu VI nunca pode ser interrompido, apenas abortado. Boas dicas de otimização. O ponto de inicialização com o Zero me perdeu. E sim, o usuário não deve alterar o tamanho da amostra uma vez que ele começa a ser executado. Finalmente, vou fazer um SubVI e lidar com coisas como parar, etc. Quanto ao ponto de prepender do que adicionar o novo valor à matriz, talvez haja uma penalidade de desempenho, mas dado o tamanho da minha matriz, estou certo de que a CPU não se importa com a velocidade . Mas para mim tem que ser assim, pois uso os dados finais para traçar uma tendência de um parâmetro físico. Obrigado pelo seu tempo. Raghunathan LV2012 para automatizar plataformas de teste hidráulico. Obrigado por sensibilizar sobre os pontos mais finos do método da Moeda Variável. Esta é uma ferramenta estatística que ajuda a ver o que você deseja ver, abstraindo os distractores. Portanto, o método é obrigado a ter algumas falhas em algumas situações ou contexto. Mas acho que é perfeitamente adequado para o meu tipo de registro de dados dof - é uma pressão ou temperatura ou sinal de fluxo - e adquiro em algo como 400 amostras de segundo e depois use uma amostra única calculada em média. E o processo é bastante lento, pois meu código principal é executado a uma velocidade não superior a 20 Hz. Então, quando eu faço uma média de 5 amostras, a minha primeira amostra chega 5 x 50 ms depois, então, por cada 50 ms, recebo uma amostra válida. Aha Então você não quer uma média móvel, mas apenas uma média simples. Isso é muito mais fácil. É a idéia (o que funciona muito melhor com um Design ProducerConsumer) - Digamos que você esteja fazendo amostragem a 400Hz, quer salvar os dados em 400 Hz (ou seja, salvar todos os dados no disco), mas deseja exibir a 20 Hz (porque você Quer ver tendências, uma base de tempo mais longa, etc.). Configure seu sistema AD para coletar 20 amostras a 400Hz (note que você pode coletar N Canais ao mesmo tempo, dando-lhe uma matriz 2D de amostras. À medida que você obtém os dados (a 20 Hz) do AD (tornando este o Produtor) O consumidor começa escrevendo os dados no disco (não deve demorar muito tempo). Agora você tem uma matriz 2D - em um Loop For, em um canal por canal, média dos 20 pontos. Agora você tem uma matriz 1D, com um ponto invertido para cada canal. Avance e trafique. Observe que este esquema (a) usa todos os dados, (b) manipula dados multicanal com aplomo (e, se você estiver Do Oriente Médio, onde eles crescem, você também pode lidar com seus dados com uma ameixa suculenta), e (c) permite que você colete seus dados do equipamento AD, guarde seus dados no disco mantendo todos os pontos e mostre seus dados em A tela usando todos os seus pontos, mas também progride para melhorar a relação sinal / ruído visual, tudo sem perder dados (Ive fez exatamente isso com 24 canais a 1KHz, com Os dados foram retirados em um sistema remoto e enviados para o PC via TCPIP, então também temos processamento TCP no loop). Bem-vindo ao mundo emocionante de aquisição e processamento de dados com o LabVIEW. Confie em mim, este é um sistema maravilhoso para fazer este tipo de trabalho Com base nos comentários que recebi no meu VI original, eu refinei o código da Moeda Mínima para um subVI. Então usei-o para uma média de dados simulados de 10 canais, apenas para manter as coisas simples, certifiquei-me de que todos os canais tinham dados idênticos. Espera-se então obter a mesma média móvel para os 10 canais. Estou surpreso com a pequena variação que notei entre canais - geralmente eles são próximos, mas não exatos. E apenas para explicar o processo que estou tentando, eu também encerrei um XLS. Então, de onde vem a variação. O registro de desligamento não inicializado dentro do Sub VI. Raghunathan LV2012 para automatizar plataformas de teste hidráulico. Mensagem 9 de 15 (725 Visualizações) Re: Average Moving Simple VI altenbach 04-01-2016 10:25 AM Seu código ainda não faz sentido. Quando você está chamando o subalterno um escalar de cada vez, você não está recebendo o que deseja porque o registro de desligamento apenas relembra os últimos N escalares, independentemente do canal de que seja. Seu código ainda é muito ineficiente e complicado. (Por exemplo, por que você ainda está usando a inserção na matriz para anexar (tanto no mani nad no sub). (Você poderia usar um subVI reenetrante e um loop FOR mais interno paralelo, mas isso parece excessivamente complicado também) Se você quer fazer um Em média, em cada canal, o subVI precisa manter uma matriz 2D no subVI. Tudo isso foi feito antes. Mensagem 10 de 15 (709 Visualizações) Médias móveis: quais são eles Entre os indicadores técnicos mais populares, as médias móveis são usadas Para medir a direção da tendência atual. Todo tipo de média móvel (comumente escrito neste tutorial como MA) é um resultado matemático que é calculado pela média de um número de pontos de dados passados. Uma vez determinado, a média resultante é então plotada em um Para permitir que os comerciantes vejam os dados suavizados ao invés de se concentrar nas flutuações do preço do dia a dia que são inerentes a todos os mercados financeiros. A forma mais simples de uma média móvel, apropriadamente conhecida como uma média móvel simples (SMA) É calculado por tak Na média aritmética de um dado conjunto de valores. Por exemplo, para calcular uma média móvel básica de 10 dias, você adicionaria os preços de fechamento dos últimos 10 dias e depois dividiria o resultado em 10. Na Figura 1, a soma dos preços nos últimos 10 dias (110) é Dividido pelo número de dias (10) para chegar à média de 10 dias. Se um comerciante deseja ver uma média de 50 dias, o mesmo tipo de cálculo seria feito, mas incluiria os preços nos últimos 50 dias. A média resultante abaixo (11) leva em conta os últimos 10 pontos de dados para dar aos comerciantes uma idéia de como um recurso tem um preço relativo aos últimos 10 dias. Talvez você esteja se perguntando por que os comerciantes técnicos chamam essa ferramenta de uma média móvel e não apenas um meio regular. A resposta é que, à medida que novos valores se tornam disponíveis, os pontos de dados mais antigos devem ser descartados do conjunto e novos pontos de dados devem vir para substituí-los. Assim, o conjunto de dados está constantemente em movimento para contabilizar os novos dados à medida que ele se torna disponível. Este método de cálculo garante que apenas as informações atuais estão sendo contabilizadas. Na Figura 2, uma vez que o novo valor de 5 é adicionado ao conjunto, a caixa vermelha (representando os últimos 10 pontos de dados) se move para a direita e o último valor de 15 é descartado do cálculo. Como o valor relativamente pequeno de 5 substitui o valor alto de 15, você esperaria ver a redução da média do conjunto de dados, o que faz, neste caso de 11 a 10. O que as médias móveis parecem Uma vez que os valores da MA foram calculados, eles são plotados em um gráfico e depois conectados para criar uma linha média móvel. Essas linhas curvas são comuns nos gráficos dos comerciantes técnicos, mas como eles são usados podem variar drasticamente (mais sobre isso mais tarde). Como você pode ver na Figura 3, é possível adicionar mais de uma média móvel a qualquer gráfico ajustando o número de períodos de tempo usados no cálculo. Essas linhas curvas podem parecer distrativas ou confusas no início, mas você se acostumará a elas com o passar do tempo. A linha vermelha é simplesmente o preço médio nos últimos 50 dias, enquanto a linha azul é o preço médio nos últimos 100 dias. Agora que você entende o que é uma média móvel e o que parece, bem, introduza um tipo diferente de média móvel e examine como isso difere da média móvel simples mencionada anteriormente. A média móvel simples é extremamente popular entre os comerciantes, mas, como todos os indicadores técnicos, tem seus críticos. Muitos indivíduos argumentam que a utilidade do SMA é limitada porque cada ponto na série de dados é ponderado o mesmo, independentemente de onde ocorre na sequência. Os críticos argumentam que os dados mais recentes são mais significativos do que os dados mais antigos e devem ter uma maior influência no resultado final. Em resposta a esta crítica, os comerciantes começaram a dar mais peso aos dados recentes, que desde então levaram à invenção de vários tipos de novas médias, sendo a mais popular a média móvel exponencial (EMA). (Para leitura adicional, veja Noções básicas de médias móveis ponderadas e qual a diferença entre uma SMA e uma EMA) Média móvel exponencial A média móvel exponencial é um tipo de média móvel que dá mais peso aos preços recentes na tentativa de torná-lo mais responsivo Para novas informações. Aprender a equação um tanto complicada para calcular um EMA pode ser desnecessário para muitos comerciantes, já que quase todos os pacotes de gráficos fazem os cálculos para você. No entanto, para você geeks de matemática lá fora, aqui está a equação EMA: Ao usar a fórmula para calcular o primeiro ponto da EMA, você pode notar que não há nenhum valor disponível para usar como EMA anterior. Este pequeno problema pode ser resolvido iniciando o cálculo com uma média móvel simples e continuando com a fórmula acima a partir daí. Nós fornecemos uma amostra de planilha que inclui exemplos da vida real de como calcular uma média móvel simples e uma média móvel exponencial. A Diferença entre o EMA e o SMA Agora que você tem uma melhor compreensão de como o SMA e o EMA são calculados, dê uma olhada em como essas médias diferem. Ao analisar o cálculo da EMA, você notará que é dada mais ênfase aos pontos de dados recentes, tornando-se um tipo de média ponderada. Na Figura 5, o número de períodos de tempo utilizados em cada média é idêntico (15), mas a EMA responde mais rapidamente aos preços em mudança. Observe como o EMA tem um valor maior quando o preço está subindo e cai mais rápido que o SMA quando o preço está em declínio. Essa capacidade de resposta é a principal razão pela qual muitos comerciantes preferem usar o EMA sobre o SMA. O que os dias diferentes significam As médias em movimento são um indicador totalmente personalizável, o que significa que o usuário pode escolher livremente o período de tempo que deseja ao criar a média. Os períodos de tempo mais comuns usados em médias móveis são 15, 20, 30, 50, 100 e 200 dias. Quanto menor o intervalo de tempo usado para criar a média, mais sensível será para as mudanças de preços. Quanto maior o período de tempo, menos sensível ou mais suavizado, a média será. Não há um marco de tempo certo para usar ao configurar suas médias móveis. A melhor maneira de descobrir qual é o melhor para você é experimentar vários períodos de tempo diferentes até encontrar um que se encaixa na sua estratégia. Médias móveis: como usá-las
Comments
Post a Comment