52 lines
1.5 KiB
Mathematica
52 lines
1.5 KiB
Mathematica
|
%% Clear Workspace and Close figures
|
||
|
clear; close all; clc;
|
||
|
|
||
|
%% Intialize Laplace variable
|
||
|
s = zpk('s');
|
||
|
|
||
|
simulinkproject('../');
|
||
|
|
||
|
% Analysis
|
||
|
% We initialize the wanted cube's size.
|
||
|
|
||
|
Hcs = 1e-3*[250:20:350]; % Heights for the Cube [m]
|
||
|
Ks = zeros(6, 6, length(Hcs));
|
||
|
|
||
|
|
||
|
|
||
|
% The height of the Stewart platform is fixed:
|
||
|
|
||
|
H = 100e-3; % height of the Stewart platform [m]
|
||
|
|
||
|
|
||
|
|
||
|
% The frames $\{A\}$ and $\{B\}$ are positioned at the Stewart platform center as well as the cube's center:
|
||
|
|
||
|
MO_B = -50e-3; % Position {B} with respect to {M} [m]
|
||
|
FOc = H + MO_B; % Center of the cube with respect to {F}
|
||
|
|
||
|
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
|
||
|
|
||
|
|
||
|
|
||
|
% 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]]).
|
||
|
|
||
|
|
||
|
figure;
|
||
|
hold on;
|
||
|
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 [m]'); ylabel('Rotational stiffnes [normalized]');
|