最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

単純な振子の解析

チュートリアルの概要

このチュートリアルでは、モデルに追加できるさまざまな力やトルクについて確認します。次に、モーション検出機能をもつブロックを使用して、結果として得られるモデルの動的な応答を解析します。最終的には、時間領域と位相の一連のプロットを、力とトルクの組み合わせごとに 1 つずつ生成します。これらのプロットは、Simscape™ Multibody™ の運動出力を引数として指定し、MATLAB® コマンドを使用して作成します。

単純な振子のモデル化で作成した単純な振子モデルから開始します。このモデルに力とトルクを追加することで、振子を、減衰のない自由な状態から減衰と駆動のある状態へと段階的に変更していきます。適用する力とトルクには、以下が含まれます。

  • 重力 (Fg) — すべてのボディに対し、その質量に正比例して働くグローバルな力。加速度ベクトル g として指定します。このベクトルは、Mechanism Configuration ブロックを使用して指定します。

  • ジョイントの減衰 (Fb) — 振子とジョイント固定具の間の内部トルク。線形減衰係数としてパラメーター化します。このパラメーターは、振子をジョイント固定具に接続する Revolute Joint ブロックを使用して指定します。

  • 作動トルク (FA) — 振子とジョイント固定具間の駆動トルク。Simscape 物理量信号として直接指定します。この信号は、振子をジョイント固定具に接続する Revolute Joint ブロックを使用して指定します。

振子の運動の検出

  1. チュートリアル単純な振子のモデル化で作成した simple_pendulum モデルを開きます。

  2. Revolute Joint ブロックのダイアログ ボックスの [Sensing] メニューで、次の変数を選択します。

    • Position

    • Velocity

    このブロックには、q および w のラベルが付いた 2 つの物理量信号端子が追加表示されており、ワールド座標系に対する振子の角度位置と角速度をそれぞれ出力します。

  3. 次のブロックをモデルに追加します。これらをここで使用して、ジョイントの位置と速度を MATLAB ベース ワークスペースに出力します。

    ライブラリブロック
    [Simscape][Utilities]PS-Simulink Converter2
    [Simulink][Sinks]To Workspace2

  4. To Workspace ブロックのダイアログ ボックスの [変数名] パラメーターを、qw に変更します。これらの変数により、To Workspace ブロックがシミュレーション中に出力するジョイントの変数を特定しやすくなります。位置は Revolute Joint ブロックの端子 q から出力され、速度は Revolute Joint ブロックの端子 w から出力されます。

  5. 次の図のようにブロックを接続します。変数名 q をもつ To Workspace ブロックが PS-Simulink Converter ブロックを介して Revolute Joint ブロックの端子 q に接続され、変数名 w をもつ To Workspace ブロックが Revolute Joint ブロックの端子 w に接続されていることを確認してください。

  6. モデルに simple_pendulum_analysis のような名前を付けて、任意のフォルダーに保存します。

非減衰振子の解析

  1. シミュレーションを実行します。Mechanics Explorer が開き、単純な振子モデルの 3D アニメーションが表示されます。

  2. ジョイントの位置と速度を時間に対してプロットします。たとえば、MATLAB コマンド プロンプトで次のコードを入力してこれを実行します。

    figure; % Open a new figure
    hold on;
    plot(q); % Plot the pendulum angle
    plot(w); % Plot the pendulum angular velocity
    次の図は結果のプロットを示しています。

  3. ジョイントの角速度を角度位置に対してプロットします。たとえば、MATLAB コマンド プロンプトで次のコードを入力してこれを実行します。

    figure;
    plot(q.data, w.data);
    
    次の図に示されるように、結果は開始位置が水平面に対し 0 度に対応している、ジョイントの位相プロットになります。

    さまざまな開始角度を使用して、モデルをシミュレートしてみましょう。開始角度は、Revolute Joint ブロックのダイアログ ボックスの [State Targets][Position] メニューで変更できます。次の図は、開始角度が -80 度、-40 度、0 度、40 度および 80 度の複合位相プロットを示しています。

減衰振子の解析

  1. Revolute Joint ブロックのダイアログ ボックスで、[Internal Mechanics][Damping]8e-5 (N*m)/(deg/s) に設定します。減衰係数によって運動中にエネルギーが散逸し、その結果、振子の振幅が徐々に減少します。

  2. [State Targets][Position][Value]0 度に設定されていることを確認します。

  3. シミュレーションを実行します。

  4. ジョイントの位置と速度を時間に対しプロットします。これを行うには、MATLAB コマンド プロンプトで次のコードを入力します。

    figure; 
    hold on;
    plot(q);
    plot(w);
    次の図は結果のプロットを示しています。減衰のため、振子の振動が時間とともに小さくなることに注意してください。減衰値を大きくすると振子が減衰過剰になり、振動は完全に消滅します。

  5. ジョイントの位相プロットを作成します。これを行うには、MATLAB コマンド プロンプトで次のコードを入力します。

    figure;
    plot(q.data, w.data);
    次の図は結果のプロットを示しています。

    さまざまな開始角度を使用して、モデルをシミュレートしてみましょう。開始角度は、Revolute Joint ブロックのダイアログ ボックスの [State Targets][Position] メニューで変更できます。次の図は、開始角度が -240 度、-180 度、-120 度、-60 度、0 度および 60 度の複合位相プロットを示しています。

減衰と駆動のある振子の解析

  1. Revolute Joint ブロックのダイアログ ボックスで、[Actuation][Torque][Provided by Input] に設定します。このブロックには物理量信号の入力端子が表示されており、これを使用してジョイントの作動トルクを指定できます。

  2. 次のブロックをモデルに追加します。

    ライブラリブロック
    [Simscape][Utilities]Simulink-PS Converter
    [Simulink][Sources]Sine Wave

    Sine Wave ブロックは、周期的なトルク入力を Simulink® 信号として提供します。Simulink-PS Converter ブロックは、Simulink 信号を、Simscape Multibody ブロックと互換性のある Simscape 物理量信号に変換します。

  3. 次の図のようにブロックを接続します。

  4. Sine Wave ブロックのダイアログ ボックスで、[振幅]0.06 に設定します。この振幅は、-0.06 N から 0.06 N の間で振動する作動トルクに対応します。

  5. Revolute Joint ブロックのダイアログ ボックスで、[State Targets][Position][Value]0 度に設定されていることを確認します。

  6. シミュレーションを実行します。

  7. ジョイントの位置と速度を時間に対しプロットします。これを行うには、MATLAB コマンド プロンプトで次のコードを入力します。

    figure; 
    hold on;
    plot(q);
    plot(w);
    次の図は結果のプロットを示しています。

  8. ジョイントの位相プロットを作成します。これを行うには、MATLAB コマンド プロンプトで次のコードを入力します。

    figure;
    plot(q.data, w.data);
    次の図は結果のプロットを示しています。