はじめに
電力工学では、複雑な高次方程式を解くことで物性値を解析することができる場合がある。そこで、局所解を求めることができる1次元ニュートンラフソン法を用いることで、同期発電機のV曲線とノーズカーブを描写することができるかを調査する。
ニュートンラフソン法
ニュートンラフソン法は、高次方程式などの近似解を求めるために使用されるアルゴリズムである。細かい説明は以下の記事を参照にされたい。
同期発電機のV曲線
導入
$I_f$と起電力$V_s$は以下のような比例関係がある。
V_s=kI_f
まず、以下の式は同期発電機の送電可能電力つまり、安定度の式である。
P=\frac{E_rE_s}{X}sin \delta
ゆえに、
sin\delta = \frac{Px}{V_rV_s}
次に、発電機の等価回路に余弦定理を活用すると以下のようになる。
cos \delta=\frac{-(xI_c)^2+V_r^2+V_s^2}{2V_sV_r}
これを以下の式に代入することで、$I_c$の方程式を立式する。
f(I_c)=sin^2\delta+cos^2\delta-1=0
ゆえに、この方程式の近似解をニュートンラフソン法を用いることでV曲線を描写する。ただし、これには初期解を上手く設定してあげる必要があり、短い範囲でしか正確な値を示さない。そこで、以下のようなプログラムを作成した。
プログラム
import numpy as np
import matplotlib.pyplot as plt
import math
import japanize_matplotlib
h=1.0*10**-5
n=1000
x=0.1
V_r=1.0
k=1.0
P=1.0
def equation(I_c,I_f):
E=k*I_f
c=(-(x*I_c)**2+V_r**2+E**2)/(2*V_r*E)
s=(P*x)/(E*V_r)
return s**2+c**2-1
I_f_array=np.linspace(0.6,1.4,n)
I_c_array=[]
for i in range(n):
I_f=I_f_array[i]
I_c=10
while abs(equation(I_c,I_f))>1.0*10**-9:
diff_equation = (equation(I_c+h,I_f)-equation(I_c,I_f))/h
I_c=I_c-equation(I_c,I_f)/diff_equation
#print(abs(equation(I_c,I_f)))
#print(x)
if I_c>0:
I_c_array.append(I_c)
else:
nan = float('nan')
I_c_array.append(nan)
plt.title("同期発電機のV曲線")
plt.xlabel("I_f")
plt.ylabel("I_c")
plt.plot(I_f_array,I_c_array)
plt.savefig("同期発電機_V曲線.png")
plt.show()
ノーズカーブ
導入
以下に電力方程式に関する電圧の式を示す。
(V_r^2+Pr+Qx)^2+(xP-rQ)^2=(V_s V_r)^2
これを$V_r$について得くことでノーズカーブを描写することができる。
プログラム
import numpy as np
import matplotlib.pyplot as plt
import math
import japanize_matplotlib
h=1.0*10**-10
n=10
x=1.0
r=0.0
Q=0.0
V_s=1.0
def equation(P,V_r):
return (V_r**2+P*r+Q*x)**2+(x*P-x*Q)**2-(V_s*V_r)**2
V_r_array=np.linspace(0,1,n)
P_array=[]
for i in range(n):
x=2.0
V_r=V_r_array[i]
P=1.0
while abs(equation(P,V_r))>1.0*10**-13:
diff_equation = (equation(P+h,V_r)-equation(P,V_r))/h
P=P-equation(P,V_r)/diff_equation
#print(x)
P_array.append(P)
plt.title("ノーズカーブ")
plt.xlabel("P")
plt.ylabel("V_r")
plt.plot(P_array,V_r_array)
plt.savefig("ノーズカーブ.png")
plt.show()
これを実行すると以下のようなグラフが出力される。
まとめ
今回は、ニュートンラフソン法を用いて方程式の近似解を求めた。その操作を行うことで、ノーズカーブや同期発電機のV曲線を描写することができた。ところが、初期解を上手く選定することが重要になる。それは、経験則でプロットする必要がある。