모터제어
6. FOC (Field-Oriented Control) – 고성능 BLDC 제어의 핵심
motorcontrol
2025. 4. 5. 11:06
반응형
6. FOC (Field-Oriented Control) – 고성능 BLDC 제어의 핵심
모터를 전류 벡터로 제어하는 고급 기술
BLDC나 PMSM 모터를 사용할 때 가장 강력한 제어 방식이 바로 **FOC(Field-Oriented Control)**입니다.
이 제어 방식은 모터를 전류의 방향과 크기를 분해해서 제어하는 기술로, 고속·고효율·고정밀을 실현할 수 있어요.
🎯 왜 FOC가 필요한가요?
일반적인 PWM 제어나 단순 속도 제어는 다음과 같은 문제를 가집니다:
- 고속 회전 시 진동 발생
- 부하 변화에 대한 반응 속도 낮음
- 효율 저하
FOC는 이런 문제를 해결하기 위해 전류를 **벡터(Vector)**로 보고, 모터 내부의 자속 방향에 맞춰 정밀하게 제어합니다.
🔄 전류를 분해해서 제어한다? (d-q 축 개념)
즉, 자속을 위한 전류는 최소화하고, 토크를 만드는 전류만 정밀하게 제어하자는 전략입니다.
🧮 수식으로 보는 FOC의 흐름
FOC 전체 제어 흐름은 다음과 같은 연산으로 구성됩니다:
🖼️ FOC 제어 블록 다이어그램
[Current Sensor]
↓
[Clarke Transform]
↓
[Park Transform] ← θ (Rotor angle)
↓
[PI Controller] ← 목표 i_d = 0, 목표 i_q = Torque Ref
↓
[Inv. Park Transform]
↓
[SVPWM / Sine PWM Generation]
↓
[Inverter → Motor]
↓
[Clarke Transform]
↓
[Park Transform] ← θ (Rotor angle)
↓
[PI Controller] ← 목표 i_d = 0, 목표 i_q = Torque Ref
↓
[Inv. Park Transform]
↓
[SVPWM / Sine PWM Generation]
↓
[Inverter → Motor]
🧠 FOC를 위해 필요한 요소들
항목설명
전류 센서 | 2~3상 전류 측정 필요 (shunt, Hall) |
로터 위치 정보 | 센서(Hall/Encoder) 또는 센서리스 추정 |
고속 실시간 연산 | MCU에서 5~20kHz 제어 루프 필요 |
SVPWM/Sine PWM | 출력 전압을 최대 효율로 생성 |
👨💻 FOC 루프 간단 의사코드 예시
void FOC_Loop() {
// 1. 전류 측정
float ia, ib, ic = Measure_PhaseCurrent();
// 2. Clarke 변환
float ialpha, ibeta = ClarkeTransform(ia, ib, ic);
// 3. 위치각 θ 획득
float theta = GetRotorAngle();
// 4. Park 변환
float id, iq = ParkTransform(ialpha, ibeta, theta);
// 5. PID 제어
float vd = PID_id(id_ref - id);
float vq = PID_iq(iq_ref - iq);
// 6. 역 변환 → SVPWM
float valpha, vbeta = InvParkTransform(vd, vq, theta);
SVPWM_Generate(valpha, vbeta);
}
// 1. 전류 측정
float ia, ib, ic = Measure_PhaseCurrent();
// 2. Clarke 변환
float ialpha, ibeta = ClarkeTransform(ia, ib, ic);
// 3. 위치각 θ 획득
float theta = GetRotorAngle();
// 4. Park 변환
float id, iq = ParkTransform(ialpha, ibeta, theta);
// 5. PID 제어
float vd = PID_id(id_ref - id);
float vq = PID_iq(iq_ref - iq);
// 6. 역 변환 → SVPWM
float valpha, vbeta = InvParkTransform(vd, vq, theta);
SVPWM_Generate(valpha, vbeta);
}
✅ 정리: FOC는 왜 중요한가?
항목설명
🎯 목표 | 자속과 토크 성분을 분리하여 정밀하게 제어 |
💡 특징 | 효율 ↑, 진동 ↓, 토크 반응 ↑, 정숙성 ↑ |
🔋 활용 | 전기차, 고성능 드론, 산업 로봇, 서보 시스템 등 |
📦 필요 조건 | 전류 센서 + 위치 정보 + 고속 연산 가능한 MCU |
FOC는 단순한 제어가 아니라 모터 내부를 수학적으로 "해석하고 제어"하는 방식입니다.
고성능 모터 제어에는 거의 필수적으로 적용되고 있으며, 센서리스 FOC와 자동 튜닝 기능이 탑재된 상용 솔루션도 많아요.
반응형