Add data file for design of Nass (WIP)
This commit is contained in:
parent
35338eae9d
commit
f86b3f814c
108
Design_Nass.m
108
Design_Nass.m
@ -1,77 +1,59 @@
|
|||||||
run Formule_Nass.m
|
run Formule_Nass.m
|
||||||
|
|
||||||
|
%% Nass height
|
||||||
|
Nass.h = 90 ; %mm
|
||||||
|
|
||||||
%% Bottom Plate
|
%% Bottom Plate
|
||||||
BP = struct();
|
BP = struct();
|
||||||
BP.rad.int = 105 ; %mm
|
BP.rad.int = 105 ; %mm
|
||||||
BP.rad.ext = 152.5 ; %mm
|
BP.rad.ext = 152.5 ; %mm
|
||||||
|
BP.thickness = 20 % mm
|
||||||
BP.leg.rad = 140 ; %mm
|
BP.leg.rad = 140 ; %mm
|
||||||
BP.leg.ang = 2.5 ; %deg
|
BP.leg.ang = 2.5 ; %deg
|
||||||
BP.density = 1000 ; %kg/m^3
|
BP.density = 1000 ; %kg/m^3
|
||||||
BP.k.ax = 1e7/4; %z
|
BP.color = [0.5 0.5 0.5] ; %rgb
|
||||||
BP.k.rad = 9e9/4; %x
|
|
||||||
BP.k.rrad = 9e9/4; %y
|
%% TOP Plate
|
||||||
BP.ksi.ax = 10;
|
TP = struct();
|
||||||
BP.ksi.rad = 10;
|
TP.rad.int = 0 ;%mm
|
||||||
BP.ksi.rrad = 10;
|
TP.rad.ext = 150 ; %mm
|
||||||
BP = updateDamping(BP);
|
TP.thickness = 20 % mm
|
||||||
|
TP.leg.rad = 140 ; %mm
|
||||||
|
TP.leg.ang = 5 ; %deg
|
||||||
|
TP.density = 1000 ; %kg/m^3
|
||||||
|
TP.color = [0.5 0.5 0.5] ; %rgb
|
||||||
|
|
||||||
|
%% Leg
|
||||||
|
Leg = struct();
|
||||||
|
Leg.rad.bottom = 15 ; %mm
|
||||||
|
Leg.rad.top = 10 ; %mm
|
||||||
|
Leg.sphere.bottom = 20 ; % mm
|
||||||
|
Leg.sphere.top = 10 ; % mm
|
||||||
|
Leg.density = 1000 ; %kg/m^3
|
||||||
|
Leg.m = Leg.density*2*pi*((Leg.rad.bottom)^2)*(Leg.lenght); %kg
|
||||||
|
Leg.color.bottom = [0.5 0.5 0.5] ; %rgb
|
||||||
|
Leg.color.top = [0.5 0.5 0.5] ; %rgb
|
||||||
|
Leg.k.ax = 5e7; % N/m
|
||||||
|
Leg.ksi.ax = 10 ;
|
||||||
|
Leg = updateDamping(Leg);
|
||||||
|
|
||||||
|
|
||||||
%% Tilt
|
%% Sphere
|
||||||
ry = struct();
|
SP = struct();
|
||||||
ry.m = smiData.Solid(26).mass+smiData.Solid(18).mass+smiData.Solid(10).mass;
|
SP.thickness.bottom = 1 ; %mm
|
||||||
ry.k.h = 357e6/4; %y
|
SP.thickness.top = 1 ; %mm
|
||||||
ry.k.rad = 555e6/4; %x
|
SP.rad.bottom = Leg.rad.bottom ; %mm
|
||||||
ry.k.rrad = 238e6/4; %z
|
SP.rad.top = Leg.rad.ttop ; %mm
|
||||||
ry.k.tilt = 1e4 ; % rz in actuator
|
SP.height.bottom = 5 ; %mm
|
||||||
ry.ksi.h = 10;
|
SP.height.top = 5 ; %mm
|
||||||
ry.ksi.rad = 10;
|
SP.density.bottom = 1000 ; %kg/m^3
|
||||||
ry.ksi.rrad = 10;
|
SP.density.top = 1000 ; %kg/m^3
|
||||||
ry.ksi.tilt = 10;
|
SP.m = SP.density*2*pi*((SP.rad.bottom)^2)*(SP.height.bottom); %kg
|
||||||
ry = updateDamping(ry);
|
SP.color.bottom = [0.5 0.5 0.5] ; %rgb
|
||||||
|
SP.color.top = [0.5 0.5 0.5] ; %rgb
|
||||||
|
SP.k.ax = 5e7 ; % N*m/deg
|
||||||
%% Spindle
|
SP.ksi.ax = 10 ;
|
||||||
rz = struct();
|
SP = updateDamping(SP);
|
||||||
rz.m = smiData.Solid(12).mass+6*smiData.Solid(20).mass+smiData.Solid(19).mass;
|
|
||||||
rz.k.ax = 2e9; %x
|
|
||||||
rz.k.rad = 7e8; %z
|
|
||||||
rz.k.rrad = 7e8; %y
|
|
||||||
rz.k.tilt = 1e5;
|
|
||||||
rz.k.rot = 1e5;
|
|
||||||
rz.ksi.ax = 10;
|
|
||||||
rz.ksi.rad = 10;
|
|
||||||
rz.ksi.rrad = 10;
|
|
||||||
rz.ksi.tilt = 1;
|
|
||||||
rz.ksi.rot = 1;
|
|
||||||
rz = updateDamping(rz);
|
|
||||||
|
|
||||||
%% Hexapod Symétrie
|
|
||||||
hexapod = struct();
|
|
||||||
hexapod.m = smiData.Solid(16).mass;
|
|
||||||
hexapod.k.ax = (138e6/6)*1.2; %z
|
|
||||||
hexapod.ksi.ax = 10;
|
|
||||||
hexapod = updateDamping(hexapod);
|
|
||||||
|
|
||||||
%% Axis Corrector
|
|
||||||
axisc = struct();
|
|
||||||
axisc.m = smiData.Solid(30).mass;
|
|
||||||
axisc.k.ax = 1; % (N*m/deg))
|
|
||||||
axisc.ksi.ax = 1;
|
|
||||||
axisc = updateDamping(axisc);
|
|
||||||
|
|
||||||
%% NASS
|
|
||||||
nass = struct();
|
|
||||||
nass.m = smiData.Solid(27).mass;
|
|
||||||
nass.k.ax = 5e7; %z
|
|
||||||
nass.ksi.ax = 10;
|
|
||||||
nass = updateDamping(nass);
|
|
||||||
|
|
||||||
%% Wobble
|
|
||||||
wob = struct();
|
|
||||||
wob.m = smiData.Solid(5).mass;
|
|
||||||
wob.k.ax = 1e10;
|
|
||||||
wob.ksi.ax = 10;
|
|
||||||
wob = updateDamping(wob);
|
|
||||||
|
|
||||||
%%
|
%%
|
||||||
function element = updateDamping(element)
|
function element = updateDamping(element)
|
||||||
|
@ -64,26 +64,4 @@ for i = 1:6,
|
|||||||
upper_leg(i).origin = pos_base(i,:) + (1-3/8)*legs(i,:);
|
upper_leg(i).origin = pos_base(i,:) + (1-3/8)*legs(i,:);
|
||||||
upper_leg(i).end_point = pos_base(i,:) + (1/4)*legs(i,:);
|
upper_leg(i).end_point = pos_base(i,:) + (1/4)*legs(i,:);
|
||||||
upper_leg(i).rotation = [rev1(i,:)', rev2(i,:)', cyl1(i,:)'];
|
upper_leg(i).rotation = [rev1(i,:)', rev2(i,:)', cyl1(i,:)'];
|
||||||
end
|
end
|
||||||
|
|
||||||
% Inertia and mass calculation
|
|
||||||
top_thickness = 0.05;
|
|
||||||
base_thickness = 0.05;
|
|
||||||
inner_radius = 0.03;
|
|
||||||
outer_radius = 0.05;
|
|
||||||
density = 76e3/9.81; % steel density in Kg/m^3
|
|
||||||
|
|
||||||
%leg inertia and mass
|
|
||||||
[lower_leg_mass, lower_leg_inertia] = inertiaCylinder(density, ...
|
|
||||||
0.75*leg_length(1),outer_radius, inner_radius);
|
|
||||||
[upper_leg_mass, upper_leg_inertia] = inertiaCylinder(density, ...
|
|
||||||
0.75*leg_length(1),inner_radius, 0);
|
|
||||||
|
|
||||||
% top and base plate mass and inertia
|
|
||||||
[top_mass, top_inertia] = inertiaCylinder(density, ...
|
|
||||||
top_thickness, radius_t, 0);
|
|
||||||
[base_mass, base_inertia] = inertiaCylinder(density, ...
|
|
||||||
base_thickness,radius_b, 0);
|
|
||||||
|
|
||||||
% PID controller gains
|
|
||||||
Kp = 2e6; Ki = 1e4; Kd = 4.5e4;
|
|
Loading…
Reference in New Issue
Block a user