Main Content

曲線への点の拘束

この例では、単一のボディに複数のポイントオンカーブ拘束を適用する方法を説明します。この例は、湾曲したトラックに沿って展開および後退する航空機フラップの部分的なモデルを基にしています。フラップ上の 2 つの点とフラップ トラック曲線の間にポイントオンカーブ拘束を追加してマルチボディ ダイナミクスのモデルを完成させます。次の図は、完成後のフラップ モデルの可視化結果を示しています。

poc_flap_vis_3D.gif

フラップのアセンブリ モデルを開く

フラップのアセンブリ モデルを開くには、MATLAB® コマンド プロンプトで次のように入力します。

openExample("sm/DocConstrainPointToCurveExample","SupportingFile","DocPocFlapStart.slx")

誤って上書きしないように、任意のフォルダーに別の名前でモデルを保存します。

モデルには主要な接続ラインとブロック パラメーターがなく、まだシミュレーションは行われません。Ribs、Skin および Wicks という名前の剛結合された 3 つのブロックが、フラップのボディを表しています。平面ジョイント ブロックは、このボディをワールド座標系に 3 自由度 (回転 1 と並進 2) で接続します。

poc_flap_start.png

モデルに対する拘束の効果

フラップは、この時点では拘束されていません。この状態において、フラップの自由度は、平面ジョイント ブロックによって提供される自由度です。フラップは、"z" 軸の周りの回転、"x" 軸に沿った並進、および "y" 軸に沿った並進を自由に行うことができます。次のアニメーションによる図解は、これらの動きを示しています。座標系の軸は、赤で示される "x"、緑の "y"、青の "z" に色分けされています。画面の外にある "z" 軸の点は、この図では見えません。

poc_flap_planar_dofs.gif

ポイントオンカーブ拘束は、最初は独立しているフラップの各動きを組み合わせて、これら動きのいずれか 1 つでフラップの軌跡を完全に決定できるようにます。たとえば、完全に拘束されたフラップでは、"x" 軸に沿った並進が "y" 軸に沿った並進と "z" 軸の周りの回転も決定します。次のアニメーションによる図解は、この例で最終的に得られる拘束された動きを示しています。

poc_flap_side_b.gif

接続座標系の作成

  • File Solid ブロック Ribs のダイアログ ボックスで [Frames] ノードを展開し、solid_create_frame_button.png ボタンをクリックします。座標系作成インターフェイスが開きます。このインターフェイスを使用して新しい座標系を作成し、その位置と向きを固体ジオメトリに対して設定します。

  • 可視化ペインでフラップの上部にズームインし、図に示されている、最も右側の円筒形突起の上表面を選択します。可視化ペインでは選択した表面が強調表示され、その法線ベクトルが現れます。

poc_flap_select_cyl_1.gif

  • 座標系作成インターフェイスの [Frame Origin] 領域で、[Based on Geometric Feature] ラジオ ボタンをクリックし、次に [Use Selected Feature] ボタンをクリックします。座標系が、選択した表面の中心に移動します。

  • [Save] ボタンをクリックして、新しい座標系を固体に追加します。ブロックに、新しい座標系に対応する新たな端子 F1 が表示されます。座標系の名前は自由に変更できますが、この例では既定の名前で十分です。

  • 上記の手順を繰り返し、2 番目の座標系を、図に示されている最も左側の円筒形突起の上表面を原点として作成します。ブロックに、新しい座標系に対応する新たな端子 F2 が表示されます。

poc_flap_select_cyl_2.gif

拘束ブロックの接続

  • 各 Spline ブロックの座標系端子を World Frame ブロックに接続します。この接続により、Spline ブロックで指定された拘束曲線が、ワールド座標系に確実に関係付けられます。曲線の定義は、現時点ではブロックの既定値です。後でこれらの既定値を変更して、フラップの適正な軌跡を取得します。

  • Point on Curve Constraint ブロックの座標系端子を、File Solid ブロック Ribs に追加した座標系端子 (F1 および F2) に接続します。これらの座標系の原点が、この例で拘束する点になります。

  • 図に示すように、Spline ブロックのジオメトリ端子を Point on Curve Constraint ブロックのジオメトリ端子に接続します。ジオメトリ接続ラインによって、スプライン曲線の定義が拘束対象の曲線であると特定されます。

poc_flap_connect_c.png

フラップの拘束曲線の指定

  • モデル エクスプローラーを開き、[モデルの階層構造] ペインで、[DocPocFlapStart][モデル ワークスペース] ノードを展開します。モデル エクスプローラーでは、ブロック ダイアログ ボックスのパラメーターで参照できるようにワークスペース変数を定義することが可能です。

  • モデル エクスプローラーの [モデル ワークスペース] ペインで、[データ ソース] パラメーターを MATLAB Code に設定します。次のように、編集可能なフィールドが未完了の変数定義と共に表示されます。

theta = linspace(4*pi/12,pi/8,4)';
lowerTrack = [];
upperTrack = [];
  • 変数 lowerTrack と変数 upperTrack は、下側のフラップ トラックと上側のフラップ トラックの拘束曲線です。変数 theta は、下側のトラック曲線の定義に使用される角度範囲です。

  • 次のコード スニペットに示すように曲線上の点をいくつか指定して、lowerTrackupperTrack の定義を完成させます。変更をモデルに適用するには、[ソースから再初期化] ボタンをクリックしなければなりません。コードの新しい部分は青色で表示されます。

theta = linspace(4*pi/12,pi/8,4)';
lowerTrack = [350 0; (640+100*cos(theta)) (130*sin(theta)-210)];
upperTrack = [50 50; 550 100];
  • 各 Spline ブロックのダイアログ ボックスで、次の表にリストされているパラメーターを指定します。[Interpolation Points] パラメーターは、モデル ワークスペースの MATLAB 変数によって定義されています。このパラメーターの単位が mm であることを確認してください。[Color] パラメーターは、淡い赤色に対応する正規化された RGB ベクトルとして定義されています。

  • ブロック線図を更新します。[モデル化] タブで、[モデルの更新] をクリックします。Mechanics Explorer が開き、静的に可視化されたモデルが初期構成で表示されます。次の図は、Mechanics Explorer でボディを非表示にして表示したスプライン曲線を示しています。ツリー ビュー ペインでボディのノードを選択してから [Hide This] を選択することでボディを非表示にできます。

poc_flap_splines.png

モデルのシミュレーション

モデルのシミュレーションを実行します。Mechanics Explorer に、フラップ アセンブリの動的可視化が表示されます。フラップの動きは、作成された座標系の原点が、定義された曲線上に常にあるよう拘束されています。Mechanics Explorer の標準ビューを切り替えるか、回転、パン、ズームを行ってフラップとその動きをより詳しく調べます。

poc_flap_angled.gif

フラップのアセンブリ モデルの完全版を開くには、MATLAB コマンド プロンプトで次のように入力します。

openExample("sm/DocConstrainPointToCurveExample","SupportingFile","DocPocFlap.slx")