トップ
更新履歴
プロフィール
このサイ トの説明

工作部屋
3DCG
C言語 プログラム
RPGツ クール
自 作MIDI
自作 PC

STAR WARS部屋
ノベル
ラ イトセーバー
3DCG

日記
BBS
リンク
QR Code
Creative Chamber mobile
携帯用の壁紙等を載せています。
お立ち寄りのさいは、
是非ランキングサイト等への投票をお願いします。
変位による強制振動

figure 3.9
 支持台が強制周期変位をして、これにより生ずる質量mの運動をシミュレーションし、アニメーション表示をする。
シミュレーションの方法はオイラー前進解法。(簡単だし)



 図3.9に示す支持台に強制変 位が作用する場合を考える。
 いま静つり合いにある質量mの重心を原点にとり、図3.9のようにx軸をとる。支持台に作用する上下方向の強制変位をu、これにより生ずるmの変位をx とする。このとき支持台に対するmの相対変位は x-u となり、mに作用するばね力は -k(x-u) 、粘性減衰力は -c(dx/dt - du/dt) である。
 したがってmの運動方程式は、

          式(1)・・・・・・・・・・(1)

 ここでmの絶対速度をvとおくと、vは、

          式(2)・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ (2)

となる。式(2)を式(1)に代入すると、

         式(3)・・・・・・・・・・・・(3)

となり、式(2)、式(3)より、式(1)は一階連立常微分方程式で表すことができる。

          式(4)・・・・・・・・・・・(4)

 ここで、微分の定義を考えて、式(4)を変形すると、

          式(5)・・(5)

          式(6)・・・(6)

 式(6)の右辺は時刻tの状態、左辺は時刻t+Δtの状態を表している。
 いま、支持台の強制周期変位を、

          式(7)・・・・・・・・・・・・・・・・・・・・・・・・ (7)

の場合について考えると式(6)は、

          式(8)・・・・・・・・・・(8)

となる。式(8)をもとにプログラムを作成する。


 実際にコーディングするまえに、簡単な仕様を考え ておきま す。
  • mの座標等の変数はグローバルで宣言する。(ローカルの方がいいんだろうけど、面倒だし…)
  • 関数void Init_State(void)をつくり、初期状態を設定する。
  • 初期状態は、mが静つり合い状態。
  • 関数void Input_Data(void)をつくり、減衰比、p、ωを入力させる。
  • 関数void myInit( char *)をつくり、ウインドウやキーボードの設定なんかをやる。(たぶん)
  • 関数void Calculate(void)をつくり、式(7),(8)をもとに、m、支持台の座標の計算を行う。
  • 関数void draw(void)をつくり、m(Box)、支持台、バネを描く。
  • 関数void display(void)をつくり、drawで描いた図をディスプレイに表示させる。
  • 関数void move(void)をつくり、時刻tをDELTA_Tだけ進める。
  • 関数void myKbd( unsigned char, int, int)をつくり、ESCキーが押されるとプログラムを強制終了、"r"又は"R"が押されると時刻tを0に戻して最初からアニメーションを始める。
  • m(Box)が支持台を突き抜けても気にしない。
これを元に作ったプログラムはこちら→ figure3_9.c  ←downloadは右クリックから



 一応、プログラムがちゃんと動くか確かめます。
 方法は、動きがはっきりとする特別な条件を入力して、予想通りの動きをするかを確かめます。これから特別な条件を探していきます。

 まず、m(Box)の相対座標xrを考えます。すなわち、

          式(9)・・・・・・・・・・・(9)

とおく。これを式(1)に代入、また式(7)も代入し整理すると、

          式(10)・・・・・・・・・・(10)

式(6)と同様に k/m =p2 、 c/m =2μ とおくと、

          式(11)・・・・・・・・・・・・(11)

となる。
 定常強制振動を調べるため、式(11)の特解を求める。(
式(11)の一般解は、補関数と特解の和で表さ れるが、補関数の方は自然振動を表しており、時間とともに消滅する。特解は定常強制振動を表す。)ここで、
         
          式(12)・・・・・・・・・・・・・・・・・・・・・・・・・・ (12)

とおく。式(12)を式(11)に代入すると、

          式(13)・・・・・・・・(13)

式(13)が時刻tにかかわらず成り立つためには、sinωt、cosωtの係数が0とならなければならない。それぞれの係数=0とおいて式を整理する と、

          式(14)・・・・・・・・・・・・・・(14)

          式(15)・・・・・・・・・・・(15)

式(15)を式(12)に代入すると、式(11)の特解を求めることができる。ここで、定常強制振動応答(式(12))を、

          式(16)・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ (16)

と変形する。振幅Arと位相差βはそれぞれ、

          式(17)・・・・・・・・・・(17)

となる。
 ζをパラメータとしてAr/a、ω/pの関係を図示すると、図3.10が得られる。

図3.10
                                            figure 3.10

  1. 図3.10よりω<<pのときはArはほとんど0すなわちx≒uとなり、mは支持台とほとんど同じ運動をする。
  2. ζが小のときは、ωがpに近づくにつれてmの振動は増大して極大に達し共振を生ずる。その位置はδAr/δ(ω/p) =0 を満足する、
              式(18)・・・・・・・・・・・・・・(18)
    において起こり、そのときの振幅は式(18)を式(17)に代入して、
              式(19)・・・・・・・・(19)
    となる。ζが1/√2より大きい場合は極大値は生じない。
  3. ω>>pにおいてはArはほとんどa、βはほとんど180°となるから、
              式(20)・・・・・・・・・・・・(20)
    すなわちmはほとんど静止の状態にあり、支持台のみがuで動いていることとなる。
以上3つの条件を入力し、動きを観察し、動作確認をすることができる。

参考:斉藤秀雄著『工業基礎振動学』(用賢堂、2004)