[로봇 하드웨어 05] - 액추에이터 (4): 토크 리플

PWM, 전류 샘플링, d–q축과 엔코더 전기각 오차가 토크 리플로 이어지는 경로

KR

상위 제어기에서 5 Nm를 명령했다고 해보겠습니다. 이상적인 시뮬레이터라면 관절 토크는 한 줄짜리 식으로 끝납니다.

\[\tau_{joint}=5\ \mathrm{Nm}\]

실제 모터 드라이브가 하는 일은 전혀 다릅니다. 토크 명령을 q축 전류 기준값으로 바꾸고, 3상 인버터의 스위치를 켰다 껐다 하면서 전압을 합성하고, 그 사이에 흐르는 전류를 몇 개의 짧은 시점에서 측정합니다. 엔코더가 알려준 회전자 각도로 그 전류를 d–q축에 투영한 다음, 다음 PWM 주기에 사용할 전압을 다시 계산합니다.

즉 제어기가 일정한 숫자를 보냈다는 사실은 일정한 전자기 토크가 만들어졌다는 뜻이 아닙니다. 이 둘 사이에는 회전자 위치, 스위칭 상태와 샘플링 시점에 동기화된 주기적 오차가 있습니다. 이것이 이번 글에서 다룰 토크 리플(torque ripple)입니다.

앞 글에서 다룬 QDD 액추에이터는 낮은 감속비와 낮은 마찰을 통해 모터 토크가 출력축으로 비교적 투명하게 전달되도록 설계됩니다. 그러나 높은 기계적 투명성은 모터와 드라이버에서 발생하는 오차까지 출력축에 더 직접적으로 전달될 수 있다는 뜻이기도 합니다. 고감속 구동계에서는 작은 모터 토크 리플이 전달계의 마찰과 탄성에 일부 가려질 수 있지만, QDD처럼 전류 기반 토크 제어와 낮은 출력 임피던스를 목표로 하는 시스템에서는 전기각 오차, 전류 측정 오차와 인버터 비선형성이 실제 관절 토크와 접촉력에서 더 직접적으로 관측될 수 있습니다.

토크 리플과 반복성이 낮은 noise(잡음)를 분리하면 실제 전자기 토크를 다음과 같이 개념적으로 나타낼 수 있습니다.

\[\tau_e(t)=\bar{\tau}_e+\tau_{\mathrm{position}}(\theta_e) +\tau_{\mathrm{switch}}(t) +\tau_{\mathrm{estimation}}(\theta_e,t)+n_\tau(t)\]

위치, 스위칭 상태 또는 추정 오차에 동기화된 앞의 세 변동 항은 같은 상태를 지날 때 유사하게 반복되는 ripple입니다. 반면 $n_\tau(t)$는 반복성이 낮은 센서, 양자화와 환경 잡음을 나타냅니다.

5 Nm 평균 토크에 서로 다른 위치·시간 동기 성분을 합성한 개념적 예시입니다. 12차, 6차와 48차는 특정 모터의 보편적인 고조파 차수를 의미하지 않으며, 반복 가능한 여러 주기 성분이 실제 토크 파형에서 중첩되는 모습을 보여주기 위한 값입니다.

먼저 “어떤 리플”인지 분리해야 합니다

실험에서 관절 토크가 흔들리는 것을 봤다고 해서 원인이 하나인 것은 아닙니다. 적어도 네 층을 구분해야 합니다.

  1. 전류가 없어도 생기는 토크

    슬롯이 있는 고정자와 영구자석 사이의 자기 저항이 회전자 위치에 따라 달라져 cogging torque가 생깁니다. 전류 명령을 0으로 만들고 손으로 천천히 돌릴 때 느끼는 주기적 걸림의 한 원인입니다. 슬롯 수, 극수, 자석 형상과 skew가 그 주기를 정합니다.[1]

  2. 전류가 만드는 전자기 토크의 공간 고조파

    권선 분포와 역기전력이 완전한 정현파가 아니고 자성체가 포화되면, 평균 q축 전류가 일정해도 회전자 위치에 따라 토크가 달라집니다. 모터의 전자기적 형상에 내재된 오차에 가깝습니다.

  3. PWM 스위칭 리플

    PWM은 연속 전압이 아니라 유한한 DC bus를 스위칭해 평균 전압을 만듭니다. 유한한 PWM 주파수 때문에 스위칭 주파수와 그 배수 부근에 전압·전류 리플이 나타납니다.

  4. 인버터 비선형성이 만드는 저차 고조파

    Dead time, 전력 소자의 전압 강하와 turn-on/off 비대칭 때문에 실제 상전압은 명령과 달라집니다. 이 오차는 carrier 부근의 고주파 성분뿐 아니라 정지 좌표계의 5차·7차 전류 고조파와 회전자 좌표계의 6차 반복 성분처럼 낮은 차수의 전류·토크 고조파를 만들 수 있습니다.[4,5]

  5. 센싱과 좌표변환이 만든 가짜 q축 전류

    전류 센서의 offset·gain·대역폭 오차와 엔코더 전기각 오차가 d축과 q축을 섞습니다. 제어기는 i_q가 일정하다고 믿지만, 실제 회전자 좌표계에서는 다른 벡터를 만들고 있을 수 있습니다.[2,3]

이 네 현상은 측정된 토크 스펙트럼에서 겹쳐 보일 수 있습니다. 그래서 “토크 리플이 몇 %인가”만으로는 설계 판단을 하기 어렵습니다. 무전류에서 남는지, 회전자 위치에 동기화되는지, 전기 주파수와 함께 이동하는지, PWM 주파수 또는 그 alias에 붙는지를 함께 봐야 합니다.

d축과 q축은 물리축이 아니라 “믿고 있는 좌표계”입니다

FOC(Field-Oriented Control)는 3상 전류를 회전자 자속과 함께 도는 좌표계로 바꿉니다. d축은 영구자석 자속 방향, q축은 그와 직교하는 방향입니다.[8] 이상적인 표면부착형 PMSM(SPMSM)의 토크는 다음처럼 쓸 수 있습니다.

\[\tau_e=\frac{3}{2}p\lambda_m i_q\]

p는 극쌍 수, \lambda_m은 영구자석 자속 연계입니다. 내부 영구자석형 PMSM(IPMSM)에서는 reluctance torque가 더해집니다.

\[\tau_e=\frac{3}{2}p \left[ \lambda_m i_q+(L_d-L_q)i_di_q \right]\]

따라서 i_d=0, i_q=constant라는 명령은 강력한 근사입니다. 문제는 이 좌표계가 엔코더가 알려준 각도 위에 만들어진다는 점입니다. 엔코더 영점이 틀리거나 장착 편심, 자석 링의 pole pitch 오차, 보간 오차가 있으면 제어기가 생각하는 q축과 실제 q축이 어긋납니다.[2,3]

제어 좌표계의 각도 오차를 $\Delta\theta_e$라고 하고, 제어기가 $\hat{i}_d=0$, $\hat{i}_q=I$를 만든다고 해보겠습니다. 부호 convention을 하나 정하면 실제 축에서는 대략 다음처럼 보입니다.

\[i_d \approx I\sin\Delta\theta_e,\qquad i_q \approx I\cos\Delta\theta_e\]

일정한 각도 offset은 평균 토크를 줄이고 원하지 않는 d축 전류를 만듭니다. 위치에 따라 변하는 각도 오차는 더 나쁩니다. 회전자와 함께 $\Delta\theta_e$가 주기적으로 변하므로 q축 전류와 토크도 주기적으로 변합니다. 전기각은 기계각보다 $p$배 빠르기 때문에,

\[\Delta\theta_e=p\,\Delta\theta_m\]

극쌍 수가 큰 pancake motor에서는 작은 기계각 오차도 상당한 전기각 오차가 될 수 있습니다. “고해상도 엔코더를 달았다”는 사양만으로 해결되지 않는 이유입니다. 분해능과 별개로 absolute accuracy, 편심, 영점 calibration, 지연을 봐야 합니다.

센서와 계산 지연은 고정된 각도 offset과 구분해야 합니다. 전체 지연을 $T_d$, 전기각 속도를 $\omega_e$라고 하면 지연으로 생기는 각도 오차는 대략 다음과 같습니다.

\[\Delta\theta_{e,\mathrm{delay}}\approx\omega_eT_d\]

따라서 같은 센서와 계산 지연을 사용해도 속도가 높아질수록 d–q 변환에 사용되는 각도가 더 뒤처집니다. 작은 각도 오차에서는 $\sin\Delta\theta_e\approx\Delta\theta_e$, $\cos\Delta\theta_e\approx1-\Delta\theta_e^2/2$이므로 원하지 않는 $i_d$는 오차에 1차적으로 증가하는 반면, 평균 토크 감소는 2차적으로 나타납니다.

$\hat{i}_d=0$, $\hat{i}_q=I$인 SPMSM 근사에서 전기각 오차를 sweep한 결과입니다. 작은 오차에서 원하지 않는 d축 성분은 오차에 1차적으로 증가하지만, q축 성분과 평균 토크의 감소는 2차적으로 시작합니다.

PWM 사이에서 전류를 언제 읽어야 하나

모터 권선의 전류는 인덕턴스 때문에 연속적으로 변하지만, 디지털 제어기가 보는 전류는 특정 순간의 샘플입니다. 그 순간을 잘못 고르면 센서가 고장 나지 않아도 잘못된 값을 읽습니다.

MOSFET이 전환되는 edge 근처에는 큰 $dv/dt$와 $di/dt$가 생깁니다. 션트 저항 양단의 작은 차동 전압 위에 공통모드 과도응답, diode reverse recovery, ringing, 증폭기 settling이 겹칩니다. 게이트 전환 직후의 샘플을 그대로 쓰면 제어 루프는 이 과도응답을 실제 상전류 변화로 해석합니다.[4,5]

그래서 실무적인 샘플링 창은 다음 세 조건 사이에 있습니다.

  • 스위칭 edge 뒤의 blanking time과 증폭기 settling time이 끝나야 합니다.
  • 측정하려는 션트에 해당 상전류가 실제로 흐르고 있어야 합니다.
  • 다음 스위칭 edge 전에 ADC acquisition과 변환을 끝낼 시간이 남아야 합니다.

Center-aligned PWM에서는 스위칭 edge에서 떨어진 비교적 조용한 구간에 ADC trigger를 배치하기 쉽습니다. 그러나 유효한 샘플 위치는 전류 센서의 배치와 현재 switching vector에 따라 달라집니다. 특히 low-side shunt와 single DC-link shunt에서는 단순히 PWM 주기의 중앙이라는 이유만으로 해당 시점의 상전류가 관측 가능한 것은 아닙니다. Duty가 0%나 100%에 가까워지면 유효한 conduction window도 짧아집니다.

20 kHz PWM, duty 0.62, 3 µs blanking과 1차 측정 경로 settling을 둔 예시입니다. 스위칭 edge 직후의 샘플은 실제 권선 전류가 아니라 측정 경로의 과도응답을 함께 읽습니다.

션트 개수에 따라 “모르는 구간”이 달라집니다

3 low-side shunt 구조는 각 inverter leg의 하단에 션트를 하나씩 설치합니다. 해당 low-side switch에 측정 가능한 전류가 흐르는 구간에서 두 상 이상을 읽고 $i_a+i_b+i_c=0$으로 나머지를 복원합니다. 관측성이 좋지만 증폭기와 ADC 채널, 보정 대상이 늘어납니다.

2 low-side shunt 구조는 두 inverter leg의 전류를 직접 읽고 세 번째 상전류를 복원합니다. 특정 duty 조합에서는 한쪽 측정 창이 좁아질 수 있어 PWM 패턴과 샘플 timing을 함께 설계해야 합니다.

Single DC-link shunt는 가장 까다롭습니다. DC-link에 흐르는 전류 하나에서 현재 switching vector를 이용해 상전류를 재구성합니다. 독립적인 두 active vector가 증폭기 상승·정착 시간, ADC sample-and-hold 시간과 dead time을 포함한 최소 시간 이상 유지되어야 합니다. 낮은 modulation 영역이나 sector 경계, 매우 짧은 pulse에서는 측정할 수 없는 영역이 생겨 pulse shifting이나 이전 샘플 기반 추정이 필요합니다.[6]

3 in-line sensor 구조는 모터의 각 상에 흐르는 전류를 직접 측정합니다. Switching state에 대한 관측 제약은 상대적으로 적지만 센서와 증폭기가 높은 공통모드 전압, 빠른 PWM transient와 절연 요구를 견뎌야 합니다.

전류 측정 장점 숨은 실패 모드
3 low-side shunt 관측 창이 넓고 진단이 쉬움 채널별 offset·gain·delay mismatch
2 low-side shunt 비용과 관측성의 절충 duty에 따라 한 상의 창이 사라짐
1 DC-link shunt 센서·ADC 비용 최소 switching vector에 따라 재구성 불가 구간 발생
3 in-line sensor 각 상전류를 직접 측정 높은 공통모드 전압과 PWM transient 요구

샘플링을 PWM과 비동기로 돌리면 더 미묘한 문제가 생깁니다. 샘플링 주파수를 $f_s$, 실제 리플 주파수를 $f_r$라고 하면 관측되는 alias는 대략 다음 관계에서 가장 작은 값을 만드는 정수 $k$에 의해 나타납니다.

\[f_{\mathrm{alias}}=\left|f_r-kf_s\right|\]

PWM 리플이 observation 또는 control sampling frequency의 정수배에 가까우면 실제로는 수십 kHz인 현상이 수 Hz 또는 수십 Hz의 느린 토크 변동처럼 관측될 수 있습니다. PWM과 동기화된 ADC 샘플링은 alias를 줄이는 것뿐 아니라 항상 비슷한 ripple phase에서 측정해 관측값의 반복성을 높이는 의미도 있습니다.

전류 루프가 빨라도 실제 토크 대역폭이 같지는 않습니다

FOC의 current loop bandwidth가 높다는 말은 측정된 전류가 기준값을 빠르게 따른다는 뜻입니다. 다음 조건까지 자동으로 보장하지는 않습니다.

  • 측정된 전류가 실제 전류와 같은가
  • 전기각이 실제 자속축과 같은가
  • 자속 연계와 $K_t$가 일정한가
  • 구조물과 감속기가 그 토크를 그대로 전달하는가

토크 리플의 위치 동기 성분은 모터 속도가 올라가면 시간 주파수도 올라갑니다. 반대로 로봇 관절이 천천히 움직일 때에는 낮은 주파수로 내려와 force control bandwidth 안에 들어올 수 있습니다. 발이 지면을 누르거나 손이 물체를 미는 동안에는 작은 토크 주기성이 접촉력 ripple로 직접 보입니다.

감속기도 리플을 “없애는 필터”는 아닙니다. 실제 토크 전달을 단순한 상수 효율보다 전달 함수로 나타내면 다음과 같습니다.

\[\tau_{\mathrm{out}}(s)=N H_g(s)\tau_m(s)\]

$H_g(s)$에는 감속기의 강성, 감쇠, 마찰과 부하 동역학이 포함됩니다. 저주파에서는 $H_g\approx\eta_g$처럼 볼 수 있지만, 기계적 공진 근처에서는 리플이 충분히 감쇠되지 않거나 오히려 증폭될 수 있습니다.

감속기를 통과하는 특정 토크 변동의 시간 주파수는 입력축과 출력축에서 동일합니다. 다만 일정한 관절 속도를 기준으로 비교하면 모터가 관절보다 $N$배 빠르게 회전하므로 모터 위치 동기 리플의 시간 주파수는 직접 구동보다 $N$배 높습니다. 관절각을 독립변수로 그리면 같은 성분이 관절 1회전당 $N$배 더 많이 반복되어 공간적으로 더 촘촘하게 보입니다.

무엇을 측정하면 원인을 분리할 수 있나

토크 센서의 파형 하나만 보는 것보다 다음 실험을 순서대로 겹치는 편이 낫습니다.

  1. 무전류 저속 backdrive로 cogging과 전달계 마찰의 위치 의존성을 측정합니다.
  2. 저속 일정 전류 회전 실험으로 일정한 $i_q$에서 모터를 매우 천천히 회전시키며 토크를 기계각과 전기각에 대해 기록합니다.
  3. Locked-rotor commutation-angle sweep으로 로터를 특정 기계각에 고정하고 인가 전류 벡터의 전기각을 바꿔 토크–전류각 관계와 electrical zero를 측정합니다. 큰 전류를 오래 인가하면 발열이 빠르므로 짧은 pulse와 전류 제한을 사용해야 합니다.
  4. 전류 원시 ADC 값, reconstructed phase current, id/iq, encoder raw angle, PWM sector와 duty를 같은 clock으로 기록합니다.
  5. 기계각 대신 전기각으로 synchronous averaging해 반복 성분을 분리합니다.
  6. 엔코더를 독립된 고정밀 각도 기준과 비교해 harmonic map을 만들고, electrical zero를 부하·방향별로 확인합니다.
  7. PWM 주파수나 ADC trigger 위치만 바꿔 리플이 이동하는지 봅니다. 이동하면 모터의 전자기적 형상보다 switching/measurement 경로를 먼저 의심할 수 있습니다.

반복되는 오차는 보상할 수도 있습니다. cogging map, encoder error map, dead-time compensation, iterative learning control이 대표적입니다.[7] 하지만 lookup table 하나로 모든 운전점을 덮을 수 있다고 가정하면 다시 문제가 생깁니다. 포화, DC bus 전압, 온도와 하중에 따라 오차 map 자체가 달라질 수 있기 때문입니다.

Physical AI가 보게 되는 것은 “토크 noise”가 아닙니다

시뮬레이터에서 토크 명령에 Gaussian noise를 더하면 매 step의 오차는 독립적입니다. 실제 토크 리플은 그렇지 않습니다.

  • 회전자 위치를 다시 지나면 비슷한 오차가 반복됩니다.
  • 속도가 바뀌면 오차의 시간 주파수가 함께 이동합니다.
  • 방향이 바뀌면 dead-time과 마찰 오차의 부호가 달라집니다.
  • PWM과 observation clock의 관계가 바뀌면 alias 패턴도 달라집니다.
  • 온도와 bus voltage가 바뀌면 같은 위치의 진폭도 달라집니다.

따라서 sim-to-real을 위해 필요한 모델은 단순한 “토크 표준편차”보다 전기각을 상태로 가진 주기 오차와 샘플링 과정에 가깝습니다. 모든 스위칭을 시뮬레이션할 필요는 없더라도, 최소한 위치 동기 ripple, angle offset/drift, current-loop delay와 saturation을 서로 다른 항으로 두는 것이 낫습니다.

시뮬레이터용 최소 actuator model은 다음처럼 구성할 수 있습니다.

\[\tau_{\mathrm{actual}}= \operatorname{sat}\!\left( K_t(T)i_q(t-T_d)+r(\theta_e,I,T,V_{\mathrm{dc}}) \right)\]

$T_d$는 current loop와 계산 지연, $K_t(T)$는 온도에 따라 달라질 수 있는 토크 상수입니다. $r(\theta_e,I,T,V_{\mathrm{dc}})$는 위치·전류·온도·bus voltage에 의존하는 반복 오차이며, $\operatorname{sat}$은 전류와 전압 제한을 나타냅니다. 이 모델은 Gaussian noise 하나를 더하는 방식보다 실제 액추에이터의 상태 의존성과 반복성을 더 직접적으로 표현합니다.

FOC는 훌륭한 제어 구조입니다. 다만 FOC가 있다는 사실과 토크원이 이상적이라는 사실은 같지 않습니다. 우리가 q축이라고 부르는 방향, 우리가 읽었다고 믿는 전류, 그 둘을 결합하는 샘플 시점이 맞아야 비로소 토크 명령이 물리량이 됩니다.

다음 포스트: [로봇 하드웨어 06] - 액추에이터 (5): 백래시

References

[1] Z. Q. Zhu and D. Howe, “Influence of Design Parameters on Cogging Torque in Permanent Magnet Machines,” IEEE Transactions on Energy Conversion, vol. 15, no. 4, pp. 407–412, 2000. doi:10.1109/60.900501

[2] R. Raja, T. Sebastian, M. Wang, A. Gebregergis, and M. S. Islam, “Effect of Position Sensor Error on the Performance of Permanent Magnet Machine Drives,” IEEE Transactions on Industry Applications, vol. 53, no. 6, pp. 5518–5526, 2017. doi:10.1109/TIA.2017.2704898

[3] M. Pramod, “Position Sensing Errors in Synchronous Motor Drives,” arXiv:2310.00977, 2023. arXiv

[4] Texas Instruments, “48-V Three-Phase Inverter With Shunt-Based In-Line Motor Phase Current Sensing,” TIDUCE8A. PDF

[5] Texas Instruments, “Current Sensing With <1-µs Settling for 1-, 2-, and 3-Shunt FOC Inverter,” TIDUCY7. PDF

[6] Texas Instruments, “Sensorless-FOC for PMSM With Single DC-Link Shunt,” SPRACT7. PDF

[7] W. Qian, S. K. Panda, and J.-X. Xu, “Torque Ripple Minimization in PM Synchronous Motors Using Iterative Learning Control,” IEEE Transactions on Power Electronics, vol. 19, no. 2, pp. 272–279, 2004. doi:10.1109/TPEL.2003.820537

[8] Texas Instruments, “Sensored Field Oriented Control of 3-Phase Permanent Magnet Synchronous Motors Using TMS320F2837x,” SPRABZ0. PDF