共振破壊と免震ビルの数理(固有値と外力周期)
地震や風の周波数と建造物の固有振動数が一致したとき、振幅が無限に跳ね上がる物理現象
- 1
- すべての建造物や橋には固有振動数(揺れやすい周波数)が存在し、外力周波数がこれに一致すると共振(Resonance)を起こして破壊に至る
- 2
- タコマナローズ橋の崩壊や超高層ビルを襲う長周期地震動は、線形代数の固有値解析と2階線形微分方程式でモデル化される
- 3
- 現代の免震構造・オイルダンパーは、減衰比 を高めて共振倍率のピークを数学的に抑え込む仕組み
なぜこれを学ぶのか? — 現実社会とテクノロジーでの価値
なぜ生まれたのか?
橋が風で崩落したり地震で超高層ビルだけが激しく揺れる「共振現象」のメカニズムを解明し、人命を守る免震・制震構造を設計するために誕生した。
身につく武器・思考力
建造物や機械の固有振動数を逆算し、ダンパーによる減衰比 ζ をチューニングして破滅的破壊を数理的に防ぐ「構造力学・振動制御の基礎」が身につく。
実社会・ITでの活躍現場
- •超高層ビル(スカイツリーやあべのハルカス)のTMD(同調質量ダンパー)制震設計
- •橋梁(吊り橋・斜張橋)の耐風・耐震モード解析
- •電気自動車(EV)や航空機エンジンの異音・有害振動シミュレーション
- •スピーカーや楽器の共鳴箱(アコースティックチェンバー)の音響設計
Layer 1 — 直感・シミュレーター
地震の周波数 をスライダーで変えてビルの固有振動数 (1.00Hz)に近づけてみよう。周波数比 に達した瞬間、揺れが急増する「共振」を体感できる。次に「免震ダンパー」スライダーを右に引き上げると、共振周波数であってもビルの揺れが安全に抑え込まれる様子を確認しよう。
免震ビルにおいて、減衰ダンパー(ダンピング比 )を増やすと共振時の揺れの振幅はどう変化するか?
Layer 2 — 定義・受験・証明
定義
1自由度の強制減衰振動系における運動方程式は次式で与えられる。
両辺を質量 で割り、固有角振動数 、減衰比 と置くと標準形が得られる。
定常状態での振幅増幅倍率 (周波数比 )は次のようになる。
公式・数理モデル
証明・導出
共振点における振幅発散の導出:
運動方程式の特殊解(定常解)を と仮定して微分方程式に代入する。 三角関数の加法定理または複素平面上の指数関数表現 を用いて整理すると、振幅 は次のように求まる。
ここで減衰のない理想系()を考えると、
となり、外力周波数が系の固有振動数に一致する の極限で、分母がゼロに近づき振幅 (無限大に発散)する。
多層ビルの場合、質量行列 と剛性行列 による多自由度連立方程式 となり、一般化固有値問題 の固有値 と固有ベクトル が各階の振動モード形を表す。建築構造設計では、この固有値を事前に計算して地盤の卓越周期と一致しないよう構造剛性を調整している。
押さえておきたいポイント
- 外力周波数が建造物の固有振動数と一致したとき、エネルギーの蓄積によって振幅が爆発的に増大する現象を「共振(Resonance)」と呼ぶ
- 1940年のタコマナローズ橋崩壊は、横風によって生じたカルマン渦の周波数が橋のねじれ固有振動数と一致した空気力学的自励振動が原因とされている
- 高層ビルでは長周期地震動(遠方の大地震でゆっくり長く揺れる波)との共振を防ぐため、TMD(同調質量ダンパー)や粘性オイルダンパーによる の強化が不可欠である
本トピックの内容・数理モデルは、文部科学省学習指導要領(算数・数学・情報)および国際標準カリキュラムに準拠し、エンジニアリング現場の実装事例と照らし合わせてMath World Lab編集部により検証・作成されています。
Layer 3 — 工学応用・現場実装
建築耐震設計における固有値モード解析と免震シミュレーション
多層建物の剛性行列と質量行列から固有振動数を求め、予想される地震波スペクトルとの共振危険度を評価する。実際の構造計算CADやCAE解析では、ルンゲ・クッタ法等の数値積分を用いて時刻歴応答解析を行い、各階の最大層間変形角が許容値以下に収まるようオイルダンパーの最適配置を決定する。
1// 1自由度建造物の強制減衰振動(ルンゲ・クッタ第4次法)2function simulateBuildingMotion(3 naturalFreqHz: number, // 固有振動数 f0 (Hz)4 dampingRatio: number, // 減衰比 zeta (0.02: 一般建築, 0.15: 免震ダンパー)5 forceFreqHz: number, // 地震周波数 f (Hz)6 durationSec: number = 5,7 dt: number = 0.0058) {9 const w0 = 2 * Math.PI * naturalFreqHz;10 const w = 2 * Math.PI * forceFreqHz;11 const f0 = 10.0; // 地震加振力振幅1213 let x = 0; // 変位14 let v = 0; // 速度15 let t = 0;1617 // 加速度微分方程式: a = -2*zeta*w0*v - w0^2*x + f0*cos(w*t)18 const deriv = (currX: number, currV: number, currT: number) => {19 return -2 * dampingRatio * w0 * currV - w0 * w0 * currX + f0 * Math.cos(w * currT);20 };2122 let maxDisplacement = 0;2324 while (t < durationSec) {25 // RK4 4次ルンゲクッタ26 const k1_v = deriv(x, v, t);27 const k1_x = v;2829 const k2_v = deriv(x + 0.5 * dt * k1_x, v + 0.5 * dt * k1_v, t + 0.5 * dt);30 const k2_x = v + 0.5 * dt * k1_v;3132 const k3_v = deriv(x + 0.5 * dt * k2_x, v + 0.5 * dt * k2_v, t + 0.5 * dt);33 const k3_x = v + 0.5 * dt * k2_v;3435 const k4_v = deriv(x + dt * k3_x, v + dt * k3_v, t + dt);36 const k4_x = v + dt * k3_v;3738 x += (dt / 6) * (k1_x + 2 * k2_x + 2 * k3_x + k4_x);39 v += (dt / 6) * (k1_v + 2 * k2_v + 2 * k3_v + k4_v);40 t += dt;4142 if (Math.abs(x) > maxDisplacement) {43 maxDisplacement = Math.abs(x);44 }45 }4647 return { maxDisplacement, isSafe: maxDisplacement < 25 };48}4950// 検証: 非免震ビルの共振 vs 免震ダンパー追加51const unshielded = simulateBuildingMotion(1.0, 0.02, 1.0); // 共振・非免震52const shielded = simulateBuildingMotion(1.0, 0.20, 1.0); // 共振・免震ダンパー搭載5354console.log(`非免震ビル最大変位: ${unshielded.maxDisplacement.toFixed(2)} cm (安全判定: ${unshielded.isSafe})`);55console.log(`免震ビル最大変位: ${shielded.maxDisplacement.toFixed(2)} cm (安全判定: ${shielded.isSafe})`);
次に学ぶならコレ!おすすめトピック
この単元と深い繋がりを持つ、あわせて学ぶと理解が深まるおすすめ単元