[PLC] 온도센서 보정을 위한 최소제곱법(OLS) 연산

 

PLC에서 PT100 온도센서 보정을 위한 최소제곱법(OLS) 연산 구현하기

안녕하세요! 오늘은 PLC에 연결된 PT100 온도센서의 교정을 위해 최소제곱법(OLS, Ordinary Least Squares) 을 활용해 보정식을 찾는 방법을 소개합니다.
특히, PLC 프로그래밍 언어 중 하나인 Structured Text(ST) 로 간단한 1차 선형 회귀를 구현하는 예제를 다뤄볼게요.


1. PT100 센서 교정 왜 필요한가?

PT100 센서는 온도에 따라 저항이 변하는 대표적인 RTD(Resistance Temperature Detector)입니다.
하지만 센서마다 약간의 오차가 있고, 배선 길이, 접촉 저항, 노후화 등으로 인해 실제 온도와 PLC에서 측정되는 온도 값에 차이가 발생합니다.

따라서, 정확한 온도 제어를 위해선
‘실제 온도’와 ‘측정 온도’ 사이의 관계를 찾아 보정하는 과정(교정)이 필수입니다.


2. 교정 데이터란?

교정 데이터는 측정된 값과 실제 온도값 쌍으로 구성됩니다.

측정값(PLC 읽은 온도)실제 온도(기준 온도계)
0.00.0
50.051.2
100.0102.5

이 데이터들을 바탕으로 측정값을 실제 온도에 맞게 변환하는 수식을 만들어야 합니다.


3. 최소제곱법(OLS)으로 보정식 만들기

측정값 xx와 실제 온도 yy 사이에 다음과 같은 1차 함수 관계를 가정합니다.

y=a×x+by = a \times x + b

여기서 aa는 기울기, bb는 절편입니다.
a,ba, b 값을 최소제곱법으로 구하는 공식은 아래와 같습니다.

a=n(xiyi)xiyinxi2(xi)2a = \frac{n \sum (x_i y_i) - \sum x_i \sum y_i}{n \sum x_i^2 - (\sum x_i)^2} b=yiaxinb = \frac{\sum y_i - a \sum x_i}{n}

nn은 데이터 개수, xix_i, yiy_i는 각각 측정값과 실제 온도 데이터입니다.


4. PLC ST 언어로 최소제곱법 구현 예제

아래는 3개의 교정 데이터를 가지고 선형 회귀를 계산하는 예시 코드입니다.


VAR x : ARRAY[1..3] OF REAL := [0.0, 50.0, 100.0]; // PLC 측정값 y : ARRAY[1..3] OF REAL := [0.0, 51.2, 102.5]; // 실제 온도 sum_x : REAL := 0.0; sum_y : REAL := 0.0; sum_xy : REAL := 0.0; sum_x2 : REAL := 0.0; a : REAL; // 기울기 b : REAL; // 절편 n : INT := 3; i : INT; 측정값 : REAL := 72.3; // 현재 PLC 센서 입력값 보정값 : REAL; END_VAR // 누적합 계산 FOR i := 1 TO n DO sum_x := sum_x + x[i]; sum_y := sum_y + y[i]; sum_xy := sum_xy + x[i] * y[i]; sum_x2 := sum_x2 + x[i] * x[i]; END_FOR; // 최소제곱법 회귀 계수 계산 a := (n * sum_xy - sum_x * sum_y) / (n * sum_x2 - sum_x * sum_x); b := (sum_y - a * sum_x) / n; // 보정값 계산 보정값 := a * 측정값 + b;

5. 이 방식의 장점과 활용

  • 자동 보정 가능: PLC 내에서 교정 데이터를 쉽게 바꿔서 재계산 가능

  • 간단한 구현: 별도의 외부 소프트웨어 없이 PLC 내부에서 처리 가능

  • 정확도 향상: 실제 환경에 맞게 센서 오차를 보정하여 제어 성능 향상


6. 마무리

PLC에서 PT100 온도센서 보정을 위해 최소제곱법 회귀식을 직접 구현하는 것은 매우 유용한 방법입니다.
ST 언어로 간단한 1차 선형 보정을 구현하면 센서 오차를 효과적으로 줄일 수 있으며, 유지보수나 보정 데이터 변경 시에도 편리하게 대응할 수 있습니다.

댓글

이 블로그의 인기 게시물

공압 속도 제어: 미터인 vs 미터아웃

[PLC] PLC 아날로그 입출력 기본

전력(kW) 계산하기 (직류, 교류 단상, 교류 삼상)

[농사] 아쿠아포닉스 : 녹조 제거와 민물새우

3선 결선식 센서의 타입 PNP, NPN

[아두이노] 가변저항(Potential Divider)과 전압분배(Voltage Divider)

[PC] 최대절전모드에서 PC가 멋대로 켜지는 이유와 해결 방법

[PLC] PLC 입출력 타입 - 싱크 & 소스 (Sink & Source)

[주식] 한국거래소(KRX) 데이터 API 입문 가이드

제너 다이오드에 저항을 연결하는 이유