Update the initialization functions
This commit is contained in:
parent
4a6a8ee0bc
commit
080996e579
@ -1,12 +1,12 @@
|
|||||||
% Center of gravity compensation
|
% Center of gravity compensation
|
||||||
% :PROPERTIES:
|
% :PROPERTIES:
|
||||||
% :header-args:matlab+: :tangle src/initializeAxisc.m
|
% :header-args:matlab+: :tangle ../src/initializeAxisc.m
|
||||||
% :header-args:matlab+: :comments org :mkdirp yes
|
% :header-args:matlab+: :comments org :mkdirp yes
|
||||||
% :header-args:matlab+: :eval no :results none
|
% :header-args:matlab+: :eval no :results none
|
||||||
% :END:
|
% :END:
|
||||||
% <<sec:initializeAxisc>>
|
% <<sec:initializeAxisc>>
|
||||||
|
|
||||||
% This Matlab function is accessible [[file:src/initializeAxisc.m][here]].
|
% This Matlab function is accessible [[file:../src/initializeAxisc.m][here]].
|
||||||
|
|
||||||
|
|
||||||
function [axisc] = initializeAxisc()
|
function [axisc] = initializeAxisc()
|
||||||
@ -34,8 +34,8 @@ function [axisc] = initializeAxisc()
|
|||||||
axisc.m = 40; % TODO [kg]
|
axisc.m = 40; % TODO [kg]
|
||||||
|
|
||||||
%% Axis Compensator - Dynamical Properties
|
%% Axis Compensator - Dynamical Properties
|
||||||
axisc.k.ax = 1; % TODO [N*m/deg)]
|
% axisc.k.ax = 1; % TODO [N*m/deg)]
|
||||||
axisc.c.ax = (1/1)*sqrt(axisc.k.ax/axisc.m);
|
% axisc.c.ax = (1/1)*sqrt(axisc.k.ax/axisc.m);
|
||||||
|
|
||||||
%% Save
|
%% Save
|
||||||
save('./mat/stages.mat', 'axisc', '-append');
|
save('./mat/stages.mat', 'axisc', '-append');
|
||||||
|
@ -25,8 +25,8 @@ function [cedrat] = initializeCedratPiezo(opts_param)
|
|||||||
cedrat.k = 10e7; % Linear Stiffness of each "blade" [N/m]
|
cedrat.k = 10e7; % Linear Stiffness of each "blade" [N/m]
|
||||||
cedrat.ka = 10e7; % Linear Stiffness of the stack [N/m]
|
cedrat.ka = 10e7; % Linear Stiffness of the stack [N/m]
|
||||||
|
|
||||||
cedrat.c = 0.1*sqrt(1*cedrat.k); % [N/(m/s)]
|
cedrat.c = 0.1*sqrt(50*cedrat.k); % [N/(m/s)]
|
||||||
cedrat.ca = 0.1*sqrt(1*cedrat.ka); % [N/(m/s)]
|
cedrat.ca = 0.1*sqrt(50*cedrat.ka); % [N/(m/s)]
|
||||||
|
|
||||||
cedrat.L = 80; % Total Width of the Actuator[mm]
|
cedrat.L = 80; % Total Width of the Actuator[mm]
|
||||||
cedrat.H = 45; % Total Height of the Actuator [mm]
|
cedrat.H = 45; % Total Height of the Actuator [mm]
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
% Experiment
|
% Experiment
|
||||||
% :PROPERTIES:
|
% :PROPERTIES:
|
||||||
% :header-args:matlab+: :tangle src/initializeExperiment.m
|
% :header-args:matlab+: :tangle ../src/initializeExperiment.m
|
||||||
% :header-args:matlab+: :comments org :mkdirp yes
|
% :header-args:matlab+: :comments org :mkdirp yes
|
||||||
% :header-args:matlab+: :eval no :results none
|
% :header-args:matlab+: :eval no :results none
|
||||||
% :END:
|
% :END:
|
||||||
% <<sec:initializeExperiment>>
|
% <<sec:initializeExperiment>>
|
||||||
|
|
||||||
% This Matlab function is accessible [[file:src/initializeExperiment.m][here]].
|
% This Matlab function is accessible [[file:../src/initializeExperiment.m][here]].
|
||||||
|
|
||||||
|
|
||||||
function [] = initializeExperiment(exp_name, sys_mass)
|
function [] = initializeExperiment(exp_name, sys_mass)
|
||||||
|
@ -1,34 +1,60 @@
|
|||||||
% Granite
|
% Granite
|
||||||
% :PROPERTIES:
|
% :PROPERTIES:
|
||||||
% :header-args:matlab+: :tangle src/initializeGranite.m
|
% :header-args:matlab+: :tangle ../src/initializeGranite.m
|
||||||
% :header-args:matlab+: :comments org :mkdirp yes
|
% :header-args:matlab+: :comments org :mkdirp yes
|
||||||
% :header-args:matlab+: :eval no :results none
|
% :header-args:matlab+: :eval no :results none
|
||||||
% :END:
|
% :END:
|
||||||
% <<sec:initializeGranite>>
|
% <<sec:initializeGranite>>
|
||||||
|
|
||||||
% This Matlab function is accessible [[file:src/initializeGranite.m][here]].
|
% This Matlab function is accessible [[file:../src/initializeGranite.m][here]].
|
||||||
|
|
||||||
|
|
||||||
function [granite] = initializeGranite()
|
function [granite] = initializeGranite(opts_param)
|
||||||
|
%% 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();
|
granite = struct();
|
||||||
|
|
||||||
%% Static Properties
|
%% Static Properties
|
||||||
granite.density = 2800; % [kg/m3]
|
granite.density = 2800; % [kg/m3]
|
||||||
granite.volume = 0.72; % [m3] TODO - should
|
granite.volume = 0.749; % [m3] TODO - should
|
||||||
granite.mass = granite.density*granite.volume; % [kg]
|
granite.mass = granite.density*granite.volume; % [kg]
|
||||||
granite.color = [1 1 1];
|
granite.color = [1 1 1];
|
||||||
granite.STEP = './STEPS/granite/granite.STEP';
|
granite.STEP = './STEPS/granite/granite.STEP';
|
||||||
|
|
||||||
|
granite.mass_top = 4000; % [kg] TODO
|
||||||
|
|
||||||
%% Dynamical Properties
|
%% Dynamical Properties
|
||||||
granite.k.x = 1e8; % [N/m]
|
if opts.rigid
|
||||||
granite.c.x = 1e4; % [N/(m/s)]
|
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.k.y = 1e8; % [N/m]
|
granite.c.x = 0.1*sqrt(granite.mass_top*granite.k.x); % [N/(m/s)]
|
||||||
granite.c.y = 1e4; % [N/(m/s)]
|
granite.c.y = 0.1*sqrt(granite.mass_top*granite.k.y); % [N/(m/s)]
|
||||||
|
granite.c.z = 0.5*sqrt(granite.mass_top*granite.k.z); % [N/(m/s)]
|
||||||
granite.k.z = 1e8; % [N/m]
|
granite.c.rx = 0.1*sqrt(granite.mass_top*granite.k.rx); % [N*m/(deg/s)]
|
||||||
granite.c.z = 1e4; % [N/(m/s)]
|
granite.c.ry = 0.1*sqrt(granite.mass_top*granite.k.ry); % [N*m/(deg/s)]
|
||||||
|
granite.c.rz = 0.1*sqrt(granite.mass_top*granite.k.rz); % [N*m/(deg/s)]
|
||||||
|
|
||||||
%% Positioning parameters
|
%% Positioning parameters
|
||||||
granite.sample_pos = 0.8; % Z-offset for the initial position of the sample [m]
|
granite.sample_pos = 0.8; % Z-offset for the initial position of the sample [m]
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
% Ground
|
% Ground
|
||||||
% :PROPERTIES:
|
% :PROPERTIES:
|
||||||
% :header-args:matlab+: :tangle src/initializeGround.m
|
% :header-args:matlab+: :tangle ../src/initializeGround.m
|
||||||
% :header-args:matlab+: :comments org :mkdirp yes
|
% :header-args:matlab+: :comments org :mkdirp yes
|
||||||
% :header-args:matlab+: :eval no :results none
|
% :header-args:matlab+: :eval no :results none
|
||||||
% :END:
|
% :END:
|
||||||
% <<sec:initializeGround>>
|
% <<sec:initializeGround>>
|
||||||
|
|
||||||
% This Matlab function is accessible [[file:src/initializeGround.m][here]].
|
% This Matlab function is accessible [[file:../src/initializeGround.m][here]].
|
||||||
|
|
||||||
|
|
||||||
function [ground] = initializeGround()
|
function [ground] = initializeGround()
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
% Inputs
|
% Inputs
|
||||||
% :PROPERTIES:
|
% :PROPERTIES:
|
||||||
% :header-args:matlab+: :tangle src/initializeInputs.m
|
% :header-args:matlab+: :tangle ../src/initializeInputs.m
|
||||||
% :header-args:matlab+: :comments org :mkdirp yes
|
% :header-args:matlab+: :comments org :mkdirp yes
|
||||||
% :header-args:matlab+: :eval no :results none
|
% :header-args:matlab+: :eval no :results none
|
||||||
% :END:
|
% :END:
|
||||||
% <<sec:initializeInputs>>
|
% <<sec:initializeInputs>>
|
||||||
|
|
||||||
% This Matlab function is accessible [[file:src/initializeInputs.m][here]].
|
% This Matlab function is accessible [[file:../src/initializeInputs.m][here]].
|
||||||
|
|
||||||
|
|
||||||
function [inputs] = initializeInputs(opts_param)
|
function [inputs] = initializeInputs(opts_param)
|
||||||
|
@ -1,29 +1,28 @@
|
|||||||
% Micro Hexapod
|
% Micro Hexapod
|
||||||
% :PROPERTIES:
|
% :PROPERTIES:
|
||||||
% :header-args:matlab+: :tangle src/initializeMicroHexapod.m
|
% :header-args:matlab+: :tangle ../src/initializeMicroHexapod.m
|
||||||
% :header-args:matlab+: :comments org :mkdirp yes
|
% :header-args:matlab+: :comments org :mkdirp yes
|
||||||
% :header-args:matlab+: :eval no :results none
|
% :header-args:matlab+: :eval no :results none
|
||||||
% :END:
|
% :END:
|
||||||
% <<sec:initializeMicroHexapod>>
|
% <<sec:initializeMicroHexapod>>
|
||||||
|
|
||||||
% This Matlab function is accessible [[file:src/initializeMicroHexapod.m][here]].
|
% This Matlab function is accessible [[file:../src/initializeMicroHexapod.m][here]].
|
||||||
|
|
||||||
|
|
||||||
function [micro_hexapod] = initializeMicroHexapod(opts_param)
|
function [micro_hexapod] = initializeMicroHexapod(opts_param)
|
||||||
%% Default values for opts
|
%% Default values for opts
|
||||||
opts = struct();
|
opts = struct('rigid', false);
|
||||||
|
|
||||||
%% Populate opts with input parameters
|
%% Populate opts with input parameters
|
||||||
if exist('opts_param','var')
|
if exist('opts_param','var')
|
||||||
for opt = fieldnames(opts_param)'
|
for opt = fieldnames(opts_param)'
|
||||||
opts.(opt{1}) = opts_param.(opt{1});
|
opts.(opt{1}) = opts_param.(opt{1});
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
%% Stewart Object
|
%% Stewart Object
|
||||||
micro_hexapod = struct();
|
micro_hexapod = struct();
|
||||||
micro_hexapod.h = 350; % Total height of the platform [mm]
|
micro_hexapod.h = 350; % Total height of the platform [mm]
|
||||||
% micro_hexapod.jacobian = 269.26; % Distance from the top platform to the Jacobian point [mm]
|
|
||||||
micro_hexapod.jacobian = 270; % Distance from the top platform to the Jacobian point [mm]
|
micro_hexapod.jacobian = 270; % Distance from the top platform to the Jacobian point [mm]
|
||||||
|
|
||||||
%% Bottom Plate - Mechanical Design
|
%% Bottom Plate - Mechanical Design
|
||||||
@ -54,8 +53,12 @@ function [micro_hexapod] = initializeMicroHexapod(opts_param)
|
|||||||
Leg = struct();
|
Leg = struct();
|
||||||
|
|
||||||
Leg.stroke = 10e-3; % Maximum Stroke of each leg [m]
|
Leg.stroke = 10e-3; % Maximum Stroke of each leg [m]
|
||||||
Leg.k.ax = 5e7; % Stiffness of each leg [N/m]
|
if opts.rigid
|
||||||
Leg.ksi.ax = 3; % Maximum amplification at resonance []
|
Leg.k.ax = 1e12; % Stiffness of each leg [N/m]
|
||||||
|
else
|
||||||
|
Leg.k.ax = 2e7; % Stiffness of each leg [N/m]
|
||||||
|
end
|
||||||
|
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.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.rad.top = 17; % Radius of the cylinder of the top part [mm]
|
||||||
Leg.density = 8000; % Density of the material [kg/m^3]
|
Leg.density = 8000; % Density of the material [kg/m^3]
|
||||||
@ -106,10 +109,10 @@ function [micro_hexapod] = initializeMicroHexapod(opts_param)
|
|||||||
|
|
||||||
%%
|
%%
|
||||||
function [element] = updateDamping(element)
|
function [element] = updateDamping(element)
|
||||||
field = fieldnames(element.k);
|
field = fieldnames(element.k);
|
||||||
for i = 1:length(field)
|
for i = 1:length(field)
|
||||||
element.c.(field{i}) = 1/element.ksi.(field{i})*sqrt(element.k.(field{i})/element.m);
|
element.c.(field{i}) = 2*element.ksi.(field{i})*sqrt(element.k.(field{i})*element.m);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
%%
|
%%
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
% Mirror
|
% Mirror
|
||||||
% :PROPERTIES:
|
% :PROPERTIES:
|
||||||
% :header-args:matlab+: :tangle src/initializeMirror.m
|
% :header-args:matlab+: :tangle ../src/initializeMirror.m
|
||||||
% :header-args:matlab+: :comments org :mkdirp yes
|
% :header-args:matlab+: :comments org :mkdirp yes
|
||||||
% :header-args:matlab+: :eval no :results none
|
% :header-args:matlab+: :eval no :results none
|
||||||
% :END:
|
% :END:
|
||||||
% <<sec:initializeMirror>>
|
% <<sec:initializeMirror>>
|
||||||
|
|
||||||
% This Matlab function is accessible [[file:src/initializeMirror.m][here]].
|
% This Matlab function is accessible [[file:../src/initializeMirror.m][here]].
|
||||||
|
|
||||||
|
|
||||||
function [] = initializeMirror(opts_param)
|
function [] = initializeMirror(opts_param)
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
% Nano Hexapod
|
% Nano Hexapod
|
||||||
% :PROPERTIES:
|
% :PROPERTIES:
|
||||||
% :header-args:matlab+: :tangle src/initializeNanoHexapod.m
|
% :header-args:matlab+: :tangle ../src/initializeNanoHexapod.m
|
||||||
% :header-args:matlab+: :comments org :mkdirp yes
|
% :header-args:matlab+: :comments org :mkdirp yes
|
||||||
% :header-args:matlab+: :eval no :results none
|
% :header-args:matlab+: :eval no :results none
|
||||||
% :END:
|
% :END:
|
||||||
% <<sec:initializeNanoHexapod>>
|
% <<sec:initializeNanoHexapod>>
|
||||||
|
|
||||||
% This Matlab function is accessible [[file:src/initializeNanoHexapod.m][here]].
|
% This Matlab function is accessible [[file:../src/initializeNanoHexapod.m][here]].
|
||||||
|
|
||||||
|
|
||||||
function [nano_hexapod] = initializeNanoHexapod(opts_param)
|
function [nano_hexapod] = initializeNanoHexapod(opts_param)
|
||||||
@ -85,7 +85,7 @@ function [nano_hexapod] = initializeNanoHexapod(opts_param)
|
|||||||
SP.color.bottom = [0.7 0.7 0.7]; % [rgb]
|
SP.color.bottom = [0.7 0.7 0.7]; % [rgb]
|
||||||
SP.color.top = [0.7 0.7 0.7]; % [rgb]
|
SP.color.top = [0.7 0.7 0.7]; % [rgb]
|
||||||
SP.k.ax = 0; % [N*m/deg]
|
SP.k.ax = 0; % [N*m/deg]
|
||||||
SP.ksi.ax = 3;
|
SP.ksi.ax = 0;
|
||||||
|
|
||||||
SP.thickness.bottom = SP.height.bottom-Leg.sphere.bottom; % [mm]
|
SP.thickness.bottom = SP.height.bottom-Leg.sphere.bottom; % [mm]
|
||||||
SP.thickness.top = SP.height.top-Leg.sphere.top; % [mm]
|
SP.thickness.top = SP.height.top-Leg.sphere.top; % [mm]
|
||||||
@ -115,7 +115,11 @@ function [nano_hexapod] = initializeNanoHexapod(opts_param)
|
|||||||
function [element] = updateDamping(element)
|
function [element] = updateDamping(element)
|
||||||
field = fieldnames(element.k);
|
field = fieldnames(element.k);
|
||||||
for i = 1:length(field)
|
for i = 1:length(field)
|
||||||
element.c.(field{i}) = 1/element.ksi.(field{i})*sqrt(element.k.(field{i})/element.m);
|
if element.ksi.(field{i}) > 0
|
||||||
|
element.c.(field{i}) = 1/element.ksi.(field{i})*sqrt(element.k.(field{i})/element.m);
|
||||||
|
else
|
||||||
|
element.c.(field{i}) = 0;
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
% Tilt Stage
|
% Tilt Stage
|
||||||
% :PROPERTIES:
|
% :PROPERTIES:
|
||||||
% :header-args:matlab+: :tangle src/initializeRy.m
|
% :header-args:matlab+: :tangle ../src/initializeRy.m
|
||||||
% :header-args:matlab+: :comments org :mkdirp yes
|
% :header-args:matlab+: :comments org :mkdirp yes
|
||||||
% :header-args:matlab+: :eval no :results none
|
% :header-args:matlab+: :eval no :results none
|
||||||
% :END:
|
% :END:
|
||||||
% <<sec:initializeRy>>
|
% <<sec:initializeRy>>
|
||||||
|
|
||||||
% This Matlab function is accessible [[file:src/initializeRy.m][here]].
|
% This Matlab function is accessible [[file:../src/initializeRy.m][here]].
|
||||||
|
|
||||||
|
|
||||||
function [ry] = initializeRy(opts_param)
|
function [ry] = initializeRy(opts_param)
|
||||||
@ -15,9 +15,9 @@ function [ry] = initializeRy(opts_param)
|
|||||||
|
|
||||||
%% Populate opts with input parameters
|
%% Populate opts with input parameters
|
||||||
if exist('opts_param','var')
|
if exist('opts_param','var')
|
||||||
for opt = fieldnames(opts_param)'
|
for opt = fieldnames(opts_param)'
|
||||||
opts.(opt{1}) = opts_param.(opt{1});
|
opts.(opt{1}) = opts_param.(opt{1});
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
%%
|
%%
|
||||||
@ -41,23 +41,25 @@ function [ry] = initializeRy(opts_param)
|
|||||||
ry.stage.color = [0.792 0.820 0.933];
|
ry.stage.color = [0.792 0.820 0.933];
|
||||||
ry.stage.STEP = './STEPS/ry/Tilt_Stage.STEP';
|
ry.stage.STEP = './STEPS/ry/Tilt_Stage.STEP';
|
||||||
|
|
||||||
ry.m = 200; % TODO [kg]
|
ry.m = 800; % TODO [kg]
|
||||||
|
|
||||||
%% Tilt Stage - Dynamical Properties
|
%% Tilt Stage - Dynamical Properties
|
||||||
if opts.rigid
|
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
|
else
|
||||||
ry.k.tilt = 1e4; % 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
|
end
|
||||||
|
|
||||||
ry.k.h = 357e6/4; % Stiffness in the direction of the guidance [N/m]
|
ry.c.h = 0.1*sqrt(ry.k.h*ry.m);
|
||||||
ry.k.rad = 555e6/4; % Stiffness in the top direction [N/m]
|
ry.c.rad = 0.1*sqrt(ry.k.rad*ry.m);
|
||||||
ry.k.rrad = 238e6/4; % Stiffness in the side direction [N/m]
|
ry.c.rrad = 0.1*sqrt(ry.k.rrad*ry.m);
|
||||||
|
ry.c.tilt = 0.1*sqrt(ry.k.tilt*ry.m);
|
||||||
ry.c.h = 10*(1/5)*sqrt(ry.k.h/ry.m);
|
|
||||||
ry.c.rad = 10*(1/5)*sqrt(ry.k.rad/ry.m);
|
|
||||||
ry.c.rrad = 10*(1/5)*sqrt(ry.k.rrad/ry.m);
|
|
||||||
ry.c.tilt = 10*(1/1)*sqrt(ry.k.tilt/ry.m);
|
|
||||||
|
|
||||||
%% Positioning parameters
|
%% Positioning parameters
|
||||||
ry.z_offset = 0.58178; % Z-Offset so that the center of rotation matches the sample center [m]
|
ry.z_offset = 0.58178; % Z-Offset so that the center of rotation matches the sample center [m]
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
% Spindle
|
% Spindle
|
||||||
% :PROPERTIES:
|
% :PROPERTIES:
|
||||||
% :header-args:matlab+: :tangle src/initializeRz.m
|
% :header-args:matlab+: :tangle ../src/initializeRz.m
|
||||||
% :header-args:matlab+: :comments org :mkdirp yes
|
% :header-args:matlab+: :comments org :mkdirp yes
|
||||||
% :header-args:matlab+: :eval no :results none
|
% :header-args:matlab+: :eval no :results none
|
||||||
% :END:
|
% :END:
|
||||||
% <<sec:initializeRz>>
|
% <<sec:initializeRz>>
|
||||||
|
|
||||||
% This Matlab function is accessible [[file:src/initializeRz.m][here]].
|
% This Matlab function is accessible [[file:../src/initializeRz.m][here]].
|
||||||
|
|
||||||
|
|
||||||
function [rz] = initializeRz(opts_param)
|
function [rz] = initializeRz(opts_param)
|
||||||
@ -15,9 +15,9 @@ function [rz] = initializeRz(opts_param)
|
|||||||
|
|
||||||
%% Populate opts with input parameters
|
%% Populate opts with input parameters
|
||||||
if exist('opts_param','var')
|
if exist('opts_param','var')
|
||||||
for opt = fieldnames(opts_param)'
|
for opt = fieldnames(opts_param)'
|
||||||
opts.(opt{1}) = opts_param.(opt{1});
|
opts.(opt{1}) = opts_param.(opt{1});
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
%%
|
%%
|
||||||
@ -41,22 +41,24 @@ function [rz] = initializeRz(opts_param)
|
|||||||
rz.m = 250; % [kg]
|
rz.m = 250; % [kg]
|
||||||
|
|
||||||
%% Spindle - Dynamical Properties
|
%% Spindle - Dynamical Properties
|
||||||
% Estimated stiffnesses
|
|
||||||
rz.k.ax = 2e9; % Axial Stiffness [N/m]
|
|
||||||
rz.k.rad = 7e8; % Radial Stiffness [N/m]
|
|
||||||
rz.k.rot = 100e6*2*pi/360; % Rotational Stiffness [N*m/deg]
|
|
||||||
|
|
||||||
if opts.rigid
|
if opts.rigid
|
||||||
rz.k.tilt = 1e10; % Vertical 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
|
else
|
||||||
rz.k.tilt = 1e2; % 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
|
end
|
||||||
|
|
||||||
% TODO
|
% Damping
|
||||||
rz.c.ax = 2*sqrt(rz.k.ax/rz.m);
|
rz.c.ax = 0.1*sqrt(rz.k.ax*rz.m);
|
||||||
rz.c.rad = 2*sqrt(rz.k.rad/rz.m);
|
rz.c.rad = 0.1*sqrt(rz.k.rad*rz.m);
|
||||||
rz.c.tilt = 100*sqrt(rz.k.tilt/rz.m);
|
rz.c.tilt = 0.1*sqrt(rz.k.tilt*rz.m);
|
||||||
rz.c.rot = 100*sqrt(rz.k.rot/rz.m);
|
rz.c.rot = 0.1*sqrt(rz.k.rot*rz.m);
|
||||||
|
|
||||||
%% Save
|
%% Save
|
||||||
save('./mat/stages.mat', 'rz', '-append');
|
save('./mat/stages.mat', 'rz', '-append');
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
% Sample
|
% Sample
|
||||||
% :PROPERTIES:
|
% :PROPERTIES:
|
||||||
% :header-args:matlab+: :tangle src/initializeSample.m
|
% :header-args:matlab+: :tangle ../src/initializeSample.m
|
||||||
% :header-args:matlab+: :comments org :mkdirp yes
|
% :header-args:matlab+: :comments org :mkdirp yes
|
||||||
% :header-args:matlab+: :eval no :results none
|
% :header-args:matlab+: :eval no :results none
|
||||||
% :END:
|
% :END:
|
||||||
% <<sec:initializeSample>>
|
% <<sec:initializeSample>>
|
||||||
|
|
||||||
% This Matlab function is accessible [[file:src/initializeSample.m][here]].
|
% This Matlab function is accessible [[file:../src/initializeSample.m][here]].
|
||||||
|
|
||||||
|
|
||||||
function [sample] = initializeSample(opts_param)
|
function [sample] = initializeSample(opts_param)
|
||||||
@ -27,13 +27,13 @@ function [sample] = initializeSample(opts_param)
|
|||||||
|
|
||||||
%%
|
%%
|
||||||
sample.k.x = 1e8;
|
sample.k.x = 1e8;
|
||||||
sample.c.x = sqrt(sample.k.x*sample.mass)/10;
|
sample.c.x = 0.1*sqrt(sample.k.x*sample.mass);
|
||||||
|
|
||||||
sample.k.y = 1e8;
|
sample.k.y = 1e8;
|
||||||
sample.c.y = sqrt(sample.k.y*sample.mass)/10;
|
sample.c.y = 0.1*sqrt(sample.k.y*sample.mass);
|
||||||
|
|
||||||
sample.k.z = 1e8;
|
sample.k.z = 1e8;
|
||||||
sample.c.z = sqrt(sample.k.y*sample.mass)/10;
|
sample.c.z = 0.1*sqrt(sample.k.z*sample.mass);
|
||||||
|
|
||||||
%% Save
|
%% Save
|
||||||
save('./mat/stages.mat', 'sample', '-append');
|
save('./mat/stages.mat', 'sample', '-append');
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
% Simulation Configuration
|
% Simulation Configuration
|
||||||
% :PROPERTIES:
|
% :PROPERTIES:
|
||||||
% :header-args:matlab+: :tangle src/initializeSimConf.m
|
% :header-args:matlab+: :tangle ../src/initializeSimConf.m
|
||||||
% :header-args:matlab+: :comments org :mkdirp yes
|
% :header-args:matlab+: :comments org :mkdirp yes
|
||||||
% :header-args:matlab+: :eval no :results none
|
% :header-args:matlab+: :eval no :results none
|
||||||
% :END:
|
% :END:
|
||||||
% <<sec:initializeSimConf>>
|
% <<sec:initializeSimConf>>
|
||||||
|
|
||||||
% This Matlab function is accessible [[file:src/initializeSimConf.m][here]].
|
% This Matlab function is accessible [[file:../src/initializeSimConf.m][here]].
|
||||||
|
|
||||||
|
|
||||||
function [] = initializeSimConf(opts_param)
|
function [] = initializeSimConf(opts_param)
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
% Translation Stage
|
% Translation Stage
|
||||||
% :PROPERTIES:
|
% :PROPERTIES:
|
||||||
% :header-args:matlab+: :tangle src/initializeTy.m
|
% :header-args:matlab+: :tangle ../src/initializeTy.m
|
||||||
% :header-args:matlab+: :comments org :mkdirp yes
|
% :header-args:matlab+: :comments org :mkdirp yes
|
||||||
% :header-args:matlab+: :eval no :results none
|
% :header-args:matlab+: :eval no :results none
|
||||||
% :END:
|
% :END:
|
||||||
% <<sec:initializeTy>>
|
% <<sec:initializeTy>>
|
||||||
|
|
||||||
% This Matlab function is accessible [[file:src/initializeTy.m][here]].
|
% This Matlab function is accessible [[file:../src/initializeTy.m][here]].
|
||||||
|
|
||||||
|
|
||||||
function [ty] = initializeTy(opts_param)
|
function [ty] = initializeTy(opts_param)
|
||||||
@ -15,9 +15,9 @@ function [ty] = initializeTy(opts_param)
|
|||||||
|
|
||||||
%% Populate opts with input parameters
|
%% Populate opts with input parameters
|
||||||
if exist('opts_param','var')
|
if exist('opts_param','var')
|
||||||
for opt = fieldnames(opts_param)'
|
for opt = fieldnames(opts_param)'
|
||||||
opts.(opt{1}) = opts_param.(opt{1});
|
opts.(opt{1}) = opts_param.(opt{1});
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
%%
|
%%
|
||||||
@ -61,18 +61,19 @@ function [ty] = initializeTy(opts_param)
|
|||||||
ty.rotor.color = [0.792 0.820 0.933];
|
ty.rotor.color = [0.792 0.820 0.933];
|
||||||
ty.rotor.STEP = './STEPS/ty/Ty_Motor_Rotor.STEP';
|
ty.rotor.STEP = './STEPS/ty/Ty_Motor_Rotor.STEP';
|
||||||
|
|
||||||
ty.m = 250; % TODO [kg]
|
ty.m = 1000; % TODO [kg]
|
||||||
|
|
||||||
%% Y-Translation - Dynamicals Properties
|
%% Y-Translation - Dynamicals Properties
|
||||||
if opts.rigid
|
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
|
else
|
||||||
ty.k.ax = 1e7/4; % 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
|
end
|
||||||
ty.k.rad = 9e9/4; % Radial Stiffness for each of the 4 guidance (x-z) [N/m]
|
|
||||||
|
|
||||||
ty.c.ax = 100*(1/5)*sqrt(ty.k.ax/ty.m);
|
ty.c.ax = 0.1*sqrt(ty.k.ax*ty.m);
|
||||||
ty.c.rad = 100*(1/5)*sqrt(ty.k.rad/ty.m);
|
ty.c.rad = 0.1*sqrt(ty.k.rad*ty.m);
|
||||||
|
|
||||||
%% Save
|
%% Save
|
||||||
save('./mat/stages.mat', 'ty', '-append');
|
save('./mat/stages.mat', 'ty', '-append');
|
||||||
|
Loading…
Reference in New Issue
Block a user