-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathFOURBAR_DataFile.m
159 lines (130 loc) · 6.89 KB
/
FOURBAR_DataFile.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
% Simscape(TM) Multibody(TM) version: 7.5
% This is a model data file derived from a Simscape Multibody Import XML file using the smimport function.
% The data in this file sets the block parameter values in an imported Simscape Multibody model.
% For more information on this file, see the smimport function help page in the Simscape Multibody documentation.
% You can modify numerical values, but avoid any other changes to this file.
% Do not add code to this file. Do not edit the physical units shown in comments.
%%%VariableName:smiData
%============= RigidTransform =============%
%Initialize the RigidTransform structure array by filling in null values.
smiData.RigidTransform(9).translation = [0.0 0.0 0.0];
smiData.RigidTransform(9).angle = 0.0;
smiData.RigidTransform(9).axis = [0.0 0.0 0.0];
smiData.RigidTransform(9).ID = "";
%Translation Method - Cartesian
%Rotation Method - Arbitrary Axis
smiData.RigidTransform(1).translation = [0 -120 12]; % mm
smiData.RigidTransform(1).angle = 2.0943951023931953; % rad
smiData.RigidTransform(1).axis = [0.57735026918962584 0.57735026918962584 0.57735026918962584];
smiData.RigidTransform(1).ID = "B[59:-:60]";
%Translation Method - Cartesian
%Rotation Method - Arbitrary Axis
smiData.RigidTransform(2).translation = [-12 -30.000000000000028 12.000000000000007]; % mm
smiData.RigidTransform(2).angle = 2.0943951023931953; % rad
smiData.RigidTransform(2).axis = [0.57735026918962584 0.57735026918962584 0.57735026918962584];
smiData.RigidTransform(2).ID = "F[59:-:60]";
%Translation Method - Cartesian
%Rotation Method - Arbitrary Axis
smiData.RigidTransform(3).translation = [0 120 12]; % mm
smiData.RigidTransform(3).angle = 2.0943951023931953; % rad
smiData.RigidTransform(3).axis = [0.57735026918962584 0.57735026918962584 0.57735026918962584];
smiData.RigidTransform(3).ID = "B[59:-:63]";
%Translation Method - Cartesian
%Rotation Method - Arbitrary Axis
smiData.RigidTransform(4).translation = [-12 60.000000000000007 12.000000000000007]; % mm
smiData.RigidTransform(4).angle = 2.0943951023931957; % rad
smiData.RigidTransform(4).axis = [0.57735026918962584 0.57735026918962573 0.57735026918962573];
smiData.RigidTransform(4).ID = "F[59:-:63]";
%Translation Method - Cartesian
%Rotation Method - Arbitrary Axis
smiData.RigidTransform(5).translation = [0 29.999999999999996 12]; % mm
smiData.RigidTransform(5).angle = 2.0943951023931953; % rad
smiData.RigidTransform(5).axis = [0.57735026918962584 0.57735026918962584 0.57735026918962584];
smiData.RigidTransform(5).ID = "B[60:-:61]";
%Translation Method - Cartesian
%Rotation Method - Arbitrary Axis
smiData.RigidTransform(6).translation = [-12.000000000000011 -100.00000000000003 11.999247935053042]; % mm
smiData.RigidTransform(6).angle = 2.0943951023931957; % rad
smiData.RigidTransform(6).axis = [0.57735026918962584 0.57735026918962573 0.57735026918962573];
smiData.RigidTransform(6).ID = "F[60:-:61]";
%Translation Method - Cartesian
%Rotation Method - Arbitrary Axis
smiData.RigidTransform(7).translation = [0 100 11.999247935053059]; % mm
smiData.RigidTransform(7).angle = 2.0943951023931953; % rad
smiData.RigidTransform(7).axis = [0.57735026918962584 0.57735026918962584 0.57735026918962584];
smiData.RigidTransform(7).ID = "B[61:-:63]";
%Translation Method - Cartesian
%Rotation Method - Arbitrary Axis
smiData.RigidTransform(8).translation = [12.000000000000011 -60.000004991485255 11.999993014165]; % mm
smiData.RigidTransform(8).angle = 2.0943951023931957; % rad
smiData.RigidTransform(8).axis = [0.57735026918962584 0.57735026918962584 0.57735026918962562];
smiData.RigidTransform(8).ID = "F[61:-:63]";
%Translation Method - Cartesian
%Rotation Method - Arbitrary Axis
smiData.RigidTransform(9).translation = [0 0 0]; % mm
smiData.RigidTransform(9).angle = 0; % rad
smiData.RigidTransform(9).axis = [0 0 0];
smiData.RigidTransform(9).ID = "RootGround[59]";
%============= Solid =============%
%Center of Mass (CoM) %Moments of Inertia (MoI) %Product of Inertia (PoI)
%Initialize the Solid structure array by filling in null values.
smiData.Solid(4).mass = 0.0;
smiData.Solid(4).CoM = [0.0 0.0 0.0];
smiData.Solid(4).MoI = [0.0 0.0 0.0];
smiData.Solid(4).PoI = [0.0 0.0 0.0];
smiData.Solid(4).color = [0.0 0.0 0.0];
smiData.Solid(4).opacity = 0.0;
smiData.Solid(4).ID = "";
%Inertia Type - Custom
%Visual Properties - Simple
smiData.Solid(1).mass = 0.2011361425075493; % kg
smiData.Solid(1).CoM = [6 0 12]; % mm
smiData.Solid(1).MoI = [1067.2418188264703 12.182241721286045 1059.886844510198]; % kg*mm^2
smiData.Solid(1).PoI = [0.00046929484796285394 0 0]; % kg*mm^2
smiData.Solid(1).color = [0.5 0.5 0.5];
smiData.Solid(1).opacity = 1;
smiData.Solid(1).ID = "BASE_prt";
%Inertia Type - Custom
%Visual Properties - Simple
smiData.Solid(2).mass = 0.055984141338891347; % kg
smiData.Solid(2).CoM = [6 0 12]; % mm
smiData.Solid(2).MoI = [29.280251768880831 3.4730678778150934 27.150803279432818]; % kg*mm^2
smiData.Solid(2).PoI = [6.8765060230391092e-05 0 0]; % kg*mm^2
smiData.Solid(2).color = [0.5 0.5 0.5];
smiData.Solid(2).opacity = 1;
smiData.Solid(2).ID = "ROCKER_prt";
%Inertia Type - Custom
%Visual Properties - Simple
smiData.Solid(3).mass = 0.16886812928974476; % kg
smiData.Solid(3).CoM = [6 0 11.999247935053059]; % mm
smiData.Solid(3).MoI = [637.72609068864108 10.245133007102513 631.53379277189185]; % kg*mm^2
smiData.Solid(3).PoI = [0.00035428362937178461 0 0]; % kg*mm^2
smiData.Solid(3).color = [0.5 0.5 0.5];
smiData.Solid(3).opacity = 1;
smiData.Solid(3).ID = "ARM_prt";
%Inertia Type - Custom
%Visual Properties - Simple
smiData.Solid(4).mass = 0.1043681417294741; % kg
smiData.Solid(4).CoM = [6 0 12]; % mm
smiData.Solid(4).MoI = [158.37436243950978 6.3761258311955462 154.50307200227471]; % kg*mm^2
smiData.Solid(4).PoI = [0.00016890134565469343 0 0]; % kg*mm^2
smiData.Solid(4).color = [0.5 0.5 0.5];
smiData.Solid(4).opacity = 1;
smiData.Solid(4).ID = "FOLLOWER_prt";
%============= Joint =============%
%X Revolute Primitive (Rx) %Y Revolute Primitive (Ry) %Z Revolute Primitive (Rz)
%X Prismatic Primitive (Px) %Y Prismatic Primitive (Py) %Z Prismatic Primitive (Pz) %Spherical Primitive (S)
%Constant Velocity Primitive (CV) %Lead Screw Primitive (LS)
%Position Target (Pos)
%Initialize the RevoluteJoint structure array by filling in null values.
smiData.RevoluteJoint(4).Rz.Pos = 0.0;
smiData.RevoluteJoint(4).ID = "";
smiData.RevoluteJoint(1).Rz.Pos = 144.28942359434905; % deg
smiData.RevoluteJoint(1).ID = "[59:-:60]";
smiData.RevoluteJoint(2).Rz.Pos = -39.238717417908219; % deg
smiData.RevoluteJoint(2).ID = "[59:-:63]";
smiData.RevoluteJoint(3).Rz.Pos = -132.49362038614578; % deg
smiData.RevoluteJoint(3).ID = "[60:-:61]";
%This joint has been chosen as a cut joint. Simscape Multibody treats cut joints as algebraic constraints to solve closed kinematic loops. The imported model does not use the state target data for this joint.
smiData.RevoluteJoint(4).Rz.Pos = -51.034520626111473; % deg
smiData.RevoluteJoint(4).ID = "[61:-:63]";