간단한 모터 모델링을 시도했습니다.

이번에는 쉽게 모터 모델링을 해 보았으므로 메모가 대신 절차를 남겨두고 싶습니다.

모터의 역학적 모델



모터의 토크는 전류값에 비례하고 점성 저항에 의해 감쇠하기 때문에 다음과 같은 식이 된다
J\frac{d^2\theta}{dt^2} = - D\frac{d\theta}{dt} + K_\tau i

여기에서
$J$: 관성 모멘트
$D$: 점성 저항률
$K_\tau$: 토크 상수

모터의 전기적 모델



모터의 역기전력은 각속도에 비례하므로 다음과 같다.
v = L\frac{di}{dt} + Ri + K_e\frac{d\theta}{dt}

여기에서
$v$: 입력 전압
$L$: 인덕턴스
$R$: 저항값
$K_e$: 역기전력 상수

모터의 블록 다이어그램



simulink에서 모터 모델을 만들려고했습니다.



다양한 전달 함수



전압에서 각속도


G_{v2\omega} = \frac{K_\tau}{(J\cdot L)s^2 + (J\cdot R+L\cdot D)s + K_\tau\cdot K_e+R\cdot D}

전압에서 토크


G_{v2\tau} = \frac{(J\cdot s+D)K_\tau}{(J\cdot L)s^2 + (J\cdot R+L\cdot D)s + K_\tau\cdot K_e+R\cdot D}

전압에서 전류


G_{v2\omega} = \frac{J\cdot s+D}{(J\cdot L)s^2 + (J\cdot R+L\cdot D)s + K_\tau\cdot K_e+R\cdot D}

상태 방정식



상태 변수를 $x =\left[i,\dot\theta\right]^T$로 하면 모터의 상태 방정식은 다음과 같이 쓸 수 있다
\frac{dx}{dt} = \begin{bmatrix}
-\frac{R}{L} & -\frac{K_e}{L} \\
\frac{K_e}{J} & -\frac{D}{J} \\
\end{bmatrix}x
+ \begin{bmatrix}
\frac{1}{L} \\ 0\\
\end{bmatrix}v

MATLAB을 사용한 시뮬레이션 샘플 코드



위의 모델을 바탕으로 현실에 가까운 파라미터를 모터의 데이터 시트도 참고하면서 구해 갔습니다.
샘플 코드
%%%
パラメーターの宣言
%%%
v2omega_tf = tf(K_tau,[J*L,J*R+L*D, K_tau*K_e+R*D]);
v2tau_tf = tf([K_tau*J, K_tau*D], [J*L,J*R+L*D, K_tau*K_e+R*D]);
v2i_tf = tf([J, D], [J*L,J*R+L*D, K_tau*K_e+R*D]);
subplot(1,3,1);
step(v2omega_tf);
title('電圧に対する角速度のステップ応答');
subplot(1,3,2);
step(v2tau_tf);
title('電圧に対するトルクのステップ応答');
subplot(1,3,3);
step(v2i_tf);
title('電圧に対する電流のステップ応答');



더 현실적인 응답을 재현하기 위해 ...



열에 의한 저항값의 변화나 인덕턴스의 히스테리시스 손실도 생각하는 것이 좋을지도 모릅니다

좋은 웹페이지 즐겨찾기