閉ループ連鎖のモデル化
この例では、4 節リンク機構をモデル化する方法を説明します。4 節リンク機構は、回転ジョイントを介する 4 つのリンクからなる閉連鎖です。リンクのいずれかが World Frame ブロックに接続され、接地として機能します。ここでは、堅固に接続された 2 つのピボットを使用してリンクを置き換えます。カスタムの DocCompoundRigidBodiesLibrary
ライブラリに、この例で使用するボディ サブシステム ブロックが用意されています。
Revolute Joint ブロックを使用して隣接するリンクを接続するジョイントをモデル化し、ジョイントの初期状態を設定します。ターゲットが運動学的に有効であり、かつ他の状態ターゲットと矛盾していなければ、ジョイントの状態ターゲットを正確に満たすことができます。[Z Revolute Primitive (Rz)] 、 [State Targets] セクションで、[Priority] パラメーターを使用してターゲットの優先度レベルを指定できます。
モデルの作成
4 節リンク機構をモデル化するには、以下を行います。
新しいモデルを開始します。
以下のブロックをモデルにドラッグします。Rigid Transform ブロックによって、2 つのピボット マウント間の距離が指定されます。この距離が、暗黙的な接地リンクの長さになります。
ライブラリ ブロック 数 [Simscape] 、 [Utilities] Solver Configuration 1 [Simscape] 、 [Multibody] 、 [Utilities] Mechanism Configuration 1 [Simscape] 、 [Multibody] 、 [Frames and Transforms] World Frame 1 [Simscape] 、 [Multibody] 、 [Frames and Transforms] Rigid Transform 2 図に示すようにブロックを接続して名前を付けます。Rigid Transform ブロックの base 座標系端子が World Frame ブロックに接続されていることを確認します。
[Simscape] 、 [Multibody] 、 [Joints] ライブラリから、4 つの Revolute Joint ブロックをモデルにドラッグします。
MATLAB® コマンド プロンプトで「
openExample('sm/DocDoublePendulumModelExample','supportingFile','DocCompoundRigidBodiesLibrary.slx')
」と入力します。複合ボディ サブシステム ブロックを含むカスタム ライブラリが開きます。DocCompoundRigidBodiesLibrary
ライブラリから、次のブロックをドラッグします。ブロック 数 Pivot Mount 2 Binary Link A 2 Binary Link B 1 図に示すようにブロックを接続して名前を付けます。カスタムのボディ サブシステム ブロックの座標系端子を、図に示すとおり正確に配置していることを確認します。
ブロック パラメーターの指定
Rigid Transform ブロックのダイアログ ボックスで、ピボット マウントとワールド座標系の間のオフセットを指定します。ピボット マウントは、この座標系の両側に対称的に配置されていると仮定されます。
パラメーター Crank-Base Transform Rocker-Base Transform [Translation] 、 [Method] Standard Axis
Standard Axis
[Translation] 、 [Axis] -Y
+Y
[Translation] 、 [Offset] 15
(cm
単位)15
(cm
単位)バイナリ リンク ブロックの各ダイアログ ボックスで、長さのパラメーターを指定します。
ブロック Length (cm) Binary Link A 10
Binary Link B 35
Binary Link A1 20
アセンブリのガイドとモデルの可視化
モデルの 1 つ以上のジョイントについて望ましい初期角度を指定することで、モデル アセンブリをガイドします。Base-Crank ジョイントに初期角度 30
° を指定するには、以下を行います。
Base-Crank Revolute Joint ブロックのダイアログ ボックスで [State Targets] を展開し、[Specify Position Target] を選択します。
[Value] パラメーターを
-30
deg
に指定します。Coupler-Rocker Revolute Joint ブロックについて、[Z Revolute Primitive (Rz)] 、 [State Targets] セクションで [Specify Position Target] パラメーターを選択し、[Value] パラメーターを
0
deg
に、[Priority] パラメーターを[Low (approximate)]
に設定します。Simulink® ツールストリップの [モデル化] タブで、[モデルの更新] をクリックします。Mechanics Explorer が開き、4 節リンク機構の静的表示が初期構成で提示されます。次の図は 4 節リンク機構の等角投影ビューです。
モデル アセンブリの検証
状態ターゲットが満たされたかどうか、またどの程度正確に満たされたかを確認するために、Simscape™ 変数ビューアーまたは Simscape Multibody™ Model Report を使用できます。
Simscape 変数ビューアーを開くには、Simulink ツールストリップの [デバッグ] タブの [診断] セクションで、[Simscape] 、 [変数ビューアー] を選択します。Simscape Multibody Model Report を開くには、Mechanics Explorer のメニュー バーで [Tools] 、 [Model Report] を選択します。
図に示すように、黄色のマーカーは、Base-Rocker Revolute Joint の状態ターゲットが近似的にしか満たされなかったことを示しています。他の緑のマーカーは、Base-Crank Revolute Joint の状態ターゲットが正確に満たされたことを示しています。
モデルのシミュレーション
シミュレーションを実行します。Mechanics Explorer に、4 節リンク機構のアセンブリの 3D アニメーションが表示されます。アセンブリは重力によって動きます。
4 節リンク機構アセンブリの完全なモデルを確認するには、MATLAB コマンド プロンプトで、「openExample("sm/DocFourBarLinkageModelExample")
」と入力します。
参考
PS-Simulink Converter | Revolute Joint