MV-7003:MotionViewMotionSolveを使用した単入力単出力(SISO)制御システムのシミュレート

このチュートリアルでは、MotionViewで単入力単出力(SISO)コントローラーを実装し、MotionSolveを使用してそれを解析する方法を学習します。

外乱が生じている状況でローターの基準速度を維持するという問題について考えてみましょう。下の図は、この制御システムのブロック図を示しています。


図 1. 制御システムのブロック図
単純なアプローチの1つに、以下のような比例積分(PI)コントローラー(Ogata、1995年)を設計する方法があります。(1) G C ( s ) = K p s + K s

このチュートリアルでは、このPIコントローラーを実装する方法を示します。

ローターモデルの読み込み

  1. StartメニューからAll Programs > HyperWorks <version number> > MotionViewを選択します。
  2. motionsolveフォルダーからrotor.mdlファイルを読み込みます。
    モデルには、回転ジョイントで地面に接地されているローターと呼ばれるボディが含まれています。ジョイントの軸は、全体座標系のZ-軸に平行となっています。減衰のみで剛性をもたないねじりスプリングダンパが存在します。

    モデルには、ローターボディの変位と速度についてのリクエストも含まれています。

基準速度についてのソルバー変数の追加

  1. ProjectブラウザModelを右クリックし、Add General MDL Entity > Solver Variableを選択(またはツールバーからを 右クリック)します。
    Add SolverVariableダイアログが表示されます。
  2. LabelをReference Speedに変更します。
    変数名はsv_0のままにします。
  3. OKをクリックします。
  4. 線形速度3 rad/secを保持するために、TypeドロップダウンメニューからLinearを選択し、ソルバー変数の値として3と入力します。

SISOコントローラの追加

このステップでは、SISOコントローラを追加します。コントローラへの入力は、基準速度のソルバー変数とローターの回転速度との間の誤差です。コントローラの出力は、ローターにかけられるトルクです。シミュレーションのパラメータは任意でKp=1、K=10と選択されています。

  1. ProjectブラウザModelを右クリックしAdd General MDL Entity > Control SISOを選択(またはを右クリック)します。
    Add Controlダイアログが表示されます。
  2. OKをクリックします。
  3. Inputタブで、TypeドロップダウンメニューからExpressionを選択し、次のとおり入力します:
    '-WZ({MODEL.b_0.cm.idstring})+{sv_0.value}'

    シングルクォーテーションマーク(')は、式がMDLではなくTemplexによって処理されるべきであることを示しています。中括弧{}内のパラメータが評価されます。

  4. Propertiesタブをクリックします。
  5. Numerator (分子の係数)を追加するために、Appendをクリックします。
  6. 1とsの係数にそれぞれ101を入力します。
  7. 同様にDenominator(分母の係数)を追加するためにAppendをクリックし、1とsの係数にそれぞれ01を入力します。

制御力トルクの追加

このステップでは、ローターボディにかかる制御力トルクを作成します。このトルクのZ-コンポーネントが、コントローラの出力となります。

  1. ProjectブラウザModelを右クリックしAdd Force Entity > Forceを選択(またはForces を右クリック)します。
    Add Force or ForcePairダイアログが表示されます。
  2. ラベルと変数名はデフォルトの設定のままとし、OKをクリックします。
  3. ConnectivityタブのForceの下で、Action Reactionを選択します。PropertiesにRotationalを選択します。
  4. Ref MarkerをダブルクリックしてGlobal Frameを選択し、Local ref. frameを設定します。
  5. Action force on:にBody 1をダブルクリックし、rotorボディを選択します。
  6. Reaction force on:にBody 2をダブルクリックし、Ground Bodyボディを選択します。
  7. Apply force at:にPoint 1をダブルクリックし、Point 0を選択します。
  8. Rot Propertiesタブをクリックします。TxとTyは0に設定されたままとします。
  9. Tzの下でExpressionを選択し、'{MODEL.siso_0.OUTPUT}’と入力します。
    ヒント: をクリックしてexpression builderにアクセスし、モデルツリーを使ってこの式を作成することも可能です

制御力についての出力リクエストの追加

  1. ProjectブラウザModelを右クリックしAdd General MDL Entity > Outputを選択(またはを右クリック)します。
    Add Outputダイアログが表示されます。
  2. Label名にControl forceと入力し、OKをクリックします。
  3. その他の選択は、下の図のとおりとします:


    図 2. 制御力についての出力リクエストの設定

シミュレーションの実行

  1. Run をクリックし、Runパネルを表示させます。
  2. Simulation typeの下でTransientを選択し、出力(.xml)ファイル名を指定します。
  3. End time:に25と入力します。
  4. Runをクリックします。

    下の図のように結果が表示されます。


    図 3. PIスピードコントローラのシミュレーション結果

参考資料

K. Ogata, Modern Control Engineering, 1990, Prentice-Hall Inc., Englewood Cliffs, N.J., US