2018-06-04 09:50:44 +02:00
|
|
|
|
%%
|
2018-06-04 09:32:54 +02:00
|
|
|
|
run Assemblage_DataFile.m
|
2018-04-24 15:45:32 +02:00
|
|
|
|
run Sample.m
|
2018-04-11 13:44:50 +02:00
|
|
|
|
|
2018-06-04 09:50:44 +02:00
|
|
|
|
%% Solver Configuration
|
|
|
|
|
Ts = 1e-4; % Sampling time [s]
|
2018-06-06 18:39:38 +02:00
|
|
|
|
Tsim = 1; % Simulation time [s]
|
2018-06-04 09:50:44 +02:00
|
|
|
|
|
2018-04-24 15:48:17 +02:00
|
|
|
|
%% Gravity
|
2018-06-06 18:39:38 +02:00
|
|
|
|
g = 0 ; % Gravity along the z axis [m/s^2]
|
|
|
|
|
|
2018-06-06 19:16:04 +02:00
|
|
|
|
%% Ground
|
|
|
|
|
ground = struct();
|
|
|
|
|
|
|
|
|
|
ground.shape = [2, 2, 0.5]; % m
|
|
|
|
|
|
2018-06-06 18:39:38 +02:00
|
|
|
|
%% Granite
|
|
|
|
|
granite = struct();
|
|
|
|
|
|
|
|
|
|
granite.m = smiData.Solid(5).mass;
|
2018-06-07 13:49:42 +02:00
|
|
|
|
granite.k.ax = 1e8; % x-y-z Stiffness of the granite [N/m]
|
2018-06-06 18:39:38 +02:00
|
|
|
|
granite.ksi.ax = 10;
|
|
|
|
|
|
|
|
|
|
granite = updateDamping(granite);
|
2018-04-24 15:48:17 +02:00
|
|
|
|
|
2018-04-11 13:44:50 +02:00
|
|
|
|
%% Translation stage
|
|
|
|
|
ty = struct();
|
2018-06-06 18:39:38 +02:00
|
|
|
|
|
2018-04-11 13:44:50 +02:00
|
|
|
|
ty.m = smiData.Solid(4).mass+smiData.Solid(6).mass+smiData.Solid(7).mass+smiData.Solid(8).mass+smiData.Solid(9).mass+4*smiData.Solid(11).mass+smiData.Solid(24).mass+smiData.Solid(25).mass+smiData.Solid(28).mass;
|
|
|
|
|
|
2018-06-06 18:39:38 +02:00
|
|
|
|
ty.k.ax = 1e7/4; % Axial Stiffness for each of the 4 guidance (y) [N/m]
|
|
|
|
|
ty.k.rad = 9e9/4; % Radial Stiffness for each of the 4 guidance (x-z) [N/m]
|
|
|
|
|
|
|
|
|
|
ty.ksi.ax = 10;
|
|
|
|
|
ty.ksi.rad = 10;
|
2018-04-11 13:44:50 +02:00
|
|
|
|
|
2018-06-06 18:39:38 +02:00
|
|
|
|
ty = updateDamping(ty);
|
|
|
|
|
|
|
|
|
|
%% Tilt Stage
|
2018-04-11 13:44:50 +02:00
|
|
|
|
ry = struct();
|
2018-06-06 18:39:38 +02:00
|
|
|
|
|
2018-04-11 14:32:16 +02:00
|
|
|
|
ry.m = smiData.Solid(26).mass+smiData.Solid(18).mass+smiData.Solid(10).mass;
|
2018-06-06 18:39:38 +02:00
|
|
|
|
|
|
|
|
|
ry.k.h = 357e6/4; % Stiffness in the direction of the guidance [N/m]
|
|
|
|
|
ry.k.rad = 555e6/4; % Stiffness in the top direction [N/m]
|
|
|
|
|
ry.k.rrad = 238e6/4; % Stiffness in the side direction [N/m]
|
|
|
|
|
ry.k.tilt = 1e4 ; % Rotation stiffness around y [N*m/deg]
|
|
|
|
|
|
|
|
|
|
ry.ksi.h = 10;
|
|
|
|
|
ry.ksi.rad = 10;
|
2018-04-11 14:32:16 +02:00
|
|
|
|
ry.ksi.rrad = 10;
|
2018-04-25 11:49:34 +02:00
|
|
|
|
ry.ksi.tilt = 10;
|
2018-06-06 18:39:38 +02:00
|
|
|
|
|
2018-04-11 13:44:50 +02:00
|
|
|
|
ry = updateDamping(ry);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%% Spindle
|
|
|
|
|
rz = struct();
|
2018-06-06 18:39:38 +02:00
|
|
|
|
|
2018-04-12 11:02:45 +02:00
|
|
|
|
rz.m = smiData.Solid(12).mass+6*smiData.Solid(20).mass+smiData.Solid(19).mass;
|
2018-06-06 18:39:38 +02:00
|
|
|
|
|
|
|
|
|
rz.k.ax = 2e9; % Axial Stiffness [N/m]
|
|
|
|
|
rz.k.rad = 7e8; % Radial Stiffness [N/m]
|
|
|
|
|
rz.k.tilt = 1e5; % TODO
|
|
|
|
|
rz.k.rot = 1e5; % TODO
|
|
|
|
|
|
|
|
|
|
rz.ksi.ax = 10;
|
|
|
|
|
rz.ksi.rad = 10;
|
2018-04-17 17:28:49 +02:00
|
|
|
|
rz.ksi.tilt = 1;
|
2018-06-06 18:39:38 +02:00
|
|
|
|
rz.ksi.rot = 1;
|
|
|
|
|
|
2018-04-12 11:02:45 +02:00
|
|
|
|
rz = updateDamping(rz);
|
2018-04-11 13:44:50 +02:00
|
|
|
|
|
2018-04-11 14:24:15 +02:00
|
|
|
|
%% Hexapod Sym<EFBFBD>trie
|
2018-06-06 18:39:38 +02:00
|
|
|
|
% TODO - is now defined by the stewart-simscape project
|
2018-04-11 13:44:50 +02:00
|
|
|
|
hexapod = struct();
|
2018-06-06 18:39:38 +02:00
|
|
|
|
|
|
|
|
|
hexapod.m = smiData.Solid(16).mass;
|
|
|
|
|
hexapod.k.ax = (138e6/6)*1.2; % Leg stiffness [N/m]
|
2018-04-12 14:16:58 +02:00
|
|
|
|
hexapod.ksi.ax = 10;
|
2018-06-06 18:39:38 +02:00
|
|
|
|
|
2018-04-12 14:16:58 +02:00
|
|
|
|
hexapod = updateDamping(hexapod);
|
2018-04-11 13:44:50 +02:00
|
|
|
|
|
2018-06-06 18:39:38 +02:00
|
|
|
|
%% Center of gravity compensation
|
2018-04-17 17:28:49 +02:00
|
|
|
|
axisc = struct();
|
2018-06-06 18:39:38 +02:00
|
|
|
|
|
|
|
|
|
axisc.m = smiData.Solid(30).mass;
|
|
|
|
|
axisc.k.ax = 1; % TODO [N*m/deg)]
|
2018-04-17 17:28:49 +02:00
|
|
|
|
axisc.ksi.ax = 1;
|
2018-06-06 18:39:38 +02:00
|
|
|
|
|
2018-04-17 17:28:49 +02:00
|
|
|
|
axisc = updateDamping(axisc);
|
|
|
|
|
|
2018-04-11 13:44:50 +02:00
|
|
|
|
%% NASS
|
2018-06-06 18:39:38 +02:00
|
|
|
|
% TODO - is now defined by the stewart-simscape project
|
2018-04-12 15:25:24 +02:00
|
|
|
|
nass = struct();
|
2018-06-06 18:39:38 +02:00
|
|
|
|
|
|
|
|
|
nass.m = smiData.Solid(27).mass;
|
|
|
|
|
nass.k.ax = 5e7; % Leg stiffness [N/m]
|
2018-04-12 15:25:24 +02:00
|
|
|
|
nass.ksi.ax = 10;
|
2018-04-11 13:44:50 +02:00
|
|
|
|
|
2018-06-06 18:39:38 +02:00
|
|
|
|
nass = updateDamping(nass);
|
2018-04-24 15:45:32 +02:00
|
|
|
|
|
2018-04-11 13:44:50 +02:00
|
|
|
|
%%
|
|
|
|
|
function element = updateDamping(element)
|
|
|
|
|
field = fieldnames(element.k);
|
|
|
|
|
for i = 1:length(field)
|
|
|
|
|
element.c.(field{i}) = 1/element.ksi.(field{i})*sqrt(element.k.(field{i})/element.m);
|
|
|
|
|
end
|
|
|
|
|
end
|