RLC回路と共振

# はじめに
抵抗・コイル・コンデンサは電気回路の受動素子として知られている。また、それらを用いて直列回路と並列回路を用いた場合、電流が電源周波数によって変化することが知られている。今回は、直列RLC回路と並列RLC回路についてそれぞれの場合において電源角速度が変化した場合において電流の特性を調べるとともに、共振についても述べるとする。

# 直列回路
以下のような回路を考える。

![直列回路.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/30695cea-66fd-60f3-a60e-60f89ff35961.jpeg)

この回路に流れる複素電流は、電圧の位相を基準とした場合、以下のように表すことができる。

```math
\dot{I}=\frac{E}{R+j\omega L+ \frac{1}{j \omega C}}
```

ゆえに、電流値は以下のようになる。

```math
I=\frac{E}{\sqrt{R^2+(\omega L -\frac{1}{\omega C})^2}}
```

ここで、上の式において、$\omega L = \frac{1}{\omega C }$となるとき電流値は最大となり以下の式で表すことができる。この現象を共振といい、その時の角速度を共振角速度という。

```math
I=I_{max}=\frac{E}{R} \because \omega =\frac{1}{\sqrt{LC}}
```



## プログラム

さて、上式を用いてPythonを用いて複素数のプログラムを書くと以下のようになる。

```　python tixyokuretu_kixyousin.py
import numpy as np
import matplotlib.pyplot as plt



R=10
L=100*10**(-3)
C=200*10**(-6)
V=100

omega = np.linspace(0,2*(L*C)**(-0.5),1000)
Z=R+1j*omega*L+1/(1j*omega*C)






I_dot = V/Z
I=abs(I_dot)

plt.plot(omega,I)
plt.title('共振周波数と電流値',fontname="MS Gothic")
plt.xlabel('角速度',fontname="MS Gothic")
plt.ylabel('電流',fontname="MS Gothic")

plt.show()

```

![直列共振.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/a2da62b0-727b-8363-d086-29305e32ec5b.png)

このように、共振角速度周辺で電流値が大幅に変化することから、周波数依存性が求められる同調回路や発振回路に使用される。

## Q値と鋭さの関係

以下のようなプログラムを書くことで、Q値と鋭さの関係を示す事ができる。ただし$Q=\frac{\omega L}{R}$とする。

```python RLC_q.py
import numpy as np
import matplotlib.pyplot as plt



#R=10
L=100*10**(-3)
C=200*10**(-6)
V=100
n=1000
omega = np.linspace(0.1,2*(L*C)**(-0.5),n)
R=np.linspace(1,10000,n)
omega,R = np.meshgrid(omega,R)
# Z=R+1j*omega*L+1/(1j*omega*C)



# I_dot = V/Z
# I=abs(I_dot)
I=np.zeros((n,n))
for i in range(n):
  for k in range(n):
    I[i][k]=abs(V/(R[i][k]+1j*omega[i][k]*L+1/(1j*omega[i][k]*C)))

plt.contourf(omega,I,omega*L/R)
plt.colorbar(label="Q_value")
plt.title('RLC直列_共振周波数と電流値',fontname="MS Gothic")
plt.xlabel('角速度',fontname="MS Gothic")
plt.ylabel('電流',fontname="MS Gothic")
plt.savefig("RLC直列回路_Q値と鋭さの関係.png")
plt.show()
```

![RLC直列回路_Q値と鋭さの関係.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/081e1431-d93a-74f1-8932-e9794a517ab2.png)

このように、Q値が増えるということはより鋭くなるということを意味している。






# 並列回路

以下のような回路を考える。

![並列回路.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/c7d043d3-afa4-3f8e-3f80-1b32b8ed9455.jpeg)

複素電流は、キルヒホッフの電流則により以下のように表すことができる。

```math
\dot{I}=\frac{E}{R}+\frac{E}{j \omega L}+j \omega C E
```
ゆえに、電流値は以下のように表すことができる。

```math
I=E\sqrt{(\frac{1}{R})^2 +(\omega C -\frac{1}{\omega L })^2}
```

ここで、$\omega L = \frac{1}{\omega C }$のとき電流値は最小となり以下のように表すことができる。


```math
I=I_{min}=\frac{E}{R} \because \omega =\frac{1}{\sqrt{LC}}
```

## プログラム
さて、上式を用いて直列回路同様にプログラムを書くと以下のようになる。

``` python RLC_heiretu_kixyousin.py
import numpy as np
import matplotlib.pyplot as plt



R=1000
L=10*10**(-3)
C=20*10**(-6)
V=100

omega = np.linspace(0,30*(L*C)**(-0.5),1000)


I_dot = (V/R)+(V/(1j*omega*L))+1j*omega*C*V
I=abs(I_dot)

plt.plot(omega,I)
plt.title('共振周波数と電流値',fontname="MS Gothic")
plt.xlabel('角速度',fontname="MS Gothic")
plt.ylabel('電流',fontname="MS Gothic")

plt.show()
``` 

これを実行すると以下のような図が出力される。

![並列共振.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/527a19c6-3aac-3a24-8e78-cd018242c916.png)

## Q値と鋭さの関係

以下のようなプログラムを書くことで、Q値と鋭さの関係を示す事ができる。ただし$Q=\frac{R}{\omega L}$とし、値の変化が激しいところは対数を取り変化を比較しやすくした。


```python RLC_q_heiretu.py
import numpy as np
import matplotlib.pyplot as plt



#R=10
L=10*10**(-3)
C=20*10**(-6)
V=100
n=10000
omega = np.linspace(0.1,3*(L*C)**(-0.5),n)
R=np.linspace(0.01,1000,n)
omega,R = np.meshgrid(omega,R)
# Z=R+1j*omega*L+1/(1j*omega*C)



# I_dot = V/Z
# I=abs(I_dot)
I=np.zeros((n,n))
for i in range(n):
  for k in range(n):
    I[i][k]=abs(V*(1/R[i][k]+1/(1j*omega[i][k]*L)+1j*omega[i][k]*C))

plt.contourf(omega,I,np.log(R/(omega*L)))
plt.colorbar(label="log(Q_value)")
plt.title('RLC並列_共振周波数と電流値',fontname="MS Gothic")
plt.xlabel('角速度',fontname="MS Gothic")
#plt.xscale("log")
#plt.yscale("log")
plt.ylim(0,200)
plt.ylabel('電流',fontname="MS Gothic")
plt.savefig("RLC並列回路_Q値と鋭さの関係.png")
plt.show()

```

![RLC並列回路_Q値と鋭さの関係.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/59fe33eb-772f-dd78-fe24-70ce7e7fef2f.png)

このようにQ値が大きくなるほど各角速度ごとの電流値が低下して、変化が激しく鋭いグラフになることが分かる。

# まとめ
抵抗・コイル・コンデンサは交流回路に多用される。これら3つの素子を上手く使用することによって周波数の特性を制御することができる。今回は、RLC直列回路とRLC並列回路について周波数特性を調査した。これは、微分方程式や制御工学にもつながる重要な概念でQ値などの理解の基本となることなので、しっかりと押さえておこう。