FOC: 3상 전류를 두 개의 직류로
클라크, 파크 변환으로 회전하는 3상 전류를 회전자에 붙은 좌표의 d축, q축 직류 값으로 바꿔 토크를 직접 제어합니다.
왜 좌표를 바꾸나
3상 전류는 회전 속도에 맞춰 계속 바뀌는 사인파라서, PI 제어기로 직접 따라가게 하기 어렵습니다. 회전자와 같이 도는 좌표계에서 보면 이 전류가 멈춘 직류 값이 되고, 직류는 PI로 쉽게 제어됩니다.
변환 순서
- 클라크 변환: ia, ib, ic → iα, iβ (정지 2축)
- 파크 변환: 회전자 전기각 θ로 회전 → id, iq (회전 2축)
- PI 제어: id → 목표 0 (표면 자석 모터), iq → 목표 토크 전류
- 역파크 변환: vd, vq → vα, vβ
- SVPWM: vα, vβ → 세 상 듀티
iq = -iα·sinθ + iβ·cosθ
id = iα·cosθ + iβ·sinθ
d축과 q축의 의미
- q축 전류: 토크를 만듭니다 (토크 = 1.5 · p · λ · iq)
- d축 전류: 자속 방향. 0으로 두면 같은 전류로 최대 토크, 음수로 주면 고속에서 약자속 운전
필요한 것
- 정확한 전기각 θ: 엔코더, 보간한 홀, 또는 센서리스 관측기
- 빠른 전류 루프: PWM 주기(10~20kHz)마다 위 계산 전체
- 정확한 전류 센싱과 타이밍
6스텝보다 토크 리플이 작고 조용하며 효율이 좋아서 전기차, 산업용 서보, 고급 드론 ESC가 FOC를 씁니다.
한 줄로 요약하면
회전자와 함께 도는 좌표에서 보면 3상 교류 전류가 두 개의 직류 값으로 보입니다. 직류는 PI 제어기로 다루기 쉬우므로, 좌표를 바꿔서 제어하고 다시 되돌리는 것이 FOC입니다.
한 주기에 하는 일
| 순서 | 단계 | 입력 → 출력 |
|---|---|---|
| 1 | 전류 측정 | 션트 저항과 ADC → ia, ib (ic = −ia − ib) |
| 2 | 클라크 변환 | ia, ib → iα, iβ (정지한 2축) |
| 3 | 파크 변환 | iα, iβ, 각도 θ → id, iq (회전하는 2축) |
| 4 | PI 제어 두 개 | id 오차, iq 오차 → vd, vq |
| 5 | 역파크 변환 | vd, vq, θ → vα, vβ |
| 6 | SVPWM | vα, vβ → 세 상의 듀티 |
이 여섯 단계를 PWM 주기마다(보통 10 k~20 kHz) 반복합니다.
d축과 q축
- q축 전류(iq): 자석의 자속과 직각 방향. 토크를 만듭니다. 토크는 iq에 비례합니다.
- d축 전류(id): 자석과 같은 방향. 토크에 기여하지 않으므로 보통 0으로 제어합니다. 고속에서 역기전력을 누르려고 음수로 주는 것이 약계자 제어입니다.
변환 코드
// 클라크: 3상 → 정지 2축 (ia + ib + ic = 0 가정)
float i_alpha = ia;
float i_beta = (ia + 2.0f * ib) * 0.57735027f; // 1/√3
// 파크: 정지 2축 → 회전 2축
float s = sinf(theta), c = cosf(theta);
float id = i_alpha * c + i_beta * s;
float iq = -i_alpha * s + i_beta * c;
// 역파크: 회전 2축 → 정지 2축
float v_alpha = vd * c - vq * s;
float v_beta = vd * s + vq * c;
theta는 전기각입니다. 기계각에 극쌍 수를 곱한 값이며, 엔코더가 0을 가리킬 때의 전기각 오프셋을 한 번 찾아 더해 주어야 합니다.
각도가 틀리면 벌어지는 일
각도 오차가 δ이면 토크는 cos δ만큼 줄어듭니다.
| 각도 오차 | 남는 토크 | 증상 |
|---|---|---|
| 0도 | 100% | 정상 |
| 30도 | 87% | 전류가 늘고 발열 |
| 60도 | 50% | 힘이 눈에 띄게 약함 |
| 90도 | 0% | 전류만 흐르고 돌지 않음 |
| 90도 초과 | 음수 | 반대로 돌거나 폭주 |
같은 전류를 흘리는데 토크가 부족하거나 모터가 유난히 뜨거우면 각도 오프셋부터 의심합니다. 이 관계는 사이트의 FOC 실험실에서 각도 오차 슬라이더를 움직여 직접 볼 수 있습니다.
6스텝과 비교
| 6스텝 | FOC | |
|---|---|---|
| 전류 모양 | 계단 | 사인파 |
| 토크 출렁임 | 큼 | 작음 |
| 필요한 센서 | 홀센서 | 전류 센서 + 정밀한 각도 |
| 연산량 | 적음 | 삼각함수와 PI 두 개 |
| 쓰임 | 드론, 전동 공구 | 전기차, 로봇 관절, 가전 |
현업에서 자주 터지는 문제
- 전류 샘플 시점: 스위칭 순간에 재면 노이즈가 섞입니다. PWM 주기 가운데에서 ADC를 트리거합니다.
- PI 출력 제한: vd, vq를 합친 크기가 낼 수 있는 전압을 넘지 않게 제한하고, 포화되면 적분을 멈춥니다.
- 전류 센서 오프셋: 전류가 0일 때의 ADC 값을 시작할 때 측정해 빼 줍니다.
- 극쌍 수 착오: 전기각이 틀려 저속에서 떨고 고속에서 힘이 빠집니다.
영상으로 이어 보기모터 시리즈 10편세상을 움직이는 힘 = DC모터, 이 영상 하나로 정리해드립니다.PROJECT COURSEDC 모터를 H-브리지로 직접 구동해 보고 싶다면밸런싱 로봇 하나를 요구사항, 회로와 PCB, 펌웨어, 앱까지 실무 순서대로 만드는 강의입니다. 10파트 165강.강의 살펴보기 →FREE PDF무료 전자책 3권 받기이 주제를 한 권으로 이어서 읽고 싶다면. BLDC 모터 제어, 직렬통신, 센서를 책 분량으로 묶었습니다. 이메일만 남기면 바로 받습니다.무료로 받기 →