Add analysis of the cube's size
This commit is contained in:
@@ -431,60 +431,53 @@ However, the rotational stiffnesses are increasing with the cube's size but the
|
||||
| -8e-17 | 0 | -3e-17 | -6.1e-19 | 0.094 | 0 |
|
||||
| -6.2e-18 | 7.2e-17 | 5.6e-17 | 2.3e-17 | 0 | 0.37 |
|
||||
|
||||
* TODO Cubic size analysis :noexport:
|
||||
We here study the effect of the size of the cube used for the Stewart configuration.
|
||||
* Cubic size analysis
|
||||
We here study the effect of the size of the cube used for the Stewart Cubic configuration.
|
||||
|
||||
We fix the height of the Stewart platform, the center of the cube is at the center of the Stewart platform.
|
||||
We fix the height of the Stewart platform, the center of the cube is at the center of the Stewart platform and the frames $\{A\}$ and $\{B\}$ are also taken at the center of the cube.
|
||||
|
||||
We only vary the size of the cube.
|
||||
|
||||
#+begin_src matlab :results silent
|
||||
H_cubes = 250:20:350;
|
||||
stewarts = {zeros(length(H_cubes), 1)};
|
||||
Hcs = 1e-3*[250:20:350]; % Heights for the Cube [m]
|
||||
Ks = zeros(6, 6, length(Hcs));
|
||||
#+end_src
|
||||
|
||||
The height of the Stewart platform is fixed:
|
||||
#+begin_src matlab
|
||||
H = 100e-3; % height of the Stewart platform [m]
|
||||
#+end_src
|
||||
|
||||
The frames $\{A\}$ and $\{B\}$ are positioned at the Stewart platform center as well as the cube's center:
|
||||
#+begin_src matlab
|
||||
MO_B = -50e-3; % Position {B} with respect to {M} [m]
|
||||
FOc = H + MO_B; % Center of the cube with respect to {F}
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :results silent
|
||||
for i = 1:length(H_cubes)
|
||||
H_cube = H_cubes(i);
|
||||
H_tot = 100;
|
||||
H = 80;
|
||||
|
||||
opts = struct(...
|
||||
'H_tot', H_tot, ... % Total height of the Hexapod [mm]
|
||||
'L', H_cube/sqrt(3), ... % Size of the Cube [mm]
|
||||
'H', H, ... % Height between base joints and platform joints [mm]
|
||||
'H0', H_cube/2-H/2 ... % Height between the corner of the cube and the plane containing the base joints [mm]
|
||||
);
|
||||
stewart = initializeCubicConfiguration(opts);
|
||||
|
||||
opts = struct(...
|
||||
'Jd_pos', [0, 0, H_cube/2-opts.H0-opts.H_tot], ... % Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]
|
||||
'Jf_pos', [0, 0, H_cube/2-opts.H0-opts.H_tot] ... % Position of the Jacobian for force location from the top of the mobile platform [mm]
|
||||
);
|
||||
stewart = computeGeometricalProperties(stewart, opts);
|
||||
stewarts(i) = {stewart};
|
||||
stewart = initializeStewartPlatform();
|
||||
stewart = initializeFramesPositions(stewart, 'H', H, 'MO_B', MO_B);
|
||||
for i = 1:length(Hcs)
|
||||
Hc = Hcs(i);
|
||||
stewart = generateCubicConfiguration(stewart, 'Hc', Hc, 'FOc', FOc, 'FHa', 0, 'MHb', 0);
|
||||
stewart = computeJointsPose(stewart);
|
||||
stewart = initializeStrutDynamics(stewart, 'K', ones(6,1));
|
||||
stewart = computeJacobian(stewart);
|
||||
Ks(:,:,i) = stewart.kinematics.K;
|
||||
end
|
||||
#+end_src
|
||||
|
||||
The Stiffness matrix is computed for all generated Stewart platforms.
|
||||
#+begin_src matlab :results none :exports code
|
||||
Ks = zeros(6, 6, length(H_cube));
|
||||
for i = 1:length(H_cubes)
|
||||
Ks(:, :, i) = stewarts{i}.Jd'*stewarts{i}.Jd;
|
||||
end
|
||||
#+end_src
|
||||
We find that for all the cube's size, $k_x = k_y = k_z = k$ where $k$ is the strut stiffness.
|
||||
We also find that $k_{\theta_x} = k_{\theta_y}$ and $k_{\theta_z}$ are varying with the cube's size (figure [[fig:stiffness_cube_size]]).
|
||||
|
||||
The only elements of $K$ that vary are $k_{\theta_x} = k_{\theta_y}$ and $k_{\theta_z}$.
|
||||
|
||||
Finally, we plot $k_{\theta_x} = k_{\theta_y}$ and $k_{\theta_z}$
|
||||
#+begin_src matlab :results none :exports code
|
||||
figure;
|
||||
hold on;
|
||||
plot(H_cubes, squeeze(Ks(4, 4, :)), 'DisplayName', '$k_{\theta_x}$');
|
||||
plot(H_cubes, squeeze(Ks(6, 6, :)), 'DisplayName', '$k_{\theta_z}$');
|
||||
plot(Hcs, squeeze(Ks(4, 4, :)), 'DisplayName', '$k_{\theta_x} = k_{\theta_y}$');
|
||||
plot(Hcs, squeeze(Ks(6, 6, :)), 'DisplayName', '$k_{\theta_z}$');
|
||||
hold off;
|
||||
legend('location', 'northwest');
|
||||
xlabel('Cube Size [mm]'); ylabel('Rotational stiffnes [normalized]');
|
||||
xlabel('Cube Size [m]'); ylabel('Rotational stiffnes [normalized]');
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:stiffness_cube_size
|
||||
@@ -498,12 +491,10 @@ Finally, we plot $k_{\theta_x} = k_{\theta_y}$ and $k_{\theta_z}$
|
||||
#+RESULTS: fig:stiffness_cube_size
|
||||
[[file:figs/stiffness_cube_size.png]]
|
||||
|
||||
|
||||
We observe that $k_{\theta_x} = k_{\theta_y}$ and $k_{\theta_z}$ increase linearly with the cube size.
|
||||
|
||||
#+begin_important
|
||||
In order to maximize the rotational stiffness of the Stewart platform, the size of the cube should be the highest possible.
|
||||
In that case, the legs will the further separated. Size of the cube is then limited by allowed space.
|
||||
#+end_important
|
||||
|
||||
* Functions
|
||||
|
Reference in New Issue
Block a user