ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Controls] 평균데이터를 이용한 Analog 신호 Noise 처리 방법
    카테고리 없음 2024. 6. 21. 15:31
    728x90
    반응형

      평균데이터를 이용한 신호처리

    계측기의 데이터를 모니터링 하거나 제어해야 할 때, 이전 게시글에서 설명했듯 Noise로 인해 값이 튀는 현상들이 발생되고는 합니다. 

     

    2024.06.07 - [분류 전체보기] - [Controls] Analog 신호 Noise 처리 방법 (Signal Processing)

     

    [Controls] Analog 신호 Noise 처리 방법 (Signal Processing)

    신호처리 (Signal Processing)의 목적세상의 모든 종류의 물리량의 신호를 디지털 장치, 이를 테면 컴퓨터, 계측장치, 수집장치 등에서 사용하기 위해서는 물리적인 신호를 디지털로 변환하는 방법이

    phoonyresearchnote.tistory.com

     

    정교하게 설계된 Low pass filter, High pass filter, Band-pass filter 등을 활용하여 Noise를 제거 하는 방법도 있습니다. 하지만 특정 제품을 설계하는 하드웨어 엔지니어가 아니라 시중에 유통되는 Controller, 계측기, Transmitter 등을 이용하는 자동화 엔지니어라면 하드웨어 단에서 이루어지는 필터를 구현하기는 어렵습니다.

     

    그래서 일반적으로 계측 데이터의 Hunting, 즉 흔들림을 잡기 위해 평균데이터를 이용하는 방법을 주로 많이 사용하는데요, 좀더 안정적인 Hunting 없는 데이터를 얻기 위해 사용하는 프로그램 기법을 소개하고자 합니다.

     

     

      헌팅이란 ? (Hunting)

    현장에서 일하다 보면, 아날로그 데이터들을 입력받을 때 헌팅이 너무 심하다는 말들을 하곤 합니다.

    그럼 이 헌팅은 뭘까요?

     

    이전 글에서도 설명했지만, 압력/전압/전류/유량 같은 물리량을 디지털 신호로 변환할 때는 Analog to Digital Converting 작업을 해야 합니다. 

     

    이 AD Converting 작업을 하는 동안 Sampling 주기에 따라 현재의 물리량을 Digital 데이터로 읽을 때 연속적인 데이터로 읽을 수가 없습니다. 그래서 일정 주기를 가지고 현재 물리량을 변환하는데 이때 100% 일치 할 수 없기 때문에 값이 흔들리는 것처럼 보일 수 있습니다. 

     

    2024.05.31 - [Controls] - [Control] 아날로그(4-20mA) 를 디지털 신호로 변환 (A/D Converting)

     

    [Control] 아날로그(4-20mA) 를 디지털 신호로 변환 (A/D Converting)

    Analog Signal 이란 아날로그 신호는 연속적으로 변화하는 물리량을 나타내는 신호입니다. 이는 시간에 따라 부드럽게 변하는 값으로, 다양한 현상을 정확하게 표현할 수 있습니다. 예를들면온도 :

    phoonyresearchnote.tistory.com

     

    어원이 어딘지를 모르겠으나, 현장이나 실무에선 이걸 헌팅이라고 하고, Analog 신호가 Fluctuation 하는 현상을 Hunting 한다 정도로 생각하시면 될 것 같습니다.

     

      헌팅이 왜?

    이렇게 흔들리는 신호가 뭐가 문제냐면, 

    단순히 모니터링하는 시스템이라면 "아 소수점 둘째자리가 흔들리는 구나" 정도로 인지 하면 되겠지만, 극 미량을 제어해야 하는 Process Value 값으로 사용할 때라면 이야기가 달라지게 됩니다. 

     

    예를들어 시간당 100 m^3 만큼의 유체를 배출하는 시스템이라고 가정하고, 우리는 1초당 배출량을 제어해야 한다고 했을 때 초당 0.01m^3 만큼의 유량의 오차는 결국 시간당 36m^3 의 차이가 발생하게 되는 것입니다. 

     

      헌팅이 왜?

    그래서 많은 현장에서는 이 흔들리는 데이터를 최소화 하기 위해 평균데이터를 많이 사용하는데요

    오늘은 실제 PLC 프로그램을 통해 평균데이터를 어떻게 처리할 것인가 한번 살펴 보겠습니다.

     

     

     

      FIFO (Front-In Front-Out)

    예를 들어 100개의 배열이 있고, 배열 전체에 대해 평균데이터를 계산한다고 했을 때, 이 데이터는 꾸준히 감소하는 데이터 입니다.

    데이터의 입력이 예를들어 50번째, 60번째 순서와 관계없이 입력된다면 0번부터 99번까지 감소하다 50번에 새롭게 감소한 데이터가 들어오게 된다면 아래 그래프처럼 튀는 데이터가 만들어 지게 됩니다. 

     

     

     

    그래서 입력이 발생했을 때, 0번 배열에 넣고 뒤의 배열들은 한칸씩 밀어줍니다. 그리고 마지막 배열인 99번 배열의 값은 버립니다. 이런 방식을 Front-In, Front-Out (FIFO)라 부릅니다.

     

     

    이렇게하면 아래와같이 일정하게 감소하는 그래프를 볼 수 있습니다.

     

     

     

     

    오늘은 Hungint이 무엇인지, 왜 발생하는지 그리고 FIFO를 통해 평균데이터를 도출하여 안정적인 제어를 가능하도록 하는 방법을 살펴 보았습니다.

     

    오늘은 그럼 이것으로 마치겠습니다.

     

    728x90
    반응형

    댓글