If ブロックを使ったクラッチ ロックアップのモデル化
この例では、If/Else サブシステムを使用してクラッチ モデルを作成する方法を示します。If サブシステムがクラッチ ダイナミクスをロック位置でモデル化するのに対して、Else サブシステムはロック解除位置でモデル化します。If ブロックを使用していずれかを有効にします。If ブロックからの一点鎖線は、制御信号を示しています。この信号は、If/Else (または他の条件付き) サブシステムを有効にするために使用されます。GUI 上のボックスのいずれかをチェックすると、(時間に対して) 選択された変数のいずれかのプロットが生成されます。
解析と物理学
この例のクラッチ システムは、エンジンとトランスミッション間でトルクを伝達する 2 つのプレートで構成されています。次の 2 つの異なる動作モードがあります。
1) 滑り - 2 つのプレートが異なる角速度をもちます。
2) ロックアップ - 2 つのプレートが一緒に回転します。
これら 2 つのモード間の遷移を処理することは、モデル化の困難な課題となっています。システムはロックアップ時に 1 つの自由度を失うため、伝達されたトルクはステップ不連続点を通過します。トルクの大きさは、摩擦力でサポートされる最大値から、システムの 2 つの部分を同じ速度で回転させ続けるために必要な値に減少します。クラッチ プレートによって伝達されるトルクが摩擦力を超えるため、逆遷移、つまり、分解も同様に困難です。
メモ: 方程式やブロック線図も含めて、このシステムの詳細な解析については、Enabled Subsystem を含むクラッチ モデルの例を参照してください。
モデル化
この問題を解決するために、次の 2 つの方法を使用できます。
1) 常時伝達されるクラッチ トルクを計算し、モデルで直接この値を使用する。
2) 2 つの異なる動的モデルを使用し、適切なタイミングでそれらを切り替える。
Simulink® は両方の方法をモデル化できます。この例題では、2 番目の方法のシミュレーションについて説明します。新しいモデルの初期化状態が切り替え直前の状態値と一致するように、2 つの動的モデルの切り替えは慎重に行わなければなりません。いずれの方法でも、Simulink は、ロックアップと滑り間の遷移が発生する正確な瞬間を認識できるため、正確なシミュレーションを容易にします。
シミュレーションの実行
モデルが開いたら、シミュレーションを実行するため、[実行] をクリックします。
図 1: クラッチ モデルの最上位レベルのブロック線図
メモ: このモデルは、MATLAB ワークスペースの
sldemo_clutch_if_output
という構造体に関連データのログを作成します。ログが作成された信号には青いインジケーターが付きます。信号のログの詳細については、ログ記録用の信号のマークを参照してください。
If ブロック
If ブロックは LockedFlag
信号を使用して、Locked サブシステムと Unlocked サブシステムを切り替えます。モデルの If ブロックをダブルクリックして、そのパラメーターを設定します (図 2 を参照)。LockedFlag
はクラッチのステータスを表します。クラッチがロックされている場合は LockedFlag = 1
で、クラッチがロック解除されている場合は LockedFlag = 0
です。
図 2: If ブロック パラメーターの設定
結果
このモデルの入力は、Enabled Subsystem を使用するモデル (sldemo_clutch
) の場合と同じです。システム速度は、下の図 3 に示すように動作します。予想どおり、sldemo_clutch
と sldemo_clutch_if
から得られる結果はまったく同じです。
図 3: 既定入力の場合のエンジン、車両およびシャフトの角速度
モデルを閉じる
モデルを閉じます。生成されたデータをクリアします。
まとめ
この例題では、Simulink の If ブロックを使用して、トポロジー的不連続性を伴うシステムをモデル化する方法を示しました。これは、Enabled Subsystem の使用に代わるものです。