メインコンテンツへ

出力抑制シミュレーション

背景​

出力抑制された発電所は、発電できたはずの電力を販売できないため、出力抑制はプロジェクトの収益に大きく影響します。将来の出力抑制をシミュレーションするには、発電所がどれだけ出力抑制されるかと、それがいつ発生するかの2点を決める必要があります。

出力抑制の量は、ゾーンに導入された太陽光発電の容量、連系線や配電の容量、蓄電池の普及状況など、多くの要因に左右されます。 この量を推定するため、Tensor Cloudはエリアと年度ごとの出力抑制率を、年間の太陽光発電量に対する割合として使用します。デフォルトの値は、経済産業省の次世代電力系統ワーキンググループが2026年8月に公表した出力制御の長期見通しに基づきます。2026年度は各一般送配電事業者(TSO)の見通し、2035年度は経済産業省の見通しで、後者はFIP電源が太陽光1kWあたり3kWhの併設蓄電池を持つと仮定しています。指定された年の間は線形に内挿し、最初の年より前と最後の年より後は最も近い年の値を維持します。これらの値はシナリオの仮定で変更できます。

発生のタイミングについては、ヒューリスティックと統計モデルを組み合わせ、各年の合計量に基づいて発電所ごとに出力抑制の日と時間帯を選択します。

計算ロジック​

日ごとの確率​

出力抑制が発生する日は、2段階で選択します。

まず、シナリオの価格フォワードカーブを生成する際に、エリアごとの出力抑制カーブも合わせて生成します。各年の各日ddには、次の重みを与えます。

w(d)=e−min⁡t∈dyt⋅max⁡(0.01,20−∣Tmax(d)−20∣20)4⋅k(d)w(d) = e^{-\min_{t \in d} y_t} \cdot \max\left(0.01, \frac{20 - |T_{max}(d) - 20|}{20}\right)^4 \cdot k(d)

ここで、yty_tはスポット市場価格(円/kWh)、Tmax(d)T_{max}(d)はエリア内の基準地点におけるその日の最高気温(°C)、k(d)k(d)は土曜日と日曜日に2、それ以外の日に1となる係数です。そのため、週末と、価格が非常に低い日や春・秋のように気温が穏やかな日が最も選ばれやすくなります。各日はこの重みに従ってランダムに、それぞれ最大1回抽出し、抽出した日には9時から16時まで、Beta(100 r,10)\mathrm{Beta}(100 \, r, 10)分布から抽出した水準の出力抑制を割り当てます。rrはその年のエリアの出力抑制率で、エリアの出力抑制率に達するまで抽出を続けます。

次に、各プラントについて、出力抑制が発生する日の(非正規化された)確率を次のように決定します。

pday(d)=aˉ(d)+min⁡d′:aˉ(d′)>0aˉ(d′)p_{day}(d) = \bar{a}(d) + \min_{d' : \bar{a}(d') > 0} \bar{a}(d')

ここで、aˉ(d)\bar{a}(d)はエリアの出力抑制カーブの日平均で、最小値は同じ年度の日の中から取ります。これにより、全ての日にわずかながら出力抑制の可能性が残ります。ある年度にエリアの出力抑制カーブに出力抑制がない場合、その年度はプラントも出力抑制されません。

パラメータ化​

出力抑制される日の開始時間と終了時間は、過去のデータに基づく単純な統計モデルで決定します。エリアごとに、TSOが公表する全期間の1時間ごとの太陽光発電の出力と出力抑制量を使用し、出力抑制があった日として、1時間ごとの出力抑制の割合の合計が1%を超える日を抽出します。時間hhが月mmの開始時間になる確率pstart(m,h)p_{start}(m,h)は、月mmのそれらの日のうち、時間hhに出力抑制が始まった日の割合です。同様に、pend(m,h)p_{end}(m,h)は、出力抑制が終わった直後の時間がhhであった日の割合です。

出力抑制があった日が20日以下のエリア、または出力抑制のない暦月があるエリアでは、代わりに全国の統計を使用します。統計はベースカーブの新しいバージョンとともに毎月再計算し、シミュレーションではシナリオで選択したベースカーブのバージョンの統計を使用します。

計算​

年度YY(4月から翌年3月)の出力抑制率をrYr_Y、30分コマttにおけるプラントのシミュレーション上のAC発電量をg(t)g(t)とします。

for each fiscal year Y:   Ctot=rY⋅∑t∈Yg(t)C_{tot} = r_Y \cdot \sum_{t \in Y} g(t) # target: a share of the plant's own generation   c(t)=0∀t∈Yc(t) = 0 \quad \forall t \in Y # initialize curtailment for the plant this year   order the days of Y by drawing them at random without replacement, with probability p(d)=pday(d)/∑pday(d)p(d) = p_{day}(d) / \sum p_{day}(d)   for each day dcd_c in that order, up to 365 days:     stop if ∑t∈Y(c(t)⋅g(t))≥Ctot\sum_{t \in Y} (c(t) \cdot g(t)) \geq C_{tot}     draw hsh_s from pstart(m,h)p_{start}(m,h) and heh_e from pend(m,h)p_{end}(m,h) independently, for the month mm of dcd_c     c(t)=1∀t∈dc,hs≤hour(t)<hec(t) = 1 \quad \forall t \in d_c, h_s \leq hour(t) < h_e

この手順から、次の性質が導かれます。

  • 出力抑制されたコマでは発電量を送電できません。併設蓄電池はその一部を蓄電できます(蓄電池シミュレーションを参照)。
  • 抽出した終了時間が開始時間より後でない場合、その日は出力抑制なしで消費されます。
  • 年度の最後のイベントにより、出力抑制量が目標を上回る場合があります。
  • 乱数列はプロジェクトの所在地で決まるため、同じインプットからは常に同じ出力抑制が得られます。
  • 各確度レベルは、それぞれの換算後の発電量に基づいて個別に出力抑制を計算します。