DCモーターの過渡現象のモデル化

# はじめに
DCモーターに電圧をかけた場合、抵抗成分がリアクトルと比較して小さいため大きな突入電流が流れるはずである。しかし、回転系の慣性がある場合は電流の変化と比べてゆっくりと回転速度が上昇し、モーターの起電力（回転子の電圧であり電力ではないのに注意！！）が電源電圧に漸近した点で安定化すると考えられる。

そこで、今回は上記の仮説が正しいことを数学的なモデルを用いたシミュレーションを用いて考察する。具体的には、力学系である回転体の運動方程式とキルヒホッフの法則を用いた電源電圧と起電力電圧との電圧の関係式の両者の微分方程式を連立させる。

その後、連立微分方程式を現代制御の考えである状態方程式に変換する。

最後に、微分方程式の数値計算の手法である差分法のうちで、最も単純なオイラー法を用いることで、回転角速度、電流に対する時間応答をそれぞれ以下のようにグラフ化し、冒頭で述べた仮説が正しいことを確認する。

## 回転角速度の過渡応答

![モータの過渡現象回転角速度.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/a1682669-0d1e-4d39-a2ef-1c5b4fdb70bd.png)


## 電流の過渡応答

![モータの過渡現象電流.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/523e5526-afd5-46a9-b43f-8b9a09caac47.png)


# モデル化と微分方程式
電験科目の機械、直流機のトルクと起電力とトルクの必須公式を以下に示す。

```math
E=k_1 \Phi N,T=k_2 \Phi I_a 
```
ただし、$\phi$は励磁回路もしくは永久磁石により生じる磁束とし、今回の解析では他励式、永久磁石式のように、励磁と電気系は依存しない関係であるとする。また、ブラシと回転子による切り替えは考慮しないものとする。また、電源から流れる電流と電機子電流は等しいものとする。つまり、$I=I_a$とする。

## 回転体の運動方程式（力学系）

回転体の方程式は簡易的に以下のように表すことができる。

```math
J\frac{d\omega}{dt}=T_e-T_L=k_2 \Phi i(t)-T_L
```

ただし、$T_L$は負荷トルクとして今回は一定負荷とする。

また、今回はダンピングについても考慮したいので、ダンピング定数$D$を用いて以下のように表すこととする。

```math
J\frac{d\omega}{dt}+D\omega -(k_2 \Phi i(t)-T_L)=0
```




## キルヒホッフの法則（電気系）

DCモータの等価電気回路は、今回は最も簡単なモデルである、抵抗とリアクトルと起電力電圧源からなる直列回路であるとする。

```math
e(t)=v(t)+R i(t)=(k_1 \Phi )N(t)+R i(t)+L \frac{di(t)}{dt}
```

ここで、

```math
N(t)=\frac{120 f(t)}{p}=\frac{60 \omega(t)}{p}
```

となる。
ただし、$f(t)$は機械的回転周波数とする。

したがって、

 ```math
e(t)=(k_1 \Phi )\frac{60 \omega(t)}{p}+R i(t)+L \frac{di(t)}{dt}
```

となる。




# 微分方程式の状態方程式化
上記の2つの微分方程式を状態方程式にすると以下のようになる。
``` math
\begin{pmatrix}
   \frac{d\omega}{dt}  \\
   \frac{di}{dt}
\end{pmatrix}

=

\begin{pmatrix}
   -\frac{D}{J} & \frac{k_1 \Phi}{J} \\
    -\frac{60 k_2 \Phi}{pL} & -\frac{R}{L}
\end{pmatrix}


\begin{pmatrix}
   \omega  \\
   i
\end{pmatrix}

```

これを以下の記事のようなオイラー法を用いて数値計算を行う。

https://qiita.com/arairuca/items/54923ed3be68334f8d88

# プログラム

上記までの考察をプログラムに反映させると以下の通りである。

```python motor.py
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib
import math

#パラメータ
J=10
D=3
T_L=10
k1=1
k2=1
fai=1
L=10e-3
R=1
e=100
p=2
#初期条件 （電荷と電荷の微分量つまり電流について）
x=np.array([0,0])
#初期時間
t=0
#時間と状態量（ここでは電荷と電荷の微分量）
time_ary=[]
X=[]
Y=[]
#微小時間の時間間隔(小さくするほど精度は上がるが計算時間が比例して増大する)
delta_t=0.00001
while(t<0.2):
    v=np.array([[-D/J, k1*fai/J], [-60*k2*fai/(p*L),-R/L]])@x+np.array([-T_L/J,e/L])
    #位置の微小変化
    x=x+v*delta_t
    #演算結果を記録
    time_ary.append(t)
    X.append(x[0])
    Y.append(x[1])
    #時間の更新
    t=t+delta_t
###回転角速度と時間のグラフの描写
plt.xlabel("応答時間[s]")
plt.ylabel("回転角速度[rad/s]")
plt.plot(time_ary,X)    
#グラフを保存する
plt.savefig("モータの過渡現象回転角速度.png")
#グラフの表示
plt.show()
###電流と時間のグラフの描写
plt.xlabel("応答時間[s]")
plt.ylabel("電流[A]")
plt.plot(time_ary,Y)
#グラフを保存する
plt.savefig("モータの過渡現象電流.png")
#グラフの表示
plt.show()
```
# 結果
慣性モーメントが大きいときと、小さい場合で場合分けをした。
また、慣性モーメントが小さい場合において、ダンピング定数が小さい場合と大きい場合でさらに場合分けをした。

## 慣性モーメントJが大きいとき

慣性モーメント$J=1$と大きい場合の結果を以下に示す。

### 回転角速度の過渡応答

![モータの過渡現象回転角速度.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/a1682669-0d1e-4d39-a2ef-1c5b4fdb70bd.png)

慣性が大きいので、回転数は徐々上昇し、ある程度上昇した場合は一定の値に収束する。

### 電流の過渡応答

![モータの過渡現象電流.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/523e5526-afd5-46a9-b43f-8b9a09caac47.png)

電圧をモータにかけた瞬間、大きな突入電流が流れる。その後、徐々に回転数が増加し起電力は、電源電圧に漸近する。

## 慣性モーメントJが小さいとき

慣性モーメント$J=0.1$と小さい場合の結果を以下に示す。

### 回転角速度の過渡応答

![モータの過渡現象回転角速度4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/52d5176e-53e4-4199-bcce-c4b7a396063d.png)

このように、回転数が安定化する前に、回転数が上下する。これは、慣性モーメントが少なく、回転数が変動しやすいことに起因する。

ちなみに、ダンピング係数を小さくすると第一振動の上下の揺れが大きくなる。


![モータの過渡現象回転角速度411_D0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/0d47f9c9-cad4-4671-a97d-2c82058f017d.png)



### 電流の過渡応答

![モータの過渡現象電流4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/a6687ad9-9964-49e2-8ca6-a5b49cf5f708.png)

ちなみに、ダンピング係数を小さくすると第一振動の上下の揺れが大きくなる。今回は、振動が大きく、逆方向に電流が流れる場合も存在した。

![モータの過渡現象電流411_D0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/810dee8e-ab23-4cf7-9efc-c3e80447b8a2.png)


# まとめ
今回は、DCモータの数学的なモデルを用いて過渡現象の数値解析を行った。結果、慣性モーメントが大きい場合は、回転数はゆっくりと上昇する。一方で電流は大きな突入電流が生じる。一方で、慣性モーメントが小さい場合は、応答が振動減衰的になることが分かった。このことから、最初の仮説はシミュレーション上においては正しいといえる。


# 参考文献

https://rikei-tawamure.com/entry/2020/01/24/233633#google_vignette

https://www.paltek.co.jp/techblog/techinfo/220107_01