97 lines
4.4 KiB
Matlab
97 lines
4.4 KiB
Matlab
%% Clear Workspace and Close figures
|
|
clear; close all; clc;
|
|
|
|
%% Intialize Laplace variable
|
|
s = zpk('s');
|
|
|
|
simulinkproject('../');
|
|
|
|
% Cubic Stewart platform centered with the cube center - Jacobian estimated at the cube center
|
|
% We create a cubic Stewart platform (figure [[fig:cubic_conf_centered_J_center]]) in such a way that the center of the cube (black star) is located at the center of the Stewart platform (blue dot).
|
|
% The Jacobian matrix is estimated at the location of the center of the cube.
|
|
|
|
|
|
H = 100e-3; % height of the Stewart platform [m]
|
|
MO_B = -H/2; % Position {B} with respect to {M} [m]
|
|
Hc = H; % Size of the useful part of the cube [m]
|
|
FOc = H + MO_B; % Center of the cube with respect to {F}
|
|
|
|
stewart = initializeStewartPlatform();
|
|
stewart = initializeFramesPositions(stewart, 'H', H, 'MO_B', MO_B);
|
|
stewart = generateCubicConfiguration(stewart, 'Hc', Hc, 'FOc', FOc, 'FHa', 0, 'MHb', 0);
|
|
stewart = computeJointsPose(stewart);
|
|
stewart = initializeStrutDynamics(stewart, 'K', ones(6,1));
|
|
stewart = computeJacobian(stewart);
|
|
stewart = initializeCylindricalPlatforms(stewart, 'Fpr', 175e-3, 'Mpr', 150e-3);
|
|
|
|
displayArchitecture(stewart, 'labels', false);
|
|
scatter3(0, 0, FOc, 200, 'kh');
|
|
|
|
% Cubic Stewart platform centered with the cube center - Jacobian not estimated at the cube center
|
|
% We create a cubic Stewart platform with center of the cube located at the center of the Stewart platform (figure [[fig:cubic_conf_centered_J_not_center]]).
|
|
% The Jacobian matrix is not estimated at the location of the center of the cube.
|
|
|
|
|
|
H = 100e-3; % height of the Stewart platform [m]
|
|
MO_B = 20e-3; % Position {B} with respect to {M} [m]
|
|
Hc = H; % Size of the useful part of the cube [m]
|
|
FOc = H/2; % Center of the cube with respect to {F}
|
|
|
|
stewart = initializeStewartPlatform();
|
|
stewart = initializeFramesPositions(stewart, 'H', H, 'MO_B', MO_B);
|
|
stewart = generateCubicConfiguration(stewart, 'Hc', Hc, 'FOc', FOc, 'FHa', 0, 'MHb', 0);
|
|
stewart = computeJointsPose(stewart);
|
|
stewart = initializeStrutDynamics(stewart, 'K', ones(6,1));
|
|
stewart = computeJacobian(stewart);
|
|
stewart = initializeCylindricalPlatforms(stewart, 'Fpr', 175e-3, 'Mpr', 150e-3);
|
|
|
|
displayArchitecture(stewart, 'labels', false);
|
|
scatter3(0, 0, FOc, 200, 'kh');
|
|
|
|
% Cubic Stewart platform not centered with the cube center - Jacobian estimated at the cube center
|
|
% Here, the "center" of the Stewart platform is not at the cube center (figure [[fig:cubic_conf_not_centered_J_center]]).
|
|
% The Jacobian is estimated at the cube center.
|
|
|
|
|
|
H = 80e-3; % height of the Stewart platform [m]
|
|
MO_B = -30e-3; % Position {B} with respect to {M} [m]
|
|
Hc = 100e-3; % Size of the useful part of the cube [m]
|
|
FOc = H + MO_B; % Center of the cube with respect to {F}
|
|
|
|
stewart = initializeStewartPlatform();
|
|
stewart = initializeFramesPositions(stewart, 'H', H, 'MO_B', MO_B);
|
|
stewart = generateCubicConfiguration(stewart, 'Hc', Hc, 'FOc', FOc, 'FHa', 0, 'MHb', 0);
|
|
stewart = computeJointsPose(stewart);
|
|
stewart = initializeStrutDynamics(stewart, 'K', ones(6,1));
|
|
stewart = computeJacobian(stewart);
|
|
stewart = initializeCylindricalPlatforms(stewart, 'Fpr', 175e-3, 'Mpr', 150e-3);
|
|
|
|
displayArchitecture(stewart, 'labels', false);
|
|
scatter3(0, 0, FOc, 200, 'kh');
|
|
|
|
% Cubic Stewart platform not centered with the cube center - Jacobian estimated at the Stewart platform center
|
|
% Here, the "center" of the Stewart platform is not at the cube center.
|
|
% The Jacobian is estimated at the center of the Stewart platform.
|
|
|
|
% The center of the cube is at $z = 110$.
|
|
% The Stewart platform is from $z = H_0 = 75$ to $z = H_0 + H_{tot} = 175$.
|
|
% The center height of the Stewart platform is then at $z = \frac{175-75}{2} = 50$.
|
|
% The center of the cube from the top platform is at $z = 110 - 175 = -65$.
|
|
|
|
|
|
H = 100e-3; % height of the Stewart platform [m]
|
|
MO_B = -H/2; % Position {B} with respect to {M} [m]
|
|
Hc = 1.5*H; % Size of the useful part of the cube [m]
|
|
FOc = H/2 + 10e-3; % Center of the cube with respect to {F}
|
|
|
|
stewart = initializeStewartPlatform();
|
|
stewart = initializeFramesPositions(stewart, 'H', H, 'MO_B', MO_B);
|
|
stewart = generateCubicConfiguration(stewart, 'Hc', Hc, 'FOc', FOc, 'FHa', 0, 'MHb', 0);
|
|
stewart = computeJointsPose(stewart);
|
|
stewart = initializeStrutDynamics(stewart, 'K', ones(6,1));
|
|
stewart = computeJacobian(stewart);
|
|
stewart = initializeCylindricalPlatforms(stewart, 'Fpr', 215e-3, 'Mpr', 195e-3);
|
|
|
|
displayArchitecture(stewart, 'labels', false);
|
|
scatter3(0, 0, FOc, 200, 'kh');
|