1. 개요[편집]
| 하드웨어 인 더 루프 Hardware-in-the-Loop | |
|---|---|
| 약칭 | HIL |
| 구성 | 실물 장치 1개 + 실시간 플랜트 솔버 |
| 필수 조건 | 고정 스텝 · 유계 최악실행시간 · 데드라인 준수 |
| 대표 스텝 | 차량·항공 1 ms / 전력전자 0.1~1 μs |
| 주 실패 모드 | 인터페이스 지연이 만드는 가짜 불안정 |
| 상위 개념 | 검증 및 확인 |
실물을 전부 만들 돈은 없고, 전부 시뮬레이션하면 아무도 안 믿는다. 그래서 하나만 진짜로 남긴다.
하드웨어 인 더 루프(hardware-in-the-loop, HIL)는 검증하려는 실물 부품 하나만 남기고 나머지 플랜트 전체를 실시간 솔버로 대체해 닫힌 루프를 구성하는 시험 기법이다. 보통 남는 실물은 제어기(ECU, 인버터 제어보드, 비행제어 컴퓨터)이고, 그것이 감각하는 세계 — 엔진, 차체, 배터리, 전력망, 기체 공력 — 는 전부 계산으로 만들어져 실제 전압·전류·펄스 신호로 제어기에 주입된다. 제어기 입장에서는 자기가 실차에 붙어 있는지 시험대에 물려 있는지 구분할 방법이 없다.
목적은 단순하다. 실물 시험보다 싸고 안전하며, 순수 시뮬레이션보다 증거력이 있다. 배터리를 진짜로 과충전해서 터뜨려 볼 수는 없지만 HIL에서는 하루에 백 번도 터뜨릴 수 있고, 그때 ECU가 정말 릴레이를 끊는지를 실제 펌웨어 바이너리로 확인할 수 있다. ISO 26262 같은 기능안전 규격이 요구하는 결함 주입 시험의 대부분이 여기서 소화되는 이유다.1
2. MIL·SIL·PIL·HIL 사다리[편집]
HIL은 독립된 기법이라기보다 검증 사다리의 마지막 칸에 가깝다. 아래로 갈수록 실물의 지분이 늘고 반복 속도가 느려진다.
| 단계 | 제어 로직의 형태 | 플랜트 | 잡히는 결함 |
|---|---|---|---|
| MIL (model-in-the-loop) | 블록선도 모델 | 모델 | 제어 알고리즘 논리, 이득 |
| SIL (software-in-the-loop) | 호스트 PC용으로 컴파일된 코드 | 모델 | 코드 생성 오류, 부동소수 로직 |
| PIL (processor-in-the-loop) | 실제 타깃 프로세서에서 도는 코드 | 모델(호스트) | 고정소수점 양자화, 오버플로, 실행시간 |
| HIL | 실제 제어기 보드 + 실제 I/O | 실시간 솔버 | 배선·드라이버·타이밍·전기적 결함 |
한 칸 올라갈 때마다 “모델이 맞다”는 가정이 하나씩 빠진다. MIL에서 완벽하던 제어기가 PIL에서 고정소수점 오버플로로 죽고, PIL을 통과한 제어기가 HIL에서 CAN 버스 지연 때문에 진동하는 것이 이 사다리의 존재 이유다. 항공 쪽에서는 여기에 기체 배선과 유압을 전부 실물로 깐 아이언 버드(iron bird)가 한 칸 더 붙고, 자동차 쪽에서는 실차를 롤러 위에 올린 채 가상 교통을 주입하는 vehicle-in-the-loop가 붙는다.
3. 실시간성이라는 제약[편집]
HIL 솔버가 오프라인 시뮬레이션과 결정적으로 다른 점은 답이 맞는 것만으로는 부족하고 제시간에 나와야 한다는 것이다. 물리 시간 1 ms를 계산 시간 1 ms 안에 끝내지 못하면 그 결과는 틀린 것이나 마찬가지다. 여기서 세 가지 제약이 파생된다.
고정 스텝만 쓴다. 가변 스텝 적분기는 국소 오차에 따라 스텝을 줄이는데, 그 순간 프레임당 계산량이 예측 불가능해진다. 그래서 HIL은 예외 없이 고정 스텝이고, 대개 명시적 4단 룽게-쿠타법이나 그보다 싼 것을 쓴다. 음해법이나 반복 수렴을 요구하는 적분기는 반복 횟수의 상한이 보장되지 않아 기피되며, 굳이 쓴다면 반복 횟수를 상수로 못 박아 버린다(수렴을 포기하는 대신 시간을 산다).
최악실행시간(WCET)이 유계여야 한다. 평균이 아니라 최악이다. 조건 분기가 많은 마찰 모델, 룩업 테이블 보간, 동적 메모리 할당은 전부 WCET를 흔드는 요인이라 HIL 모델에서는 미리 정리한다. 캐시 미스와 인터럽트 지터까지 고려해 마진을 30~50% 남기는 것이 관행.
오버런은 조용히 넘어가면 안 된다. 스텝 하나가 데드라인을 넘기는 데드라인 미스가 발생했을 때 선택지는 셋이다 — 시험을 중단하거나, 그 스텝을 건너뛰거나, 늦게라도 끝내고 다음으로 가거나. 뒤의 둘은 실시간 의미론을 깨뜨려 사실상 모델의 시간축이 실제와 어긋나게 만든다. 그래서 HIL 플랫폼은 오버런 카운터를 두고 한 번이라도 세면 시험 결과를 무효로 처리하는 것이 기본 설정이다. “결과가 이상한데요”의 상당수가 사실은 오버런 로그를 안 본 것이다.
4. 전력전자 HIL은 왜 마이크로초를 요구하는가[편집]
차량 동역학 HIL은 1 ms(1 kHz) 스텝이면 충분하다. 차체의 지배적 동특성이 수 Hz~수십 Hz라 나이퀴스트 여유가 넉넉하기 때문이다. 그런데 인버터·컨버터를 대상으로 하면 요구 스텝이 세 자릿수 이상 빨라진다.
이유는 대역폭이 아니라 스위칭 순간의 해상도다. 스위칭 주파수 20 kHz짜리 컨버터의 한 주기는 50 μs이고, PWM 듀티비를 0.1% 분해능으로 재현하려면 스위칭 시점을 50 ns 수준에서 결정할 수 있어야 한다. 만약 스텝이 10 μs라면 스위칭 명령은 스텝 경계로 반올림되어 듀티비가 ±10%씩 튀고, 그 결과 전류 리플과 토크 리플이 실제와 전혀 다른 값으로 나온다. 심지어 반올림 방향이 주기마다 달라지면서 존재하지 않는 저주파 맥동이 만들어지기도 한다.
처방은 두 갈래로 발전했다.
- 스텝 자체를 줄인다. 솔버를 FPGA에 내려 파이프라인으로 돌리면 수백 나노초급 스텝이 가능하다. CPU 기반으로는 수십 μs가 한계라, 전력전자 HIL이 사실상 FPGA 전용 시장이 된 배경이다.
- 스텝 안에서 스위칭 시점을 보간한다. 스텝 경계 사이에서 스위칭이 일어났음을 검출해 그 시점을 선형 보간하고, 스텝 결과를 그 비율로 보정한다. 스텝을 줄이지 않고도 듀티비 양자화 오차를 한 자릿수 이상 줄일 수 있어 널리 쓰인다.
여기에 회로 솔버 쪽 트릭이 하나 더 붙는다. 스위치가 개면 도통 조합이 가지라 매번 어드미턴스 행렬을 다시 분해해야 하는데, 이래서는 실시간이 불가능하다. 그래서 스위치를 이상 스위치 대신 작은 인덕터/커패시터로 모형화해 사다리꼴 공식으로 이산화하면, 도통 상태와 무관하게 어드미턴스가 상수로 유지된다. 행렬 분해를 시험 시작 전에 한 번만 하면 되는 구조가 되는 것이다. 대가는 스위칭 시 생기는 수치적 진동과, 상태 전환 시 미소한 에너지 오차다.
5. 인터페이스 지연과 가짜 불안정[편집]
HIL의 고유한 실패 모드는 모델이 틀려서가 아니라 루프를 자르고 끼워 넣은 인터페이스 때문에 생긴다. 실물 제어기와 시뮬레이션 사이에는 실제 물리계에 없는 지연이 최소 세 겹 쌓인다.
- 표본화와 유지. 솔버가 스텝 주기 로 출력을 갱신하고 DAC가 그 값을 유지하면, 영차 유지는 주파수 영역에서 대략 의 지연으로 작용한다. 즉 반 스텝만큼의 순수 위상 지연이다.
- 계산 지연. 스텝 에서 읽은 입력이 스텝 에서야 출력에 반영되는 것이 보통이라 한 스텝이 더 붙는다.
- I/O·통신 지연. ADC 변환, 광절연, CAN·EtherCAT 프레임 주기가 더해진다.
합치면 실효 지연은 대개 이상이다. 지연은 크기를 건드리지 않고 위상만 만큼 깎으므로, 나이퀴스트 안정성 판별법의 관점에서 궤적이 점 쪽으로 밀려 들어간다. 남은 위상 여유 (라디안)에 대해 허용 지연은
이고, 이걸 넘기면 실제 시스템에서는 일어나지 않을 진동이 시험대에서 일어난다. 이것이 가짜 불안정(artificial instability)이다. 대역폭이 높은 전류 루프일수록 가 커서 허용 지연이 반비례로 줄어드는 탓에, 모터 제어 HIL에서 특히 자주 만난다.
반대 방향의 사고도 있다. 스텝이 굵으면 모델의 고주파 공진이 아예 표현되지 않아, 실물에서는 존재하는 불안정이 시험대에서는 깨끗하게 통과해 버린다. 가짜 불안정은 시험자를 괴롭히기라도 하지, 가짜 안정은 아무 소리 없이 필드로 나간다. 그래서 HIL 결과를 읽을 때는 “진동했다/안 했다”만 볼 것이 아니라, 인터페이스 지연을 모델에 명시적으로 넣은 오프라인 해석과 대조하는 절차가 필요하다.2
6. 파워 HIL — 신호가 아니라 전력이 흐를 때[편집]
지금까지는 인터페이스에 흐르는 것이 ±10 V짜리 신호였다. 파워 HIL(power HIL, PHIL)은 여기서 한 걸음 더 나가 인터페이스에 실제 전력을 흘린다. 시뮬레이션된 전력망이 계산한 전압을 선형 증폭기가 수십 kW로 증폭해 실물 인버터에 인가하고, 실물이 끌어간 전류를 측정해 다시 시뮬레이션에 전류원으로 주입하는 식이다. 신호 HIL이 “제어기가 옳게 판단하는가”를 본다면 PHIL은 “실제 전력 장치가 옳게 동작하는가”를 본다.
문제는 이 구조가 그 자체로 되먹임 루프라는 것이다. 가장 단순한 이상 변압기 모형(ITM) 인터페이스에서 루프 이득은 지연을 빼면
즉 시뮬레이션 측 등가 임피던스와 실물(hardware under test) 임피던스의 비로 결정된다. 작은 이득 정리를 그대로 적용하면 안정 조건은 모든 주파수에서 다. 구현이 가장 쉽고 정확도가 가장 좋은 인터페이스가 동시에 가장 불안정한 인터페이스인 셈이라, PHIL 문헌의 절반은 이 트레이드오프를 다룬다.
그래서 대안 인터페이스 알고리즘들이 나왔다. 회로의 일부를 양쪽에 중복시켜 임피던스 비를 인위적으로 낮추는 부분 회로 중복(PCD), 실물 임피던스의 추정치를 시뮬레이션 쪽에 감쇠 요소로 심어 루프 이득을 상쇄하는 감쇠 임피던스법(DIM) 등이다. 어느 쪽이든 안정성과 정확도를 맞바꾸는 구조이고, 인터페이스에 저역통과 필터를 넣어 안정화하면 그 필터가 다시 위상 지연으로 돌아온다.
PHIL이 무서운 이유는 여기서의 불안정이 화면 속 발산이 아니라 실제 증폭기와 실제 시험체의 물리적 파괴이기 때문이다. 그래서 실험 전에 임피던스 비를 손으로 확인하고, 전류·전압 제한과 하드웨어 트립을 이중으로 걸어 두는 것이 국룰이다.3
7. 현업에서의 현실[편집]
- HIL 랙 자체보다 플랜트 모델을 실시간화하는 노동이 비싸다. 오프라인 상세 모델을 그대로 올리면 십중팔구 오버런이 나고, 결국 축소차수모델로 깎는 작업이 프로젝트의 상당 부분을 먹는다.
- 결함 주입(단선, 단락, 센서 고착, 통신 프레임 누락)이 HIL의 진짜 밥값이다. 정상 동작 검증은 SIL로도 되지만, 배선이 끊겼을 때 ECU가 어떻게 구는지는 실물 I/O 없이는 못 본다.
- “실차에서는 되는데 HIL에서 안 된다”의 대부분은 모델이 아니라 타이밍이다. 스텝 주기, 통신 주기, 제어 주기가 서로 배수 관계가 아니면 비트(beat) 주파수가 생겨 주기적인 이상 동작이 나타난다.
- 시험대 결과와 실차 결과가 다를 때 시험대를 먼저 의심하는 습관이 HIL 엔지니어의 직업병이자 미덕이다. 그 습관이 없으면 인터페이스 지연이 만든 진동을 붙잡고 제어 이득을 몇 주씩 깎게 된다.
8. 관련 문서[편집]
- 검증 및 확인 · 지상진동시험 · 불확실성 정량화
- PID 제어 · 모델 예측 제어 · 강건 제어
- 나이퀴스트 안정성 판별법 · 위상 여유 · 작은 이득 정리
- 룽게-쿠타법 · 축소차수모델 · SPICE
- 실시간 시뮬레이션 · 전력전자 · 영차 홀드 · 차량 동역학
- 유체-구조 연성 · 항공서보탄성학
9. Footnotes[편집]
-
규격이 요구하는 것은 “결함 상황에서 안전 상태로 간다”는 증거인데, 그 증거를 실차로 만들려면 차를 부숴야 한다. HIL은 규격 대응 비용을 한 자릿수 낮추는 장치이기도 하다. 물론 그 대가로 HIL 랙과 모델 자체가 검증 대상이 되는 재귀가 생긴다 — 시험 장비를 검증하는 시험 장비 문제는 계측 공학의 영원한 숙제다. ↩
-
현장 격언: “HIL이 진동하면 먼저 스텝을 절반으로 줄여 봐라.” 진동이 같이 사라지면 범인은 인터페이스 지연이고, 그대로면 그때부터 제어기를 의심해도 된다. 5분이면 끝나는 이 실험을 안 해서 몇 주를 태우는 사례가 매년 재생산된다. ↩
-
증폭기 대역폭도 지연으로 환산된다. 수 kHz 대역폭 선형 증폭기는 그 자체로 수십 μs급 위상 지연원이라, 스텝을 아무리 줄여도 인터페이스 지연 총합이 줄지 않는 구간이 생긴다. 이때 스텝만 줄이는 것은 전기 요금을 태우는 행위다. ↩