バネ質量系ダンパー

<< 目次を表示 >>

ページ位置:  シミュレーション > 数学的なシミュレーション > SysMLパラメトリック図のシミュレーション > SysML シミュレーションのサンプル >

バネ質量系ダンパー

この例は、バネ質量系ダンパー(mass-spring-damper)の発振器の振る舞いについて、パラメトリック図でシミュレーションをする例です。その動作をグラフとして表現し、さらにパラメータの異なる2つの発振器を比較しその動作を分析するシミュレーションを実行します。

 

 

モデリング対象のシステム

最初の状態は、時間0の状況で本体の固定を離した瞬間となり、最後の状態は本体にかかる重力とバネで支える能力が等しくなり釣り合いが取れている状態となります。

 

 

 

SysMLモデルの作成

SysMLのMassSpringDamperOscillatorモデルにはメインとなるブロックとしてOscillatorがあります。このOscillatorは4つのパートプロパティを持ちます。固定された天井・バネ・ダンパー・質量のある本体です。これらのパートプロパティの対応するブロックを作成します。これらのブロックと本体となるOscillatorはポートで接続されます。このポートは、機械的なフランジに該当します。

 

項目

説明

ポートの型

ブロックFlange_aとFlange_bは、1次元の並進運動の表現の中で利用されます。どちらも動作は同じですが、役割が異なります。電気領域におけるポジティブピンとネガティブピンのような役割となります。運動量は、フリンジを経由して伝えられます。つまり、フロープロパティFlange.fの属性isConservedはtrueにセットする必要があります。

 

ブロックとポート

  • 4つのブロック Spring, Damper, Mass, Fixedを作成します。それぞれ、バネ・ダンパー・質量・天井を示します。
  • ブロックPartialCompliantを作成し、2つのポート(フリンジ)を追加します。ポートの名前はflange_aとflange_bで、型はFlange_aと Flange_bです。SpringとDamperのブロックはPartialCompilantを継承します。
  • ブロックPartialRigidを作成し、2つのポート(フリンジ)を追加します。ポートの名前はflange_aとflange_bで、型はFlange_aと Flange_bです。MassのブロックはPartialRigidを継承します。
  • ブロックFixedを作成し、1つのポート(フリンジ)を追加します。ポートの名前はflange_aで、型はFlange_aです。

 

内部構造

Oscillatorの内部ブロック図を作成します。関係するブロックのプロパティをそれぞれ配置します。それぞれが持つポートを、以下のように接続します。

  • fixed1のflang_a  と sprint1のflange_b
  • damper1のflange_b と spring1のflange_b
  • damper1のflange_a と spring1のflange_a
  • spring1のflange_a と mass1のflange_b

制約

この例では、単純化するために、制約はブロック要素内に直接定義しました。制約ブロックを定義してその制約プロパティをブロックで利用し、パラメータとブロックのプロパティを結びつける方法も可能です。

 

 

2つのオシレータの比較

Oscillatorブロックの定義が完了したら、いくつかのシナリオに基づいた分析を行います。例えば、以下のようなケースが考えられます。

 

こうした比較のためのモデルを作成するには、次のような手順になります。

 

 

 

データセットの設定とシミュレーションの実行

SysMLシミュレーションの設定要素で、対象のパッケージとして今回のモデルが含まれるパッケージを指定します。その後、次のようなデータセットを作成します。

"oscillator1.damper1.d" に小さな値(例: 10)を設定し、"oscillator1.damper2.d"に大きな値(例:20)を設定します。

"oscillator1.damper1.d" に0を設定し、"oscillator2.damper2.d"は既定値(例: 25)を設定します。

"oscillator1.spring1.c" に小さな値(例: 6000)を設定し、"oscillator1.spring1.c"に大きな値(例:12000)を設定します。

"oscillator1.mass1.m" に小さな値(例: 0.5)を設定し、"oscillator1.mass1.m"に大きな値(例:2)を設定します。

 

 

設定ページの内容は次のようになります。

 

シミュレーションのパネルで、対象として"OscillatorCompareModel"を、プロット対象として"oscillator1.mass1.s" と "oscillator2.mass1.s"を指定します。そして、利用するデータセットを指定し、シミュレーションを実行します。

 

 

ヒント:

もし、プロット対象の一覧に多数のプロパティが表示され対象とする項目が探しづらい場合には、フィルタバーを利用して表示内容を絞り込むことができます。下の画像の例は、mass.1で絞り込んだ例です。

 

 

 

シミュレーション結果