劣化曲線の係数aをどう決めるか|国総研モデルの設定方法をExcel・VBAで確認

建設実務

前の記事では、国土交通省 国土技術政策総合研究所(国総研)の資料に掲載されている二次関数型の劣化曲線、

y=-ax^2+b

について、経過年数xからランクyを計算する方法を整理しました。

ここで次に疑問になるのが、

「劣化係数aは、どうやって決めるのか」

という点です。

ExcelやVBAへ式を実装するだけなら、aの値が与えられていれば難しくありません。

しかし実務上は、むしろこのaをどの根拠で設定するかの方が重要です。

この記事では、国総研資料の記述を確認したうえで、

  • 国総研資料では劣化係数をどう位置付けているか
  • 指定した年数で所定のランクへ到達させる場合、aをどう計算できるか
  • Excelで係数を算出する方法
  • VBAで係数計算を行う方法
  • 国総研掲載値と単純な逆算値を同一視してはいけない理由

を整理します。

重要:利用上の注意

本記事で示す係数算定式は、国総研資料に掲載された二次関数と、設定した終端条件から数学的に導いたものです。

国総研資料に「すべての劣化係数をこの式で設定する」と記載されているわけではありません。

実際の維持管理計画、LCC算定、補修・更新判断等へ適用する場合は、対象構造物の点検結果、採用基準、発注者の要求事項、評価尺度などを確認し、利用者自身の責任でモデルと係数の妥当性を検証してください。

国総研資料では点検データによる劣化予測を基本としている

今回参照する出典は、前の記事と同じです。

国土交通省 国土技術政策総合研究所
国総研プロジェクト研究報告 第4号
『住宅・社会資本の管理運営技術の開発』

該当箇所:

C. ネットワークマネジメント編
→ 第Ⅰ部 土木構造物の群管理手法のケーススタディ
→ 3. ミクロマネジメントの簡易的な手法
→ 3-2. 劣化推定に関する検討

国総研公式ページ:

国総研プロジェクト研究報告 第 4 号

該当PDF:

https://www.nilim.go.jp/lab/bcg/siryou/kpr/prn0004pdf/kp0004324.pdf

国総研資料では、劣化曲線について点検データに基づく解析による予測を基本とする考え方が示されています。

そのうえで、部材によっては明確な劣化曲線を設定できない場合があるため、その場合には、

ランク1になる年数を規定し、それに応じた上に凸な曲線を設定する

という簡易的な方法が示されています。

曲線の基本形は、

y=-ax^2+b

です。

資料のケーススタディでは初期ランクを5としているため、

y=-ax^2+5

という形になります。

つまり、劣化係数aの設定については、

点検データ等から劣化傾向を設定することが基本

であり、

所定年数でランク1へ到達する曲線を設定する方法は、簡易的な設定方法の一つ

と整理しておく必要があります。

終端条件から劣化係数aを計算する

ここからは、国総研資料に掲載された二次関数を使って、係数aを数学的に求めてみます。

基本式を、

y=-ax^2+b

とします。

ここで、

  • b:初期ランク
  • T:設定した到達年数
  • y_T:T年後に設定するランク

とします。

T年後には、

y_T=-aT^2+b

となります。

この式をaについて整理します。

まず、

aT^2=b-y_T

なので、

a=\frac{b-y_T}{T^2}

となります。

つまり、

初期値b、到達年数T、T年後のランクy_T

を設定すれば、その条件を満たす二次曲線の係数aを計算できます。

この式の位置付け

a=\frac{b-y_T}{T^2}

は、国総研資料にそのまま掲載されている計算式ではありません。

国総研資料に示された二次関数

y=-ax^2+b

に、任意の終端条件を与えてaについて解いたものです。

原典に記載された式と、この記事で行う数学的な式変形を混同しないよう注意してください。

ランク5からランク1へ到達させる場合

国総研資料のケーススタディと同じように、

  • 初期ランク:5
  • T年後のランク:1

と設定します。

つまり、

b=5 y_T=1

です。

先ほどの式、

a=\frac{b-y_T}{T^2}

へ代入すると、

a=\frac{5-1}{T^2}

したがって、

a=\frac{4}{T^2}

となります。

これは、

「T年後にランク1へ到達する二次曲線を作る」

という条件を設定した場合の劣化係数です。

32年後にランク1とする場合

例えば、32年後にランク1へ到達すると仮定します。

T=32

なので、

a=\frac{4}{32^2}

となります。

32の2乗は1024なので、

a=\frac{4}{1024}

したがって、

a=0.00390625

です。

この係数を使えば、

y=-0.00390625x^2+5

という劣化曲線になります。

実際に32年を代入すると、

y=-0.00390625\times32^2+5

となり、

y=1

になります。

設定した終端条件を正確に通る曲線になっていることが確認できます。

国総研掲載値と単純逆算値は必ずしも一致しない

ここは、この計算方法を使ううえで特に重要です。

国総研資料の表3-2-1では、主桁・鋼についてランク1となる年数を32年としています。

一方、表3-2-2に掲載されている鋼橋の劣化係数は、

a=0.00389

です。

32年を終端条件として単純に逆算した、

a=0.00390625

とは、わずかに異なります。

一方、例えば一般コンクリート主桁はランク1となる年数が40年で、掲載係数は、

a=0.00250

です。

終端条件から計算すると、

a=\frac{4}{40^2}=0.0025

となり、掲載値と一致します。

鋼製支承も、ランク1となる年数が30年で、

a=\frac{4}{30^2}

より、

a\approx0.00444

となり、原典の掲載値とほぼ一致します。

しかし、すべての掲載値がこの方法で一致するわけではありません。

特に支承・ゴムについて、表3-2-1ではランク1となる年数が100年とされていますが、表3-2-2の劣化係数は、

a=0.00110

です。

単純に、

a=\frac{4}{100^2}

と計算した場合は、

a=0.0004

となるため、掲載係数とは一致しません。

したがって、

国総研資料の表3-2-2にある劣化係数が、すべて「ランク1となる年数」だけから機械的に算出された

と解釈することはできません。

原典自身が、劣化曲線は点検データに基づく解析を基本とし、明確な曲線を設定できない場合にはランク1となる年数から曲線を設定するとしていることを踏まえる必要があります。

重要

a=\frac{4}{T^2}

を使えば、指定したT年後にランク1となる二次曲線を数学的に作成できます。

しかし、この式を使って国総研資料の掲載係数をすべて「再現」できるわけではありません。

数式から係数を作れることと、その係数が対象構造物の劣化モデルとして妥当であることは別問題です。

Excelで劣化係数aを計算する

Excelでは、一般式、

a=\frac{b-y_T}{T^2}

をそのままセル式にできます。

例えば、

  • B1:初期ランクb
  • B2:到達年数T
  • B3:T年後のランクy_T
  • B4:計算する劣化係数a

とします。

B1へ、

5

B2へ、

32

B3へ、

1

を入力します。

B4には、

=($B$1-$B$3)/($B$2^2)

と入力します。

この場合、計算結果は、

0.00390625

です。

計算した係数を元の式へ戻して確認する

係数を求めたら、必ず元の二次関数へ戻して確認するのがおすすめです。

例えばB5に、

=-$B$4*$B$2^2+$B$1

と入力します。

今回の条件なら、

1

が返ります。

つまり、

  • 初期ランク5
  • 32年後
  • ランク1

という設定条件を満たしていることを確認できます。

このように、

係数を計算するセル

と、

設定条件を再確認するセル

を分けておくと、入力ミスや参照セルの間違いを見つけやすくなります。

係数を早い段階で丸めない

実務上もう一つ注意したいのが、係数の丸めです。

例えば、

0.00390625

を最初から、

0.0039

などに丸めてしまうと、長期の計算では設定した到達条件から少しずれる可能性があります。

Excel内部では十分な桁数を保持し、表示上だけ桁数を調整する方が安全です。

どの桁で丸めるかについては、業務上の計算条件や成果品の表示精度に従ってください。

Excel利用上の注意

このExcel式は、指定した条件を通る二次関数の係数を計算するためのものです。

算出された係数が、実際の橋梁や部材の劣化を適切に表現することを保証するものではありません。

実務適用時には、点検データ、部材条件、環境条件、評価尺度、発注者条件等と照合してください。

VBAで劣化係数を計算する

同じ処理は、VBAのユーザー定義関数にすることもできます。

ご注意

以下のVBAコードは、計算方法と動作イメージを確認するためのサンプルです。

実行前に必ずExcelファイルのバックアップを作成してください。
業務で使用しているファイルに、いきなり貼り付けて使用しないでください。
Excelのバージョンや設定によって、動作が異なる場合があります。

コードの利用および実務への適用は自己責任で行い、必ずテストデータで計算結果を検証してください。

標準モジュールへ、次のコードを記述します。

Option Explicit

Public Function CalcDeteriorationCoefficient( _
    ByVal initialRank As Double, _
    ByVal targetRank As Double, _
    ByVal targetYear As Double) As Variant

    If targetYear <= 0 Then
        CalcDeteriorationCoefficient = CVErr(xlErrNum)
        Exit Function
    End If

    If initialRank <= targetRank Then
        CalcDeteriorationCoefficient = CVErr(xlErrNum)
        Exit Function
    End If

    CalcDeteriorationCoefficient = _
        (initialRank - targetRank) / (targetYear ^ 2)

End Function

ワークシートから、

=CalcDeteriorationCoefficient(5,1,32)

と入力すると、

0.00390625

が返ります。

つまりVBAでも、

a=\frac{b-y_T}{T^2}

をそのまま計算しているだけです。

VBAコード利用後の確認

コードがエラーなく動作しただけでは、計算条件が正しいとは限りません。

算出した係数を必ず元の劣化曲線へ代入し、設定した年数で設定したランクになることを確認してください。

また、計算結果と実際の点検データとの整合性は別途検証する必要があります。

劣化係数aは「計算できれば終わり」ではない

この式を使えば、任意の初期値と終端条件から劣化係数aを計算できます。

しかし、実務で本当に難しいのは計算そのものではありません。

例えば、

32年後にランク1になる

という条件を設定したとしても、

「なぜ32年なのか」

という根拠が必要です。

候補としては、

  • 実際の点検データ
  • 同種構造物の劣化傾向
  • 部材・材料
  • 周辺環境
  • 既往資料
  • 想定耐用期間
  • 管理水準
  • 発注者が採用している条件

などが考えられます。

国総研資料でも、対象構造物によって劣化過程は異なり、対象構造物の点検結果を基にすること、今後の点検や検討によって曲線を更新することが示されています。

したがって、

Excelでaを求めること

よりも、

aを決めるための前提条件をどう設定したか

の方が、実務上は重要です。

点検データがある場合と、ない場合を分けて考える

国総研資料の考え方から整理すると、劣化係数の設定は少なくとも二つの場面を分けて考える必要があります。

点検データ等から劣化傾向を設定できる場合

点検結果等を使って、対象構造物や同種構造物の劣化傾向を分析します。

この場合、

データから劣化曲線を設定する

ことが基本になります。

単に、

a=\frac{4}{T^2}

だけで係数を決める話ではありません。

十分な劣化曲線を設定できない場合

一方、十分なデータがなく、明確な劣化曲線を設定できない場合には、

あるランクへ到達する年数を仮定して簡易的な曲線を設定する

という考え方が使えます。

その条件を二次関数、

y=-ax^2+b

へ当てはめる場合に、

a=\frac{b-y_T}{T^2}

という式を利用できます。

この二つを混同せず、

データから設定した係数なのか

それとも、

設定した終端条件から作った簡易的な係数なのか

を明確にしておくことが重要です。

次は管理水準へ到達する年数を逆算する

この記事では、

到達年数Tを決めて、劣化係数aを求める

方向の計算を扱いました。

次に必要になるのは、その逆です。

劣化係数aが設定されているとき、

「ランク2へ到達するのは何年後か」

「設定した管理水準へ何年後に到達するのか」

を求める計算です。

基本式、

y=-ax^2+b

をxについて解けば、

x=\sqrt{\frac{b-y}{a}}

となります。

この計算によって、

劣化曲線
→ 管理水準到達年
→ 補修・更新時期

へ進むことができます。

さらに費用発生時期を設定すれば、現在価値換算を経てLCC計算へ接続できます。

まとめ

国総研資料では、劣化曲線について点検データに基づく解析による予測を基本とし、明確な劣化曲線を設定できない場合には、ランク1となる年数を設定して上に凸な曲線を設定する考え方が示されています。

二次関数を、

y=-ax^2+b

とし、T年後にランクy_Tへ到達すると設定すれば、

a=\frac{b-y_T}{T^2}

と計算できます。

初期ランク5からT年後にランク1とする場合は、

a=\frac{4}{T^2}

です。

この計算はExcelでもVBAでも簡単に実装できます。

しかし、最も重要なのは、

算出した係数が対象構造物の劣化を表現する根拠を持っているか

という点です。

国総研掲載値についても、すべてが単純な終端条件だけから再現できるわけではありません。

したがって、

「係数を計算する方法」と「実務で採用する係数を決定する方法」は分けて考える

必要があります。

本記事の数式・Excel式・VBAコードの利用について

本記事は、劣化係数の計算方法を理解するための参考情報です。

実際の維持管理計画、LCC算定、補修・更新判断、業務成果への使用については、発注者仕様、最新の基準・要領、対象構造物の点検結果、部材・環境条件等を確認してください。

実務への適用は利用者自身の責任で行い、採用条件と計算結果の技術的妥当性を必ず検証してください。