IA na Automação Industrial

Guia do artigo

Como implementar um Filtro de Kalman 1D em Texto Estruturado para dados de sensores ruidosos

Aprenda a implementar e validar um Filtro de Kalman 1D em Texto Estruturado IEC 61131-3 para reduzir o ruído do sensor, limitando o atraso de resposta em comparação com a filtragem passa-baixa simples.

Resposta direta

Um Filtro de Kalman 1D em Texto Estruturado IEC 61131-3 estima o valor real do processo a partir de dados de sensores ruidosos, atualizando o estado, o ganho e a covariância a cada ciclo de varredura (scan). Comparado com um filtro passa-baixa padrão, ele pode reduzir a variância preservando um rastreamento mais rápido, o que é fundamental quando malhas PID, alarmes ou intertravamentos não toleram atrasos de fase evitáveis.

O que este artigo responde

Resumo do artigo

Um Filtro de Kalman 1D em Texto Estruturado IEC 61131-3 estima o valor real do processo a partir de dados de sensores ruidosos, atualizando o estado, o ganho e a covariância a cada ciclo de varredura (scan). Comparado com um filtro passa-baixa padrão, ele pode reduzir a variância preservando um rastreamento mais rápido, o que é fundamental quando malhas PID, alarmes ou intertravamentos não toleram atrasos de fase evitáveis.

Dados de processo ruidosos não são um inconveniente de programação; são um problema de controle. Sensores de nível ultrassônicos, células de carga, transmissores de pressão e medidores de vazão produzem ruído de medição sob condições normais de planta, pois vibração, EMI, turbulência, ar aprisionado e realidades de montagem não desaparecem educadamente em prol de uma tendência limpa.

Métrica da Ampergon Vallis: Em testes de bancada dentro do Simulador de Sinais do OLLA Lab, um filtro de atraso de primeira ordem aplicado a um sinal de nível ruidoso produziu aproximadamente 400 ms de atraso de resposta, enquanto um Filtro de Kalman 1D implementado em Texto Estruturado rastreou a mesma forma de onda subjacente com cerca de 45 ms de atraso, mantendo uma suavidade visual comparável. Metodologia: 12 execuções de teste simuladas, tarefa de rastreamento de nível de sensor único, comparador de linha de base de atraso de primeira ordem, janela de bancada 3/2026. Isso sustenta a afirmação prática de que a estimativa preditiva pode preservar a capacidade de resposta melhor do que a suavização simples nesta condição de teste. Isso não prova superioridade universal em todos os sensores, tempos de ciclo ou escolhas de ajuste.

O ponto de engenharia é simples: se sua malha PID está perseguindo ruído, um filtro passa-baixa pode acalmar a tendência enquanto degrada silenciosamente a resposta de controle. Válvulas e amortecedores geralmente percebem antes que a equipe de operação.

Por que o Texto Estruturado é superior à Lógica Ladder para filtragem de Kalman?

O Texto Estruturado (ST) é a linguagem IEC 61131-3 correta para esta classe de algoritmo, porque a filtragem de Kalman é matemática iterativa com estado retido, não lógica de intertravamento centrada em degraus (rungs). Você pode forçar as equações para o Diagrama Ladder (LD), mas "possível" não é o mesmo que "sensato".

O Texto Estruturado se adapta melhor ao algoritmo por três razões

- Clareza de execução: O ST expressa operações algébricas diretamente. A sequência de previsão-atualização é lida na mesma ordem que as equações subjacentes.

- Retenção de estado: Um filtro de Kalman deve carregar valores de estimativa anteriores de um ciclo para o próximo, incluindo a covariância anterior e a estimativa de estado anterior. O ST lida com isso naturalmente com variáveis retidas (RETAIN).

- Auditabilidade: No LD, o mesmo filtro geralmente se torna uma cadeia de blocos `ADD`, `SUB`, `MUL` e `DIV` espalhados por várias redes. Isso é mais difícil de revisar, mais difícil de manter e mais fácil de quebrar durante edições.

- Disciplina do ciclo de varredura: Matemática complexa de ponto flutuante no LD pode aumentar a sobrecarga visual e de execução. O problema não é que os CLPs não consigam fazer matemática; eles conseguem. O problema é que o LD é um lugar ruim para esconder um pequeno método numérico.

A distinção prática é sintaxe versus capacidade de implantação

A Lógica Ladder é excelente para permissivos, sequências, intertravamentos e visibilidade de controle discreto. Não é o melhor meio para estimativa numérica compacta. Um filtro de Kalman 1D é pequeno, mas ainda é um estimador de estado. Trate-o como tal.

Por que isso é importante para o risco de comissionamento

O ST personalizado em um controlador ativo introduz modos de falha reais. Malhas mal limitadas, inicialização incorreta, condições de divisão por quase zero ou erros lógicos simples podem acionar falhas de watchdog ou comportamento instável, dependendo da plataforma e da implementação. O OLLA Lab é útil aqui como um ambiente de validação delimitado: os engenheiros podem compilar, simular, injetar ruído e ajustar parâmetros antes da implantação em campo, onde os erros são menos educativos e mais caros.

Quais são as equações matemáticas fundamentais de um Filtro de Kalman 1D?

Um Filtro de Kalman 1D estima um único estado escalar a partir de medições ruidosas, repetindo uma fase de previsão e uma fase de atualização a cada ciclo. Em termos de CLP, é um estimador recursivo que decide quanto confiar no modelo versus o valor do sensor recebido.

Variáveis principais

O valor filtrado que você deseja usar a jusante.

  • X — Estimativa de estado atual

A estimativa retida do ciclo anterior.

  • X_prev — Estimativa de estado anterior

Uma medida de incerteza na estimativa atual.

  • P — Covariância do erro de estimativa

A covariância retida do ciclo anterior.

  • P_prev — Covariância do erro de estimativa anterior

A incerteza assumida no próprio sistema. Um `Q` maior faz o filtro responder mais rapidamente às mudanças.

  • Q — Covariância do ruído do processo

A incerteza assumida na medição do sensor. Um `R` maior faz o filtro confiar menos no sensor.

  • R — Covariância do ruído de medição

O fator de ponderação dinâmica entre previsão e medição.

  • K — Ganho de Kalman

A variável de processo ruidosa que entra no filtro.

  • Raw_Input — Valor do sensor medido

Equações de previsão e atualização

Para a forma 1D mais simples, onde assume-se que o estado persiste entre os ciclos sem um modelo de movimento mais detalhado:

Fase de previsão

  • `P = P_prev + Q`

Fase de atualização

  • `K = P / (P + R)`
  • `X = X_prev + K * (Raw_Input - X_prev)`
  • `P_prev = (1 - K) * P`
  • `X_prev = X`

Significado operacional de Q e R

O comportamento de ajuste é governado principalmente por `Q` e `R`.

  • Aumente Q quando o processo subjacente puder mudar rapidamente e o estimador precisar se adaptar mais rápido.
  • Aumente R quando o sensor for ruidoso e o estimador deva confiar menos nas medições.
  • Se Q for muito baixo, o filtro torna-se lento.
  • Se R for muito baixo, o filtro segue o ruído com muita avidez.
  • Se ambos forem estimados incorretamente, o resultado ainda é um filtro, apenas não um útil. A matemática não substitui a compreensão do processo.

Como escrever um Filtro de Kalman 1D em Texto Estruturado IEC 61131-3?

Uma implementação mínima requer variáveis retidas, inicialização explícita e um caminho de execução por ciclo. O código abaixo é intencionalmente simples e adequado para adaptação em um bloco de função ou seção de programa cíclico.

### Exemplo: Filtro de Kalman 1D em Texto Estruturado

Exemplo em Texto Estruturado:

VAR Raw_Input : REAL; // Entrada do sensor ruidoso Filtered_Output : REAL; // Resultado filtrado

X : REAL; // Estimativa de estado atual X_prev : REAL := 0.0; // Estimativa de estado anterior

P : REAL; // Covariância de erro atual P_prev : REAL := 1.0; // Covariância de erro anterior

Q : REAL := 0.01; // Covariância do ruído do processo R : REAL := 0.10; // Covariância do ruído de medição

K : REAL; // Ganho de Kalman

InitDone : BOOL := FALSE; END_VAR

// Inicialização única IF NOT InitDone THEN X_prev := Raw_Input; P_prev := 1.0; InitDone := TRUE; END_IF;

// Fase de previsão P := P_prev + Q;

// Fase de atualização K := P / (P + R); X := X_prev + K * (Raw_Input - X_prev);

// Armazenar para o próximo ciclo P_prev := (1.0 - K) * P; X_prev := X;

// Saída Filtered_Output := X;

Notas de implementação importantes em um CLP real

  • Inicialize a partir da primeira medição ativa em vez de zero, sempre que possível. Isso evita um transiente de inicialização desnecessário.
  • Retenha apenas o que o algoritmo precisa. Nesta forma simples, isso é principalmente `X_prev` e `P_prev`.
  • Use tipos de ponto flutuante apropriados para a plataforma. Alguns CLPs tratam `REAL` e `LREAL` de forma diferente o suficiente para importar na estabilidade do ajuste.
  • Evite a reinicialização oculta. Se `InitDone` for redefinido inesperadamente, o filtro parecerá "saltar" ao reiniciar.
  • Mantenha a execução determinística. O filtro deve ser executado uma vez por ciclo ou uma vez por tarefa agendada, não de forma oportunista.

Quando encapsular isso em um bloco de função

Um bloco de função é preferível quando você precisa de:

  • múltiplas instâncias para diferentes sensores,
  • encapsulamento explícito de estado,
  • comportamento de inicialização padronizado,
  • reutilização mais limpa entre projetos.

Esse é geralmente o padrão de produção correto. A versão inline ainda é útil para compreensão e validação de bancada.

Como testar a resposta do filtro contra ruído injetado no OLLA Lab?

Testar é a diferença entre escrever código e validar comportamento. O OLLA Lab é relevante aqui porque fornece um ambiente baseado em navegador para ensaiar a parte arriscada: provar o filtro sob condições ruidosas, variáveis e semelhantes a falhas antes que ele toque em um processo ativo.

Defina "Pronto para Simulação" corretamente

Pronto para Simulação não significa "capaz de escrever sintaxe de CLP de memória". Significa que um engenheiro pode provar, observar, diagnosticar e fortalecer a lógica de controle contra o comportamento real do processo antes que ele chegue a um sistema ativo. Isso inclui observar E/S, comparar o estado do Ladder ou ST com o estado do equipamento simulado, injetar condições anormais e revisar a lógica após um caso de falha.

Esse é um padrão mais rigoroso do que a conclusão de um tutorial. Também é mais próximo do comissionamento real.

Um fluxo de trabalho de teste prático no OLLA Lab

  • Abra o Painel de Variáveis.
  • Mapeie `Raw_Input` para uma fonte analógica simulada no Simulador de Sinais.
  • Use um perfil analógico lento de seno, rampa ou degrau para representar um valor de processo em mudança, como nível de tanque, pressão ou vazão.
  • Sobreponha ruído ao sinal base para simular vibração, turbulência ou interferência elétrica.
  • Comece com ruído moderado, depois aumente a amplitude para testar a robustez do estimador.
  • Monitore `Raw_Input` e `Filtered_Output` juntos.
  • Observe se o sinal filtrado suprime o ruído sem ficar materialmente atrás da forma de onda subjacente.
  • Aumente `R` se o filtro seguir o ruído muito de perto.
  • Aumente `Q` se o filtro estiver muito lento para rastrear o movimento genuíno do processo.
  • Introduza mudanças de degrau, picos ou reversões repentinas de processo.
  • Confirme se o estimador se recupera de forma limpa e não desestabiliza a lógica a jusante.
  1. Vincule o sinal bruto
  2. Aplique uma forma de onda base
  3. Injete ruído de medição
  4. Observe a resposta filtrada
  5. Ajuste Q e R ao vivo
  6. Teste transições anormais

O que o OLLA Lab está e não está fazendo aqui

O OLLA Lab é um ambiente de validação e ensaio para tarefas de comissionamento de alto risco. Neste contexto, ele permite que os engenheiros testem a lógica ST, inspecionem o comportamento das variáveis e comparem a resposta do processo simulado com a saída do algoritmo sem arriscar um controlador físico ou uma sequência de planta ativa. Não é um substituto para aceitação no local, verificação de malha, validação de segurança ou treinamento de operador no ativo real. Esses limites importam.

Qual é a diferença entre um Filtro de Kalman e um filtro passa-baixa no controle de processos?

Um filtro passa-baixa suprime a variação de alta frequência suavizando o sinal ao longo do tempo. Um Filtro de Kalman 1D estima o estado real mais provável equilibrando a incerteza da estimativa anterior contra a incerteza da medição. O primeiro é uma suavização direta; o segundo é uma estimativa recursiva.

Comparação prática

| Critério | Atraso de 1ª Ordem / Filtro Passa-Baixa | Filtro de Kalman 1D | |---|---|---| | Método principal | Suavização baseada no tempo | Estimativa de estado preditiva | | Termos de ajuste principais | Constante de tempo / coeficiente de filtro | Ruído do processo `Q`, ruído de medição `R` | | Resposta ao ruído | Boa | Boa | | Atraso de resposta | Frequentemente significativo | Frequentemente menor quando bem ajustado | | Consciência do modelo | Mínima | Ponderação de incerteza explícita | | Complexidade de implementação no CLP | Baixa | Moderada | | Melhor caso de uso | Aplicações simples onde o atraso é aceitável | Medições ruidosas onde a capacidade de resposta importa |

A consequência no controle não é sutil

Se um filtro passa-baixa adicionar atraso de fase suficiente, a malha pode parecer mais calma na tendência enquanto tem um desempenho pior na operação. Essa é a armadilha. Uma tendência que agrada aos olhos ainda pode punir o atuador.

Uma afirmação de engenharia delimitada

Um Filtro de Kalman 1D não é automaticamente melhor do que um filtro passa-baixa. Ele é mais adequado quando:

  • o ruído do sensor é material,
  • a resposta do processo importa,
  • a lógica de PID ou alarme a jusante é sensível ao atraso,
  • e o engenheiro pode ajustar `Q` e `R` com alguma disciplina.

Se a aplicação for lenta, tolerante e não crítica, um filtro passa-baixa simples pode ser totalmente adequado. A complexidade deve justificar sua existência.

Que evidências de engenharia você deve manter ao validar um filtro?

Capturas de tela não são evidências de engenharia por si só. São lembranças, a menos que estejam vinculadas a uma definição de teste.

Ao documentar a validação de um filtro, construa um corpo compacto de evidências usando esta estrutura:

  1. Descrição do sistema Defina o ativo simulado, tipo de sensor, variável de processo, contexto de varredura e relevância do controle a jusante.
  2. Definição operacional de "correto" Declare o que o sucesso significa em termos observáveis, como variância reduzida, atraso de rastreamento aceitável, comportamento estável do PID ou redução de alarmes falsos.
  3. Lógica Ladder e estado do equipamento simulado Registre o contexto da lógica de controle e o comportamento do processo simulado no momento do teste.
  4. O caso de falha injetado Especifique o perfil de ruído, condição de pico, queda ou distúrbio introduzido.
  5. A revisão feita Documente as mudanças de parâmetros, mudanças de código ou mudanças de inicialização aplicadas.
  6. Lições aprendidas Capture qual suposição de ajuste funcionou, o que falhou e o que deve ser verificado antes da implantação.

Este é o tipo de evidência que sobrevive à revisão. Uma galeria de capturas de tela raramente sobrevive.

Quais padrões e literatura importam ao aplicar lógica de filtragem em ambientes de CLP?

A filtragem não é uma alegação de segurança funcional por si só, mas a qualidade da implementação ainda reside em uma disciplina mais ampla de correção de software, validação e desempenho de controle. Os padrões e a literatura relevantes ajudam a definir como é uma boa engenharia.

Contexto de padrões

  • IEC 61131-3 rege as linguagens de programação de CLP, incluindo Texto Estruturado e Diagrama Ladder. É a estrutura de linguagem relevante para a forma de implementação.
  • IEC 61508 é relevante quando o comportamento do software afeta sistemas relacionados à segurança ou rigor do ciclo de vida. Ele não "aprova" um filtro de Kalman, mas aguça as expectativas em torno da verificação, rastreabilidade e integridade do software.
  • Orientações de organizações como a exida são úteis ao discutir disciplina de validação, comportamento de falha e separação entre conveniência de controle e função de segurança.

Contexto de literatura

A literatura recente em controle de processos, fusão de sensores e simulação digital geralmente apoia algumas conclusões delimitadas:

  • medições industriais são rotineiramente corrompidas por ruído e distúrbio;
  • as escolhas de filtragem afetam tanto a qualidade do sinal quanto a capacidade de resposta do controle;
  • ambientes de simulação e gêmeos digitais podem melhorar a validação pré-implantação quando usados para testar o comportamento observável em vez de apenas demonstrar gráficos;
  • a programação assistida por IA pode acelerar o rascunho, mas a revisão determinística permanece essencial.

Esse último ponto merece uma linguagem clara: o código gerado ainda é seu problema assim que chega a um controlador.

Conclusão

Um Filtro de Kalman 1D é útil no trabalho com CLP porque aborda um problema real de planta: medições ruidosas que não podem ser suavizadas com atraso pesado sem degradar a qualidade do controle. O Texto Estruturado é o meio de implementação correto para este algoritmo, porque o método depende de estado retido e expressões numéricas compactas. O OLLA Lab torna-se operacionalmente útil no estágio de validação, onde os engenheiros precisam injetar ruído, monitorar a resposta, ajustar `Q` e `R` e fortalecer a lógica antes da implantação.

A distinção que vale a pena manter é simples: filtragem não é apenas sobre tornar uma tendência mais limpa; é sobre preservar a qualidade da decisão sob ruído. No controle de processos, essa diferença chega ao atuador rapidamente.

Continue explorando

Interlinking

References

Transparência editorial

Este post do blog foi escrito por uma pessoa, com toda a estrutura principal, o conteúdo e as ideias originais criados pelo autor. No entanto, este post inclui texto refinado com a assistência do ChatGPT e do Gemini. O suporte de IA foi usado exclusivamente para corrigir gramática e sintaxe e para traduzir o texto original em inglês para espanhol, francês, estoniano, chinês, russo, português, alemão e italiano. O conteúdo final foi revisado criticamente, editado e validado pelo autor, que mantém total responsabilidade pela sua precisão.

Sobre o autor:PhD. Jose NERI, Lead Engineer at Ampergon Vallis

Verificação de fatos: Validade técnica confirmada em 2026-03-23 pela equipe de QA do laboratório Ampergon Vallis.

Pronto para implementação

Use fluxos de trabalho apoiados por simulação para transformar esses insights em resultados mensuráveis para a planta.

© 2026 Ampergon Vallis. All rights reserved.
|