第1回では、力を受けた物体がどう動くかを、F=maという式で考えましたが、それは「どこにもつながっていない、抵抗もないもの」に力を加えた場合の動きでした。真空の中を漂うボールを常に押し続けて、そのまま等加速度で飛んでいく、というようなイメージです。

しかし、私たちの身の回りにある機械や構造物は、ほとんどの場合、何かと必ずつながっています。そして、そのつながり方こそが、実際の動きを決めている、と言っても過言ではありません。F=maという関係だけでは、実際にどんな力が働くのかまでは示すことができていないのです。

つながっているからこそ起きること

具体的に見てみましょう。

車のタイヤと車体は、バネとダンパを含むサスペンションでつながっています。もしこうした仕組みがなく、タイヤと車体が直接くっついていたら、段差を踏んだ瞬間の衝撃が、そのまま車内の人に伝わってしまいます。

ドアも同じです。ちょっと押しただけなのに、その勢いのまま最後まで動き、バン!と枠にぶつかった経験はないでしょうか。ドアの動きをゆるめてくれる仕組みがなければ、押した力によって得た勢いを十分に失わないまま、枠まで動いてしまいます。

建物も例外ではありません。地震が起きたとき、地面の揺れが建物に伝わり、建物の持つ揺れやすい周期と重なると、振動が大きくなる場合があります。

これらに共通しているのは、「力が加わったときに、何かがその力を受け止めたり、吸収したり、跳ね返したりしている」ということです。この「何か」を数式で表現できるようになれば、車の乗り心地も、ドアの閉まり方も、建物の揺れ方も、設計段階で計算できるようになります。

動きを表す3つの要素

とはいえ、車もドアも建物も、そのままでは立体的で、数式に落とし込むのは難しいです。そこで工学の世界では、これらの現象を思い切って代表的な3つの要素に単純化します。

  • 慣性要素(質量 m):動きにくさ、止まりにくさ。これは第一回で扱った F=mam そのものです。
  • 弾性要素(バネ定数 k):伸び縮みすると元に戻ろうとする力
  • 散逸要素(粘性係数 c):動きに応じてエネルギーを吸収し、失わせる力

「弾性」「粘性」というと、なにやら難しい物理現象のように聞こえるかもしれませんが、実態は「バネが押し返す力」「動きを鈍らせる抵抗力」を、数式で扱いやすいようにざっくりまとめて名前をつけただけです。難しい言葉に身構える必要はありません。

モデル化とは何か

ある構造物を、数式で扱える要素に置き換えて表現することをモデル化と言います。

先ほどの車の例で言えば、タイヤと車体の複雑な構造を、質量 m・バネ k・ダンパ c という3つの部品だけの絵に置き換えてしまいます。

以下の図は、地面から車体へ伝わる影響を外力 F として、車体の上下方向の動きをモデル化したものです。

※車の絵は要素を分かりやすく示すための模式図です(AI生成画像)。

このモデル化という「複雑な実物を、必要な要素だけに単純化した絵に置き換える」ことをすることで、複雑な構造物を単純化して捉え、数式を立て、力を受けたときの動きを予測できるようになります。

運動方程式を組み立てる

ここからは、加速度 ax の2回微分、

d2xdt2\frac{d^2x}{dt^2}

で表して考えていきます。

バネだけの場合:振動し続ける

まずはバネだけの、シンプルな場合から考えてみましょう。

図のようにバネの先におもり(質量 m)をつけ、バネを引き延ばしてから手を離すと、バネはびよんびよんと振動します。この間、外部から力は加わっていないので、運動方程式は次のようになります。

md2xdt2=kxm\frac{d^2x}{dt^2} = -kx


ここでは重力とバネの力が釣り合った静止位置を x=0 とし、右辺の −kx は、「バネが変位 x と反対向きに元へ戻そうとする力」を表しています。

計算方法はここでは割愛しますが、この式を x について解くと、次のような形になります。

x=Asin(kmt+ϕ)x = A\sin\left(\sqrt{\frac{k}{m}}\,t + \phi\right)


ここで Aφ は、最初にどこまでバネを伸ばしたか、どのような速度で動き始めたかによって決まる定数です。

この式を見ると、x はサイン波で表され、振幅 A が時間が経っても変わりません。

つまり、理想的なバネと質量だけの世界では、一度振動を始めると、いつまでも同じ大きさで振動し続けます。

検算として、求めた x を元の式の xd²x/dt² にそれぞれ代入し直してみると、左辺と右辺がきちんと一致することが確認できます。

なお、先ほど重力と釣り合った静止位置を x=0 と説明しました。これは、重力を無視しているわけではありません。

質量 m が静止している状態では、重さによってバネがあらかじめ伸びています。その伸び量を δ0 とすると、バネが質量 m を引き戻す力は

kδ0k\delta_0


となります。静止しているということは、このバネの力と重力が釣り合っているので、

mg=kδ0mg = k\delta_0


です。そこで、この「重力とバネの力が釣り合って静止している位置」を x=0 としてしまいます。

この位置からさらに x だけ動いた分だけを考えれば、最初から釣り合っている mg0 は互いに打ち消し合うため、その後の運動方程式には現れません。つまり、重力を消したのではなく、基準となる位置の取り方を工夫することで、すでに釣り合っている力を式から取り除いているのです。

ダンパを加えた場合:振動が減衰する

次に、ダンパも合わせて考えてみましょう。

同様に外部から力を受けない状態で運動方程式を立てると、次のようになります。

md2xdt2=kxcdxdtm\frac{d^2x}{dt^2} = -kx – c\frac{dx}{dt}


左側にまとめると、

md2xdt2+cdxdt+kx=0m\frac{d^2x}{dt^2} + c\frac{dx}{dt} + kx = 0


となります。ダンパの抵抗がそれほど大きくなく、振動が残る場合、この式の解は次のような形になります。

x=Aec2mtsin(km(c2m)2t+ϕ)x = Ae^{-\frac{c}{2m}t}\sin\left(\sqrt{\frac{k}{m} – \left(\frac{c}{2m}\right)^2}\,t + \phi\right)


一見すると急に難しい式になりましたが、見るべきところはそれほど多くありません。

バネだけの場合は、

Asin(kmt+ϕ)A\sin\left(\sqrt{\frac{k}{m}}\,t + \phi\right)


という、振幅の変わらないサイン波でした。ダンパを加えると、その前に

ec2mte^{-\frac{c}{2m}t}


という項が掛かっています。この値は、時間 t が大きくなるにつれて少しずつ小さくなります。
そのため、サイン波として振動しながら、その振れ幅だけが徐々に小さくなっていきます。これが減衰振動です。

そして、この解にはもう一つ重要なことが隠れています。サインの中にある、

km(c2m)2\sqrt{\frac{k}{m} – \left(\frac{c}{2m}\right)^2}


という部分です。ルートの中身が正であれば、この値は実数となり、先ほどの式のようにサイン波として振動します。つまり、

km(c2m)2>0\frac{k}{m} – \left(\frac{c}{2m}\right)^2 > 0


のときは、振動しながら徐々に減衰していきます。
一方で、ダンパの粘性 c を大きくしていくと、このルートの中身は次第に小さくなります。そして、

km(c2m)2=0\frac{k}{m} – \left(\frac{c}{2m}\right)^2 = 0


になると、振動するかしないかの境目になります。さらに c が大きくなり、

km(c2m)2<0\frac{k}{m} – \left(\frac{c}{2m}\right)^2 \lt 0


になると、先ほど示したサイン波の形では表せなくなります。

この場合、解は振動する波ではなく、時間とともに元の位置へ戻っていく指数関数の組み合わせとなり、物体は振動しません。

つまり、ダンパは単純に「振動を少しずつ小さくする部品」というだけではありません。

弱いダンパなら振動しながら止まり、十分に強いダンパなら、そもそも振動することなく元の位置へ戻ります。

この境目や、どの程度の減衰が最も適しているのかについては、第9回で2次遅れ系を扱うときに改めて詳しく見ていきます。

ここではまず、「慣性と弾性があると振動が生まれ、粘性がその振動を抑える。そして粘性が十分に大きくなると、振動そのものが起こらなくなる」という感覚を掴んでおいてください。

車の上下運動に当てはめる

ここで、あらためて先ほどの車の例を考えてみましょう。車が段差を乗り上げ、地面からの入力がタイヤとサスペンションを通して車体へ伝わる場面です。

車体の質量を m、車体とタイヤ側をつなぐバネとダンパをそれぞれ kc と置きます。また、ここでは、段差から車体へ伝わる影響を、等価な外力 F として単純化して考えます。

先ほど説明したように、車体には重力 mg が働いていますが、静止状態ではバネの反力と釣り合っています。

その釣り合った位置を x=0 として、そこからの動きだけを考えれば、地面から外力 F を受けたときの運動方程式は、

md2xdt2=kxcdxdt+Fm\frac{d^2x}{dt^2} = -kx – c\frac{dx}{dt} + F


となります。この式を左側に整理すると、

md2xdt2+cdxdt+kx=Fm\frac{d^2x}{dt^2} + c\frac{dx}{dt} + kx = F


です。このように、質量 m・バネ k・ダンパ c によって構成されるシステムを、バネマスダンパ系と呼びます。「系(けい)」は、英語でいうシステムのことです。

共振とダンピングの直感

このバネマスダンパ系には、もう一つ面白い現象が隠れています。

先ほどのバネにつながれたおもりを思い出してください。

おもりは放っておくと、ある決まったリズムでびよんびよんと上下に揺れます。このリズムに合わせて、ちょうど良いタイミングで軽く押し続けると、振れ幅はどんどん大きくなっていきます。

これが共振と呼ばれる現象です。

周期的な力が、慣性と弾性が作り出す「揺れやすいリズム」にぴったり合うと、外から加えたエネルギーが効率よく振動に加わり、振幅が大きくなっていきます。

一方で、水や油の中で物を動かそうとすると、速度が速いほど強い抵抗を感じます。

この「速く動こうとすればするほど、強く押さえつけられる」性質が、振動を抑える役割を果たします。

ダンパ、つまり粘性 c は、まさにこの働きをする要素です。

先ほど数式で見たように、c が大きくなるほど振動は強く抑えられ、十分に大きくなると振動そのものが起こらなくなります。

共振がなぜ起きるのか、ダンパがどれくらいの強さなら振動を抑えられるのか、という定量的な話は、第9回で改めて詳しく扱います。

ここでは「慣性と弾性がそろうと振動が生まれ、粘性がそれを抑える」という感覚だけ、まず掴んでおいてください。

モデルの限界と、それでも使う理由

ここまで、バネマスダンパという単純なモデルで物事を考えてきました。

このモデルは万能ではなく、これだけでは表現しきれない領域も多くあります。ここまでに挙げた例も実は空気抵抗や摩擦を無視しています。

  • バネの非線形性:実際のバネや弾性体は、変形量が大きくなると、力が変位にきれいに比例しなくなる場合があります。
  • 空気抵抗の非線形性:車などが受ける空気抵抗は、条件によっておおむね速度の2乗に比例して大きくなります。
  • 摩擦の複雑さ:摩擦力は位置や速度に単純比例するとは限らず、単純なクーロン摩擦モデルでは、動いている間は運動方向と反対向きにほぼ一定の力として表現します。

こういった力の要素は、位置にも、速度にも、加速度にも単純に比例しないため、工学的には少し扱いづらいものです。

しかし、扱いづらいというだけで、モデル化できないわけではありません。

たとえば、空気抵抗のように速度の2乗の大きさに比例し、常に運動を妨げる向きに働く力を F とすると、

F=C2dxdt|dxdt|F = -C_2\frac{dx}{dt}\left|\frac{dx}{dt}\right|


のように表せます。速度が正でも負でも、常に運動方向と逆向きに力が働くように絶対値が使われています。C2は物体の形状や大きさ、空気の密度などによって決まる係数です。

また、単純なクーロン摩擦として、動いている間に一定の大きさで運動方向と逆向きに働く摩擦力を表すなら、

F=F0sign(dxdt)F = -F_0\operatorname{sign}\left(\frac{dx}{dt}\right)


と書けます。sign(dx/dt) は、速度が正なら +1、負なら −1 を返す関数、F0は摩擦力の大きさを表し、物体の重さや接触面の摩擦係数などによって変わります。

こうした非線形な式は、先ほどのバネマスダンパ系のように、いつでも簡単な形の一般解として書けるとは限りません。

しかし、数式としてモデル化できれば、パソコン上で少しずつ時間を進めながら計算する数値シミュレーションによって、その動きを求めることができます。

実際の制御設計の現場でも、このような非線形要素まで含めてシミュレーションすることは珍しくありません。

設計の現場で大切なのは、「どこまでを単純なモデルで置き換え、どこから先を数値シミュレーションや誤差として扱うか」を見極める力です。

机上で見積もった動きは、可能であれば実験と突き合わせますし、シミュレーションで求めた数値をもとに、実際の部品や制御仕様へ落とし込んでいくアプローチも普通に行われています。

限界はありつつも、モデル化を活用できる範囲は思っている以上に広いのです。

実際の設計現場では、共振しやすい周波数がどのあたりにあるか、どのくらいの力を加えれば狙った動きを実現できるか、といったことを、解析的な式や数値シミュレーションを使って、ものを作る前から計算しています。

だからこそ、このモデル化という考え方は大切なのです。

バネマスダンパ自由振動シミュレータ

最後に各パラメータを弄って遊べるシミュレータを作成しました。
これで動きのイメージを掴んでいただければと思います。

バネマスダンパ自由振動シミュレーター
質量 m の上下運動
変位 x と時間 t の波形
経過時間 t0.00 s
変位 x+0.60 m
振動の種類減衰振動
値を設定してスタート(10秒間)

x = 0 は重力とバネの力が釣り合う静止位置。下向きを正、初速度は 0 m/s、外力は加えません。

まとめ

今回は、F=maで物体の動きを考えるために、実際に働く力を質量 m・バネ k・ダンパ c という3つの要素に分けて考えました。

まず、質量とバネだけの運動方程式を立てると、その解は振幅が一定のサイン波となり、理想的な世界ではいつまでも振動し続けることを確認しました。

そこにダンパを加えると、解には時間とともに小さくなる指数関数の項が現れ、振動の振れ幅が徐々に小さくなっていきます。

そして、空気抵抗や摩擦のように単純な比例関係では表せない力についても、数式としてモデル化できれば、数値シミュレーションを使って扱うことができます。

モデル化とは、現実をそのまま完璧に再現することではありません。必要な現象だけを取り出し、目的に合わせて扱いやすい形に置き換えることです。

次回は、このように異なる現象を「式の形」で結びつける、アナロジーという考え方を見ていきます。

ABOUT ME
しょか
組み込みシステムの制御設計者として働いています。 技術に関することや思いつきを書いていこうと思っています。