% Model_QuickReturn.m
% 
% クイックリターン機構の運動学解析モデル
% 
% Copyright (C) 2007 清水 信行, 曽我部 潔, 椎葉 太一 All Rights Reserved.

% ======================================================================
% 解析の種類を入力
% 'KINEMATICS' および 'DYNAMICS' のいずれかのみ有効
% ======================================================================
AnalysisType = 'KINEMATICS';

% ======================================================================
% ボディに関する情報の定義
% ======================================================================

% Number of Bodies
Body.Number = 4;

% Data of Mass and Moment of Inertia
% as [ m_i I_i ]  (行数: Body.Number)
% ########## キネマティクス解析では定義不要 ##########
Body.Mass = [ ];

% Initial position and velocity of Bodies
% as [ x_i y_i theta_i dx_i dy_i dtheta_i ] (行数: Body.Number)
Body.InitPos = [ 0.000  0.000  0.000  0.000  0.000  0.000
                 0.500  0.866  1.047 -5.441  3.142  6.283
                 2.824  2.553  0.423 -11.09  6.732  0.246
                 3.574  1.687  1.004 -5.644  3.590  3.344 ];

% ======================================================================
% 回転ジョイントの定義
% ======================================================================

% Number of Revolute joints
Joint.RJ.Number = 4;

% Data of Revolute joints
% as [ Body_i Body_j x_i y_i x_j y_j ] (行数: Joint.RJ.Number)
Joint.RJ.Data =  [ 1 2  0.000  0.000 -1.000  0.000
                   2 3  1.000  0.000 -2.000  0.000
                   3 4  2.000  0.000  2.000  0.000
                   4 1 -2.000  0.000  2.500  0.000 ];

% ======================================================================
% 並進ジョイントの定義
% ======================================================================

% Number of Translational joints
Joint.TJ.Number = 0;

% Data of Translational joints
% as [ Body_i Body_j xP_i yP_i xQ_i yQ_i xP_j yP_j ]
% (行数: Joint.TJ.Number)
Joint.TJ.Data = [ ];

% ======================================================================
% グランド拘束条件の定義
% ======================================================================

% Number of Bodies attached to the ground
Joint.GR.Number = 1;

% Data of Ground constraints
% as [ BodyNumber_1; BodyNumber_2; ...; BodyNumber_NG ]
% (行数: Joint.GR.Number)
Joint.GR.Data = [ 1 ];

% ======================================================================
% 単純拘束条件の定義
% ======================================================================

% Number of Simple constraints
Joint.SM.Number = 0;

% Data of Simple constraints
% as [ BodyNumber and Direction index (x=1, y=2, theta=3) ]
% (行数: Joint.SM.Number)
Joint.SM.Data = [ ];

% ======================================================================
% 駆動拘束条件の定義
% ======================================================================

% Number of Driving constraints
Joint.DR.Number = 1;

% Data of Driving constraints
% as [ BodyNumber Direction(1/2/3) Pos_0 Vel_0 Acc_0 ]
% (行数: Joint.DR.Number行)
Joint.DR.Data = [ 2 3 1.047 6.283 0.000 ];

% ======================================================================
% 外力の定義
% ########## キネマティクス解析では定義不要 ##########
% ======================================================================

% ボディに作用する外力を絶対座標系で記述
% as [ Fx_i Fy_i Ntheta_i ] (行数: Body.Number)
Force.Body = [];

% ======================================================================
% 並進ばね・ダンパ・アクチュエータ要素の定義
% ########## キネマティクス解析では定義不要 ##########
% ======================================================================

% Number of Translational force elements
Force.Tran.Number = 0;

% as [ Body_i Body_j x_i y_i x_j y_j k c force l0 ]
% (行数: Force.Tran.Number)
Force.Tran.Data = [];

% ======================================================================
% アニメーション表示の定義
% ======================================================================

% Number of parts for animation
Anime.Number = 4;

% Input animation parts data
% as [ BodyNumber x_L,y_L,x_R,y_R ] (行数: Anime.Number)
Anime.Data = [ 1  0.000  0.000  2.500  0.000
               2 -1.000  0.000  1.000  0.000
               3 -2.000  0.000  2.000  0.000
               4 -2.000  0.000  2.000  0.000 ];
               
% Enter Animation frame data
% as [x_min x_max y_min y_max]
Anime.Frame = [-3 5 -2 6];

% ======================================================================
% シミュレーションの時間条件の設定
% ======================================================================
SimInfo.TimeStart = 0.0;			% Time start
SimInfo.TimeEnd   = 10.0;			% Time end
SimInfo.dt        = 0.01;			% Time step

% =================================================================================
% プログラムの使用条件
% 1. 本プログラムおよびデータを商用で，頒布してはならない．
% 2. 本プログラムおよびデータを著作者の許可なく営利目的で利用してはならない．
% 3. 本プログラムおよびデータの改変は，営利目的でない限り自由である．
% 4. 本プログラムおよびデータを使用することにより生じた損害などについては，著者，
%    プロクラム著作者，(社)日本機械学会，および(株)コロナ社は一切の責任を負わない．
% 5. 本プログラムの著作権は，本書編著者ならびにプログラム著作者に帰す．
% =================================================================================