直流モータ(DC motor)

永井 忠一 2023.8.20


DC motor の等価回路

以前のページの図を描き直し)

(図で、\( \tau_d \) は外乱トルク)

電気的性質と機械的性質

電気的性質機械的性質
  • \( v_a \) : 電圧
  • \( i_a \) : 電流
  • \( R_a \) : 電機子(armature)抵抗
  • \( L_a \) : 電機子インダクタンス
  • \( \tau \) : トルク [N]
  • \( \omega \) : 角速度(angular velocity) [rad/s]
  • \( J \) : 慣性モーメント [Nm2]
  • \( c \) : 粘性摩擦係数 [Nm/(rad/s)]
  • \( K_e \) : 誘導起電力定数
    • (\( K_e\omega \) : 誘導起電力)
  • \( K_t \) : トルク定数
    • (\( K_t i_a \) : トルク)

電流 \( i_a \) に比例したトルク \( K_t i_a \) が発生する。と同時に、回転角速度 \( \omega \) に比例した逆起電力 \( K_e\omega \) が発生する(同時に、発電機でもある)

\[ \left\{ \begin{align} &v_a = R_a i_a + L_a s i_a + K_e\omega \\ &\tau = K_t i_a \\ &\tau = Js\omega + c\omega + \tau_d \end{align} \right. \]

(\( s \) は、ラプラス変換の微分演算子)

連立方程式を式変形

\[ \begin{align} v_a &= R_a i_a + L_a s i_a + K_e\omega \\ v_a - K_e\omega &= (R_a + L_a s)i_a \\ i_a &= \frac{v_a - K_e\omega}{R_a + L_a s} \end{align} \] \[ \left\{ \begin{align} &i_a = \frac{v_a - K_e\omega}{R_a + L_a s} \\ &\omega = \frac{K_t i_a - \tau_d}{Js + c} \end{align} \right. \]
\[ \begin{align} \tau &= Js\omega + c\omega + \tau_d \\ \tau - \tau_d &= (Js + c)\omega \\ \omega &= \frac{\tau - \tau_d}{Js + c} \\ \omega &= \frac{K_t i_a - \tau_d}{Js + c} \end{align} \]

DC motor の連立方程式 \( \boxed{ \left\{ \begin{align} \text{電気系} \\ \text{機械系} \end{align} \right. } \) の意味の理解(モータの機能と、発電機としての機能とが同時に働いている)

ブロック線図

DC motor の伝達関数表現。Xcos を利用

(\( 1/s \) は積分。角速度を積分して角度 \( \theta \) 。図右端の『\( \omega\rightarrow\boxed{\frac{1}{s}}\rightarrow\theta \)』)

(Xcos のプログラム

状態空間表現

伝達関数から → 状態方程式を求める(実現(realization)、実現問題)

伝達関数のブロック線図を分解

(Xcos のプログラム

ブロック線図の伝達関数の変形の確認。フィードバック接続(feedback connection) \( \boxed{ \frac{1}{L_a s + R_a} } \) を検算

 ⇔ 

(\( R_a \)、\( L_a \) は適当に与えている)

ScilabOctave
$ scilab -nwni
Scilab branch-6.1 (Apr 14 2022, 22:30:04)

--> Ra = 10
 Ra  =

   10.

--> La = 1e-3
 La  =

   0.001

--> syslin('c', 1/(La*%s))
 ans  =

     1
   ------
   0.001s

--> syslin('c', Ra/(%s^0))
 ans  =

   10
   --
   1

--> syslin('c', 1/(La*%s))/.syslin('c', Ra/(%s^0))
 ans  =

       1
   ----------
   10 +0.001s

--> syslin('c', 1/(La*%s + Ra))
 ans  =

       1
   ----------
   10 +0.001s

$ octave --no-gui
GNU Octave, version 6.4.0
Copyright (C) 2021 The Octave Project Developers.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  For details, type 'warranty'.

Octave was configured for "x86_64-pc-linux-gnu".

Additional information about Octave is available at https://www.octave.org.

Please contribute if you find this software useful.
For more information, visit https://www.octave.org/get-involved.html

Read https://www.octave.org/bugs.html to learn how to submit bug reports.
For information about changes from previous versions, type 'news'.

octave:1> pkg load control
octave:2> Ra = 10
Ra = 10
octave:3> La = 1e-3
La = 1.0000e-03
octave:4> tf([1], [La, 0])

Transfer function 'ans' from input 'u1' to output ...

         1   
 y1:  -------
      0.001 s

Continuous-time model.
octave:5> tf([Ra], [1])

Transfer function 'ans' from input 'u1' to output ...

 y1:  10

Static gain.
octave:6> feedback(tf([1], [La, 0]), tf([Ra], [1]))

Transfer function 'ans' from input 'u1' to output ...

           1      
 y1:  ------------
      0.001 s + 10

Continuous-time model.
octave:7> tf([1], [La, Ra])

Transfer function 'ans' from input 'u1' to output ...

           1      
 y1:  ------------
      0.001 s + 10

Continuous-time model.

(Scilab では、フィードバック接続に「/.」演算子を使用する。Octave では、control パッケージにある feedback() 関数を使う)

ブロック線図と式の対応とを確認

式 再掲載\[ \left\{ \begin{align} &v_a = R_a i_a + L_a s i_a + K_e\omega \\ &\tau = K_t i_a \\ &\tau = Js\omega + c\omega + \tau_d \end{align} \right. \](第1式と第3式を式変形(移項)している。また、外乱項は無いものとしている)

(Xcos のプログラム

伝達関数のブロック線図から状態方程式と出力方程式を求める

ブロック線図に必要な情報をすべて記入(外乱の項は省略)

(Xcos のプログラム

ブロック線図から式を作成。\( \dot x_1 \) について方程式を立てる:\[ \begin{align} \dot x_1 &= \frac{1}{J}\left(\tau - c x_1\right) \\ &= \frac{1}{J}\left(K_t x_2 - c x_1\right) \\ &= -\frac{c}{J}x_1 + \frac{K_t}{J}x_2 \end{align} \]同様に、\( \dot x_2 \) についての方程式:\[ \begin{align} \dot x_2 &= \frac{1}{L_a}\left(u - K_e x_1 - R_a x_2\right) \\ &= -\frac{K_e}{L_a}x_1 - \frac{R_a}{L_a}x_2 + \frac{1}{L_a}u \end{align} \]

得られた連立方程式\[ \left\{ \begin{align} &\dot x_1 = -\frac{c}{J}x_1 + \frac{K_t}{J}x_2 \\ &\dot x_2 = -\frac{K_e}{L_a}x_1 - \frac{R_a}{L_a}x_2 + \frac{1}{L_a}u \end{align} \right. \]を行列の形で式を整理する

∴ DC motor の状態方程式\[ \begin{align} \dot{\vec x} &= \begin{bmatrix}\dot x_1 \\ \dot x_2\end{bmatrix} = \begin{bmatrix}-\frac{c}{J} & \frac{K_t}{J} \\ -\frac{K_e}{L_a} & -\frac{R_a}{L_a}\end{bmatrix}\begin{bmatrix}x_1 \\ x_2\end{bmatrix} + \begin{bmatrix}0 \\ \frac{1}{L_a}\end{bmatrix}u \\ &= \begin{bmatrix}\dot \omega \\ \dot{i_a}\end{bmatrix} = \begin{bmatrix}-\frac{c}{J} & \frac{K_t}{J} \\ -\frac{K_e}{L_a} & -\frac{R_a}{L_a}\end{bmatrix}\begin{bmatrix}\omega \\ i_a\end{bmatrix} + \begin{bmatrix}0 \\ \frac{1}{L_a}\end{bmatrix}v_a \end{align} \]出力方程式\[ \begin{align} y &= \omega = \begin{bmatrix}1 & 0\end{bmatrix}\begin{bmatrix}x_1 \\ x_2\end{bmatrix} \\ &= \omega = \begin{bmatrix}1 & 0\end{bmatrix}\begin{bmatrix}\omega \\ i_a\end{bmatrix} \end{align} \](電流 \( i_a \) は観測できない場合)

まとめて、状態空間表現\[ \left\{ \begin{align} &\dot{\vec x} = A\vec x + B\vec u \\ &y = C\vec x + D\vec u \end{align}\right. \]は(直達項は無い「\( D = 0 \)」として)\[ \left\{ \begin{align} &\dot{\vec x} = \begin{bmatrix}-\frac{c}{J} & \frac{K_t}{J} \\ -\frac{K_e}{L_a} & -\frac{R_a}{L_a}\end{bmatrix}\vec x + \begin{bmatrix}0 \\ \frac{1}{L_a}\end{bmatrix}u \\ &y = \begin{bmatrix}1 & 0\end{bmatrix}\vec x \end{align}\right. \]となる

入力と出力、それから状態変数ベクトルが時間の関数であることを強調して書けば\[ \left\{ \begin{align} &\dot{\vec x}(t) = \begin{bmatrix}-\frac{c}{J} & \frac{K_t}{J} \\ -\frac{K_e}{L_a} & -\frac{R_a}{L_a}\end{bmatrix}\vec x(t) + \begin{bmatrix}0 \\ \frac{1}{L_a}\end{bmatrix}u(t) \\ &y(t) = \begin{bmatrix}1 & 0\end{bmatrix}\vec x(t) \end{align}\right. \](また、\( A \) 行列、\( B \) 行列、\( C \) 行列(、\( D \) 行列)は、定数行列。時不変システム(time-invariant system)

状態変数線図(state variable diagram)

(Xcos の CLSS ブロックを利用)

(Xcos のプログラム


参考文献


© 2023 Tadakazu Nagai