送電線における電圧降下の近似式と誤差について

# はじめに
送電線における電圧降下の近似式は、送電端電圧と受電端電圧の位相角の差である相差角が小さければかなりの精度で電圧降下を推定することができるとされている。しかし、それらを定量的に考察した文献は少ないように思える。そこで、今回はPythonによる数値解析とグラフ化を用いて、誤差と相差角と送電線のインピーダンスにはどのような相関関係があるのかを考察する。

![電圧降下の近似式と真値の誤差_相差角と誤差の関係.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/1dc9a8c4-f203-0c46-3512-db4740256bae.png)

# モデル
## 導入
以下のような回路設定で考える。

![AC_P_max.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/f1cbab40-94df-8f65-2474-d18fdec7432e.png)

ここで、$\dot{Z}$は負荷側のインピーダンスで$\dot{z}=r+jx$は送電線のインピーダンスとする。また、電圧降下は送電端電圧の大きさと位相を基準として考え、基準電圧1[p.u.]とする。

この場合、送電線に流れる電流は以下のように表すことができる。

```math
\dot{I}=\frac{E}{\dot{Z}+\dot{z}}
```
したがって、受電端電圧は以下のようになる。
```math
\dot{V}=\dot{Z}\dot{I}=\frac{\dot{Z}}{\dot{Z}+\dot{z}}E
```
したがって、電圧降下の真値は、定義どおり以下のように表すことができる。

```math
\Delta V_{real-value}=|E-V_r|
```


ここで、複素電力は以下のように表すことができる。

```math
\dot{S}=P+jQ=\dot{V}\bar{I}
```

## 電圧降下の近似式
## 導入
電圧降下の近似式は力率角$\theta$を用いて以下のように表せる。

```math
\Delta V_{near}=I(r cos\theta + xsin\theta)=\frac{rP+xQ}{V_r}
```

## 証明
上記式は、電圧のベクトル図を書くことで求められるが、これと同値な複素数の計算を用いて理論解析的に導出することも可能である。

まず、$V_r$を基準ベクトルとして考えると、電流は一般的に$V_r$よりも遅れることから以下のように表すことができる。

```math
\dot{I}=Ie^{-j\theta}=I(cos\theta-jsin\theta)
```

したがって、キルヒホッフの法則より、

```math
\dot{V_s}=V_r+\dot{z}\dot{I}=V_r+(r+jx)I(cos\theta-jsin\theta)
```
これを計算すると、

```math
\dot{V_s}=V_r+\dot{z}\dot{I}=(V_r+rIcos\theta+xIsin\theta)+j(-rIsin\theta+xIcos\theta)
```

しかし、$V_r$と$V_s$の位相差である相差角が十分に小さければ、$(-rIsin\theta+xIcos\theta)<<V_r$となるので、虚数部分は無視することが可能となる。したがって、実数部のみを考慮すればよい。
```math
V_s\approx V_r+rIcos\theta+xIsin\theta
```
これが、今回考察したい電圧降下の近似式の大元となる式である。

ここで、負荷側の電力は以下の様に表すことができる。

```math
P=V_rIcos\theta,Q=V_rIsin\theta
```

したがって、

```math
V_s\approx V_r+rIcos\theta+xIsin\theta= V_r+(rV_rIcos\theta+xV_rIsin\theta)/V_r=V_r+ \frac{RP+XQ}{V_r}
```

となることが分かる。





## 誤差

そこで、誤差[%]を以下のように定義する。

``` math
err[\%]=|\frac{\Delta V_{near}-\Delta V_{real-value} }{\Delta V_{real-value}}|\times 100[\%]
```

# プログラム
上記の考察のもとで、3パターンのプログラムを書いた。
## 誤差と相差角について
```python err_delta.py
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib
import math

n=100

# 負荷のインピーダンス
Z=10+20j

# 送電線のインピーダンス
r=1.0
x=np.linspace(0, 1.0, n)
z=r+x*1j

# 送電端電圧[p.u.]
E =1.0
I=np.zeros((n),dtype=np.complex128)
V=np.zeros((n),dtype=np.complex128)
S=np.zeros((n),dtype=np.complex128)
P=np.zeros((n),dtype=np.float64)
Q=np.zeros((n),dtype=np.float64)
delta_angle=np.zeros((n),dtype=np.float64)
err=np.zeros((n),dtype=np.float64)
delta_v_near=np.zeros((n),dtype=np.float64)
delta_v_real_value=np.zeros((n),dtype=np.float64)

for k in range(n):
  I[k]= E/(Z+z[k])
  V[k]=Z*I[k]
  S[k]=V[k]*np.conj(I[k])
  P[k]=S[k].real
  Q[k]=S[k].imag
  delta_v_near[k]=(r*P[k]+x[k]*Q[k])/abs(V[k])
  delta_v_real_value[k]=abs(abs(E)-abs(V[k]))
  err[k] = abs((delta_v_near[k]-delta_v_real_value[k])/delta_v_real_value[k])*100
  delta_angle[k]=abs(np.angle(E/V[k])*(180/math.pi))

plt.title('電圧降下の近似式の誤差と相差角の関係')
plt.plot(delta_angle,err)
plt.xlabel('相差角[度]')
plt.ylabel('誤差[%]')
plt.savefig("電圧降下の近似式と真値の誤差_相差角と誤差の関係.png")
plt.show()
```
![電圧降下の近似式と真値の誤差_相差角と誤差の関係.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/1dc9a8c4-f203-0c46-3512-db4740256bae.png)

このグラフのように、電圧降下の近似式の誤差は、相差角が増加するほどに、二次関数的に増大してしまう。したがって、相差角が小さく無視できるような系統でしか用いることができない。ただし、相差角が1度未満であれば、誤差は1%よりも小さくなるので、そのような場合ならば電験の試験でも用いても良いと考えられる。


## 誤差と送電線のインピーダンスについて
```python err_z.py
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib
import math

n=100
r=np.linspace(0,0.5,n)
x=np.linspace(0,2,n)
r,x=np.meshgrid(r,x)
z=r+x*1j

Z=10+20j

E=1.0
I=np.zeros((n,n),dtype=np.complex128)
V=np.zeros((n,n),dtype=np.complex128)
S=np.zeros((n,n),dtype=np.complex128)

P=np.zeros((n,n),dtype=np.float64)
Q=np.zeros((n,n),dtype=np.float64)
theta=np.zeros((n,n),dtype=np.float64)
delta_v_near=np.zeros((n,n),dtype=np.float64)
delta_v_real_value=np.zeros((n,n),dtype=np.float64)
err=np.zeros((n,n),dtype=np.float64)

for i in range(n):
    for k in range(n):
        I[i][k]=E/(z[i][k]+Z)
        V[i][k]=I[i][k]*Z
        S[i][k]=V[i][k]*np.conj(I[i][k])
        P[i][k]=np.real(S[i][k])
        Q[i][k]=np.imag(S[i][k])
        theta[i][k]=np.angle(S[i][k])
        # delta_v_near[i][k]=(r[i][k]*np.cos(theta[i][k])+x[i][k]*np.sin(theta[i][k]))*abs(I[i][k])
        delta_v_near[i][k]=x[i][k]*Q[i][k]+r[i][k]*P[i][k]
        delta_v_real_value[i][k]=abs(abs(E)-abs(V[i][k]))
        err[i][k] = abs((delta_v_near[i][k]-delta_v_real_value[i][k])/delta_v_real_value[i][k])*100  
plt.title('電圧降下の近似式と真値の誤差[%]')
plt.contourf(r,x,err,levels=100,cmap='jet')
plt.colorbar(label='誤差[%]')
plt.xlabel('送電線の抵抗値[p.u.]')
plt.ylabel('送電線のリアクタンス値[p.u.]')
plt.savefig("電圧降下の近似式と真値の誤差.png")
plt.show()
```

![電圧降下の近似式と真値の誤差_誤差.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/6c1d6891-0601-30a0-3c3c-ada0b836b2c8.png)
グラフより、送電線のインダクタンスよりも送電線抵抗の方が誤差に与える影響が大きくなるようである。ところが、送電線の場合はインダクタンスのほうが抵抗値と比較して十分に大きいとみなすことができるため、誤差の影響は少ないと考えられる。
## 相差角と送電線のインピーダンスについて

``` python delta_z.py
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib
import math
n=100
r=np.linspace(0,0.5,n)
x=np.linspace(0,2,n)
r,x=np.meshgrid(r,x)
z=r+x*1j
Z=10+20j
E=1.0
I=np.zeros((n,n),dtype=np.complex128)
V=np.zeros((n,n),dtype=np.complex128)
S=np.zeros((n,n),dtype=np.complex128)
P=np.zeros((n,n),dtype=np.float64)
Q=np.zeros((n,n),dtype=np.float64)
theta=np.zeros((n,n),dtype=np.float64)
delta_v_near=np.zeros((n,n),dtype=np.float64)
delta_v_real_value=np.zeros((n,n),dtype=np.float64)
err=np.zeros((n,n),dtype=np.float64)
delta_angle=np.zeros((n,n),dtype=np.float64)
for i in range(n):
    for k in range(n):
        I[i][k]=E/(z[i][k]+Z)
        V[i][k]=I[i][k]*Z
        S[i][k]=V[i][k]*np.conj(I[i][k])
        P[i][k]=np.real(S[i][k])
        Q[i][k]=np.imag(S[i][k])
        theta[i][k]=np.angle(S[i][k])
        # delta_v_near[i][k]=(r[i][k]*np.cos(theta[i][k])+x[i][k]*np.sin(theta[i][k]))*abs(I[i][k])
        delta_v_near[i][k]=(x[i][k]*Q[i][k]+r[i][k]*P[i][k])/abs(V[i][k])
        delta_v_real_value[i][k]=abs(abs(E)-abs(V[i][k]))
        err[i][k] = abs((delta_v_near[i][k]-delta_v_real_value[i][k])/delta_v_real_value[i][k])*100
        delta_angle[i][k]=np.angle(E/V[i][k])*(180/math.pi)
plt.title('電圧降下の近似式と真値の誤差[%]')
plt.contourf(r,x,err,levels=100,cmap='jet')
plt.colorbar(label='誤差[%]')
plt.xlabel('送電線の抵抗値[p.u.]')
plt.ylabel('送電線のリアクタンス値[p.u.]')
plt.savefig("電圧降下の近似式と真値の誤差_誤差.png")
plt.show()
```

![電圧降下の近似式と真値の誤差_相差角.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686019/8c6bb3e6-4f28-06ac-4976-7114e93ba50f.png)

このグラフにより、送電線の抵抗とインダクタンスは、相差角に影響を与えるということが分かる。

# まとめ
今回は、電圧降下の近似式と真値の誤差についてプログラムを用いた数値解析によって考察した。結果、予想と同じく、送電線のインピーダンスが増加すれば相差角が増加するので、結果として誤差も大きくなってしまうことが分かった。ただし、相差角が1度未満と十分に小さければ誤差も1%未満となることから、電験試験では、条件さえ満たせば近似式は用いても良いと考えられる。