Main Content

さまざまなパラメーター値での運動の解析

この例では、MATLAB® スクリプトを使用して、さまざまなカプラー長で 4 節リンク機構モデルの動的動作を調べる方法を示します。このスクリプトでは、Transform Sensor ブロックを使用して得られたカプラーの運動座標を使用して、カプラー長のそれぞれの値において結果のカプラー曲線をプロットします。マルチボディ ダイナミクスのシミュレーションの詳細については、マルチボディ ダイナミクスを参照してください。

モデルの作成

  1. MATLAB コマンド プロンプトで「openExample("sm/DocFourBarLinkageModelExample")」と入力します。4 節リンク機構モデルが開きます。このモデルの作成方法の説明については、閉ループ連鎖のモデル化を参照してください。

  2. Binary Link B ブロックのマスクの下で、図に示すように 3 番目の Outport ブロックを接続します。Conn1 または Conn2 をコピーして貼り付けることで、Outport ブロックを追加できます。新しいブロックは、このチュートリアルで軌跡をプロットする座標系を特定します。

  3. 次のブロックをモデルに追加します。シミュレーション時には、Transform Sensor ブロックが、カプラーの軌跡をワールド座標系に対して計算して出力します。

    ライブラリブロック
    座標系および変換World Frame1
    座標系および変換Transform Sensor1
    Simscape™ UtilitiesPS-Simulink Converter2
    Simulink® SinksOutport2

  4. Transform Sensor ブロックのダイアログ ボックスで、次の変数を選択します。

    • [Translation][Y]

    • [Translation][Z]

    ブロックに座標系端子 y および z が表示されます。これらを介して、ブロックからカプラーの軌跡座標が出力されます。

  5. 次の図のようにブロックを接続します。必ず Transform Sensor ブロックを反転させ、B というラベルの付いた base 座標系端子が World Frame ブロックに接続されるようにしてください。

ブロック パラメーターの指定

  1. Mechanism Configuration ブロックで、[Uniform Gravity][None] に変更します。

  2. Base-Crank Revolute Joint ブロックで、次の速度状態ターゲットを指定します。このチュートリアルの目的上、これらのターゲットは適切な運動の発生源となります。

    • [State Targets][Specify Velocity] を選択する。

    • [State Targets][Specify Velocity][Value] で「2 rev/s」と入力する。

    • [State Target][Specify Position] を選択解除する。

  3. 次のリンク長を指定します。カプラー リンク長は MATLAB 変数 LCoupler としてパラメーター化されているため、単純な MATLAB スクリプトを使用して値を繰り返し変更できます。

    ブロックパラメーター
    Binary Link BLengthLCoupler
    Binary Link A1Length25

  4. モデルを DocFourBarLinkageModelExampleMsensing という名前で任意のフォルダーに保存します。

シミュレーション スクリプトの作成

さまざまなカプラー リンク長でシミュレーションを繰り返し実行する MATLAB スクリプトを作成します。

  1. MATLAB ツールストリップで、[新規スクリプト] をクリックします。

  2. スクリプトに次のコードを入力します。

    % Run simulation nine times, each time
    % increasing coupler length by 1 cm.
    % The original coupler length is 20 cm.
    for i = (0:8);
        LCoupler = 20+i;
        
        % Simulate model at the current coupler link length (LCoupler),
        % saving the Outport block data into variables y and z.
        [~, ~, y, z] = sim('DocFourBarLinkageModelExampleMsensing');
        
        % Plot the [y, z] coordinates of each coupler curve 
        % on the x = i plane. i corresponds to the simulation run number.
        x = zeros(size(y)) + i; 
        plot3(x, y, z, 'Color', [1 0.8-0.1*i 0.8-0.1*i]); 
        view(30, 60); hold on;
     end
    このコードは、9 つの異なるカプラー リンク長でシミュレーションを実行します。その後、カプラー リンクの中心にある座標系の軌跡座標を、ワールド座標系に対してプロットします。カプラー リンク長の範囲は 20 cm から 28 cm までです。

  3. 4 節リンク機構モデルが格納されているフォルダーに、スクリプトを simFourBar という名前で保存します。

シミュレーション スクリプトの実行

スクリプト simFourBar を実行します。MATLAB エディターのツールストリップで [実行] ボタンをクリックするか、エディターがアクティブな状態で F5 キーを押します。4 節リンク機構モデルの動的 3 次元ビューを含む Mechanics Explorer が開きます。

Simscape Multibody™ は各シミュレーションを繰り返し実行し、結果のカプラー リンク曲線をアクティブなプロットに追加していきます。次の図に、最終的なプロットを示します。

このチュートリアルで示す単純なアプローチを使用して、モデル ダイナミクスをさまざまなパラメーター値で解析できます。たとえば、MATLAB スクリプトを作成して、さまざまなカプラー リンク長におけるクランクスライダー モデルのシミュレーションを実行し、シミュレーションの実行ごとにピストンに働く拘束力をプロットすることができます。

参考

関連するトピック