Axis Compensator has been added
This commit is contained in:
parent
3745bbebee
commit
b5353745e0
@ -238,6 +238,9 @@ initializeRz();
|
||||
|
||||
%% Initialize Hexapod Symétrie
|
||||
initializeMicroHexapod();
|
||||
|
||||
%% Initialize Center of gravity compensation
|
||||
initializeAxisc();
|
||||
#+end_src
|
||||
|
||||
** Center of Mass of each solid body
|
||||
@ -381,15 +384,16 @@ initializeMicroHexapod();
|
||||
end
|
||||
#+end_src
|
||||
|
||||
** Bis
|
||||
For Granite Fx to Tx/Ty/Tz/Rx/Ry/Rz
|
||||
#+begin_src matlab
|
||||
dirs = {'x', 'y', 'z', 'rx', 'ry', 'rz'};
|
||||
stages = {'gtop', 'ty', 'ry', 'rz', 'hexa'}
|
||||
|
||||
n_stg = 2;
|
||||
n_exc = 2;
|
||||
n_stg = 5;
|
||||
n_exc = 3;
|
||||
|
||||
f = logspace(1, 3, 1000);
|
||||
f = logspace(0, 3, 1000);
|
||||
|
||||
figure;
|
||||
for n_dir = 1:6
|
||||
|
@ -1070,6 +1070,16 @@ This Matlab function is accessible [[file:../src/initializeGranite.m][here]].
|
||||
|
||||
#+begin_src matlab
|
||||
function [granite] = initializeGranite()
|
||||
%% Default values for opts
|
||||
opts = struct('rigid', false);
|
||||
|
||||
%% Populate opts with input parameters
|
||||
if exist('opts_param','var')
|
||||
for opt = fieldnames(opts_param)'
|
||||
opts.(opt{1}) = opts_param.(opt{1});
|
||||
end
|
||||
end
|
||||
|
||||
%%
|
||||
granite = struct();
|
||||
|
||||
@ -1083,22 +1093,27 @@ This Matlab function is accessible [[file:../src/initializeGranite.m][here]].
|
||||
granite.mass_top = 4000; % [kg] TODO
|
||||
|
||||
%% Dynamical Properties
|
||||
granite.k.x = 4e9; % [N/m]
|
||||
if opts.rigid
|
||||
granite.k.x = 1e12; % [N/m]
|
||||
granite.k.y = 1e12; % [N/m]
|
||||
granite.k.z = 1e12; % [N/m]
|
||||
granite.k.rx = 1e10; % [N*m/deg]
|
||||
granite.k.ry = 1e10; % [N*m/deg]
|
||||
granite.k.rz = 1e10; % [N*m/deg]
|
||||
else
|
||||
granite.k.x = 4e9; % [N/m]
|
||||
granite.k.y = 3e8; % [N/m]
|
||||
granite.k.z = 8e8; % [N/m]
|
||||
granite.k.rx = 1e4; % [N*m/deg]
|
||||
granite.k.ry = 1e4; % [N*m/deg]
|
||||
granite.k.rz = 1e6; % [N*m/deg]
|
||||
end
|
||||
|
||||
granite.c.x = 0.1*sqrt(granite.mass_top*granite.k.x); % [N/(m/s)]
|
||||
|
||||
granite.k.y = 3e8; % [N/m]
|
||||
granite.c.y = 0.1*sqrt(granite.mass_top*granite.k.y); % [N/(m/s)]
|
||||
|
||||
granite.k.z = 8e8; % [N/m]
|
||||
granite.c.z = 0.5*sqrt(granite.mass_top*granite.k.z); % [N/(m/s)]
|
||||
|
||||
granite.k.rx = 1e4; % [N*m/deg]
|
||||
granite.c.rx = 0.1*sqrt(granite.mass_top*granite.k.rx); % [N*m/(deg/s)]
|
||||
|
||||
granite.k.ry = 1e4; % [N*m/deg]
|
||||
granite.c.ry = 0.1*sqrt(granite.mass_top*granite.k.ry); % [N*m/(deg/s)]
|
||||
|
||||
granite.k.rz = 1e6; % [N*m/deg]
|
||||
granite.c.rz = 0.1*sqrt(granite.mass_top*granite.k.rz); % [N*m/(deg/s)]
|
||||
|
||||
%% Positioning parameters
|
||||
@ -1126,9 +1141,9 @@ This Matlab function is accessible [[file:../src/initializeTy.m][here]].
|
||||
|
||||
%% Populate opts with input parameters
|
||||
if exist('opts_param','var')
|
||||
for opt = fieldnames(opts_param)'
|
||||
opts.(opt{1}) = opts_param.(opt{1});
|
||||
end
|
||||
for opt = fieldnames(opts_param)'
|
||||
opts.(opt{1}) = opts_param.(opt{1});
|
||||
end
|
||||
end
|
||||
|
||||
%%
|
||||
@ -1176,11 +1191,12 @@ This Matlab function is accessible [[file:../src/initializeTy.m][here]].
|
||||
|
||||
%% Y-Translation - Dynamicals Properties
|
||||
if opts.rigid
|
||||
ty.k.ax = 1e10; % Axial Stiffness for each of the 4 guidance (y) [N/m]
|
||||
ty.k.ax = 1e12; % Axial Stiffness for each of the 4 guidance (y) [N/m]
|
||||
ty.k.rad = 1e12; % Radial Stiffness for each of the 4 guidance (x-z) [N/m]
|
||||
else
|
||||
ty.k.ax = 1e7; % Axial Stiffness for each of the 4 guidance (y) [N/m]
|
||||
ty.k.ax = 5e7; % Axial Stiffness for each of the 4 guidance (y) [N/m]
|
||||
ty.k.rad = 5e7; % Radial Stiffness for each of the 4 guidance (x-z) [N/m]
|
||||
end
|
||||
ty.k.rad = 1e8; % Radial Stiffness for each of the 4 guidance (x-z) [N/m]
|
||||
|
||||
ty.c.ax = 0.1*sqrt(ty.k.ax*ty.m);
|
||||
ty.c.rad = 0.1*sqrt(ty.k.rad*ty.m);
|
||||
@ -1207,9 +1223,9 @@ This Matlab function is accessible [[file:../src/initializeRy.m][here]].
|
||||
|
||||
%% Populate opts with input parameters
|
||||
if exist('opts_param','var')
|
||||
for opt = fieldnames(opts_param)'
|
||||
opts.(opt{1}) = opts_param.(opt{1});
|
||||
end
|
||||
for opt = fieldnames(opts_param)'
|
||||
opts.(opt{1}) = opts_param.(opt{1});
|
||||
end
|
||||
end
|
||||
|
||||
%%
|
||||
@ -1237,15 +1253,17 @@ This Matlab function is accessible [[file:../src/initializeRy.m][here]].
|
||||
|
||||
%% Tilt Stage - Dynamical Properties
|
||||
if opts.rigid
|
||||
ry.k.tilt = 1e10; % Rotation stiffness around y [N*m/deg]
|
||||
ry.k.tilt = 1e10; % Rotation stiffness around y [N*m/deg]
|
||||
ry.k.h = 1e12; % Stiffness in the direction of the guidance [N/m]
|
||||
ry.k.rad = 1e12; % Stiffness in the top direction [N/m]
|
||||
ry.k.rrad = 1e12; % Stiffness in the side direction [N/m]
|
||||
else
|
||||
ry.k.tilt = 1e3; % Rotation stiffness around y [N*m/deg]
|
||||
ry.k.tilt = 1e4; % Rotation stiffness around y [N*m/deg]
|
||||
ry.k.h = 1e8; % Stiffness in the direction of the guidance [N/m]
|
||||
ry.k.rad = 1e8; % Stiffness in the top direction [N/m]
|
||||
ry.k.rrad = 1e8; % Stiffness in the side direction [N/m]
|
||||
end
|
||||
|
||||
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.c.h = 0.1*sqrt(ry.k.h*ry.m);
|
||||
ry.c.rad = 0.1*sqrt(ry.k.rad*ry.m);
|
||||
ry.c.rrad = 0.1*sqrt(ry.k.rrad*ry.m);
|
||||
@ -1276,9 +1294,9 @@ This Matlab function is accessible [[file:../src/initializeRz.m][here]].
|
||||
|
||||
%% Populate opts with input parameters
|
||||
if exist('opts_param','var')
|
||||
for opt = fieldnames(opts_param)'
|
||||
opts.(opt{1}) = opts_param.(opt{1});
|
||||
end
|
||||
for opt = fieldnames(opts_param)'
|
||||
opts.(opt{1}) = opts_param.(opt{1});
|
||||
end
|
||||
end
|
||||
|
||||
%%
|
||||
@ -1302,15 +1320,17 @@ This Matlab function is accessible [[file:../src/initializeRz.m][here]].
|
||||
rz.m = 250; % [kg]
|
||||
|
||||
%% Spindle - Dynamical Properties
|
||||
% Estimated stiffnesses
|
||||
rz.k.ax = 2e9; % Axial Stiffness [N/m]
|
||||
rz.k.rad = 7e8; % Radial Stiffness [N/m]
|
||||
rz.k.tilt = 1e8*(2*pi/360); % Rotational Stiffness [N*m/deg]
|
||||
|
||||
if opts.rigid
|
||||
rz.k.rot = 1e10; % Rotational Stiffness [N*m/deg]
|
||||
rz.k.rot = 1e10; % Rotational Stiffness (Rz) [N*m/deg]
|
||||
rz.k.tilt = 1e10; % Rotational Stiffness (Rx, Ry) [N*m/deg]
|
||||
rz.k.ax = 1e12; % Axial Stiffness (Z) [N/m]
|
||||
rz.k.rad = 1e12; % Radial Stiffness (X, Y) [N/m]
|
||||
else
|
||||
rz.k.rot = 1e6; % TODO what value should I put? [N*m/deg]
|
||||
rz.k.rot = 1e6; % TODO - Rotational Stiffness (Rz) [N*m/deg]
|
||||
rz.k.tilt = 1e6; % Rotational Stiffness (Rx, Ry) [N*m/deg]
|
||||
rz.k.ax = 2e9; % Axial Stiffness (Z) [N/m]
|
||||
rz.k.rad = 7e8; % Radial Stiffness (X, Y) [N/m]
|
||||
end
|
||||
|
||||
% Damping
|
||||
@ -1337,13 +1357,13 @@ This Matlab function is accessible [[file:../src/initializeMicroHexapod.m][here]
|
||||
#+begin_src matlab
|
||||
function [micro_hexapod] = initializeMicroHexapod(opts_param)
|
||||
%% Default values for opts
|
||||
opts = struct();
|
||||
opts = struct('rigid', false);
|
||||
|
||||
%% Populate opts with input parameters
|
||||
if exist('opts_param','var')
|
||||
for opt = fieldnames(opts_param)'
|
||||
opts.(opt{1}) = opts_param.(opt{1});
|
||||
end
|
||||
for opt = fieldnames(opts_param)'
|
||||
opts.(opt{1}) = opts_param.(opt{1});
|
||||
end
|
||||
end
|
||||
|
||||
%% Stewart Object
|
||||
@ -1380,7 +1400,7 @@ This Matlab function is accessible [[file:../src/initializeMicroHexapod.m][here]
|
||||
|
||||
Leg.stroke = 10e-3; % Maximum Stroke of each leg [m]
|
||||
Leg.k.ax = 5e7; % Stiffness of each leg [N/m]
|
||||
Leg.ksi.ax = 3; % Maximum amplification at resonance []
|
||||
Leg.ksi.ax = 0.1; % Modal damping ksi = 1/2*c/sqrt(km) []
|
||||
Leg.rad.bottom = 25; % Radius of the cylinder of the bottom part [mm]
|
||||
Leg.rad.top = 17; % Radius of the cylinder of the top part [mm]
|
||||
Leg.density = 8000; % Density of the material [kg/m^3]
|
||||
@ -1431,10 +1451,10 @@ This Matlab function is accessible [[file:../src/initializeMicroHexapod.m][here]
|
||||
|
||||
%%
|
||||
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
|
||||
field = fieldnames(element.k);
|
||||
for i = 1:length(field)
|
||||
element.c.(field{i}) = 2*element.ksi.(field{i})*sqrt(element.k.(field{i})*element.m);
|
||||
end
|
||||
end
|
||||
|
||||
%%
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user