マス-バネ-ダンパー システムにおけるスティックスリップ摩擦とハード ストップのモデル化
この例では、ハード ストップとスティックスリップ動作による摩擦の変化をマス-バネ-ダンパー モデルに組み込む 1 つの方法を示します。
マス-バネ-ダンパー モデルでは、マスがバネの端に取り付けられます。バネには、外力に応じて伸縮できるノミナル長さがあります。バネ定数 は、バネの伸縮の程度に基づいて、バネがマスに及ぼす力を決定します。
システムがマスの位置を制限している場合、その制限は、バネ上のマスの発振のハード ストップを表します。マスがその位置の上限または下限に到達すると、マスは完全に停止します。これは、速度が 0 になることを意味します。
スティックスリップ動作は、2 つの表面が互いに動的に移動するときに発生することがあります。たとえば、マス-バネ-ダンパー システムでは、マスはバネ上で発振するときに表面上を移動します。マスと表面の間の摩擦は、マスの速度が 0 に達すると変化します。静止摩擦がバネからの力より大きい場合、マスは "スティック" (固着) し、バネからの力が静止摩擦を超えると発振にスリップします (戻ります)。
モデルを開いて解析
モデル sldemo_hardstop
を開きます。モデルには、摩擦による力を計算する Friction Model
という名前のサブシステムと、マスの速度と位置を計算する 2 つの Integrator ブロックが含まれています。
mdl = "sldemo_hardstop";
open_system(mdl)
速度を計算する Integrator ブロックは次のように構成されます。
状態値を出力として提供する。
外部信号に基づいて出力値を 0 m/s にリセットする。
初期状態として 100 m/s を設定する。
位置を計算する Integrator ブロックは、可能な最小位置と最大位置に基づいて出力値の範囲を制限することにより、システム内のハード ストップをモデル化します。このブロックには、出力値がいずれかの限界に達したこと、つまりマスが最小位置または最大位置に到達したことを示す信号をもつ追加の出力端子があります。ハード ストップをモデル化するために、制限信号により、速度を計算する Integrator ブロックが速度 0 m/s にリセットされます。
摩擦モデルの表示と解析
Friction Model
という名前のサブシステムの内容を表示するには、Subsystem ブロックをダブルクリックするか、関数 open_system
を使用します。
open_system(mdl + "/Friction Model")
サブシステムは 2 つの出力を計算します。1 つはマスに作用する合計の力、もう 1 つはマスが固着して速度がゼロになったことを示すフラグです。
マスの速度がゼロになったときにそのことを判別するために、サブシステムはマスの速度を計算する Integrator ブロックの状態を使用します。Integrator ブロックの状態は、シミュレーション内の前回のメジャー時間ヒットからの速度です。速度がゼロに達した後のメジャー時間ヒットでは、摩擦モデルは以下を行います。
Stuck
フラグを設定します。これにより、速度を計算する Integrator ブロックがリセットされます。動摩擦係数の代わりに静摩擦係数を使用するように摩擦計算を切り替えます。
マスに作用する合計の力を計算するために、サブシステムは、動摩擦または静摩擦による力にバネの力を加えます。
Integrator ブロックの状態端子を使用して、速度を計算してマスが固着したときにそのことを判断すると、モデル内に代数ループが作成されることを回避できます。
モデルのシミュレーションと結果の解析
モデルのシミュレーションを実行します。Simulink® ツールストリップの [シミュレーション] タブで [実行] をクリックします。あるいは、関数 sim
を使用してシミュレーションを実行します。
out = sim(mdl);
Floating Scope ブロックをダブルクリックして、シミュレーション結果を表示します。
上のプロットの位置信号の最小値と最大値の減少は、システム内で摩擦がエネルギーを消費する様子を示しています。
2 番目のサブプロットに示されている合計の力の値の不連続性は、マスが固着して速度がゼロになったときに静摩擦係数を使用する効果を示しています。
3 番目のサブプロットは、不連続性のある時間ヒットが、
Stuck
フラグが設定されたときの時間ヒットに対応していることを示しています。Stuck
フラグは、マスが静止したため、約 1.6 秒のシミュレーション時間後に設定されたままになります。最後のサブプロットは、ハード ストップがシミュレーションの開始時に 2 回だけ発生したことを示しています。