인터럽트 구조 설계, 400W PMSM 서보 지터와 실행 시간 계산 1편

이 글은 인터럽트 구조 설계, 400W PMSM 서보 지터와 실행 시간 계산을 2편으로 나누어 정리한 시리즈의 1편입니다. 이번 편에서는 PMSM 서보 인터럽트 구조와 PWM 동기화 원리, 다중 루프 제어 계층과 인터럽트 우선순위 설계, 400W 서보 제어기 ISR 실행 시간과 CPU 점유율 계산을 다룹니다.

400W PMSM 서보 인터럽트 구조: PWM 동기화, ADC 샘플링 및 계층적 선점 타이밍 ① PWM 캐리어 및 전류 리플 f_sw = 16 kHz 최솟값 최댓값 최솟값 최댓값 전류 리플 Δi 평균 전류 일치 (무왜곡 샘플링점) ② PWM 출력 스위칭 잡음 dv/dt 잡음 di/dt 잡음 안정 구간 도통 안정 안정 구간 ③ ADC 동기화 하드웨어 트리거 ADC ADC ADC SOC 트리거 EOC 완료 T_conv ≈ 1.2 μs ④ ISR 계층 선점 2순위: 전류 루프 3순위: 속도 루프 4순위: 통신/진단 속도 루프 선점 ADC 좌표 PI PWM 전류 ISR C_cur = 18.5 μs ADC 좌표 PI PWM 전류 ISR C_cur = 18.5 μs 복귀 속도 재개 백그라운드 (통신·진단) ⑤ 실행 시간 예산 마진: 63.9% 1 스위칭 주기 T_sw = 62.5 μs (전류 제어 CPU 점유율 29.6%) t = 0 31.25 μs T_sw = 62.5 μs 93.75 μs
400W PMSM 서보 제어기에서 16 kHz PWM 캐리어의 정점과 저점에 동기화된 ADC 샘플링과 스위칭 잡음 회피 원리, 중첩 인터럽트를 통한 고속 전류 루프(18.5 μs)의 속도 루프 선점 실행 구조를 나타낸 타이밍 다이어그램입니다.

PMSM 서보 인터럽트 구조와 PWM 동기화 원리

400W급 영구자석 동기 전동기(PMSM) 서보 드라이브는 정밀한 위치 제어와 빠른 토크 응답을 달성하기 위해 고성능 디지털 신호 제어기(DSC)를 사용합니다. 서보 제어기에서 가장 핵심적인 연산은 자속 기준 제어(FOC)에 기반을 둔 3상 고속 전류 제어 루프입니다. 전류 제어 루프가 안정적으로 제어 성능을 발휘하려면 인버터 전력 변환부의 PWM(펄스 폭 변조) 스위칭 주기와 정확히 일치하는 인터럽트 동기화 구조가 필수적입니다.

일반적인 400W 소용량 서보 시스템의 PWM 스위칭 주파수는 가청 소음 저감과 전류 리플 억제를 목적으로 16kHz에서 20kHz 범위로 설정합니다. 스위칭 주파수가 16kHz인 경우 한 주기의 시간은 식 (1)과 같이 계산합니다.

Tsw=1fsw=116000=62.5·10−6(1)

식 (1)에서 구한 스위칭 주기 T_sw는 62.5μs입니다. 이 62.5μs의 주기마다 인버터의 상하 전력 스위칭 소자가 도통 및 차단 동작을 반복하며, 이때 급격한 전압 변화율(dv/dt)과 전류 변화율(di/dt)로 인해 전원단과 접지에 강한 스위칭 잡음이 유입될 수 있습니다. 만약 ADC(아날로그-디지털 변환기)가 스위칭 천이 순간에 상전류를 샘플링하면 심각한 측정 오차와 왜곡이 발생하여 전류 제어기가 발산할 위험이 있습니다.

따라서 서보 제어기의 인터럽트 아키텍처는 중앙 정렬(Center-aligned) PWM 캐리어 삼각파의 정점(Peak) 또는 저점(Valley) 시점에 ADC 변환 시작(SOC)을 하드웨어 타이머로 직접 트리거하도록 설계합니다. 캐리어의 정점과 저점은 모든 상의 스위칭 상태가 안정화되어 전류의 평균값이 형성되는 최적의 샘플링 시점입니다. ADC 변환이 완료되면 즉시 전류 제어 인터럽트 서비스 루틴(ISR)이 발생하여 3상 전류 검출값과 엔코더 위치를 읽어 들이고 벡터 제어 연산을 실행합니다.

다중 루프 제어 계층과 인터럽트 우선순위 설계

디지털 모터 제어 시스템은 서로 다른 제어 대역폭을 요구하는 다중 주기(Multi-rate) 제어 루프로 구성되어 있습니다. 전동기의 전기적 시정수는 기계적 시정수보다 훨씬 짧기 때문에, 전류 제어 루프는 매 PWM 주기마다 16kHz의 고속으로 실행해야 합니다. 반면에 기계적 위치 및 속도 응답은 상대적으로 시정수가 크므로 1kHz에서 2kHz 주기로 분주하여 실행하는 구조를 채택합니다.

다중 주기 제어를 안정적으로 구현하기 위해서는 마이크로컨트롤러의 인터럽트 컨트롤러에서 명확한 우선순위(Priority) 계층과 선점(Preemption) 구조를 정의해야 합니다. 최상위 우선순위에는 과전류, 과전압, 직류단 저전압 및 비상 정지를 처리하는 고장 보호(Fault) 인터럽트를 배정합니다. 두 번째 우선순위에는 매 PWM 주기마다 정확히 호출되는 전류 제어 ISR을 배치합니다. 세 번째 우선순위에는 1kHz 주기로 구동되는 속도 및 위치 제어 ISR을 할당하며, 최하위에는 통신 프로토콜 처리 및 상태 모니터링 태스크를 설정합니다.

속도 제어 루프가 실행 중인 상태에서 새로운 PWM ADC 변환 완료 이벤트가 발생하면, 중첩 인터럽트(Nested Interrupt) 기능을 통해 상위 우선순위인 전류 제어 ISR이 속도 제어 ISR을 즉시 선점합니다. 이때 CPU는 현재 실행 중인 레지스터 상태를 스택 메모리에 저장하고 전류 제어를 우선 처리한 후 복귀합니다. 이러한 계층적 인터럽트 우선순위 구조를 확립해야만 기계적 궤적 연산이나 외부 통신 지연에 구애받지 않고 고속 전류 제어의 엄격한 실행 데드라인을 완벽히 보장할 수 있습니다.

400W 서보 제어기 ISR 실행 시간과 CPU 점유율 계산

실시간 제어 시스템의 동작 안정성을 확보하려면 각 인터럽트 서비스 루틴의 최악 실행 시간(WCET)을 정량적으로 산출하고 전체 CPU 점유율(CPU Utilization)을 안정적인 한도 내로 관리해야 합니다. 150MHz의 클록 주파수로 동작하는 32비트 디지털 제어기에서 400W PMSM 서보 제어 알고리즘을 구동하는 환경을 기준으로 각 제어 루프의 실행 시간과 주기를 분석합니다.

고속 전류 제어 ISR에서는 3상 전류 ADC 데이터 취득, 클라크 및 파크 좌표 변환, d축 및 q축 비례적분(PI) 전류 제어, 역파크 변환, 공간벡터 PWM(SVPWM) 듀티비 연산을 순차적으로 수행합니다. 이 과정에 소요되는 최악 실행 시간 C_cur은 18.5μs입니다. 1kHz 주기로 동작하는 속도 및 위치 제어 ISR의 실행 시간 C_spd는 45.0μs이며, 100Hz(10ms) 주기의 사용자 통신 및 진단 태스크 실행 시간 C_comm은 200.0μs입니다. 시스템의 총 CPU 점유율 U_total은 식 (2)와 같이 각 태스크의 실행 시간을 해당 주기로 나눈 값의 총합으로 정의합니다.

Utotal=Σ⁡CiTi(2)

식 (2)를 바탕으로 전류 제어 루프, 속도 제어 루프, 통신 태스크의 점유율 합산식을 전개하면 식 (3)과 같습니다.

Utotal=CcurTcur+CspdTspd+CcommTcomm(3)

식 (3)에 설계된 제어 주기의 수치를 대입하여 계산합니다. 전류 제어 루프의 주기 T_cur은 62.5μs이고 실행 시간 C_cur은 18.5μs이므로 개별 점유율은 0.296이며 이는 29.6%에 해당합니다. 속도 제어 루프의 주기 T_spd는 1000.0μs이고 실행 시간 C_spd는 45.0μs이므로 개별 점유율은 0.045이며 4.5%를 차지합니다. 통신 태스크의 주기 T_comm은 10000.0μs이고 실행 시간 C_comm은 200.0μs이므로 개별 점유율은 0.020이며 2.0%에 불과합니다. 세 값을 모두 더한 총 CPU 점유율 U_total은 0.361로 최종 36.1%로 산출합니다. 실시간 제어 분야에서는 예기치 않은 인터럽트 중첩 오버헤드와 인터럽트 진입 지연을 감당하기 위해 총 CPU 점유율을 60%에서 70% 이하로 제한하는 설계 기준을 권장합니다. 따라서 계산된 36.1%의 점유율은 외란 발생 시에도 데드라인을 안전하게 만족할 수 있는 충분한 타이밍 마진을 제공합니다.

다음 편에서는 이어지는 내용을 계속 설명합니다.

댓글 남기기