교정 — 무엇을 지울 수 있고 무엇을 못 지우나
한 줄 요약 — 교정은 되풀이되는 오차만 지웁니다. 매번 다른 값(잡음)과 매번 다른 방향(히스테리시스)은 아무리 교정해도 그대로입니다.
오차를 셋으로 가릅니다
이 구분이 교정의 전부입니다.
| 종류 | 성질 | 교정으로 |
|---|---|---|
| 계통 오차 (systematic) | 같은 조건이면 늘 같은 값 | ✅ 지웁니다 |
| 환경 의존 | 조건(온도·전원)의 함수로 정해짐 | △ 그 조건을 재면 지웁니다 |
| 무작위 (random) | 매번 다름 | ❌ 못 지웁니다. 평균만 |
f주파수frequencyHzn비트 수 또는 개수number of bits or countt시간timesT온도 또는 주기temperature or periodV전압voltageV교정은 가운데 두 항을 없애는 일입니다. 마지막 항은 잡음 예산의 몫이지 교정의 몫이 아닙니다.
⚠️ 흔한 오해 — “교정하면 정확해진다” 가 아닙니다. “되풀이되는 만큼만 정확해진다” 입니다. 잡음이 10 µV 인 회로를 아무리 교정해도 한 번 측정의 불확실도는 10 µV 그대로입니다.
2점 교정 — 옵셋과 게인
측정 사슬의 오차는 대개 직선입니다.
G컨덕턴스conductanceS는 옵셋(입력이 0 인데 나오는 값), 는 게인(기울기의 오차)입니다. 미지수가 둘이니 점 두 개면 풉니다.
알려진 두 입력 에 대해 를 재면
G컨덕턴스conductanceS이후 측정값 를 참값으로 되돌립니다.
G컨덕턴스conductanceS두 점을 어디에 잡나
★ 쓸 범위의 양 끝 근처에 잡습니다. 안쪽에 잡으면 바깥은 외삽이 되어 오차가 커집니다.
| 두 점 | 결과 |
|---|---|
| 10 %, 90 % 지점 | ✅ 권장 |
| 0 %, 100 % 지점 | △ 끝에서 비선형·포화가 섞임 |
| 40 %, 60 % 지점 | ❌ 기울기 오차가 5배 증폭돼 양 끝이 크게 틀림 |
두 점이 가까울수록 기울기의 불확실도가 커집니다.
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 로 입력을 갈아 끼웁니다.
| 무엇을 물리나 | 무엇을 잡나 |
|---|---|
| 접지 (0 V) | 옵셋 — 사슬 전체의 |
| 기준전압 | 게인 |
| 센서 | 실제 측정 |
같은 증폭기·같은 ADC 를 지나야 뜻이 있습니다. 다른 경로로 재면 그 경로의 오차가 섞여 들어옵니다.
언제 다시 재나
| 방식 | 언제 | 잡는 것 |
|---|---|---|
| 매 변환 전 | 느려도 될 때 | 옵셋 드리프트까지 |
| N 번마다 한 번 | 대개 | 온도 변화 |
| 켤 때 한 번 | 빠른 것이 중요할 때 | 켤 때의 상태 |
| 온도가 X °C 변하면 | 열이 문제일 때 | TC |
💡 초퍼 안정화 OP앰프(OPA333 등)는 이 일을 칩 안에서 kHz 단위로 합니다. 그래서 옵셋이 µV 단위이고 드리프트가 거의 없습니다. 대신 초핑 주파수에서 잡음 스파이크가 생기고 대역이 좁습니다 (7-06).
⚖️ 트레이드오프
1. 교정 vs 좋은 부품
| 좋은 부품 | 교정 | |
|---|---|---|
| 초기 비용 | 부품값 ↑ | 공정 시간 ↑ |
| 대당 비용 | 일정 | 일정 (시간이 곧 돈) |
| 지우는 것 | — | 초기 오차 전부 |
| 못 지우는 것 | — | 드리프트·잡음 |
| 재고 관리 | 간단 | 대당 계수 저장 필요 |
교정이 이깁니다 — 초기 오차에 대해서만. 08 기준전압의 연습문제 3에서 봤듯이, 교정 후에는 장기 드리프트가 지배합니다. 그때부터는 부품을 바꾸는 수밖에 없습니다.
2. 자기 교정의 값
| 얻는 것 | 잃는 것 |
|---|---|
| 온도·시간 드리프트가 지워짐 | MUX 하나(누설·도통저항) |
| 공장 교정 공정이 짧아짐 | 측정 시간 (교정 채널만큼) |
| 현장에서 계속 유효 | 기준전압이 더 좋아야 함 |
마지막이 중요합니다 — 자기 교정은 기준을 믿는 것입니다. 기준이 흔들리면 교정이 그 흔들림을 측정값에 심습니다.
3. 두 점 vs 여러 점
n비트 수 또는 개수number of bits or count점을 늘리면 좋아지지만 공정 시간이 그만큼 늡니다. 대량 생산에서 대당 10초는 큰 비용입니다.
🔌 실제 쓰임새
계수를 어디에 두나
| 곳 | 장점 | 주의 |
|---|---|---|
| MCU 내부 플래시 | 간단 | 펌웨어 갱신에 지워질 수 있음 |
| EEPROM 전용 영역 | 펌웨어와 분리 | 쓰기 횟수 제한 |
| 센서 모듈 안 | 보드를 바꿔도 따라감 | 통신 필요 |
| 서버 | 이력 관리 | 오프라인에서 못 씀 |
⚠️ 펌웨어를 새로 구우면 교정값이 날아가는 사고가 흔합니다. 계수는 코드와 다른 영역에 두고, 굽는 스크립트가 그 영역을 안 건드리게 하세요.
교정 기록에 무엇을 남기나
- 계수 (, , 또는 표)
- 교정한 날짜와 온도
- 쓴 표준기의 이력 (traceability)
- 교정 전 측정값 (드리프트 추적용)
교정 전 값을 남기는 것이 중요합니다. 그것이 쌓여야 “이 장비는 6개월에 얼마나 움직이는가” 를 알 수 있고, 그래야 재교정 주기를 정할 수 있습니다.
조립 후에 합니다
08에서 본 대로, 납땜과 기판 휨이 값을 수백 ppm 움직입니다. 부품 단품으로 교정한 값은 붙이는 순간 틀립니다.
⚠️ 이상과 실제의 차이
| 이상 | 실제 | 왜 |
|---|---|---|
| 교정하면 정확해진다 | 되풀이되는 만큼만 | 잡음은 안 지워짐 |
| 두 점이면 충분 | 비선형이면 안 됨 | 센서는 대개 휨 |
| 계수는 영원 | 드리프트로 낡음 | 재교정 주기가 필요 |
| 교정 후 오차 0 | 표준기 자체의 불확실도가 남음 | 참값을 모름 |
| 어디서 재도 같음 | 온도·자세·전원이 다름 | 환경 의존 |
| 오르내림이 같음 | 히스테리시스 | 자성·기계적 이력 |
⚠️ 히스테리시스는 2점 교정으로 못 지웁니다. 값을 올리며 잰 곡선과 내리며 잰 곡선이 다르면, 어느 쪽으로 교정해도 반대 방향에서 틀립니다. 이것은 부품을 바꾸거나 항상 같은 방향에서 접근하는 절차로만 해결됩니다.
⚠️ 표준기보다 정확해질 수 없습니다. ±0.1 % 멀티미터로 교정한 장비는 ±0.1 % 보다 좋아지지 않습니다. 교정 표준의 불확실도가 그대로 바닥이 됩니다.
시뮬레이션으로 확인
# 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컨덕턴스conductanceS이후 으로 되돌리면 옵셋이 얼마든 정확히 지워집니다. VOS 를 밀어 보면 출력은 움직이지만 교정식은 그대로 성립합니다.
연습문제
문제 1. 0~10 V 를 재는 장비를 2 V 와 8 V 에서 교정했습니다. 측정 잡음이 1 mV rms 일 때 게인 계수의 불확실도는?
exercises/13-09-gain-uncertainty.yaml풀이
G컨덕턴스conductanceS10 V 지점에서 2.4 mV 의 오차가 됩니다.
두 점을 1 V 와 9 V 로 벌리면:
★ 더 좋은 방법 — 각 점에서 여러 번 재서 평균:
번 평균하면 가 로 줄어듭니다.
| 평균 횟수 | 게인 불확실도 |
|---|---|
| 1 | 236 ppm |
| 16 | 59 ppm |
| 100 | 24 ppm |
교정할 때는 시간이 있습니다 (실측정과 달리). 100번 평균해도 몇 초입니다. 교정점에서의 평균화는 거의 공짜로 정확도를 사는 일입니다.
문제 2. 자기 교정을 위해 MUX 를 넣었습니다. MUX 의 도통 저항 = 100 Ω, 증폭기 입력 저항 10 MΩ, 누설 1 nA 입니다. 이 MUX 가 만드는 오차는?
풀이
두 가지를 봅니다.
① 분압 오차 — 과 입력 저항의 분압
② 누설이 만드는 전압
mu이동도mobilitym²/V·s둘 다 작습니다. 그런데 ★ 여기가 요점입니다 — 이 오차들은 교정 경로와 측정 경로에 똑같이 들어갑니다. 같은 MUX 를 지나므로 교정에서 상쇄됩니다.
상쇄되지 않는 것:
| 항목 | 왜 |
|---|---|
| 채널 간 차이 | 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 움직이면():
- 실제 센서 신호 → ADC 코드가 375 ppm 올라감 (기준이 내려갔으므로)
- 기준을 물려 잰 값 → 역시 375 ppm 올라감
- 게인 보정 → 둘의 비율이라 375 ppm 이 약분됨
즉 기준의 TC 는 자기 교정으로 안 잡힙니다 — 자로 자를 재는 셈이니까요.
★ 그럼 무엇이 잡히나:
| 드리프트 원인 | 자기 교정이 잡나 |
|---|---|
| 증폭기 옵셋 | ✅ |
| 증폭기 게인 (저항비) | ✅ |
| ADC 의 옵셋·게인 | ✅ |
| MUX 저항 | ✅ (공통이면) |
| 기준전압 | ❌ 못 잡음 |
대책:
- 비율 측정으로 전환 — 센서 여자에도 같은 기준을 쓰면 기준 TC 가 약분됩니다 (08)
- 더 좋은 기준 — 2 ppm/°C 로 바꾸면 30 ppm
- 온도를 재서 보정 — 기준의 TC 곡선을 미리 재 두고 온도로 보정
여기서 배울 것: 자기 교정은 기준을 믿는 것입니다. 사슬 안에서 가장 믿을 만한 것 하나는 반드시 있어야 하고, 그것보다 정확해질 수는 없습니다.
이전 ← 08 기준전압 — 정확도의 상한 | 다음 → 10 브리지·RTD·열전대