제5부 구동·액추에이터·동력전달
5.7 모터 드라이브 II: 벡터 제어(FOC)·센서리스·약계자
5.7.1 이 장에서 배우는 것 / 선수 지식 / 특히 중요한 독자
이 장은 영구자석 동기 전동기(PMSM)의 벡터 제어, 곧 자속 방향 제어(field-oriented control, FOC)를 다룬다. 3상 전류를 회전자에 정렬한 $d$·$q$ 좌표로 변환해 전류 제어기를 직류량에 대해 구성하는 방법, 비결합과 디지털 지연 보상, 최대 토크 대 전류(MTPA) 조건, 전압·전류 한계 안의 약계자 운전, 회전자 각도 센서가 없는 센서리스 추정(역기전력 관측기와 고주파 주입)을 계산으로 확인한다. 인버터 구조·PWM 변조·전류 센싱·전류 제어기 이득 설계는 5.6, 모터의 원리와 정격은 5.3, 코깅과 토크 리플은 5.5, 관절 내장 전력단은 5.8, 위치·속도 루프는 5.9, 엔코더는 6.2과 이어진다.
배우는 것:
- 좌표변환의 규약 — 진폭 불변과 전력 불변의 환산, 극쌍수·선간·피크 대 RMS 환산.
- $dq$ 모델과 토크 — 돌극에 의한 릴럭턴스 토크, 표면 부착형(SPM)과 매입형(IPM)의 구분.
- 전류 제어기 — 교차 결합, 비결합과 역기전력 전향 보상, 1.5 샘플 지연과 각도 보정.
- MTPA와 약계자 — 닫힌 식, 전류 원·전압 타원, 기저 속도, 정토크·정출력·MTPV 구간.
- 센서리스 — 역기전력(EMF) 관측기와 PLL, 저속 한계, 고주파 주입(HFI)의 신호 이득.
선수 지식: 1.25(샘플링·z변환), 5.3(PMSM 원리), 5.6(인버터·PWM·전류 제어).
특히 중요한 독자: 관절 모터 드라이브의 펌웨어를 구현하는 엔지니어, 구동기 사양에서 속도·토크 포락선을 읽어야 하는 설계자, 센서리스 백업을 안전 기능과 결부해 검토하는 인증 담당자.
출처 방침. 기준 시점은 2026-11-05이다. 직접 읽은 자료: (1) Microchip 응용 노트 AN1078(Sensorless Field Oriented Control of a PMSM, DS01078B, 2010) 전문 — Clarke·Park 정의, PI 반포화, 디지털 모델, 슬라이딩 모드 전류 관측기, 필터 지연 보상, 약계자 표. (2) mjbots moteus 문서의 Theory of Operation과 설정 참조(
servo.pid_dq_hz·servo.fw.*) — GitHub 기본 브랜치, 2026-11-05 접속. (3) ODrive 문서 Tuning the Controller(최신판, 2026-11-05 접속). 요약으로만 확인한 것: MathWorks 문서 PMSM Constraint Curves and Their Application은 웹 요약 도구로 읽었으며 수식이 재구성된 것이라는 경고가 붙어 있어 이 장의 근거로 삼지 않았다. 서지만 확인한 것(Crossref로 제목·권호·쪽수만 확인, 본문은 읽지 못했다): Park(1929), Jahns 등(1986), Pillay·Krishnan(1989), Morimoto 등(1990, 2002), Jansen·Lorenz(1995), Corley·Lorenz(1998), Soong·Miller(1994), Bolognani 등(2003), Harnefors·Nee(1998). 읽지 못한 것: Blaschke의 원 논문, IEC 61800 시리즈 본문. 식은 이 장이 직접 유도하고 계산으로 확인했으며, 모터 정수는 모두 이 장이 정한 예시이고 어떤 제품의 제원도 아니다.
5.7.2 개념 — 회전 좌표에서 전류를 직류량으로 만든다
결론부터 적으면 다음과 같다. 3상 정현 전류는 회전자 자속에 정렬한 $d$·$q$ 좌표에서 정상 상태에 직류량이 되고, 이 좌표에서 $q$ 성분이 토크를, $d$ 성분이 자속(약계자·릴럭턴스 토크)을 정한다. 그러므로 PI 전류 제어기를 직류량에 적용하면 정상 상태 오차가 없고 대역폭이 전기 주파수에 묶이지 않는다. 대가는 회전자 각도 $\theta$가 필요하다는 점이며, 이를 엔코더로 얻으면 센서 기반, 전압·전류로 추정하면 센서리스이다. 약계자는 인버터 전압이 모터 역기전력에 도달한 속도 이상에서 $d$축 전류를 음으로 만들어 쇄교 자속을 낮추는 운전이다.
이 장의 계산 결과를 미리 적으면 다음과 같다. ① 진폭 불변 변환에서 3상 전력은 $1.5(v_di_d+v_qi_q)$와 $4.5\times10^{-13}$ W 안에서 같다. ② 비결합과 역기전력 전향 보상이 없으면 기저 속도에서 $i_q$ 90 % 도달에 7400 µs, 있으면 700 µs이다. ③ 예시 IPM의 MTPA 기저점은 $(i_d,i_q)=(-21.15,\ 33.95)$ A, 기저 토크 8.32 N·m로 같은 전류의 SPM(6.00 N·m)보다 39 % 크다. ④ 전압 한계에서 SPM은 $i_d=0$만으로 2646 rpm 이상에서 토크를 낼 수 없으나 약계자를 사용하면 12 000 rpm에서도 1.02 N·m(1285 W)를 낸다. ⑤ 센서리스 관측기는 이상 조건에서 각 오차 $-0.09^\circ$이나, 전류 노이즈와 데드타임 전압 오차가 있으면 기저 속도의 2 %에서 표준편차 37°, 20 %에서 2.4°이다.
5.7.3 원리
5.7.3.1 좌표변환과 단위 규약
결론부터 적으면 이 장은 진폭 불변(amplitude-invariant) 변환을 사용하며, 이때 $dq$ 전류의 크기가 상 전류 피크와 같고 전력과 토크에 계수 $3/2$가 붙는다. 전력 불변 변환은 계수가 1이 되는 대신 모든 전압·전류·자속이 $\sqrt{3/2}$배이므로 데이터시트·펌웨어를 섞어 읽을 때 계수를 먼저 확인해야 한다. 아래 표에서 정의와 환산을 확정한다.
| 양 | 이 장의 정의 | 환산·주의 |
|---|---|---|
| 극쌍수 $p$, 전기각속도 | $\omega_e=p\,\omega_m$, $\omega_m=2\pi N/60$ | 예시 $p=10$: 1000 rpm은 $\omega_e=1047.2$ rad/s |
| Clarke(진폭 불변) | $i_\alpha=i_a$, $i_\beta=(i_a+2i_b)/\sqrt3$ ($i_a+i_b+i_c=0$) | AN1078이 같은 식을 사용한다. 전력 불변은 계수 $\sqrt{2/3}$ |
| Park | $i_d=i_\alpha\cos\theta+i_\beta\sin\theta$, $i_q=-i_\alpha\sin\theta+i_\beta\cos\theta$ | $d$축은 자석 자속 방향, $\theta$는 $\alpha$축에서 $d$축까지 |
| 전력·토크 | $P=1.5(v_di_d+v_qi_q)$, $T=1.5\,p\,[\psi+(L_d-L_q)i_d]\,i_q$ | 전력 불변은 $P=v_di_d+v_qi_q$, 자속 $\psi'=\sqrt{3/2}\,\psi$ |
| 전류·전압의 값 | 피크(상) | RMS는 $1/\sqrt2$배, 선간 전압은 상 전압의 $\sqrt3$배 |
| 토크 상수 | $K_t=1.5\,p\,\psi$ [N·m/A, 상 전류 피크] | RMS 전류 기준은 $\sqrt2$배. 데이터시트의 $K_t$ 정의(피크·RMS, 상·선간)를 먼저 확인한다 |
| 선형 변조 한계 | SVPWM $V_{max}=V_{dc}/\sqrt3$, 정현파 PWM $V_{dc}/2$ (상 전압 피크) | 육각형 꼭짓점 크기 $2V_{dc}/3$의 내접원 반지름 $=(2V_{dc}/3)\cos30^\circ$. 변조 방식은 5.6 |
5.7.3.2 $dq$ 모델과 토크
회전자 좌표에서 정상 상태 해석에 사용하는 전압 방정식은 다음이다(전동기 규약, $d$축은 자석 자속 방향, $\psi>0$).
$$v_d=R\,i_d+L_d\frac{di_d}{dt}-\omega_eL_q\,i_q,\qquad v_q=R\,i_q+L_q\frac{di_q}{dt}+\omega_e\,(L_d\,i_d+\psi).$$
결론부터 적으면 $q$축 전압에는 $\omega_e\psi$(역기전력)와 $\omega_eL_di_d$가, $d$축 전압에는 $-\omega_eL_qi_q$가 들어 있어 두 축이 속도에 비례하는 항으로 서로 묶여 있다. 토크는 자석 토크 $1.5p\psi i_q$와 릴럭턴스 토크 $1.5p(L_d-L_q)i_di_q$의 합이다. $L_d=L_q$인 SPM은 $i_d$가 토크에 기여하지 않고, 매입형 IPM은 $L_q>L_d$이므로 $i_d<0$이 토크를 늘린다. 모델의 가정은 선형 자기 회로(포화 없음), 정현 자속 분포, 철손 없음, 대칭 권선이며 교차 포화와 고조파(5.5)는 포함하지 않는다.
5.7.3.3 전류 제어기 — 비결합·전향 보상·지연
두 축의 결합항은 제어기에서 계산한 값을 더해 상쇄한다. 제어기 출력을 $v_d=u_d-\omega_e\hat L_qi_q$, $v_q=u_q+\omega_e(\hat L_di_d+\hat\psi)$로 두면 모델이 맞을 때 플랜트는 축마다 $L\,di/dt+Ri=u$의 1차계가 되고, PI 이득을 $K_p=\alpha L$, $K_i=\alpha R$(극-영점 상쇄)로 두면 폐루프는 $\alpha/(s+\alpha)$이다. 이 장의 예시는 $\alpha=2\pi\cdot1000$ rad/s로 정했다. 이득 설계의 일반론은 5.6이다.
디지털 구현에서는 표본 시각의 전류로 계산한 전압이 다음 주기에 인가되고(1 샘플 지연), 인가 전압은 주기 동안 고정자 좌표에서 일정하다(ZOH, 평균 반 샘플). 합쳐 1.5 샘플의 지연이며 각속도 $\omega_e$에서 전압 벡터가 $1.5\,\omega_eT_s$만큼 뒤처진다. 예시의 기저 속도에서 $\omega_eT_s=4.79^\circ$이므로 지연은 $7.2^\circ$이며, 이 장은 역 Park의 각도에 $+1.5\hat\omega_eT_s$를 더해 보정했다. 전압 지령의 크기가 $V_{max}$를 넘으면 방향을 유지한 채 원으로 제한한다. AN1078은 포화 시 적분기에서 초과분에 $K_c$를 곱해 빼는 반포화(back-calculation)를 사용하며, 이 장의 예시는 포화가 첫 몇 샘플에 한정되어 반포화를 구현하지 않았다.
5.7.3.4 MTPA — 같은 전류로 최대 토크
전류 크기 $I_s$를 고정하고 $i_d=-I_s\sin\beta$, $i_q=I_s\cos\beta$로 두면 $T=1.5p\,[\psi I_s\cos\beta+\tfrac12(L_q-L_d)I_s^2\sin2\beta]$이다. $\partial T/\partial\beta=0$에서 $\psi i_d+(L_q-L_d)(I_s^2-2i_d^2)=0$이고, $k=\psi/(L_q-L_d)$로 두면 $i_d<0$인 근은 다음 닫힌 식이다.
$$i_d^{\mathrm{MTPA}}=\frac{k-\sqrt{k^2+8I_s^2}}{4},\qquad i_q=\sqrt{I_s^2-i_d^2}.$$
$L_q=L_d$이면 $i_d=0$이고 $T=K_ti_q$이다. 결론은 돌극이 클수록 같은 전류에서 토크가 크고 $i_d$가 더 음이 되며, 이 이득은 전류가 클수록 커진다(수치는 풀이 예제 ③). MTPA는 전압 여유가 있는 속도 범위(기저 속도 이하)의 최적 전류 배분이다.
5.7.3.5 전압·전류 한계와 약계자
한계는 두 가지이다. 전류 한계는 $i_d^2+i_q^2\le I_{max}^2$인 원이고, 전압 한계는 $v_d^2+v_q^2\le V_{max}^2$이다. 정상 상태 전압 방정식이 $i$에 대해 아핀이므로 전압 한계는 $\dot i=0$에서 타원이며($R\to0$이면 $(L_di_d+\psi)^2+(L_qi_q)^2\le(V_{max}/\omega_e)^2$, 중심 $(-\psi/L_d,\,0)$), 속도가 오를수록 타원이 수축한다. 기저(코너) 속도는 MTPA 곡선과 전류 원의 교점이 전압 타원 위에 놓이는 속도로, $\lvert v\rvert^2$이 $\omega_e$의 2차식이므로 닫힌 식으로 구한다. 그 위에서 최대 토크점은 전류 원 위의 약계자 구간, 이어서 타원 위(MTPV)로 옮겨 간다.
특성 전류 $I_{ch}=\psi/L_d$가 $I_{max}$보다 작으면 타원이 속도와 함께 전류 원 안의 한 점 $(-I_{ch},0)$으로 수축하므로 이상적으로(저항·철손 없음) 속도 상한이 없고, 크면 전류 원과 타원이 만나지 않는 속도에서 토크가 0이 된다. 약계자 구간의 출력 $T\omega_m$은 거의 일정하다. 이 전류 배분은 정상 상태의 최대 토크점이며, 과도·포화·온도에 의한 자속 변화는 모델에 없다.
5.7.3.6 센서리스 I — 역기전력 관측기
고정자 좌표 $\alpha\beta$에서 SPM의 전압 방정식은 $v=Ri+L\,di/dt+e$이고 역기전력은 $e=\omega_e\psi\,(-\sin\theta,\ \cos\theta)$이다. $e$를 추정하면 $\omega_e>0$에서 $\theta=\operatorname{atan2}(-e_\alpha,e_\beta)$이다. AN1078의 구현은 샘플 모델 $i(n+1)=(1-T_sR/L)\,i(n)+(T_s/L)(v-e)$를 측정 전류와 비교해 슬라이딩 모드 보정항 $z$를 만들고, $z$를 저역 통과해 $e$를 얻은 뒤 $\arctan$으로 각을 구한다. 오차가 경계층 안이면 보정이 선형이고 밖이면 $\pm K_{slide}$로 포화한다. 필터를 구동 주파수에 맞춰 두면 위상 지연이 속도와 무관하게 $-45^\circ$로 일정해 고정 보상을 더한다. AN1078은 500~17 000 rpm에서 시험했고 제어 주기는 50 µs라고 적었다(해당 문서의 시험 대상 모터에 대한 값이며 이 장의 모터가 아니다).
이 장의 예시는 다른 구성을 사용했다. 전류 오차에 비례하는 보정과 $\hat e$의 적분(2차 관측기)으로 $e$를 추정하고, $e$를 각속도 $\hat\omega$로 회전하는 벡터 $\dot e=\hat\omega J e$로 모델링해 정상 상태 위상 지연을 없앴으며, 각은 위상 추적 PLL로 얻는다. 이 모터($L=0.30$ mH, $T_s=50$ µs)에서는 불연속 이득 $K=V_{max}$가 한 샘플에 $KT_s/L=4.6$ A를 움직이므로 슬라이딩 모드는 경계층을 넓혀야 하며, 이 장은 슬라이딩 모드를 구현하지 않았다. 핵심 한계는 $\lvert e\rvert=\omega_e\psi$가 속도에 비례한다는 점이다. 정지에서는 $e=0$이어서 전압 방정식에 각 정보가 없고, 저속에서는 데드타임이 만드는 전압 오차 $(t_d/T_s)V_{dc}$($t_d=0.5$ µs이면 0.48 V)가 $\omega_e\psi$와 같은 크기가 된다. 또 인덕턴스 오차 $\Delta L$은 $\omega_e\Delta L\,i_q$의 EMF 오차를 만들어 각 오차 $\arctan(\Delta L\,i_q/\psi)$를 낳는다.
5.7.3.7 센서리스 II — 돌극성 기반 고주파 주입(HFI)
전압 $v=V_h\cos\omega_ht$를 추정 $\hat d$축에 주입하고($\omega_h\gg\omega_e$) 저항·역기전력을 무시하면, 실제 $d$축과 추정 $\hat d$축의 각 오차 $\Delta=\theta-\hat\theta$에서 실제 축 전압은 $(V_h\cos\Delta,\,-V_h\sin\Delta)\cos\omega_ht$이고 고주파 전류는 $i_d=\tfrac{V_h}{\omega_hL_d}\cos\Delta\sin\omega_ht$, $i_q=-\tfrac{V_h}{\omega_hL_q}\sin\Delta\sin\omega_ht$이다. 이를 $\hat q$축에 투영하면 $\hat\imath_q=\tfrac{V_h}{2\omega_h}\bigl(\tfrac1{L_d}-\tfrac1{L_q}\bigr)\sin2\Delta\,\sin\omega_ht$이므로 $\sin\omega_ht$로 복조해 한 주기 평균을 취하면 다음 신호를 얻는다.
$$\varepsilon=\hat\varepsilon\,\sin2\Delta,\qquad \hat\varepsilon=\frac{V_h}{8\pi f_h}\Bigl(\frac1{L_d}-\frac1{L_q}\Bigr).$$
결론은 신호 이득이 $1/L_d-1/L_q$, 곧 돌극비에 비례하고 속도와 무관하므로 정지에서도 각을 얻는다는 것이다. $L_d=L_q$이면 신호가 0이다. $\sin2\Delta$는 $\Delta=0$과 $\pi$에서 모두 0이어서 자극 극성(N·S)을 구별하지 못하므로 별도의 극성 판별이 필요하다. 이 장의 모델은 포화 돌극성·교차 포화·부하에 따른 오프셋을 포함하지 않는다. 일반적으로 알려진 사실로, 이들이 실제 모터의 HFI 정확도를 정하는 주된 요인이다 (확인 필요). HFI 문헌은 Jansen·Lorenz(1995)와 Corley·Lorenz(1998)가 서지만 확인되었다.
5.7.3.8 기동·전환과 센서리스의 위치
EMF 기반 추정은 정지·초저속에서 정보가 없으므로 초기 위치 정렬(직류 정렬 또는 HFI)과 개루프 기동 구간이 필요하고, 이후 일정 속도 대에서 관측기 각으로 전환한다. 전환·탈조 감지의 구체 방식은 이 장이 구현하지 않았다. 로봇 관절은 정지 토크 유지와 저속 정밀 운동이 기본 요구이므로 EMF 센서리스는 주 센서가 아니라 엔코더 고장 시의 백업 또는 교차 검증으로 사용하는 구성이 흔하며(견해), 엔코더 자체는 6.2이다.
5.7.4 알고리즘
한 제어 주기(Ts, 인버터 PWM과 동기):
1. ia, ib 표본화(중앙 정렬 PWM의 정점) → i_alpha, i_beta = clarke(ia, ib)
2. theta_e, w_e ← 엔코더, 또는 관측기(emf_step → pll_step, 저속은 HFI)
3. i_d, i_q = park(i_alpha, i_beta, theta_e)
4. (id*, iq*) ← MTPA(T*) ; 전압 여유 부족이면 약계자로 id* 를 음으로 이동
5. v_d, v_q ← dq_pi(비결합, 전압 원 제한)
6. v_alpha, v_beta = ipark(v_d, v_q, theta_e + 1.5 * w_e * Ts)
7. 상 전압 → 듀티(SVPWM, 5.6) → 다음 주기에 인가
5.7.5 풀이 예제 — 전류 제어, MTPA·약계자 포락선, 센서리스
결론부터 적으면 다음과 같다. ① 변환·토크식·전류 제어가 abc 상 방정식과 일치(⑦의 표). ② 약계자 최대 토크가 SLSQP와 $2.9\times10^{-4}$ 이내에서 일치. ③ 기저 속도는 SPM 1596 rpm·IPM 1202 rpm, ④ 센서리스는 이상 조건에서 $-0.09^\circ$, 현실 조건(노이즈·데드타임)에서 저속 한계가 기저 속도의 약 10~20 %이다.
구현. clarke·park·ipark·torque·vdq·mtpa_id·corner_speed·op_point·dq_pi·emf_step·pll_step·hfi_gain·hfi_demod. 아래 코드는 핵심 알고리즘이며, 플랜트의 적분(RK4)·데드타임·노이즈·시나리오·그림은 스크립트에 있다.
| 항목 | 값 |
|---|---|
| 모터(예시) | $p=10$, $\psi=0.010$ Wb, $R=0.06$ Ω, SPM $L_d=L_q=0.30$ mH, IPM $L_d=0.30$ mH, $L_q=0.60$ mH, $K_t=0.15$ N·m/A(피크) |
| 인버터·한계 | $V_{dc}=48$ V, $V_{max}=V_{dc}/\sqrt3=27.71$ V, $I_{max}=40$ A(피크), $T_s=50$ µs(20 kHz) |
| 전류 제어 | $\alpha=2\pi\cdot1000$ rad/s, $K_p=\alpha L$, $K_i=\alpha R$, 1.5 샘플 지연, 각도 보정 $1.5\hat\omega T_s$ |
| 입력 1 | 변환: 무작위 3상 전류·전압 2000개(시드 99) |
| 입력 2 | 전류 제어: $i_q$ 0→20 A, $i_d^*=0$, 속도 0·0.5·1.0 기저, 비결합 4가지(없음·완전·$L$ 오차 ±30 %) |
| 입력 3 | MTPA: $I_s=10,20,30,40$ A(IPM). 포락선: 0~14 000 rpm 200 rpm 간격, 전류 원·전압 타원 각 1800·3600점 탐색 |
| 입력 4 | 센서리스(SPM, $i_q^*=10$ A, 0.25 s): 관측기 대역 1 kHz·$\zeta=0.8$, PLL 50 Hz. 현실 조건은 전류 노이즈 $\sigma=0.05$ A(시드 1)와 데드타임 0.5 µs의 전압 오차(관측기는 모름) |
| 입력 5 | HFI: IPM, $V_h=4$ V, $f_h=1250$ Hz(16 샘플), 초기 오차 $40^\circ$, 노이즈 $\sigma=0.05$ A(시드 5), $L_q/L_d=1,1.5,2,3$ |
from math import sin, cos, sqrt, atan2, pi, hypot
def clarke(ia, ib): # 진폭 불변, ia+ib+ic=0
return ia, (ia + 2 * ib) / sqrt(3)
def park(a, b, th):
c, s = cos(th), sin(th)
return a * c + b * s, -a * s + b * c
def ipark(d, q, th):
c, s = cos(th), sin(th)
return d * c - q * s, d * s + q * c
def torque(P, d, q): # 진폭 불변: 1.5 p (...)
dL = P['Ld'] - P['Lq']
return 1.5 * P['p'] * (P['psi'] + dL * d) * q
def vdq(P, d, q, we): # 정상 상태 dq 전압
return (P['R'] * d - we * P['Lq'] * q,
P['R'] * q + we * (P['Ld'] * d + P['psi']))
def mtpa_id(P, Is): # 매입형 MTPA의 d축 전류
dL = P['Lq'] - P['Ld']
if dL < 1e-12:
return 0.0
k = P['psi'] / dL
return (k - sqrt(k * k + 8 * Is * Is)) / 4
def corner_speed(P, d, q, Vmax): # |v| = Vmax의 양근
R, Ld, Lq, ps = P['R'], P['Ld'], P['Lq'], P['psi']
a = (Lq * q) ** 2 + (Ld * d + ps) ** 2
b = 2 * R * (q * (Ld * d + ps) - d * Lq * q)
c = R * R * (d * d + q * q) - Vmax ** 2
return (-b + sqrt(b * b - 4 * a * c)) / (2 * a)
def op_point(P, we, Vmax, Imax, n=1800):
"""속도 we의 최대 토크점: 전류 원·전압 타원 둘레 탐색."""
R, Ld, Lq, ps = P['R'], P['Ld'], P['Lq'], P['psi']
best, det = (0.0, 0.0, 0.0), R * R + we * we * Ld * Lq
cand = []
for k in range(n + 1): # 전류 원: id=-Imax sin g
g = pi * k / n
cand.append((-Imax * sin(g), Imax * cos(g)))
for k in range(2 * n): # 전압 타원
f = pi * k / n
vd, vq = Vmax * cos(f), Vmax * sin(f) - we * ps
cand.append(((R * vd + we * Lq * vq) / det,
(R * vq - we * Ld * vd) / det))
for d, q in cand:
ok = hypot(*vdq(P, d, q, we)) <= Vmax * (1 + 1e-9)
if ok and hypot(d, q) <= Imax * (1 + 1e-9):
best = max(best, (torque(P, d, q), d, q))
return best
def dq_pi(Pc, x, ref, i, we, kp, ki, vmax):
"""dq PI + 비결합(Pc: 제어기 모델) + 전압 원 제한."""
ed, eq = ref[0] - i[0], ref[1] - i[1]
x[0] += ki * ed
x[1] += ki * eq
vd = kp * ed + x[0] - we * Pc['Lq'] * i[1]
vq = kp * eq + x[1] + we * (Pc['Ld'] * i[0] + Pc['psi'])
m = hypot(vd, vq)
if m > vmax:
vd, vq = vd * vmax / m, vq * vmax / m
return vd, vq
def emf_step(st, v, i, p, Ts):
"""EMF 관측기 1 샘플. st=(ih, eh, w), p=(L, R, g1, g2)."""
L, R, g1, g2 = p
ih, eh, w = st
a = Ts / L
u = [v[k] - R * ih[k] - eh[k] for k in (0, 1)]
pr = [ih[k] + a * u[k] for k in (0, 1)]
er = [i[k] - pr[k] for k in (0, 1)]
ih = [pr[k] + g1 * er[k] for k in (0, 1)]
eh = [eh[k] - L / Ts * g2 * er[k] for k in (0, 1)]
c, s = cos(w * Ts), sin(w * Ts) # 회전 벡터 모델
return ih, [c * eh[0] - s * eh[1], s * eh[0] + c * eh[1]]
def pll_step(st, e, Ts, kp=566.0, ki=98700.0):
"""EMF 위상 추적. st=(th, wi). 반환 (각, st, w)."""
th, wi = st
n = max(hypot(*e), 0.05)
eps = -(e[0] * cos(th) + e[1] * sin(th)) / n
w = wi + kp * eps
st = (th + w * Ts, wi + ki * Ts * eps)
return th - 0.5 * w * Ts, st, w
def hfi_gain(P, Vh, fh): # sin(2*오차) 계수(A)
return Vh / (8 * pi * fh) * (1 / P['Ld'] - 1 / P['Lq'])
def hfi_demod(buf, iqh, t, fh, N, gain):
"""추정 q축 고주파 전류를 sin(wh t)로 복조, 1주기 평균."""
buf.append(iqh * sin(2 * pi * fh * t))
del buf[:-N]
return sum(buf) / len(buf) / gain if gain > 1e-9 else 0.0
① 좌표변환.
| 확인 항목(2000개 무작위 3상 전류·전압, 진폭 불변) | 최대 오차 |
|---|---|
| 3상 순시 전력 $v_ai_a+v_bi_b+v_ci_c$ 대 $1.5(v_di_d+v_qi_q)$ | 4.5e-13 W |
| Park 변환 전후 벡터 크기 $\lvert i_{dq}\rvert$ 대 $\lvert i_{\alpha\beta}\rvert$ | 7.1e-15 A |
| 역변환 왕복 $\lvert i_{\alpha\beta}-\mathrm{Park}^{-1}(\mathrm{Park}(i_{\alpha\beta}))\rvert$ | 1.1e-14 A |
| 진폭 10 A 평형 3상 전류의 Clarke 크기 | 10.0000 A |
위 표의 값은 전력 계수 $3/2$, 변환의 길이 보존, 왕복 가역성이 기계 정밀도로 성립함을 확인한다.
② 전류 제어: 비결합과 전향 보상의 효과.
| 속도 | 비결합·전향 보상 | $i_d$ 최대 편차 (A) | $i_q$ 90 % 도달 (µs) | $i_q$ 초과 (A) | 정상 $\lvert i_d\rvert$ (A) |
|---|---|---|---|---|---|
| 정지 | 없음 | 0.00 | 300 | +0.41 | 0.000 |
| 정지 | 완전 | 0.00 | 300 | +0.41 | 0.000 |
| 정지 | 오차 +30 % | 0.00 | 300 | +0.41 | 0.000 |
| 정지 | 오차 -30 % | 0.00 | 300 | +0.41 | 0.000 |
| 0.5 기저 | 없음 | 2.03 | 4000 | -0.18 | 0.200 |
| 0.5 기저 | 완전 | 0.73 | 400 | +0.64 | 0.002 |
| 0.5 기저 | 오차 +30 % | 0.83 | 400 | +0.67 | 0.044 |
| 0.5 기저 | 오차 -30 % | 1.03 | 400 | +0.57 | 0.039 |
| 1.0 기저 | 없음 | 2.95 | 7400 | -0.31 | 0.535 |
| 1.0 기저 | 완전 | 1.71 | 700 | +1.33 | 0.009 |
| 1.0 기저 | 오차 +30 % | 1.73 | 700 | +1.35 | 0.090 |
| 1.0 기저 | 오차 -30 % | 2.38 | 750 | +1.15 | 0.072 |
속도 0에서는 모든 구성이 같다. 결과는 두 가지를 보인다. 비결합 없이 속도가 오르면 역기전력이 외란으로 작용해 PI의 적분이 이를 제거하는 동안 응답이 느려지고($i_q$ 90 % 도달 기저 속도에서 7400 µs) $i_d$가 2.95 A 흔들린다. 전향 보상이 있으면 300 µs(정지)에서 700 µs(기저 속도)로 응답이 유지되고, 인덕턴스 모델 오차 ±30 %는 $i_d$ 편차를 1.71 A에서 1.73~2.38 A로 키우나 정상 오차는 적분기가 제거한다. 속도 0의 20 A 계단은 $K_p\cdot20=37.7$ V가 $V_{max}$를 넘어 첫 샘플들에서 전압이 포화하며 초과 $+0.41$ A에는 이 포화의 영향이 포함되어 있다.
③ MTPA와 기저 속도.
| 전류 크기 $I_s$ (A) | $i_d$ (A) | $i_q$ (A) | 토크 (N·m) | 같은 $I_s$의 $i_d=0$ 토크 (N·m) | 증가 |
|---|---|---|---|---|---|
| 10 | -2.60 | 9.66 | 1.561 | 1.500 | 4.1 % |
| 20 | -8.08 | 18.29 | 3.409 | 3.000 | 13.6 % |
| 30 | -14.46 | 26.29 | 5.653 | 4.500 | 25.6 % |
| 40 | -21.15 | 33.95 | 8.324 | 6.000 | 38.7 % |
| 형식 | 특성 전류 $\psi/L_d$ (A) | 기저 속도 (rad/s 전기) | 기저 속도 (rpm) | 기저 토크 (N·m) | 기저점 $(i_d, i_q)$ (A) |
|---|---|---|---|---|---|
| SPM | 33.3 | 1671.8 | 1596 | 6.000 | $(0.00,\ 40.00)$ |
| IPM | 33.3 | 1258.6 | 1202 | 8.324 | $(-21.15,\ 33.95)$ |
④ 토크-속도 포락선(그림 2)과 수치.
| 속도 (rpm) | SPM $i_d=0$: 토크 (N·m) | SPM 약계자: 토크 · 출력 | IPM MTPA+약계자: 토크 · 출력 | IPM 점 $(i_d, i_q)$ (A) |
|---|---|---|---|---|
| 1200 | 6.00 | 6.00 · 754 W | 8.32 · 1046 W | $(-21.1,\ 34.0)$ |
| 1600 | 5.98 | 6.00 · 1005 W | 7.38 · 1236 W | $(-30.7,\ 25.6)$ |
| 2000 | 3.87 | 5.55 · 1162 W | 6.22 · 1302 W | $(-34.4,\ 20.4)$ |
| 2400 | 1.95 | 4.89 · 1229 W | 5.30 · 1331 W | $(-36.2,\ 16.9)$ |
| 3600 | 0.00 | 3.41 · 1284 W | 3.56 · 1342 W | $(-38.4,\ 11.0)$ |
| 4800 | 0.00 | 2.56 · 1285 W | 2.63 · 1321 W | $(-37.2,\ 8.3)$ |
| 7200 | 0.00 | 1.70 · 1285 W | 1.73 · 1302 W | $(-35.1,\ 5.6)$ |
| 12000 | 0.00 | 1.02 · 1285 W | 1.03 · 1292 W | $(-34.0,\ 3.4)$ |
SPM은 기저 속도 위에서 $i_d$를 $-I_{ch}=-33.3$ A 근처까지 내려 출력 약 1285 W를 유지한다. 두 형식 모두 고속에서는 전류 원이 아니라 전압 타원 위(MTPV, $\lvert i\rvert<I_{max}$)에서 최대 토크점을 얻으며 그 구간은 SPM이 약 3800 rpm, IPM이 약 4000 rpm 이후이다(표의 점은 $\lvert i\rvert<40$ A). IPM의 출력은 4800 rpm 이후 1292~1321 W 범위에 있다. 두 형식의 차이는 저속·기저 부근에서 크고 12 000 rpm에서는 0.5 %로 좁혀진다.
⑤ 센서리스: 각 오차 평균 ± 표준편차(°)를 기저 속도의 비율별로.
| 사례 | 2 % | 5 % | 10 % | 20 % | 50 % | 100 % |
|---|---|---|---|---|---|---|
| 이상 | -0.1 ± 0.0 | -0.1 ± 0.0 | -0.1 ± 0.0 | -0.1 ± 0.0 | -0.1 ± 0.0 | -0.1 ± 0.0 |
| 노이즈+데드타임 | -25 ± 37 | +13 ± 13 | +3.2 ± 7.3 | +0.4 ± 2.4 | -0.1 ± 0.4 | -0.0 ± 0.1 |
| R +20 % | -0.1 ± 0.0 | -0.1 ± 0.0 | -0.1 ± 0.0 | -0.1 ± 0.0 | -0.1 ± 0.0 | -0.1 ± 0.0 |
| L -30 % | -0 ± 104 | -5.3 ± 0.0 | -5.3 ± 0.0 | -5.3 ± 0.0 | -5.3 ± 0.0 | -5.3 ± 0.0 |
| psi +15 % | -0.1 ± 0.0 | -0.1 ± 0.0 | -0.1 ± 0.0 | -0.1 ± 0.0 | -0.1 ± 0.0 | -0.1 ± 0.0 |
이상 조건의 오차는 속도와 무관한 $-0.09^\circ$(이산화 잔차)이다. $L$을 $-30$ %로 틀리게 두면 오차가 $-5.25^\circ$로 일정하며 예측 $\arctan(\Delta L\,i_q/\psi)=5.14^\circ$에 이상 조건의 오프셋($0.09^\circ$)을 더한 크기와 맞는다. 현실 조건에서는 표준편차가 2 %에서 37°, 5 %에서 13°, 10 %에서 7°, 20 %에서 2.4°로 줄어 기저 속도의 약 10~20 %(이 모터에서 160~319 rpm 부근) 이하에서는 각 오차가 수십 도에 이른다. $L-30$ %에서 2 %의 표준편차 104°는 위상 잠금 상실(주기 건너뜀)을 의미하는 것으로 해석하며 원인을 따로 확인하지 않았다. 가속 램프(0.5 s 동안 0에서 기저 속도까지)의 이상 조건 추종 오차는 최대 1.86°이다.
⑥ 고주파 주입.
| 돌극비 $L_q/L_d$ | 신호 이득 $\hat\varepsilon$ (A) | 초기 오차 $40^\circ$에서 $2^\circ$ 이내 | 0.15 s 이후 $\Delta\theta$ RMS |
|---|---|---|---|
| 1.0 | 0.0000 | 수렴 안 함 | 40.00° |
| 1.5 | 0.1415 | 7.8 ms | 0.66° |
| 2.0 | 0.2122 | 7.5 ms | 0.44° |
| 3.0 | 0.2829 | 7.5 ms | 0.33° |
신호 이득은 돌극비에 따라 늘고($L_q=L_d$에서 0) 정상 RMS 오차는 이득에 반비례한다(0.66° → 0.44° → 0.33°). 이득이 0이면 위상 추적이 40°에 머문다. 수렴 시간은 PLL이 신호 이득으로 정규화되어 있어 돌극비와 무관한 7.5 ms 안팎이며 실제 시스템에서는 SNR과 포화 돌극성이 이를 달리한다.
⑦ 독립 라이브러리 대조.
| 비교 | 결과 |
|---|---|
Park 대 SciPy Rotation(500개) · Clarke 대 행렬 · 전력 불변 변환의 전력 보존 | 7.1e-15 · 7.1e-15 · 4.5e-13 |
| 토크식 $1.5p[\psi+(L_d-L_q)i_d]i_q$ 대 abc 모델 자기 에너지 미분 $p\,\partial W'/\partial\theta_e$(200개, 매입형) | 1.2e-09 N·m |
dq 전류 제어 응답(0 · 0.5 · 1.0 기저 속도, 300 샘플): dq 모델 대 abc 상 방정식 solve_ivp(DOP853) 최대 차이 | 1.9e-12 A · 9.1e-10 A · 3.0e-08 A |
정지 상태 $i_q$ 계단 응답(전압 한계 없음): 이 장 대 control 이산 전달함수(정확 이산화 + 1 샘플 지연) 최대 차이 | 1.9e-12 A |
같은 개루프의 이득 여유 · 위상 여유 · 교차 주파수 control.margin | 10.0 dB · 62.8° · 1009 Hz |
MTPA $i_d$ 닫힌 식 대 minimize_scalar(5개 전류, $i_d$ · 토크 최대 차이) | 5.2e-07 |
기저 속도 닫힌 식 대 brentq(전압 한계 근, 두 형식) | 2.3e-13 rad/s |
| 약계자 최대 토크: 이 장의 둘레 탐색 대 SLSQP 다중 시작(12개 속도·형식), 최대 상대 차이 | 2.9e-04 |
| EMF 관측기 오차 행렬 $\rho$ 최댓값(속도 0~1.2 기저, 25점) · $\omega=0$ 극 대 설계 극 $e^{sT_s}$ | 0.770 · 크기 0.709 대 0.778 |
| HFI 복조 평균 대 $\hat\varepsilon\sin 2\Delta$ (연속 적분, $\Delta=5^\circ\sim40^\circ$) | 1.3e-13 A |
대조 결과는 변환·토크식·전류 제어(abc 상 방정식 solve_ivp와 $3\times10^{-8}$ A 이내)·MTPA·기저 속도·HFI 신호가 독립 구현과 일치함을 보인다. 약계자 최대 토크는 SLSQP 다중 시작과 상대 $2.9\times10^{-4}$ 이내이며 이 차이는 이 장의 둘레 탐색 격자 간격(0.1°)에서 온다. 관측기 오차 행렬은 전 속도에서 안정($\rho<1$)이나 $\omega=0$의 극은 설계 극과 다르며, 설계는 연속 시간 극을 오일러 이산화로 옮겼으므로 차이가 예상된다. python-control 대조에서는 정확 이산화 전달함수의 계단 응답이 이 장의 시뮬레이션과 일치하며 개루프의 위상 여유가 62.8°이다.
한계. 선형 자기 회로(포화·교차 포화·온도에 의한 $\psi$ 변화 없음), 이상 인버터(스위칭 리플·전압 강하·데드타임 보상 없음, 센서리스 현실 조건에만 데드타임 오차 포함), 엔코더가 아닌 정확한 전류 측정(양자화 없음), 속도가 규정된 시나리오(기계 동역학과 속도 루프 없음)이다. 모든 정수는 예시이며 어느 제품의 값도 아니다.
견해: 로봇 관절 드라이브에서는 속도·토크 포락선을 약계자로 넓히기 전에 기어비와 버스 전압을 먼저 검토하는 것이 합리적이라고 본다. 근거는 이 예제에서 SPM이 12 000 rpm에서 1.02 N·m로 떨어져 기저 토크의 17 %에 불과하고, 같은 토크를 더 낮은 모터 속도의 감속기 구성으로 얻는 것이 $i_d<0$에 의한 동손 증가 없이 가능하기 때문이다. 이 장은 동손·열·감속기 효율을 비교하지 않았다.
5.7.6 설계 트레이드오프 — 각도 센서, 약계자, 모터 형식
- ① 엔코더 기반 FOC. 정지에서 정확한 각도와 정지 토크를 얻고 전환 로직이 없다. 센서·배선·고장 모드가 추가된다(6.2, 8.20).
- ② 센서리스(EMF 관측기). 센서가 없고 단순하나 저속 한계(이 예시에서 기저 속도의 10~20 %)와 모터 정수 민감도가 있다.
- ③ 혼합(HFI + EMF). 정지·저속은 돌극성, 고속은 EMF로 얻는다. 돌극이 있는 IPM이 필요하고 주입 신호의 소음·전류 간섭·구현 복잡도가 있다.
| 방식 | 각 정보의 원천 | 정지·저속 | 요구 | 위험 |
|---|---|---|---|---|
| ① 엔코더 | 센서 | 양호 | 센서·인터페이스 | 센서 고장, 배선 |
| ② EMF 센서리스 | $\omega_e\psi$ | 불가(기저의 10~20 % 이하) | 정확한 $R$·$L$ | 정수 오차, 탈조 |
| ③ 혼합 | 돌극성 + EMF | 가능(돌극 필요) | 주입 전압, 전환 | 소음, 극성 판별 |
견해: 관절 모듈의 주 각도 원천은 엔코더로 두고 센서리스는 교차 검증·백업에 사용하는 구성이 관절 요구(정지 토크, 저속 정밀도)에 맞는다고 본다. 근거는 이 예제의 센서리스가 현실 조건에서 기저의 10~20 % 이하에서 수십 도의 각 오차를 내고, 정지에서는 HFI가 돌극($L_q>L_d$)에 의존한다는 점이다. 로봇 관절 모터는 SPM이 많아 이 가정이 성립하지 않을 수 있다
(확인 필요).
5.7.7 응용 축 비교
| 응용 축 | FOC·센서리스·약계자가 걸리는 요구 | 비고 | 관련 장 |
|---|---|---|---|
| 산업·제조 | 정밀 위치 제어, 높은 대역폭, 엔코더 기반 | 약계자는 고속 스핀들·소형 축에서 | 5.9, 7.2 |
| 물류·이동 | 바퀴 구동의 속도 범위, 정지 토크, 회생 | 각도 센서의 선택은 모터 형식에 따른다 | 5.3, 8.1 |
| 도로 주행 | 광범위한 속도, 약계자(견인 모터), 기능 안전 | 이 장은 견인 모터를 다루지 않았다 | 5.6, 26.5 |
| 서비스 | 저소음, 저속 정밀, 비용 | 센서리스는 비용 목적 | 8.9 |
| 의료·헬스케어 | 저속 부드러움, 토크 리플, 이중 센서 | 센서리스 단독은 부적합(견해) | 5.5, 26.7 |
| 휴머노이드·범용 | 고토크 밀도, 저속 고토크, 열 | 약계자보다 기어비 선택 | 5.17, 8.7 |
| 필드 | 버스 전압 변동, 온도, 진동 | 센서리스는 엔코더 고장 백업 | 5.25 |
| 국방·안보 | 신뢰성, 열, EMI | 이 장은 군 규격을 확인하지 않았다 | 8.9 |
이 표는 이 책의 정리이며 장별 요구의 수치는 이 장이 확인하지 않았다.
5.7.8 관련 규격·프로토콜
| 문서 | 발행 | 무엇을 정하나 | 상세 장 |
|---|---|---|---|
| IEC 61800 시리즈(전력 구동 시스템) | IEC | 가변속 전력 구동 시스템의 요건·시험·기능 안전(5-2부 제목은 안전 요구 — 기능), 판 (확인 필요) | 26.7 |
| CiA 402(구동·모션 제어 장치 프로파일) | CiA | 드라이브 상태 기계·제어 워드·토크·속도·위치 모드 | 27.7 |
| EtherCAT CoE | ETG | 드라이브 프로파일의 EtherCAT 전달 | 8.17 |
| ISO 13849-1·IEC 61508 | ISO·IEC | 안전 기능의 성능 수준·SIL | 26.5, 26.6 |
| Microchip AN1078 | Microchip, 2010 | 센서리스 FOC의 공개 구현(직접 읽음) | 이 장 |
| moteus 문서 | mjbots | 오픈소스 관절 드라이브의 FOC·약계자 구성(직접 읽음) | 이 장 |
공개 구현 사례(기준 시점 2026-11-05): moteus 문서는 전류 제어기가 인버터 스위칭 주파수(기본 30 kHz)에서 실행되고 $dq$ 전류 PI 이득이 설정한 대역폭(servo.pid_dq_hz)과 교정된 저항·인덕턴스에서 자동 계산되며, 약계자는 servo.fw.enable로 켜고 음의 $d$축 전류를 servo.fw.max_current_ratio로 제한한다고 기술한다. ODrive 문서는 전류 제어 대역폭 설정 항목(current_control_bandwidth)을 두고 속도·위치 이득 조정 절차를 기술한다. 두 문서의 성능 수치는 이 장이 검증하지 않았다 (공개 주장치). IEC 61800 시리즈의 조항 내용은 읽지 못했다 (확인 필요).
5.7.9 관련 규제·인증 요구와의 연결
FOC 알고리즘 자체를 규정하는 법령·인증 요건은 확인하지 못했다. 드라이브가 제공하는 비상정지·STO(안전 토크 차단)·SS1·SLS 같은 안전 기능은 26.7, 성능 수준·SIL 입증은 26.5·26.6, 전기 안전·EMC 요건은 8.9·27.27와 이어진다. 센서리스 각도는 독립 위치 센서가 아니므로 위치·속도 감시 같은 안전 기능의 입력으로 인정되는지는 해당 규격의 요구를 개별로 확인해야 하며, 이 장은 그 조항을 읽지 못했다 (확인 필요). 전자기 적합성(스위칭 노이즈의 방출)은 5.8에서 전력단과 함께 다룬다.
5.7.10 한계·유의점·미해결
- 정수 의존. 모든 결과는 예시 정수(포화 없음)에서 나온 것이다. 실제 모터의 $L_d$·$L_q$는 전류와 온도에 따라 변하고 $\psi$는 온도에 따라 감소한다.
- 약계자의 부작용. 음의 $d$축 전류는 동손을 늘린다. 영구자석의 감자(demagnetization) 위험은 이 장이 다루지 않았다
(확인 필요). - 센서리스의 실제. 인버터 비선형(데드타임·전압 강하)이 저속 한계를 정한다. 데드타임 보상은 5.6 범위이며 이 장의 현실 조건은 보상 없는 최악 사례이다.
- HFI. 포화 돌극성·교차 포화·극성 판별·소음·전류 제어기와의 간섭을 모델링하지 않았다.
- 구현. 고정소수점 연산, 지연·샘플 정렬, 반포화, 전환 로직, 탈조 감지는 구현하지 않았다.
- 다른 방식. 직접 토크 제어, 모델 예측 전류 제어, 확장 칼만 필터 기반 관측기(Bolognani 등 2003은 서지만 확인)는 이 장에서 비교하지 않았다.
5.7.11 체크포인트·연구 질문·출처
체크포인트:
- 진폭 불변과 전력 불변 변환에서 전력식·토크식의 계수가 왜 다른지 설명하라.
- $dq$ 전압 방정식에서 교차 결합항의 크기를 기저 속도·정격 전류에서 계산하고 비결합이 필요한 이유를 설명하라.
- MTPA 닫힌 식을 $\partial T/\partial\beta=0$에서 유도하고 $L_q=L_d$에서 $i_d=0$이 되는 것을 확인하라.
- 기저 속도를 전압 한계의 2차식에서 유도하고 $I_{ch}<I_{max}$와 $I_{ch}>I_{max}$에서 고속 거동이 어떻게 갈리는지 설명하라.
- HFI의 $\hat\varepsilon\sin2\Delta$를 유도하고 $L_d=L_q$에서 신호가 사라지는 이유와 극성 모호성의 원인을 설명하라.
- 관측기 각 오차가 $\arctan(\Delta L\,i_q/\psi)$로 나오는 과정을 EMF 오차의 직교 성분에서 유도하라.
연구 질문:
- 표면 부착형 모터(돌극 없음)의 정지 센서리스에서 포화 돌극성의 신호를 얼마나 신뢰할 수 있는가?
- 약계자 운전에서 영구자석 감자 한계를 전류 제어기에 어떻게 반영하는가(온도 의존)?
- 데드타임·전압 강하 오차를 센서리스 관측기가 온라인으로 식별해 저속 한계를 낮출 수 있는가?
1차 출처(조회 2026-11-05).
- J. Zambada, D. Deb, Sensorless Field Oriented Control of a PMSM, Microchip Application Note AN1078, DS01078B, 2010 — 직접 읽음(PDF 17쪽 전문).
- mjbots, moteus 문서: Theory of Operation(
docs/reference/theory.md)·설정 참조(docs/reference/configuration.md), GitHub 기본 브랜치 — 직접 읽음. - ODrive Robotics, Tuning the Controller, docs.odriverobotics.com(최신판) — 직접 읽음.
- R. H. Park, "Two-reaction theory of synchronous machines — generalized method of analysis — Part I," Trans. AIEE 48(3), 716–727, 1929, doi:10.1109/t-aiee.1929.5055275 — 서지만 확인.
- T. M. Jahns, G. B. Kliman, T. W. Neumann, "Interior permanent-magnet synchronous motors for adjustable-speed drives," IEEE Trans. Ind. Appl. IA-22(4), 738–747, 1986, doi:10.1109/tia.1986.4504786 — 서지만 확인.
- P. Pillay, R. Krishnan, "Modeling, simulation, and analysis of permanent-magnet motor drives. I. The permanent-magnet synchronous motor drive," IEEE Trans. Ind. Appl. 25(2), 265–273, 1989, doi:10.1109/28.25541 — 서지만 확인.
- S. Morimoto, Y. Takeda, T. Hirasa, K. Taniguchi, "Expansion of operating limits for permanent magnet motor by current vector control considering inverter capacity," IEEE Trans. Ind. Appl. 26(5), 866–871, 1990, doi:10.1109/28.60058 — 서지만 확인.
- W. L. Soong, T. J. E. Miller, "Field-weakening performance of brushless synchronous AC motor drives," IEE Proc. Electr. Power Appl. 141(6), 331–340, 1994, doi:10.1049/ip-epa:19941470 — 서지만 확인.
- P. L. Jansen, R. D. Lorenz, "Transducerless position and velocity estimation in induction and salient AC machines," IEEE Trans. Ind. Appl. 31(2), 240–247, 1995, doi:10.1109/28.370269 — 서지만 확인.
- M. J. Corley, R. D. Lorenz, "Rotor position and velocity estimation for a salient-pole permanent magnet synchronous machine at standstill and high speeds," IEEE Trans. Ind. Appl. 34(4), 784–789, 1998, doi:10.1109/28.703973 — 서지만 확인.
- S. Morimoto, K. Kawamoto, M. Sanada, Y. Takeda, "Sensorless control strategy for salient-pole PMSM based on extended EMF in rotating reference frame," IEEE Trans. Ind. Appl. 38(4), 1054–1061, 2002, doi:10.1109/tia.2002.800777 — 서지만 확인.
- S. Bolognani, L. Tubiana, M. Zigliotto, "Extended Kalman filter tuning in sensorless PMSM drives," IEEE Trans. Ind. Appl. 39(6), 1741–1747, 2003, doi:10.1109/tia.2003.818991 — 서지만 확인.
- L. Harnefors, H.-P. Nee, "Model-based current control of AC machines using the internal model control method," IEEE Trans. Ind. Appl. 34(1), 133–141, 1998, doi:10.1109/28.658735 — 서지만 확인.
- SciPy 1.18.1(
spatial.transform.Rotation,integrate.solve_ivp,optimize.minimize_scalar·minimize(SLSQP)·brentq), numpy 2.5.4, python-control 0.10.2(tf·feedback·step_response·margin).
다음 장. 5.8은 관절 내장 인버터의 전력 반도체(Si MOSFET·GaN 하프브리지)와 고주파 PWM, 손실과 발열 설계를 다룬다. 이 장의 전압 한계·데드타임·전류 제어 주기가 전력단의 스위칭 손실과 방열 한계에 어떻게 닿는지 이어서 본다.