stewart-simscape/matlab/cubic_conf_stiffnessl.m

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');