簡単なモーターのモデリングをしてみた
今回は簡単にモーターのモデリングをしてみたのでメモがわりに手順を残しておきたいと思います
モーターの力学的モデル
モーターのトルクは電流値に比例し、かつ粘性抵抗によって減衰するので以下のような式になる
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('電圧に対する電流のステップ応答');
よりリアルな応答を再現するために...
熱による抵抗値の変化やインダクタンスのヒステリシス損失も考えた方がいいかもしれないです
Author And Source
この問題について(簡単なモーターのモデリングをしてみた), 我々は、より多くの情報をここで見つけました https://qiita.com/sacomy/items/e5f3bc7aa601b557d013著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .