
はじめに
コイルに正弦波交流電圧を加えると位相が90度だけ遅れた交流電流が生じる。ところで、もし方形波電圧がコイルに加わった場合、どのような特徴を示すのだろうか?今回は、方形波電圧をフーリエ変換することによって正弦波に変換した後にそれらを独立的に解析して、それらを足し合わせることによってコイルに流れる電流の波形についてシミュレーションをしてみる。また、最後に参考としてRL回路の過渡応答についても同様に考察してみる。
今回やること
1.フーリエ変換によって、方形波電圧を正弦波の和で表す。
2.正弦波電圧からそれに対応する正弦波電流を求める。(コイルやRL回路なので位相が遅れる)
3.それらを足し合わせる。
コイルの性質
以下の回路を考える。
コイルは、電源周波数が高くなるほど流す事ができる電流が小さくなることが知られている。つまり、ωを角速度,tを時刻とした場合、コイルに流れる電流は電源Eを用いて以下のように表すことができる。
ところで、周波数がn倍になったときは、電流はどれほど小さくなるのだろうか? 以下のように計算してみる。
電流の大きさはどうやら1/n倍になるようである。
方形波のフーリエ変換
天下り的ではあるが
の方形波のフーリエ変換は以下のように表すことができる。
ここで、これを電圧Eとして、θ=ωtとすると以下のように表すことができる。
そこで、この電圧Eを電流Iに変換すると以下のようになる。
これがどのような波形を示すのかを、Pythonを用いたプログラムで確認してみる。
プログラム
今回のプログラムは、三角関数の和で電圧と電流を近似したものである。コードを以下に示す。
from scipy import signal#方形波を作るのに使用 import numpy as np import matplotlib.pyplot as plt import japanize_matplotlib import math V=1 #積算数 n= 100000 t = np.arange(0.0, 1, 0.001) y1=0 y2=0 L=0.001 omega=50 for num in range(n): y1=y1+(1/((2*num+1)*omega))*np.sin((2*num+1)*omega*t) y2=y2+(1/((2*num+1)*omega))**2*np.cos((2*num+1)*omega*t) y1=y1*(4*V/math.pi) y2=y2*(4*V/math.pi)/(omega*L) plt.plot(t, y1,color="red", label="電圧") #y2 = signal.square(t) plt.plot(t, y2,color="blue", label="電流") plt.title('コイルに流れる電流') plt.xlabel('時刻t') plt.legend() #凡例 plt.savefig("コイルとフーリエ変換.png") plt.show()
さて、このプログラムを実行すると以下のようなことがグラフが出力される。
このことから、電圧を積分したものが電流値となりそうである。
一方で、電流値
は三角波を示したことから、三角波をフーリエ変換した場合は上記のような三角関数の無限級数の和として表すことができると予測することができる。以下に様々な波形をフーリエ変換した場合の記事を載せる。
電圧と電流の関係
コイルに対して、電流を電圧で表すと以下のようになる。
このことから分かるように、電圧を積分したものが電流になるのがコイルの変換の役割である。ただし、これは理想的なコイルの話なので、実際には微小ながら抵抗値を含むため波形は変化するものと考えることができる。また、見方を変えると、ゴツゴツとした方形波を少し滑らかな三角波に変えていることが分かる。コイルには大事な特性として平滑化が挙げられる。なので、電流を平滑化していると見ることもできる。
参考RL回路の過渡応答
以下のようなRL回路に方形波電圧E(t)を加える。
まず加える電圧E(t)については今までの考察により、
と表せるとする。角速度がωの正弦波交流電圧を加えた場合、RL回路のインピーダンスと位相の遅れは以下のように表すことができる。
すると、その場合の正弦波電流I_ωは以下のように表すことができる。
ここで、求めたい電流は、正弦波電流の無限和と表すことができるので、
以下のような式によって、方形波電圧に対する電流値を求めることができる。
これを整理すると以下のようになる。
これをプログラミングで再現すると以下のようになる。
from scipy import signal#方形波を作るのに使用 import numpy as np import matplotlib.pyplot as plt import japanize_matplotlib import math V=1 #積算数 n= 100000 t = np.arange(0.0, 1, 0.001) y1=0 y2=0 L=0.1 R=10 omega=50 for num in range(n): y1=y1+(1/((2*num+1)*omega))*np.sin((2*num+1)*omega*t) y2=y2+(1/((2*num+1)*omega))*np.sin((2*num+1)*omega*t-np.arctan((2*num+1)*omega*L/R))/(R**2+((2*num+1)*omega*L)**2)**0.5 y1=y1*(4*V/math.pi) y2=y2*(4*V/math.pi) plt.plot(t, y1,color="red", label="電圧") #y2 = signal.square(t) plt.plot(t, y2,color="blue", label="電流") plt.title('コイルに流れる電流') plt.xlabel('時刻t') plt.legend() #凡例 plt.savefig("過渡応答コイルと抵抗.png") plt.show()
このプログラムを実行すると、以下のような画像を得ることができる。
このグラフを見れば明らかなように、電圧の波形を追従するように電流の波形が変化しているということが分かる。これが、RL回路の過渡応答である。このように基本波形を正弦波として解析をすることで単純な位相問題に帰着させることができることがフーリエ変換のいいところである。
まとめ
今回は、コイルに方形波電圧を加えた場合、電流はそれを積分した三角波になるということを、フーリエ変換とプログラムを用いて考察した。このようにフーリエ変換は、複雑な波形を単純な正弦波の和として表すことができるといった特徴がある。これは、制御工学やパワエレの分野でも度々使用される。なので、今回の記事はコイルの特徴とフーリエ変換の応用について述べたので、盛りだくさんだったと思われる。これらの事項は電験でも出やすいと思われるので、ぜひとも自分の知識として蓄えていただけたらと思う。
コメント