テスラコイルの原理を解析する

# テスラコイル
偶にyoutubeとかで高電圧の動画を見るたびに作ってみたいと思っていました。

https://www.youtube.com/watch?v=SONPOA_JIeM&list=PLtf3xS0MrylhvWvjiSYdtRSVY7zmEShJj&index=1

この人の作ったやつはガチでやばいです。

https://eleken.jp/archives/6649

絶対爆音

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/2928c7e9-d7ad-c394-c7e8-8996dd7103e3.png)

テスラコイルを見ていて思うのが、

**<font>$\huge{2次コイルと1次コイルの間隙広すぎない？}$</font>**

ってことだと思います。

いくら、2次コイルの巻き数が大きいからといっても、こんなに距離が離れていたら漏れインダクタンスが大きくてまともにトランスとして動作しないんじゃないか？と私は思いました。

# 補足
ちなみに、テスラコイルはSGTC（Spark Gap Tesla Coil）とSSTC（Solid State Tesla Coil）があります。

DRSSTC(二重共振半導体テスラコイル)：共振を2重に取る

いろんな名前がついていますが、交流発振の方法の違いだと理解してます

共振というのが重要な点なのでしょう

https://ja.wikipedia.org/wiki/%E3%83%86%E3%82%B9%E3%83%A9%E3%82%B3%E3%82%A4%E3%83%AB

テスラの記述で

**エジソンのエジソン電灯会社の求人を見つけ採用される。当時、同社は直流による電力事業を展開していて、一方、テスラは交流による電力事業を提案し、エジソンと対立して数ヶ月で失職する。**

**晩年は金銭苦に陥り、亡くなった時点でほぼ無一文であった**

というのがあります。いつの時代も生きるのはつらいものですね。


# テスラコイルの原理：集中定数回路として解析

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/af136bed-b9af-4b62-be95-ec047dd6c0e1.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/e54e859c-bb7e-4fc7-9118-e3b2bda976b9.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/fcde320a-90a7-4a51-9831-5cc169083c46.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/a35dbd2e-8918-443c-b4ce-a01cb33955b0.png)




![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/6ce6275c-255b-4676-a8a7-622e045b86b6.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/85c3f00e-7168-4617-a33b-c709a19b9906.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/ac0a2a9c-9474-4890-9b21-99950d2b33ee.png)

結論：2次回路$L_2,C_2$の共振周波数$ \omega = \sqrt{\frac{1}{C_2 L_2}}$を入力すると、電圧増幅率がかなり高くできる。結合定数は低いほど電圧増幅率は高くなる。

# 周波数に対するグラフ
周波数に対する電圧増幅率をグラフにしてみる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/e474aff7-307c-4a58-9b10-1c761ba4f153.png)

2次系の伝達関数と同じ形をしている。
周波数が低いうちは$C_2$のインピーダンスが低く、2次回路に電流が流れないため
$V_2 / V_1 = k \sqrt{\frac{L_2}{L_1}}=0.01 * \sqrt{2500} = 0.5$で一定になる。

周波数が上がるほど$C_2$に電流が流れ始め、$I_2$の逆起電圧によって$I_1$が減少し、結果$V_2 / V_1$が低下する。

共振周波数のときは、2次回路の合計インピーダンスは0になり、短絡状態になる。
上の計算式において$F=0$となり、$I_1 = 0,V_1 = j\omega M I_2,V_2 = -\frac{I_2}{j \omega C_2}$となる。
$I_1$が現実的に0になるわけではないが、2次回路側が共振して高いエネルギー（電圧）を持ってしまって、1次側からのエネルギー供給を受け付けないと考える。2次側の電流による逆起電圧で1次側に電流が流れなくなってしまうということだ。

結合定数による比較もしてみる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/63ec6cad-83dc-4fa0-9af8-3d7b85eba4ce.png)

結合定数が低いほど電圧増幅率が高いのは、結合定数が低いほど2次側の電流に対して、1次側の逆起電圧が低くなるため、2次側の電流がより高くできるためである。
直感的には結合定数は1に近づけるもののイメージであるが、テスラコイルにおいては異なる結論となる。

```Python
import numpy as np
import matplotlib.pyplot as plt

w_sync = 100*10**3
L2 = 0.05
C2 = 1/L2/(w_sync**2)

L1 = L2/2500

k=0.01

M = k*np.sqrt(L1*L2)

# xの値を生成
w = np.linspace(0, 10**8, 10**6)

G = -1/  (  C2 * (L1*L2/M - M) * w**2 - L1/M)

# グラフを描く
plt.figure(figsize=(10, 6))
#plt.plot(w, abs(F))
#plt.plot(w, abs(k))
plt.plot(w, abs(G))
#plt.plot(w, np.degrees(np.angle(I)))
plt.xlabel("w")
plt.ylabel("|V2/V1|")
plt.grid(True)
plt.xscale('log')  # ←ここでx軸を対数にする
plt.yscale('log')  # ←ここでx軸を対数にする
plt.axhline(0, color='black', linewidth=0.5)
plt.axvline(0, color='black', linewidth=0.5)
plt.show()
```

# 2次側回路に抵抗を追加した結果
2次側共振であることで、テスラコイルは結合率が低くても増幅率が高くできた。
現実的には抵抗を入ることになる、試してみよう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/3bfd41db-8062-455d-a4d1-6bb25899d788.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/6cada264-bb1b-48bb-9ea6-2f438281c380.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/8e9372ae-6bba-4ede-8945-ad012e9a5e51.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/6b712a03-7c5b-4b9d-a676-8c5d9a8b47a3.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/e2e9b5a4-7a81-421e-95e7-f63de920706a.png)

きれいにはまとまらなかった、グラフにしてみる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/5defc3bf-c165-499e-ba36-d2e179d4f4d1.png)
抵抗が入るとやはり、共振時の電圧増幅率は大幅に減少する。


# 分布定数的解析①

分布定数回路について以前書いた記事

https://qiita.com/GANTZ/items/f04314a715a7a1f4617d

電信方程式に基づいて、電気信号が線路端で反射することが理解できます。

空芯コイルは次のように考えます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/a3f2fc16-07cb-4160-8ad7-85f5994e3d01.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/8039825c-7f89-4012-9a40-60ea6f7a6cf9.png)

これを数学的に解いていく
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/0ffa26c6-c443-4724-b9cf-ae3c1cd849c9.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/f0f8af4b-182a-4e45-9b6d-3b2aa6ce1719.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/25b6f294-037d-474d-8922-0d90aaaafc55.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/9ad1b1c5-c516-43ac-8e9e-d2838b69fec2.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/3bb61793-c97c-40f0-9c47-982e52b73d44.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/c53573d9-65b8-4690-83d2-169e4eb3b303.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/5012983f-3e1e-4f77-8685-f2d1860c9139.png)

$\alpha, \beta$ともに複素数としての役割なので、符号は位相を意味する。ゲインが重要になる。

```math
| \frac{V_n}{V_0}| > 1
```
上記となれば、電圧はテスラコイルを通して増幅することになる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/fad7faee-a955-46db-9891-595823835540.png)

グラフを書くとこうなる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/4e107ed5-a040-4557-8641-55dea711dde2.png)

適切な$Z$を選択できれば、かなりの増幅率を得ることが可能になる。

## 適切なZについて
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/623a1e27-5831-4e52-aff8-0c5b50be9e72.png)
$Z$は実部を持たないことが条件となる。

# Rを追加して解く

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/98b5d83e-7716-4cb9-909f-4c480f3f9f70.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/689f8f91-d8bf-4881-b3b0-f0f2cb464a86.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/4b8f2ffd-1752-4dad-9924-92b89f3045ef.png)

## 適切なZについて

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/569ab1da-7098-41ea-89ce-5f8e4d796480.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/11d39797-fe28-4992-8f80-993faee1f094.png)

```
Z= (-480667.2877785036-113639.12482537022j)
```

```Python
import numpy as np
import matplotlib.pyplot as plt

# xの値を生成
w = np.linspace(0, 10**8, 10**6)

#Z=5*10**5
Z =1j*471
V0=1
R=400
L=0.05
C=0.0000001
Len = 471.238

F = 1/(R+L*1j*w) + C*1j*w

w2 = 1*10**4
F1 = 1/(R+L*1j*w2) + C*1j*w2
Z= -1*Len/F1
Z = 1/(1/Z + 1/10000000)
print(Z)

k = F*Z/Len/ (1 + F*Z/Len)

# グラフを描く
#plt.plot(w, abs(F))
#plt.plot(w, abs(k))
plt.plot(w, abs(k))
#plt.plot(w, np.degrees(np.angle(I)))
plt.xlabel("w")
plt.ylabel("|Vn/V0|")
plt.grid(True)
plt.xscale('log')  # ←ここでx軸を対数にする
plt.axhline(0, color='black', linewidth=0.5)
plt.axvline(0, color='black', linewidth=0.5)
plt.show()
```

# 実験と検証

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/0250ae09-a437-4a47-b214-f57708e0dad6.png)
コイルを巻いて、試してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/4115ca05-4729-4f6a-9009-b646e92e87ec.png)

上記の回路でスイープ波を入力して周波数特性を測定してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/294840d8-37ca-4fa2-a67e-04732ccd68d0.png)
オレンジ：$V_{IN}$、青：$V_{OU}$


伝達関数計算結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/65a2039f-7725-4720-89ff-edfc3020c0bd.png)

$100kHz$あたりに高いピークを持っています。2次共振系特有の曲線が出ています。

う～ん、現象を説明できない。

分布定数回路のモデルが間違っているんだろうか

## 考察
分布定数回路モデルではなく、集中定数回路で考えるのが正しいのか？
二次コイル側が単体で共振を起こしているのか？

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/dae26773-1fae-4a32-a09a-5fe06e8fb21c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/e181997b-5e1a-4243-b93d-beea7b7f00a0.png)


https://controlabo.com/second-order-system-frequency-response/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/349a15b7-eadf-4ea2-aee8-59e4861ed895.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/529c8b56-33d8-4867-8be4-350372c4ae48.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/c5a5c9d8-41d3-4d7f-8354-1cc3560d457d.png)

ノッチフィルターみたいになっている。説明にならないなぁ

```python

import matplotlib.pyplot as plt
import numpy as np

import cmath
import math


omega = np.logspace(-2,7,num = 100000)  #10^-2 ~ 10^3


c=0.00001
L=0.5
R=10

G = (1-c*L*omega**2) / ( 1 - c*L*omega**2 + L/R*1j*omega)
#G = (1) / ( 1 - c*L*omega**2 + L/R*1j*omega)

print(math.sqrt(1/c/L)/2/np.pi)

fz = omega / 2 /np.pi

fig = plt.figure(figsize=(8, 12))
ax1 = fig.add_subplot(2,1,1)
ax2 = fig.add_subplot(2,1,2)


ax1.plot(fz,abs(G))
ax1.set_xscale("log")
ax1.set_yscale("log")

ax1.set_xlabel("freq[Hz]")
ax1.set_ylabel("G(Hz)")

ax2.plot(fz,np.angle(G)*180/np.pi)
ax2.set_xscale("log")


ax2.set_xlabel("freq[Hz]")
ax2.set_ylabel("phase[deg]")

plt.show()
```

## 考察2
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/c556fb8e-2ae0-4820-b560-03d62155c9f2.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/5904d02b-ec6d-4ca3-8e64-2354c82443f2.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/6861a9a4-1c2b-4db6-a390-3a26bd99da2d.png)

100kHzあたりで振動するようにCの値を調整しました。
実験のグラフっぽくはできた。

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

import cmath
import math


omega = np.logspace(-2,9,num = 100000)  #10^-2 ~ 10^3


c=0.000000000001
L=0.05
R=680000

#G = (1-c*L*omega**2) / ( 1 - c*L*omega**2 + L/R*1j*omega)
#G = (1) / ( 1 - c*L*omega**2 + L/R*1j*omega)
G =1 / ( 1 - c*L*omega**2 + L/R*1j*omega)

print(math.sqrt(1/c/L)/2/np.pi)

fz = omega / 2 /np.pi

fig = plt.figure(figsize=(8, 12))
ax1 = fig.add_subplot(2,1,1)
ax2 = fig.add_subplot(2,1,2)


ax1.plot(fz,abs(G))
ax1.set_xscale("log")
ax1.set_yscale("log")

ax1.set_ylim(bottom=1e-2)
ax1.set_ylim(top = 1e+1)

ax1.set_xlabel("freq[Hz]")
ax1.set_ylabel("G(Hz)")

ax2.plot(fz,np.angle(G)*180/np.pi)
ax2.set_xscale("log")


ax2.set_xlabel("freq[Hz]")
ax2.set_ylabel("phase[deg]")

plt.show()
```

つづく