제어기 소프트웨어 성능시험
📌 개요
- 성능시험 = 설계·구현한 제어기가 요구 성능을 실제로 만족하는지 확인
- 이 노트가 다루는 것: 무엇을(시험 항목), 어떤 입력으로(표준 시험 신호), 어떤 환경에서(MIL/SIL/PIL/HIL, 다이나모미터) 시험하는가
- 측정 데이터의 해석은 제어기 시험평가 결과 성능 분석에서 이어짐
- 출제 포인트: MIL·SIL·PIL·HIL의 구분이 가장 중요, 그 외 스텝·정현파 등 시험 입력의 용도, 지터·CPU 부하율 같은 실시간 성능 항목
📖 핵심 개념
시험의 위치와 절차
성능시험은 개발 마지막의 요식이 아니라, 요구사항 단계에서 정한 수치 사양(정착시간 몇 ms, 오차 몇 펄스 이내 등)과 짝을 이루는 검증 활동이다 (V-모델: 설계 단계마다 대응하는 시험 단계가 있다 — 일반론은 로봇 시스템 평가절차, 로봇 시스템 시험평가).
절차: ① 시험 계획(항목·합격 기준·환경·절차 정의) → ② 시험 수행(조건 기록 + 데이터 로깅) → ③ 결과 분석·판정(다음 노트) → ④ 미달 시 원인 분석·개선 후 재시험.
개발 단계별 검증 환경 — MIL, SIL, PIL, HIL (최중요)
- 실물 로봇에 미완성 제어기를 바로 붙이면 위험하고 비쌈
- 그래서 시뮬레이션에서 실물로 단계적으로 접근 → X-in-the-Loop 시리즈로 부름
| 단계 | 이름 | 제어기 | 플랜트(모터·부하) | 검증 내용 |
|---|---|---|---|---|
| 1 | MIL (Model-in-the-Loop) | 제어 모델(블록선도) | 시뮬레이션 모델 | 제어 알고리즘·게인의 논리 검증 |
| 2 | SIL (Software-in-the-Loop) | 실제 코드(PC에서 실행) | 시뮬레이션 모델 | 코드 구현이 모델과 동일하게 동작하는지 (이산화·수치 오류) |
| 3 | PIL (Processor-in-the-Loop) | 실제 코드를 실제 MCU에서 실행 | 시뮬레이션 모델 | 타깃 프로세서에서의 연산 시간·수치 정밀도 |
| 4 | HIL (Hardware-in-the-Loop) | 실제 제어기 하드웨어 | 실시간 시뮬레이터가 모터·부하를 흉내 | 실물 없이 실시간·전기 인터페이스까지 통합 검증 |
| 5 | 실물 시험 | 실제 제어기 | 실제 모터·부하 | 최종 성능 확인 |
HIL은 "제어기는 진짜, 플랜트는 가짜(실시간 시뮬레이터)"다. 시뮬레이터가 모터의 전기 신호(엔코더 펄스, 전류)를 실시간으로 만들어 제어기에 물리므로, 제어기는 실물이 붙은 줄 안다. 위험한 조건(과부하·센서 고장·충돌)을 실물 파손 없이 반복 시험할 수 있는 것이 최대 장점이다. 플랜트 모델의 정확도가 시험의 신뢰도를 좌우한다.
표준 시험 입력 신호 — 무엇을 보려고 넣는가
| 입력 | 모양 | 보는 것 |
|---|---|---|
| 스텝(Step) | 목표값을 계단처럼 급변 | 과도 응답 — 상승시간·오버슈트·정착시간·정상상태 오차 |
| 램프(Ramp) | 일정 기울기로 증가 | 일정 속도 지령에 대한 추종 오차 |
| 정현파(Sine) | 일정 주파수의 사인파 | 해당 주파수에서의 진폭비·위상 지연 |
| 처프/스윕(Chirp) | 주파수가 점점 올라가는 사인파 | 주파수 응답 전체(보드 선도·대역폭)를 한 번에 측정 |
| 실작업 프로파일 | 사다리꼴 등 실제 지령 | 실사용 조건의 종합 추종 성능 |
제어 성능 시험 항목
- 지령 추종 성능: 스텝·프로파일 지령에 대한 응답 지표(다음 노트에서 정의)와 추종 오차
- 외란 응답(Disturbance Rejection): 운전 중 부하 토크를 급변시켰을 때 속도·위치가 얼마나 떨어졌다가 얼마나 빨리 회복하는가 — 지령 추종과는 별개의 능력이므로 별도 시험
- 주파수 응답: 정현파·처프 입력으로 대역폭(어느 주파수까지 따라가는가) 측정
- 정밀도·반복성: 같은 목표를 반복 위치결정했을 때의 산포, 정지 시 미세 진동(헌팅) 여부
- 부하 조건 변화: 무부하~정격~과부하, 관성 변화에 대한 강인성
시험 장비와 환경
- 다이나모미터(Dynamometer): 시험 대상 모터 축에 부하 토크를 걸어 주는 장치(부하 모터·브레이크). 정격 부하·부하 급변 시험의 핵심 장비
- 기준 계측기: 토크 센서, 고분해능 기준 엔코더, 전류 프로브, 오실로스코프 — 제어기 내부 값이 아닌 독립된 기준으로 측정해야 공정하다
- 데이터 로깅: 지령·실측 위치/속도/전류를 제어 주기 해상도로 기록. 로깅 주기가 너무 느리면 빠른 현상(오버슈트 피크)을 놓친다
소프트웨어 실시간 성능 시험
제어 성능과 별도로, 펌웨어가 실시간 요구를 지키는지도 시험 대상이다.
- 제어 주기 정확도·지터: 주기가 설계값을 유지하는가, 흔들림(지터)은 허용 이내인가 — GPIO 토글을 오실로스코프로 관측하는 방법이 고전적
- ISR 실행 시간(WCET): 최악 조건(통신 폭주 + 보호 연산)에서도 주기 안에 끝나는가
- CPU 부하율: 최악 조건에서 여유가 남는가 (통상 70% 이하 유지)
- 장시간 연속 운전: 메모리 누수·카운터 오버플로·온도 상승으로 인한 이상이 없는가
📊 다이어그램 · 수식
X-in-the-Loop 단계적 검증
flowchart LR
MIL["MIL
모델 + 모델"] --> SIL["SIL
실코드(PC) + 모델"]
SIL --> PIL["PIL
실코드(실MCU) + 모델"]
PIL --> HIL["HIL
실제어기 + 실시간
시뮬레이터"]
HIL --> REAL["실물 시험
실제어기 + 실모터·부하"]
style HIL fill:#ffe0b2,stroke:#e65100(오른쪽으로 갈수록 현실성↑·비용/위험↑ — 문제를 왼쪽 단계에서 최대한 걸러낸다)
HIL 시험 구성
flowchart LR
subgraph CTRL["실제 제어기 (시험 대상)"]
FW["펌웨어 + 제어 루프"]
end
subgraph SIM["실시간 시뮬레이터"]
PM["모터·부하 동역학 모델
(실시간 연산)"]
end
FW -- "PWM·제어 신호" --> PM
PM -- "가상 엔코더 펄스
가상 전류 신호" --> FW
HOST2["호스트 PC
시나리오 주입(고장·과부하)
+ 데이터 로깅"] --- SIM🎯 핵심 요약 · 암기 포인트
✏️ 예상문제
1. 실제 제어기 하드웨어를 실시간 시뮬레이터로 구현된 가상의 모터·부하에 연결하여 시험하는 방식은?
① MIL (Model-in-the-Loop) ② SIL (Software-in-the-Loop) ③ HIL (Hardware-in-the-Loop) ④ 실부하 시험
정답 및 해설
정답: ③ HIL은 "제어기는 실물, 플랜트는 실시간 시뮬레이션"이다. 시뮬레이터가 엔코더·전류 신호를 실시간으로 생성해 제어기에 공급하므로, 실물 없이 전기 인터페이스와 실시간 동작까지 검증할 수 있다.
2. MIL → SIL → PIL → HIL 순서로 검증을 진행하는 이유로 가장 적절한 것은?
① 시험 비용이 단계마다 저렴해지므로 ② 시뮬레이션에서 실물로 현실성을 단계적으로 높여, 문제를 값싸고 안전한 단계에서 조기에 걸러내기 위해 ③ 각 단계의 시험 항목이 완전히 동일하기 때문에 ④ 국제 표준이 순서를 강제하기 때문에
정답 및 해설
정답: ② 뒤로 갈수록 현실성이 높아지는 대신 비용·위험도 커진다. 알고리즘 오류는 MIL에서, 코드 구현 오류는 SIL에서, 연산 시간 문제는 PIL에서 미리 잡아야 비싼 HIL·실물 단계에서의 시행착오를 줄일 수 있다.
3. 제어기의 과도 응답(상승시간, 오버슈트, 정착시간)을 평가하기에 가장 적합한 시험 입력은?
① 스텝 입력 ② 정현파 입력 ③ 백색 잡음 ④ 일정 속도 램프 입력
정답 및 해설
정답: ① 목표값을 계단처럼 급변시키는 스텝 입력이 과도 응답 지표의 표준 측정 조건이다. 정현파·처프는 주파수 응답, 램프는 추종 오차 평가용이다.
4. 외란 응답(disturbance rejection) 시험의 방법으로 옳은 것은?
① 목표 위치를 계단형으로 변경한다 ② 일정 속도로 운전 중인 모터에 다이나모미터로 부하 토크를 급변시켜 회복 특성을 본다 ③ 전원 전압을 서서히 올린다 ④ 엔코더 분해능을 바꿔 가며 시험한다
정답 및 해설
정답: ② 외란 응답은 지령이 아니라 외부 부하의 급변에 대한 능력이다. 부하 인가 순간 속도가 얼마나 떨어지고(최대 낙폭) 얼마나 빨리 원래 속도로 복귀하는지를 측정한다. ①은 지령 추종 시험이다.
5. 제어기 소프트웨어의 실시간 성능 시험 항목으로 거리가 먼 것은?
① 제어 주기의 지터(jitter) ② ISR의 최악 실행 시간(WCET) ③ CPU 부하율 ④ 모터 권선의 절연 저항
정답 및 해설
정답: ④ 절연 저항은 모터 하드웨어의 전기 안전 시험 항목이다. 소프트웨어 실시간 성능은 주기 정확도(지터), WCET, CPU 부하율, 장시간 연속 운전 안정성 등으로 평가한다.
🔗 관련 노트
- 제어기 시험평가 결과 성능 분석 — 측정 데이터의 지표 계산·판정
- 제어기 게인 설정 — 시험 결과가 되먹임되는 튜닝
- 액추에이터 동역학 모델링 — HIL·SIL의 플랜트 모델
- 로봇 시스템 시험평가 — 시스템 수준 시험평가 일반론
- _MOC 모션소프트웨어