diff --git a/figs/ModeShapeHF1_crop.gif b/figs/ModeShapeHF1_crop.gif new file mode 100644 index 0000000..0e521b4 Binary files /dev/null and b/figs/ModeShapeHF1_crop.gif differ diff --git a/figs/ModeShapeHF1_crop.png b/figs/ModeShapeHF1_crop.png new file mode 100644 index 0000000..7970dd0 Binary files /dev/null and b/figs/ModeShapeHF1_crop.png differ diff --git a/figs/mode_shapes_rigid_table.gif b/figs/mode_shapes_rigid_table.gif new file mode 100644 index 0000000..21c6a61 Binary files /dev/null and b/figs/mode_shapes_rigid_table.gif differ diff --git a/figs/mode_shapes_rigid_table.png b/figs/mode_shapes_rigid_table.png new file mode 100644 index 0000000..0fe806f Binary files /dev/null and b/figs/mode_shapes_rigid_table.png differ diff --git a/ref.bib b/ref.bib index e69de29..f28c4a0 100644 --- a/ref.bib +++ b/ref.bib @@ -0,0 +1,7 @@ +@techreport{marneffe04_stewar_platf_activ_vibrat_isolat, + author = {Marneffe, Bruno and Preumont Andr{\'e}}, + institution = {ULB}, + keywords = {parallel robot}, + title = {A novel design of Stewart Platform for Active Vibration Isolator}, + year = {2004}, +} diff --git a/vibration-table.html b/vibration-table.html index c6210f7..a5a0580 100644 --- a/vibration-table.html +++ b/vibration-table.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- +This report is also available as a pdf.
This document is divided as follows:
Figure 1: CAD View of the vibration table
@@ -116,10 +131,10 @@ This document is divided as follows:Here are the documentation of the equipment used for this vibration table:
@@ -137,8 +152,8 @@ Here are the documentation of the equipment used for this vibration table:
Figure 2: Compliance of the B4545A optical table
+If we include including the bottom interface plate: +
+-From the datasheet in Table 5, we can estimate the parameters of the physical shaker. +From the datasheet in Table 5, we can estimate the parameters of the physical shaker.
@@ -868,11 +892,11 @@ shaker.c = 0.2*sqrt(shaker.k
-
@@ -887,7 +911,7 @@ An accelerometer consists of 2 solids:
The relative motion between the housing and the inertial mass gives a measurement of the acceleration of the measured body (up to the suspension mode of the inertial mass).
Let’s first use perfect 3d accelerometers:
@@ -1076,8 +1100,8 @@ This corresponds to 6 states for each triaxial accelerometers.
Let’s now identify the resonance frequency and mode shapes associated with the suspension modes of the optical table.
@@ -1092,12 +1116,12 @@ mdl = 'vibration_table';
%% Input/Output definition
clear io; io_i = 1;
io(io_i) = linio([mdl, '/F'], 1, 'openinput'); io_i = io_i + 1;
-io(io_i) = linio([mdl, '/acc_O'], 1, 'openoutput'); io_i = io_i + 1;
+io(io_i) = linio([mdl, '/a1,a2'], 1, 'openoutput'); io_i = io_i + 1;
%% Run the linearization
G = linearize(mdl, io);
G.InputName = {'F'};
-G.OutputName = {'ax', 'ay', 'az', 'wx', 'wy', 'wz'};
+G.OutputName = {'ax'};
-The results are shown in Table 7.
+The results are shown in Table 7.
The motion associated to the mode shapes are just indicative.
-A configuration is added to be able to put the nano-hexapod on top of the vibration table as shown in Figure 4.
+A configuration is added to be able to put the nano-hexapod on top of the vibration table as shown in Figure 4.
Figure 5: 3D representation of the simscape model with the nano-hexapod
-
+The goal is to compute the \(6 \times 6\) transfer function matrix corresponding to the transmissibility of the Nano-Hexapod.
+
+To do so, several accelerometers are located both on the vibration table and on the top of the nano-hexapod.
+
+The vibration table is then excited using a Shaker and all the accelerometers signals are recorded.
+
+Using transformation (jacobian) matrices, it is then possible to compute both the motion of the top and bottom platform of the nano-hexapod.
+
+Finally, it is possible to compute the \(6 \times 6\) transmissibility matrix.
+
+Such procedure is explained in (Marneffe and André 2004).
+How to compute the Jacobian matrices is explained in Section 3.
+
+ Figure 6: Mode shapes of the 6 suspension modes (from 1Hz to 9Hz)
+ Figure 7: First flexible mode of the table at 700Hz Created: 2021-04-19 lun. 16:33 Created: 2021-06-14 lun. 18:494.1.3 3D accelerometer (356B18)
+4.1.3 3D accelerometer (356B18)
+
type
property:
-4.2 Identification
+4.2 Identification
-4.2.1 Number of states
+4.2.1 Number of states
4.2.2 Resonance frequencies and mode shapes
+4.2.2 Resonance frequencies and mode shapes
+
4.3 Verify transformation
+4.3 Verify transformation
%% Options for Linearized
@@ -1267,18 +1291,18 @@ bodeFig({G_acc(6), G_id(6)})
5 Nano-Hexapod
+5 Nano-Hexapod
5.1 Nano-Hexapod
+n_hexapod = initializeNanoHexapodFinal('flex_bot_type', '4dof', ...
+ 'flex_top_type', '3dof', ...
+ 'motion_sensor_type', 'struts', ...
+ 'actuator_type', '2dof');
+
+6 Identification of the table’s dynamics
-5.2 Computation of the transmissibility from accelerometer data
+5.2.1 Jacobian matrices
+%% Bottom Accelerometers
+Opb = [-0.1875, -0.1875, -0.245;
+ -0.1875, -0.1875, -0.245;
+ 0.1875, -0.1875, -0.245;
+ 0.1875, -0.1875, -0.245;
+ 0.1875, 0.1875, -0.245;
+ 0.1875, 0.1875, -0.245]';
+
+Osb = [0, 1, 0;
+ 0, 0, 1;
+ 1, 0, 0;
+ 0, 0, 1;
+ 1, 0, 0;
+ 0, 0, 1;]';
+
+Jb = zeros(length(Opb), 6);
+
+for i = 1:length(Opb)
+ Ri = [0, Opb(3,i), -Opb(2,i);
+ -Opb(3,i), 0, Opb(1,i);
+ Opb(2,i), -Opb(1,i), 0];
+ Jb(i, 1:3) = Osb(:,i)';
+ Jb(i, 4:6) = Osb(:,i)'*Ri;
+end
+
+Jbinv = inv(Jb);
+
+
+
+
+
+
+
+
+
+
+
+\(a_1\)
+\(a_2\)
+\(a_3\)
+\(a_4\)
+\(a_5\)
+\(a_6\)
+
+
+
+\(\dot{x}_x\)
+0.0
+0.7
+0.5
+-0.7
+0.5
+0.0
+
+
+
+\(\dot{x}_y\)
+1.0
+0.0
+0.5
+0.7
+-0.5
+-0.7
+
+
+
+\(\dot{x}_z\)
+0.0
+0.5
+0.0
+0.0
+0.0
+0.5
+
+
+
+\(\dot{\omega}_x\)
+0.0
+0.0
+0.0
+-2.7
+0.0
+2.7
+
+
+
+\(\dot{\omega}_y\)
+0.0
+2.7
+0.0
+-2.7
+0.0
+0.0
+
+
+
+\(\dot{\omega}_z\)
+0.0
+0.0
+2.7
+0.0
+-2.7
+0.0
+%% Top Accelerometers
+Opt = [-0.1, 0, -0.150;
+ -0.1, 0, -0.150;
+ 0.05, 0.075, -0.150;
+ 0.05, 0.075, -0.150;
+ 0.05, -0.075, -0.150;
+ 0.05, -0.075, -0.150]';
+
+Ost = [0, 1, 0;
+ 0, 0, 1;
+ 1, 0, 0;
+ 0, 0, 1;
+ 1, 0, 0;
+ 0, 0, 1;]';
+
+Jt = zeros(length(Opt), 6);
+
+for i = 1:length(Opt)
+ Ri = [0, Opt(3,i), -Opt(2,i);
+ -Opt(3,i), 0, Opt(1,i);
+ Opt(2,i), -Opt(1,i), 0];
+ Jt(i, 1:3) = Ost(:,i)';
+ Jt(i, 4:6) = Ost(:,i)'*Ri;
+end
+
+Jtinv = inv(Jt);
+
+
+
+
+
+
+
+
+
+
+\(b_1\)
+\(b_2\)
+\(b_3\)
+\(b_4\)
+\(b_5\)
+\(b_6\)
+
+
+
+\(\dot{x}_x\)
+0.0
+1.0
+0.5
+-0.5
+0.5
+-0.5
+
+
+
+\(\dot{x}_y\)
+1.0
+0.0
+-0.7
+-1.0
+0.7
+1.0
+
+
+
+\(\dot{x}_z\)
+0.0
+0.3
+0.0
+0.3
+0.0
+0.3
+
+
+
+\(\dot{\omega}_x\)
+0.0
+0.0
+0.0
+6.7
+0.0
+-6.7
+
+
+
+\(\dot{\omega}_y\)
+0.0
+6.7
+0.0
+-3.3
+0.0
+-3.3
+
+
+
+\(\dot{\omega}_z\)
+0.0
+0.0
+-6.7
+0.0
+6.7
+0.0
+5.2.2 Using
+linearize
functionacc_3d.type = 2; % 1: inertial mass, 2: perfect
+
+%% Name of the Simulink File
+mdl = 'vibration_table';
+
+%% Input/Output definition
+clear io; io_i = 1;
+io(io_i) = linio([mdl, '/F_shaker'], 1, 'openinput'); io_i = io_i + 1;
+io(io_i) = linio([mdl, '/acc'], 1, 'openoutput'); io_i = io_i + 1;
+io(io_i) = linio([mdl, '/acc_top'], 1, 'openoutput'); io_i = io_i + 1;
+
+%% Run the linearization
+G = linearize(mdl, io);
+G.InputName = {'F1', 'F2', 'F3', 'F4', 'F5', 'F6'};
+G.OutputName = {'a1', 'a2', 'a3', 'a4', 'a5', 'a6', ...
+ 'b1', 'b2', 'b3', 'b4', 'b5', 'b6'};
+
+Gb = Jbinv*G({'a1', 'a2', 'a3', 'a4', 'a5', 'a6'}, :);
+Gt = Jtinv*G({'b1', 'b2', 'b3', 'b4', 'b5', 'b6'}, :);
+
+T = inv(Gb)*Gt;
+T = minreal(T);
+T = prescale(T, {2*pi*0.1, 2*pi*1e3});
+
+5.3 Comparison with “true” transmissibility
+%% Name of the Simulink File
+mdl = 'test_transmissibility';
+
+%% Input/Output definition
+clear io; io_i = 1;
+io(io_i) = linio([mdl, '/d'], 1, 'openinput'); io_i = io_i + 1;
+io(io_i) = linio([mdl, '/acc'], 1, 'openoutput'); io_i = io_i + 1;
+
+%% Run the linearization
+G = linearize(mdl, io);
+G.InputName = {'Dx', 'Dy', 'Dz', 'Rx', 'Ry', 'Rz'};
+G.OutputName = {'Ax', 'Ay', 'Az', 'Bx', 'By', 'Bz'};
+
+Tp = G/s^2;
+
+6 Identification of the table’s dynamics
+
+6.1 Mode Shapes
+
+
+
+
+
+
+
+
+
+Freq. [Hz]
+Description
+
+
+
+1
+1.3
+X-translation
+
+
+
+2
+1.3
+Y-translation
+
+
+
+3
+1.95
+Z-rotation
+
+
+
+4
+6.85
+Z-translation
+
+
+
+5
+8.9
+Tilt
+
+
+
+6
+8.9
+Tilt
+
+
+
+7
+700
+Flexible Mode
+Bibliography
+