Rで物理定数:比誘電率

比誘電率とは

比誘電率(relative permittivity、記号 \(\varepsilon_{\mathrm{r}}\))は、物質の誘電率 \(\varepsilon\) が、真空の誘電率 \(\varepsilon_0\) の何倍にあたるかを表す無次元の数です。

\[
\varepsilon_{\mathrm{r}} = \frac{\varepsilon}{\varepsilon_0}
\]

単位がないため、どの単位系を使っても同じ値になります。

コンデンサで考える意味

平行平板コンデンサの極板の間に物質を挟むと、静電容量が \(\varepsilon_{\mathrm{r}}\) 倍になります。

\[
C = \varepsilon_{\mathrm{r}}\,\varepsilon_0\,\frac{S}{d}
\]

ここで \(S\) は極板の面積、\(d\) は極板の間隔です。比誘電率が大きい物質ほど、同じ電圧で多くの電荷を蓄えられます。

物質ごとに値が違う理由

物質に電場をかけると、内部の電荷が少しずれて分極が起こります。分極が起こりやすい物質ほど \(\varepsilon_{\mathrm{r}}\) は大きくなります。

  • 無極性の物質(空気、ポリエチレンなど)
    • 電子分極だけですので比較的小さい値になります。
  • 極性分子の物質(水など)
    • 分子の向きがそろう配向分極が加わり、比較的大きな値になります。
  • 強誘電体(チタン酸バリウムなど)
    • 結晶内で双極子が自発的にそろい、比較的非常に大きな値になります。

値が変わる条件

比誘電率は物質に固有の一定値ではなく、温度や周波数で変わります。

たとえば水は温度が上がると小さくなり、GHz 以上の高周波では配向分極が追従できず小さくなります。

比誘電率の算出

本投稿では水 \(\mathrm{H_2O}\) の場合の比誘電率を算出してみます。

水は極性分子どうしが水素結合でつながっているため、分子間の相関が強く、単純な理論式では値を再現できませんが、以下の温度依存の経験式(静的誘電率)が提案されています。

\[
\varepsilon_{\mathrm{r}}(t) \approx 87.74 - 0.40008\,t + 9.398\times 10^{-4}\,t^2 - 1.410\times 10^{-6}\,t^3
\tag{1}\]

ここで \(t\) は摂氏温度です。式 1 は 0〜100 度程度の範囲で利用できます。

なお、静的誘電率とは、時間的に変化しない(または、ゆっくりとしか変化しない)電場をかけたときの誘電率のことです。

# 水の比誘電率(温度依存の経験式)
# eps_r(t) = 87.74 - 0.40008 t + 9.398e-4 t^2 - 1.410e-6 t^3   (t: 摂氏温度)
eps_r_water <- function(t) {
  if (any(t < 0 | t > 100, na.rm = TRUE)) {
    warning("この式は 0〜100 度程度の範囲で使ってください")
  }
  87.74 - 0.40008 * t + 9.398e-4 * t^2 - 1.410e-6 * t^3
}

# 代表的な温度での値
t_vec <- c(0, 10, 20, 25, 30, 40, 60, 80, 100)
res <- data.frame(t_C = t_vec, eps_r = eps_r_water(t_vec))
print(res, digits = 4, row.names = FALSE)

# グラフ
library(ggplot2)
d <- data.frame(t = seq(0, 100, by = 1))
d$eps_r <- eps_r_water(d$t)

ggplot(d, aes(t, eps_r)) +
  geom_line(linewidth = 1) +
  labs(
    x = "温度 t [度]",
    y = expression(paste("比誘電率 ", epsilon[r])),
    title = "水の比誘電率の温度依存性(経験式)"
  ) +
  theme_minimal()
 t_C eps_r
   0 87.74
  10 83.83
  20 80.10
  25 78.30
  30 76.55
  40 73.15
  60 66.81
  80 61.03
 100 55.72
Figure 1

温度が上がるほど \(\varepsilon_{\mathrm{r}}\) は小さくなりますのは、熱運動で、水分子の双極子の向きがそろいにくくなる事が一因です。

また、温度以外にも圧力、質量密度、比エンタルピーそして物質状態を引数とする関数 iapws95 {iapws}を利用して水の比誘電率を求めることが出来ます。

  • 参照資料
  • iapws パッケージの iapws_epsilon() は IAPWS R8-97の実装で、温度と密度から静的誘電率を計算します。密度は iapws95() で求めます。
  • iapws95() は圧力 p を MPa、温度 t を K で受け取ります。iapws_epsilon() は密度 [kg/m³] と温度 [K] を受け取ります。
  • 以下のRコードでは
    • iapws95() は行列を返すため、drop() でベクトルにしています。
    • 100 度は、1 atm では沸点(約 99.97 度)をわずかに超えるため、state = "liquid" を指定して液体として計算させています(準安定の液体扱い)。
library(iapws)

# ---- IAPWS R8-97----
# 大気圧(0.101325 MPa)の液体の水について、密度 → 誘電率の順に計算する
eps_r_iapws <- function(t_C, p_MPa = 0.101325) {
  t_K <- t_C + 273.15
  rho <- drop(iapws95("rho", t = t_K, p = p_MPa, state = "liquid")) # [kg/m^3]
  iapws_epsilon(rho, t_K)
}

# ---- 温度ごとの比較 ----
t_C <- seq(0, 100, by = 5)

res <- data.frame(
  t_C = t_C,
  eps_iapws = eps_r_iapws(t_C), # R8-97
  eps_emp = eps_r_water(t_C) # 経験式
)
res$diff <- res$eps_emp - res$eps_iapws # 経験式 − R8-97
res$rel_pct <- 100 * res$diff / res$eps_iapws # 相対差 [%]

print(res, digits = 5, row.names = FALSE)

cat(sprintf(
  "\n最大の絶対差: %.3f(%.0f 度)\n",
  max(abs(res$diff)), res$t_C[which.max(abs(res$diff))]
))
cat(sprintf("最大の相対差: %.2f %%\n", max(abs(res$rel_pct))))

# ---- グラフ ----
library(ggplot2)

d <- data.frame(t = seq(0, 100, by = 1))
d$iapws <- eps_r_iapws(d$t)
d$emp <- eps_r_water(d$t)
d$diff <- d$emp - d$iapws

# (1) 誘電率の温度依存
p1 <- ggplot(d, aes(t)) +
  geom_line(aes(y = iapws, colour = "IAPWS R8-97"), linewidth = 1) +
  geom_line(aes(y = emp, colour = "経験式"), linewidth = 1, linetype = "dashed") +
  labs(
    x = "温度 t [度]", y = expression(paste("比誘電率 ", epsilon[r])),
    colour = NULL, title = "水の比誘電率(大気圧)"
  ) +
  theme_minimal()

# (2) 差(経験式 − R8-97)
p2 <- ggplot(d, aes(t, diff)) +
  geom_hline(yintercept = 0, colour = "grey50") +
  geom_line(linewidth = 1) +
  labs(
    x = "温度 t [度]", y = "経験式 − R8-97",
    title = "経験式と IAPWS R8-97 の差"
  ) +
  theme_minimal()

print(p1)
print(p2)
 t_C eps_iapws eps_emp       diff   rel_pct
   0    87.903  87.740 -0.1634546 -0.185948
   5    85.916  85.763 -0.1525938 -0.177609
  10    83.975  83.832 -0.1427584 -0.170002
  15    82.078  81.945 -0.1320409 -0.160873
  20    80.223  80.103 -0.1195981 -0.149083
  25    78.408  78.303 -0.1051386 -0.134091
  30    76.634  76.545 -0.0886624 -0.115696
  35    74.898  74.828 -0.0703259 -0.093895
  40    73.201  73.150 -0.0503716 -0.068813
  45    71.540  71.511 -0.0290909 -0.040664
  50    69.916  69.909 -0.0068042 -0.009732
  55    68.328  68.344  0.0161498  0.023636
  60    66.774  66.814  0.0394206  0.059035
  65    65.256  65.318  0.0626497  0.096007
  70    63.770  63.856  0.0854736  0.134034
  75    62.318  62.426  0.1075254  0.172543
  80    60.898  61.026  0.1284370  0.210905
  85    59.509  59.657  0.1478396  0.248430
  90    58.152  58.317  0.1653657  0.284368
  95    56.825  57.005  0.1806490  0.317907
 100    55.527  55.720  0.1933254  0.348167

最大の絶対差: 0.193(100 度)
最大の相対差: 0.35 %
Figure 2
Figure 3

IAPWS R8-97で求めた大気圧下の水の比誘電率(eps_iapws)と、温度の 3 次の経験式の値(eps_emp)を、0〜100 度で 5 度ごとに比較しました。diff と rel_pct は次の定義です。

\[
\mathrm{diff} = \varepsilon_{\mathrm{emp}} - \varepsilon_{\mathrm{IAPWS}}, \qquad \mathrm{rel\_pct} = 100\times\frac{\mathrm{diff}}{\varepsilon_{\mathrm{IAPWS}}}
\]

1. 全体として、よく一致しています

  • 絶対差は最大でも 0.193(100 度)、相対差は最大でも 0.35 % です。
  • 比誘電率が約 55〜88 という大きさに対して、3 桁目の途中までは一致していることになります。

2. 差は温度とともに一方向に変化しています

温度域経験式の傾向差(diff)
0〜50 度R8-97 より小さい−0.163 から −0.007 へ、0 に近づく
約 52 度ほぼ一致0 を横切る
55〜100 度R8-97 より大きい+0.016 から +0.193 へ、増える
  • 差が 0 になる温度は、50 度(−0.0068)と 55 度(+0.0161)の間で、直線で補間すると約 52 度です。50 度では差がわずか −0.007(相対 −0.01 %)で、一致がもっともよい温度です。
  • 差は、バラつきなく滑らかに一方向へ変化しています。これは、測定誤差のような乱れではなく、2 つの式の温度依存性(傾きや曲がり方)がわずかに違うことを示しています。

3. 差が大きい場所

  • 絶対差は、高温端の 100 度(+0.193)が最大です。
  • 低温端の 0 度(−0.163、相対 −0.19 %)も、同程度の大きさです。
  • 相対差は、100 度(+0.35 %)が最大で、0 度(−0.19 %)がそれに続きます。

4. 25 度の値

  • R8-97:78.408
  • 経験式:78.303(差 −0.105、相対 −0.13 %)

室温付近の「水は約 78」という値は、どちらの式でも成り立ちます。

以上です。