교정 — 무엇을 지울 수 있고 무엇을 못 지우나

한 줄 요약 — 교정은 되풀이되는 오차만 지웁니다. 매번 다른 값(잡음)과 매번 다른 방향(히스테리시스)은 아무리 교정해도 그대로입니다.


오차를 셋으로 가릅니다

이 구분이 교정의 전부입니다.

종류성질교정으로
계통 오차 (systematic)같은 조건이면 늘 같은 값✅ 지웁니다
환경 의존조건(온도·전원)의 함수로 정해짐△ 그 조건을 재면 지웁니다
무작위 (random)매번 다름❌ 못 지웁니다. 평균만
측정값=참값⏟원하는 것+a+b⋅x⏟교정으로 지움+f(T,V)⏟조건을 재면 지움+n(t)⏟못 지움\text{측정값} = \underbrace{\text{참값}}_{\text{원하는 것}} + \underbrace{a + b\cdot x}_{\text{교정으로 지움}} + \underbrace{f(T,V)}_{\text{조건을 재면 지움}} + \underbrace{n(t)}_{\text{못 지움}}
기호
f주파수frequencyHz
n비트 수 또는 개수number of bits or count
t시간times
T온도 또는 주기temperature or period
V전압voltageV

교정은 가운데 두 항을 없애는 일입니다. 마지막 항은 잡음 예산의 몫이지 교정의 몫이 아닙니다.

⚠️ 흔한 오해 — “교정하면 정확해진다” 가 아닙니다. “되풀이되는 만큼만 정확해진다” 입니다. 잡음이 10 µV 인 회로를 아무리 교정해도 한 번 측정의 불확실도는 10 µV 그대로입니다.


2점 교정 — 옵셋과 게인

측정 사슬의 오차는 대개 직선입니다.

y=G x+Oy = G\,x + O
기호
G컨덕턴스conductanceS

OO 는 옵셋(입력이 0 인데 나오는 값), GG 는 게인(기울기의 오차)입니다. 미지수가 둘이니 점 두 개면 풉니다.

알려진 두 입력 x1,x2x_1, x_2 에 대해 y1,y2y_1, y_2 를 재면

G=y2−y1x2−x1,O=y1−G x1\boxed{G = \frac{y_2-y_1}{x_2-x_1}, \qquad O = y_1 - G\,x_1}
기호
G컨덕턴스conductanceS

이후 측정값 yy 를 참값으로 되돌립니다.

x=y−OGx = \frac{y - O}{G}
기호
G컨덕턴스conductanceS

두 점을 어디에 잡나

★ 쓸 범위의 양 끝 근처에 잡습니다. 안쪽에 잡으면 바깥은 외삽이 되어 오차가 커집니다.

두 점결과
10 %, 90 % 지점✅ 권장
0 %, 100 % 지점△ 끝에서 비선형·포화가 섞임
40 %, 60 % 지점❌ 기울기 오차가 5배 증폭돼 양 끝이 크게 틀림

두 점이 가까울수록 기울기의 불확실도가 커집니다.

δGG≈2 σy∣y2−y1∣\frac{\delta G}{G} \approx \frac{\sqrt2\,\sigma_y}{|y_2-y_1|}
기호
G컨덕턴스conductanceS

분모가 작으면 잡음이 그대로 게인 오차가 됩니다. 그래서 두 점은 멀수록 좋습니다.


비선형이면 점을 더

직선으로 안 맞는 것들이 있습니다.

센서왜 휘나흔한 대처
서미스터지수 함수Steinhart-Hart 3계수
열전대다항식NIST 다항식 (7~10차)
RTD약한 2차Callendar-Van Dusen
ADC 자체INL다항 보정 또는 표

표를 쓸까 식을 쓸까

표 + 보간다항식
계산량적음 (탐색 + 곱셈 하나)곱셈 N회
메모리큼 (점 수 × 2 바이트)작음 (계수 몇 개)
점 사이직선으로 이음매끄러움
범위 밖막을 수 있음발산할 수 있음

MCU 에서는 대개 표가 낫습니다. 8비트 MCU 에서 7차 다항식을 부동소수로 푸는 것보다, 32칸짜리 표에서 직선 보간하는 편이 빠르고 예측 가능합니다.

💡 범위 밖에서 다항식은 위험합니다. 7차 다항식은 정의 범위를 조금만 벗어나도 엉뚱한 값으로 치솟습니다. 센서가 빠졌을 때(입력이 0 또는 풀스케일) 그 값이 그대로 제어에 들어가면 사고가 납니다. 표는 끝에서 잘리므로 안전합니다.


★ 자기 교정 — 설계에 넣는 것

공장에서 한 번 재는 것과 회로가 스스로 재는 것은 다릅니다. 후자는 설계 단계에 경로를 넣어 둬야 합니다. 나중에 붙일 수 없습니다.

센서MUX여기가 자기 교정의 핵심입니다증폭·ADC같은 사슬을 지나야 뜻이 있습니다보정 계산출력기준전압 ─┐접지(0 V) ─┴→ MUX 의 다른 입력

MUX 로 입력을 갈아 끼웁니다.

무엇을 물리나무엇을 잡나
접지 (0 V)옵셋 — 사슬 전체의
기준전압게인
센서실제 측정

같은 증폭기·같은 ADC 를 지나야 뜻이 있습니다. 다른 경로로 재면 그 경로의 오차가 섞여 들어옵니다.

언제 다시 재나

방식언제잡는 것
매 변환 전느려도 될 때옵셋 드리프트까지
N 번마다 한 번대개온도 변화
켤 때 한 번빠른 것이 중요할 때켤 때의 상태
온도가 X °C 변하면열이 문제일 때TC

💡 초퍼 안정화 OP앰프(OPA333 등)는 이 일을 칩 안에서 kHz 단위로 합니다. 그래서 옵셋이 µV 단위이고 드리프트가 거의 없습니다. 대신 초핑 주파수에서 잡음 스파이크가 생기고 대역이 좁습니다 (7-06).


⚖️ 트레이드오프

1. 교정 vs 좋은 부품

좋은 부품교정
초기 비용부품값 ↑공정 시간 ↑
대당 비용일정일정 (시간이 곧 돈)
지우는 것—초기 오차 전부
못 지우는 것—드리프트·잡음
재고 관리간단대당 계수 저장 필요

교정이 이깁니다 — 초기 오차에 대해서만. 08 기준전압의 연습문제 3에서 봤듯이, 교정 후에는 장기 드리프트가 지배합니다. 그때부터는 부품을 바꾸는 수밖에 없습니다.

2. 자기 교정의 값

얻는 것잃는 것
온도·시간 드리프트가 지워짐MUX 하나(누설·도통저항)
공장 교정 공정이 짧아짐측정 시간 (교정 채널만큼)
현장에서 계속 유효기준전압이 더 좋아야 함

마지막이 중요합니다 — 자기 교정은 기준을 믿는 것입니다. 기준이 흔들리면 교정이 그 흔들림을 측정값에 심습니다.

3. 두 점 vs 여러 점

점 n개  ⇒  보정 오차∝1n2 (직선 보간)\text{점 } n \text{개} \;\Rightarrow\; \text{보정 오차} \propto \frac{1}{n^2}\ (\text{직선 보간})
기호
n비트 수 또는 개수number of bits or count

점을 늘리면 좋아지지만 공정 시간이 그만큼 늡니다. 대량 생산에서 대당 10초는 큰 비용입니다.


🔌 실제 쓰임새

계수를 어디에 두나

곳장점주의
MCU 내부 플래시간단펌웨어 갱신에 지워질 수 있음
EEPROM 전용 영역펌웨어와 분리쓰기 횟수 제한
센서 모듈 안보드를 바꿔도 따라감통신 필요
서버이력 관리오프라인에서 못 씀

⚠️ 펌웨어를 새로 구우면 교정값이 날아가는 사고가 흔합니다. 계수는 코드와 다른 영역에 두고, 굽는 스크립트가 그 영역을 안 건드리게 하세요.

교정 기록에 무엇을 남기나

  • 계수 (GG, OO, 또는 표)
  • 교정한 날짜와 온도
  • 쓴 표준기의 이력 (traceability)
  • 교정 전 측정값 (드리프트 추적용)

교정 전 값을 남기는 것이 중요합니다. 그것이 쌓여야 “이 장비는 6개월에 얼마나 움직이는가” 를 알 수 있고, 그래야 재교정 주기를 정할 수 있습니다.

조립 후에 합니다

08에서 본 대로, 납땜과 기판 휨이 값을 수백 ppm 움직입니다. 부품 단품으로 교정한 값은 붙이는 순간 틀립니다.


⚠️ 이상과 실제의 차이

이상실제왜
교정하면 정확해진다되풀이되는 만큼만잡음은 안 지워짐
두 점이면 충분비선형이면 안 됨센서는 대개 휨
계수는 영원드리프트로 낡음재교정 주기가 필요
교정 후 오차 0표준기 자체의 불확실도가 남음참값을 모름
어디서 재도 같음온도·자세·전원이 다름환경 의존
오르내림이 같음히스테리시스자성·기계적 이력

⚠️ 히스테리시스는 2점 교정으로 못 지웁니다. 값을 올리며 잰 곡선과 내리며 잰 곡선이 다르면, 어느 쪽으로 교정해도 반대 방향에서 틀립니다. 이것은 부품을 바꾸거나 항상 같은 방향에서 접근하는 절차로만 해결됩니다.

⚠️ 표준기보다 정확해질 수 없습니다. ±0.1 % 멀티미터로 교정한 장비는 ±0.1 % 보다 좋아지지 않습니다. 교정 표준의 불확실도가 그대로 바닥이 됩니다.


시뮬레이션으로 확인

2점 교정 — 옵셋과 게인 회로도VOS2mV입력 옵셋 (교정으로 지울 것)VIN1V입력 (교정점 2)R11kΩVP15VVN-15VR29kΩ게인 설정 — 이상적이면 ×10U1TL071VCCVCCVEEVEESRCINFBOUTGND
2점 교정 — 옵셋과 게인워크벤치에서 열기 →
# examples/13-signal-chain/two-point-cal.yaml
meta:
  name: 2점 교정 — 옵셋과 게인
  lesson: docs/13-signal-chain/09-calibration.md
  note: |
    옵셋과 게인 오차가 있는 증폭기입니다. 두 점(0 V 와 1 V)을 재면
    G 와 O 가 나오고, 그것으로 되돌리면 참값이 복원됩니다.

    VOS 를 밀어 보세요 — 옵셋이 아무리 커도 2점 교정으로 정확히
    지워집니다. **되풀이되는 오차**이기 때문입니다.

    이 회로가 보여 주지 못하는 것: 잡음. 잡음은 매번 다른 값이라
    교정으로 지울 수 없고, 12장의 몫입니다.
components:
  - {ref: VP, type: vdc, value: 15}
  - {ref: VN, type: vdc, value: -15}
  - {ref: VIN, type: vdc, value: 1, label: 입력 (교정점 2), sweep: {min: 0.1, max: 2, log: false}}
  - {ref: VOS, type: vdc, value: 2m, label: 입력 옵셋 (교정으로 지울 것), sweep: {min: 0, max: 20m, log: false}}
  - {ref: R1, type: r, value: 1k}
  - {ref: R2, type: r, value: 9k, label: 게인 설정 — 이상적이면 ×10}
  - {ref: U1, type: opamp, model: TL071}
nets:
  VCC: [VP.p, U1.'v+']
  VEE: [VN.p, U1.'v-']
  SRC: [VIN.p, VOS.n]
  IN:  [VOS.p, U1.'in+']
  FB:  [U1.'in-', R1.1, R2.1]
  OUT: [U1.out, R2.2]
  GND: [VP.n, VN.n, VIN.n, R1.2]
analyses:
  - {type: op}
expect:
  # (1 V + 2 mV) × 10 = 10.02 V. 옵셋도 게인만큼 커집니다.
  - {measure: v, node: OUT, value: 10.02, tol: 1%}

돌려 보면 출력이 10.02 V — 입력 1 V 에 옵셋 2 mV 가 더해져 함께 ×10 된 값입니다. 옵셋이 20 mV 로 커지면 출력은 10.2 V.

이것이 교정으로 지워집니다. VIN 을 0.1 V 와 2 V 두 점에서 재면

G=20.02−1.022−0.1=10.0,O=1.02−10×0.1=0.02G = \frac{20.02 - 1.02}{2 - 0.1} = 10.0, \qquad O = 1.02 - 10\times0.1 = 0.02
기호
G컨덕턴스conductanceS

이후 x=(y−0.02)/10x = (y - 0.02)/10 으로 되돌리면 옵셋이 얼마든 정확히 지워집니다. VOS 를 밀어 보면 출력은 움직이지만 교정식은 그대로 성립합니다.


연습문제

문제 1. 0~10 V 를 재는 장비를 2 V 와 8 V 에서 교정했습니다. 측정 잡음이 1 mV rms 일 때 게인 계수의 불확실도는?

exercises/13-09-gain-uncertainty.yaml
풀이 δGG≈2 σy∣y2−y1∣=1.414×1 mV6 V=236 ppm\frac{\delta G}{G} \approx \frac{\sqrt2\,\sigma_y}{|y_2-y_1|} = \frac{1.414\times1\ \text{mV}}{6\ \text{V}} = 236\ \text{ppm}
기호
G컨덕턴스conductanceS

10 V 지점에서 2.4 mV 의 오차가 됩니다.

두 점을 1 V 와 9 V 로 벌리면:

1.4148000=177 ppm(25 % 개선)\frac{1.414}{8000} = 177\ \text{ppm} \quad(25\ \%\ \text{개선})

★ 더 좋은 방법 — 각 점에서 여러 번 재서 평균:

NN 번 평균하면 σ\sigma 가 N\sqrt N 로 줄어듭니다.

평균 횟수게인 불확실도
1236 ppm
1659 ppm
10024 ppm

교정할 때는 시간이 있습니다 (실측정과 달리). 100번 평균해도 몇 초입니다. 교정점에서의 평균화는 거의 공짜로 정확도를 사는 일입니다.

문제 2. 자기 교정을 위해 MUX 를 넣었습니다. MUX 의 도통 저항 RONR_{ON} = 100 Ω, 증폭기 입력 저항 10 MΩ, 누설 1 nA 입니다. 이 MUX 가 만드는 오차는?

연습 13-09-2 — 자기 교정용 MUX 가 만드는 오차 회로도RON100ΩMUX 도통 저항VS5V교정용 기준 5 VILK1nAMUX 누설RIN10MΩ증폭기 입력 저항SRCADCGND
연습 13-09-2 — 자기 교정용 MUX 가 만드는 오차워크벤치에서 열기 →
풀이

두 가지를 봅니다.

① 분압 오차 — RONR_{ON} 과 입력 저항의 분압

10 M10 M+100=0.99999⇒10 ppm\frac{10\ \text{M}}{10\ \text{M} + 100} = 0.99999 \quad\Rightarrow\quad 10\ \text{ppm}

② 누설이 만드는 전압

1 nA×100 Ω=0.1 μV1\ \text{nA} \times 100\ \Omega = 0.1\ \mu\text{V}
기호
mu이동도mobilitym²/V·s

둘 다 작습니다. 그런데 ★ 여기가 요점입니다 — 이 오차들은 교정 경로와 측정 경로에 똑같이 들어갑니다. 같은 MUX 를 지나므로 교정에서 상쇄됩니다.

상쇄되지 않는 것:

항목왜
채널 간 RONR_{ON} 차이MUX 채널마다 다름 (보통 ±10 %)
채널 간 누설 차이온도에 따라 크게 다름
전하 주입채널 전환 순간의 스파이크

그래서 MUX 를 고를 때는 절대값보다 R_ON 정합(matching) 을 봅니다. 데이터시트의 ΔR_ON 항목입니다.

누설이 진짜 문제가 되는 경우: 소스 임피던스가 클 때. 전극 1 MΩ 에 1 nA 가 흐르면 1 mV 입니다 — 위의 0.1 µV 와 만 배 차이입니다. 13-03 을 보세요.

문제 3. 온도계수 25 ppm/°C 인 기준을 쓰는 장비를 25 °C 에서 교정했습니다. 현장이 40 °C 라면, 자기 교정(기준을 측정해 게인 보정)이 도움이 됩니까?

exercises/13-09-self-cal-limit.yaml
풀이

아니요. 오히려 아무 일도 안 일어납니다.

자기 교정은 그 기준을 자로 삼아 잽니다. 기준이 375 ppm 움직이면(25×1525\times15):

  • 실제 센서 신호 → ADC 코드가 375 ppm 올라감 (기준이 내려갔으므로)
  • 기준을 물려 잰 값 → 역시 375 ppm 올라감
  • 게인 보정 → 둘의 비율이라 375 ppm 이 약분됨

즉 기준의 TC 는 자기 교정으로 안 잡힙니다 — 자로 자를 재는 셈이니까요.

★ 그럼 무엇이 잡히나:

드리프트 원인자기 교정이 잡나
증폭기 옵셋✅
증폭기 게인 (저항비)✅
ADC 의 옵셋·게인✅
MUX 저항✅ (공통이면)
기준전압❌ 못 잡음

대책:

  1. 비율 측정으로 전환 — 센서 여자에도 같은 기준을 쓰면 기준 TC 가 약분됩니다 (08)
  2. 더 좋은 기준 — 2 ppm/°C 로 바꾸면 30 ppm
  3. 온도를 재서 보정 — 기준의 TC 곡선을 미리 재 두고 온도로 보정

여기서 배울 것: 자기 교정은 기준을 믿는 것입니다. 사슬 안에서 가장 믿을 만한 것 하나는 반드시 있어야 하고, 그것보다 정확해질 수는 없습니다.


이전 ← 08 기준전압 — 정확도의 상한 | 다음 → 10 브리지·RTD·열전대