Skip to content

PrincepsNumerorum/shaking_table_test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 

Repository files navigation

概要

本プログラムは、Webブラウザ上で動作する強震動シミュレーターです。実際の強震観測記録(CSVデータ)を読み込み、その波形データに基づいて仮想空間内の振動台を加振させることで、地震時における室内の家具の挙動(転倒、滑動、ロッキングなど)を3D物理演算により疑似的に再現します。

Github Pages https://princepsnumerorum.github.io/shaking_table_test/


主な機能と特徴

  • 3Dリアルタイム物理演算: Three.js(3D描画)とCannon.js(剛体演算)を組み合わせ、地震波の3成分(NS、EW、UD)の入力を同時に受ける複雑な家具の挙動をリアルタイムにシミュレーションします。
  • 多様な家具モデルとカスタマイズ: 本棚、衣装棚、机、椅子、ベッド、冷蔵庫、天井からの吊り照明などを配置可能です。コントロールパネルから各家具の「質量」や「重心高(%)」を変更し、パラメータの違いによる挙動の変化を比較できます。
  • 波形チャートの連動可視化: 読み込んだデータから加速度・速度・変位グラフ(NS・EW・UDの3成分)を自動生成し、シミュレーションの進行時刻と完全に連動したシークバーを表示します。
  • 高度な再生コントロール: 再生速度の変更(0.25倍〜2.0倍)、振幅倍率の調整および開始時刻(スキップ)設定機能を備えています。

読み込み可能なデータとフォーマット

以下の強震波形CSVファイルに対応しています。ファイルのエンコーディング(UTF-8、Shift-JIS)はシステムが自動で判別します。

  • K-NET / KiK-net 形式(防災科学技術研究所) ヘッダー行(#で始まる行)を自動解析し、サンプリング周波数、継続時間、観測点コード、地震の発生時刻およびマグニチュード等を抽出します。KiK-netの6成分データが入力された場合は、地表成分(ch4〜6)を自動的に抽出して使用します。
  • 気象庁(JMA)強震観測フォーマット NS、EW、UDの3成分がカンマ区切りで記録された標準的なCSV形式です。ヘッダー情報からサンプリングレートを自動で取得します。

解析方法(アルゴリズム詳細)

ご提示いただいた文章の構成とニュアンスを活かしつつ、実際のソースコードに実装されている数学的・物理的アルゴリズム(漸化式や撃力ベースの摩擦モデル)を正確に反映させた形にブラッシュアップしました。そのままコピー&ペーストしてご活用いただけます。


解析方法(アルゴリズム詳細)

1. 波形処理・信号処理(DSP)

加速度波形から変位波形へ積分変換する際、低周波ノイズに起因するベースライン・ドリフト(変位の発散)を防ぐため、データ形式に応じて以下の信号処理を適用しています。

  • K-NET / KiK-net データへの処理 全波形の平均値を算出してオフセット(ゼロ点ずれ)を除去した後、斎藤(1978)の漸化式フィルタ設計に準拠した5次Butterworthハイパスフィルター(通過域 $f_p$ = 0.1 Hz、阻止域 $f_{\text{stop}}$ = 0.05 Hz、$A_p$ = 0.1 dB、$A_s$ = 10.0 dB)を適用します。実装されているデジタルフィルタ(2次セクション)の差分方程式は以下の通りです。

$$y_i = b_0 x_i + b_1 x_{i-1} + b_2 x_{i-2} - a_1 y_{i-1} - a_2 y_{i-2}$$

加速度波形にHPFをかけた後、以下の台形公式を用いて時間積分を行って速度を算出し、再度HPFを適用。さらに積分して変位を算出しHPFを適用する多段処理を踏んでいます。

$$v_i = v_{i-1} + \frac{a_i + a_{i-1}}{2}\Delta t$$

  • 気象庁データへの処理 気象庁公式の積分漸化式を用いています。速度波形は「カットオフ5秒の3次Butterworth積分特性(係数 $G, A_1, A_2, A_3$)」、変位波形は「1倍強震計特性(固有周期 $T_0$ = 6 s、減衰定数 $h$ = 0.55に相当する係数 $H, C_1, C_2, D_0, D_1, D_2$)」の漸化式により算出されます。

速度の算出:

$$v_t = G(a_t - a_{t-1} - a_{t-2} + a_{t-3}) - (A_1 v_{t-1} + A_2 v_{t-2} + A_3 v_{t-3})$$

変位の算出:

$$d_t = H(D_0 a_t + D_1 a_{t-1} + D_2 a_{t-2}) - (C_1 d_{t-1} + C_2 d_{t-2})$$

入力波形が100Hz以外の場合は、係数設計に合わせるため事前に100Hzへの線形リサンプリング処理が自動適用されます。

2. 物理モデリング

リアルタイム物理エンジンによる通常の実装では、地震動のように微小な外力が連続して加わる環境で、本来静止しているべき物体が滑るように動いてしまうクリープ現象が発生することがあります。本シミュレーターではこの問題点を解消するため、インパルス(撃力)ベースの静止摩擦アルゴリズムを毎サブステップ $\Delta t$ ごとに組み込んでいます。

  • 法線方向実効重力の計算: 毎フレーム、入力波形の上下動成分 $a_{y,\text{table}}$ による影響を加味した実効重力 $g_{\text{eff}}$ を計算し、突き上げによる摩擦力の低下を正確に評価します。

$$g_{\text{eff}} = \max(0, g + a_{y,\text{table}})$$

  • 静止摩擦限界の比較: 水平面内において、床に対する家具の相対速度を完全にゼロにするために必要な撃力(Impulse)要求値 $J_{\text{need}}$ と、クーロンの摩擦法則に基づく静止摩擦撃力の上限 $J_{\max}$ を比較します。本モデルでは静止摩擦係数を動摩擦の1.3倍($\mu_s = 1.3\mu_k$)と設定し、垂直抗力 $N = m \cdot g_{\text{eff}}$ として計算します。

$$J_{\text{need}} = m \sqrt{(v_x - v_{\text{table},x})^2 + (v_z - v_{\text{table},z})^2}$$

$$J_{\max} = \mu_s N \Delta t = 1.3\mu_k \cdot m \cdot g_{\text{eff}} \cdot \Delta t$$

  • 速度の強制固着: 要求撃力が上限内に収まる($J_{\text{need}} \le J_{\max}$)場合、慣性力が静止摩擦限界を下回っていると判定し、物理エンジンの動摩擦計算をオーバーライドして家具の水平方向の速度を振動台(床面)に強制的に固着させます。同時に、鉛直軸(Yaw角)まわりの回転滑りに対しても、慣性モーメント $I_y$ と接触面の有効半径 $r_{\text{eff}}$ を用いた上限付きねじり摩擦撃力($L_{\max}$)を適用し、不自然なスピンを抑制します。

$$L_{\text{need}} = I_y |\omega_y|$$

$$L_{\max} = \mu_s N r_{\text{eff}} \Delta t \quad (r_{\text{eff}} \approx 0.3 \min(w, d))$$

3. 剛体演算の安定化手法

急激な加速度変化によって生じる誤判定(壁の突き抜け)を防ぐため、以下の最適化を行っています。

  • タイムステップと反復回数: 物理演算のタイムステップを1/240秒に細分化し、ソルバーの反復回数を40に設定することで、ブラウザ環境における計算負荷と物理的精度の最適なバランスを確保しています。
  • 力学挙動のチューニング: 家具ごとの重心オフセット(cogY)を細かく設定し、現実の家具に近いリアルな転倒モーメントを再現しています。

使い方

  1. 波形ファイルの用意: 防災科学技術研究所(NIED)または気象庁が提供する強震観測データ(.csv)をダウンロードしておきます。
  2. 読み込み: 画面左側のコントロールパネルにある「CSVを読み込む」ボタンから対象のファイルを選択します(2004年新潟県中越地震の川口波など、一部フォーマットがズレているファイルは、Excelのデータツール「区切り位置」で修正してください)。
  3. 家具の設定: リストからシミュレーションを行いたい家具にチェックを入れます。必要に応じて「質量(kg)」や「重心高(%)」の数値を変更してください。
  4. 配置: 「室内に配置(リセット)」ボタンを押すと、初期状態として3D空間内に家具がセットされます。
  5. 加振: 「加振開始」ボタンを押すとシミュレーションがスタートします。

免責事項

本シミュレーターは教育・防災啓発を目的とした簡易的な物理演算シミュレーターです。実際の地震時における家具の挙動・建物応答を正確に再現するものではありません。 本プログラムの計算結果を、実際の建築物や家具の耐震設計、安全性評価、または防災計画・被害想定の根拠として直接使用することは固く禁じます。現実の家具の挙動は、床材の微小な不均一性、建物の共振特性など、様々な要因によって複雑に変化します。本プログラムの使用によって生じたいかなる損害・不利益についても、作者は一切の責任を負いかねますので、あらかじめご了承ください。

About

A web-based strong motion simulator. It loads K-NET/KiK-net or JMA format CSV waveforms and simulates earthquake-induced furniture behaviors (overturning/sliding) using 3D physics. / Webブラウザ上で動作する振動台シミュレーターです。気象庁や防災科研(K-NET, KiK-net)の観測波形を読み込み、3D物理演算で地震動とそれに伴う家具の挙動を再現します。

Resources

License

Stars

3 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages