Day21

簡易RC寿命判定

Topへ

Day20へ

はじめに

Gemini」様の力の偉大さを知ってしまったので、調子にのって新しいソフトを作成しようと思います。
近年(もう10年もたっているので近年でもないかな・・・)、コンクリートの剥離・剝落等の事故によるメンテナンスの重要性が重要視されています。橋梁においても5年に1度の点検が義務付けられている今日、 コンクリートを診断する技術がますます必要になってきてます。一方コンクリートの劣化メカニズムは複雑で奥深いものであるため判定には多くの経験が あるほうが優位です。
そこで、今回はその複雑な判定の一助にならないかと思い簡易版のコンクリートの寿命推定ソフトを作成することにしました。

Step1

各計算の実装

image

それでは、Visual Studioを起動します。
「新しいプロジェクトの作成」を選択します。

image

「Windowsフォームアプリケーション」を選択して「次へ」ボタンを押します。

image

プロジェクト名を入力します。
今回は「簡易RC寿命判定」としました。
入力後「作成」ボタンを押します。

image

まずは中性化の計算をしていきます。中性化の計算はルートt則という計算式を使用するそうです。計算式は画像のとおりです。

image

それでは中性化のコードを作成していきます。
デザイン画面を開き、ソリューションエクスプローラーの「簡易RC寿命判定」のところで右クリックし、追加→クラスを選択します。

image

クラス名は「ConcreteMember.cs」とするそうです。

image

コードは画像のとおりになるそうです。ここでは中性化速度係数は計算しないようです。

image

ここからは塩害に関するコードを追加していきます。まず、塩害の予測には「フィックの拡散自由方程式」を用いるそうです。
この条件で計算し、結果が1.2 kg/m3 (腐食限界値) を超えていれば、「鉄筋は既に腐食を開始している可能性が高い」と判定するロジックになるそうです。

image

デザイン画面のソリューションエクスプローラーの「簡易RC寿命判定」のところで右クリックし、追加→クラスを選択します。

image

クラス名は「ChlorideAttack.cs」とするそうです。

image

計算結果が1.2 kg/m3 になるまでの寿命を求めるコードとのことです。コードは画像のとおりになります。

image

ここからはASRに関するコードを追加していきます。ASRによる評価は、ひび割れ幅に応じて、塩害や中性化の速度係数を跳ね上げるという補正モデル とするそうです。
デザイン画面のソリューションエクスプローラーの「簡易RC寿命判定」のところで右クリックし、追加→クラスを選択します。

image

クラス名は「ASRAnalysis.cs」とするそうです。

image

コードは画像のとおりとなります。

image

ここからは鉄筋腐食速度のモデルに関するコードを追加していきます。
腐食が開始してからの鉄筋直径の変化は、画像のとおりの式で表されるそうです。
またこの式での腐食速度wは固定値ではなく、複合劣化の影響で変動するようにするそうです。

image

デザイン画面のソリューションエクスプローラーの「簡易RC寿命判定」のところで右クリックし、追加→クラスを選択します。

image

クラス名は「RebarCorrosion.cs」とするそうです。

image

コードは画像のとおりとなります。

image

ここからは、これまで出てきな式の中でふつうは入力する必要がある項目のうち推定できる項目を計算するクラスを作成していきます。
このクラスは「脳」にあたる部分になるそうで、土木学会の示方書や過去の学術論文で定義された、一般の人には馴染みのない 「経験的係数」がいくつか組み込まれているそうです。
特に重要な係数算出ロジックは3つあるそうで、まず一つ目は中性化速度係数
中性化速度は、水セメント比(W/C)が60%を超えると急激に加速するという実験結果に基づいているそうです。(岸谷式)

image

次に、塩化物イオン拡散係数Dについてです。塩分がコンクリート内部に染み込む速さDは、 線形(足し算)ではなく、対数(指数関数)で変化するそうです。
特にW/Cがわずか5%上がるだけで、塩分の浸透スピードは 約1.5倍に跳ね上がるそうです。

image

最後は、ASR加速倍率についてです。
ユーザーが入力した最大ひび割れ幅に5.0を掛けるロジックで、このソフト独自の強力な補正だそうです。
通常、コンクリートの寿命計算は「ひび割れがない健全な状態」を前提としているそうですが、ASRによるひび割れは「内部組織の崩壊」を伴うそうです。
そこで、専門家の知見として、ひび割れ幅が0.2mmを超えると、酸素や水の供給量が格段に増えるため、劣化速度は2倍(100%増)なると評価するのが妥当である ことからの判断に基づいた係数設定だそうです。

image

「デザイン画面のソリューションエクスプローラーの「簡易RC寿命判定」のところで右クリックし、追加→クラスを選択します。

image

クラス名は「EstimationLogic.cs」とするそうです。

image

コードになります。コードが長いので3つに分けます。

image

続きです。

image

最後です。

image

Form1の作業に移行します。まずデザイン画面です。デザインは画像のとおりでそこに記載のある名前がそれぞれのツールのNameになります。

image

comboBoxの「items」のコレクションのところを押します。

image

エディタが開きますので、鉄筋径を入力します。

image

chartを貼り付けます。Nameはデフォルトのままです。

image

すみません。一つツールを落としていました。

image

「計算実行」ボタンをダブルクリックして、コード画面を表示させます。
コードは画像のとおりですが、長いので分けて表示します。

image

続きになります。

image

続きになります。

image

最後になります。

image

グラフ表示の関数「UpdateDegradationChart」を追加します。
これもコードが長いので分けて表示します。

image

続きになります。

image

最後になります。

image

ここで鉄筋断面保持率の計算をしています。
この鉄筋断面保持率とは設計時の鉄筋断面積に対して、腐食によって減少した現在の断面積が何%残っているかを示す指標とのことです。
コンクリート構造物の「寿命」には、鉄筋が錆び始めるまでの「耐久性寿命」と、断面が減って重さに耐えられなくなる 「耐力寿命」の2段階があり、断面保持率は後者の「構造物の安全性」を直接評価する極めて重要な数値だそうです。

image

一度実行してみました。随分「Gemini」様とやり取りをしましたが、無事ここまでたどり着けました。

Step2

レポート出力機能の実装

image

計算部分ができたので、計算結果を出力する機能を追加します。
まず、ソリューションエクスプローラーの「参照」を右クリックして「参照の追加」を選択します。

image

「COM」を選択し、画像にあるライブラリにチェックをいれます。

image

Form1のコード上部に「using・・・」を追加します。

image

デザイン画面に戻り、「レポート出力」ボタンを追加します。

image

「レポート出力」ボタンをダブルクリックしてコード画面を開きます。そこに画像のコードを追加するそうです。

image

さらにコードの追加です。

image

続きになります。

image

続きになります。

image

続きになります。

image

続きになります。

image

最後です。これでレポート出力の実装が完了になったようです。

Step3

EXE化

image

ソリューションエクスプローラーの「properties」をダブルクリックします。

image

参照ボタンを押してアイコンを選択します。

image

「Debug」を「Release」に変更する。

image

「簡易RC寿命判定のリビルド」を押します。

image

画像のパスのところに実行ファイルが作成されています。これですべての作業が完了になります。 今回は随分「Gemini」様とやり取りをしたので大変でした。でも最終的には解決してくれます。
ということで終わろうとしていましたが新たなエラーを発見し再度「Gemini」様とラリーが続きました。
ラリーの結果を受けて修正したコードは以下のとおりになります。

image

「Form1.cs」内のコードになります。

image

続きになります。

image

続きになります。

image

続きになります。

image

続きになります。

image

続きになります。

image

続きになります。

image

続きになります。

image

続きになります。

image

続きになります。

image

これで最後になります。やっと終われます。間違いがまだあるかもしれませんが、もう気づけない状況です。ご了承ください。
お疲れさまでした。