Add script to compute automatically the solution

This commit is contained in:
Unknown 2018-05-08 15:34:18 +02:00
parent 87101b5fe9
commit 1427883583
6 changed files with 158 additions and 107 deletions

View File

@ -1,67 +0,0 @@
run study_architecture.m
format short
%% tx
tx=[leg_radius', max_disp(:, 1)]';
tx1=find(tx(2,:)==max(tx(2,:)));
tx2=max(tx(2,:));
ltx=[tx1,tx2]
%% ty
ty=[leg_radius', max_disp(:, 2)]';
ty1=find(ty(2,:)==max(ty(2,:)));
ty2=max(ty(2,:));
lty=[ty1,ty2]
%% tz
tz=[leg_radius', max_disp(:,3)]';
tz1=find(tz(2,:)==max(tz(2,:)));
tz2=max(tz(2,:));
ltz=[tz1,tz2]
%% rx
rx=[leg_radius', max_disp(:,4)]';
rx1=find(rx(2,:)==max(rx(2,:)));
rx2=max(rx(2,:));
lrx=[rx1,rx2]
%% rx
ry=[leg_radius', max_disp(:,5)]';
ry1=find(ry(2,:)==max(ry(2,:)));
ry2=max(ry(2,:));
lry=[ry1,ry2]
%% rx
rz=[leg_radius', max_disp(:,6)]';
rz1=find(rz(2,:)==max(rz(2,:)));
rz2=max(rz(2,:));
lrz=[rz1,rz2]
%% kx
kx=[leg_radius', stiffness(:, 1, 1)]';
kx1=find(kx(2,:)==max(kx(2,:)));
kx2=max(kx(2,:));
lkx=[kx1,kx2]
%% ky
ky=[leg_radius', stiffness(:, 2, 2)]';
ky1=find(ky(2,:)==max(ky(2,:)));
ky2=max(ky(2,:));
lky=[ky1,ky2]
%% kz
kz=[leg_radius', stiffness(:, 3, 3)]';
kz1=find(kz(2,:)==max(kz(2,:)));
kz2=max(kz(2,:));
lkz=[kz1,kz2]
%% mx
mx=[leg_radius', stiffness(:, 4, 4)]';
mx1=find(mx(2,:)==max(mx(2,:)));
mx2=max(mx(2,:));
lkm=[mx1,mx2]
%% my
my=[leg_radius', stiffness(:, 5, 5)]';
my1=find(my(2,:)==max(my(2,:)));
my2=max(my(2,:));
lkm=[mx1,my2]

View File

@ -1,5 +1,5 @@
run study_architecture.m run study_architecture.m
format short format shortEnG
%% tx %% tx
tx=[leg_radius', max_disp(:, 1)]'; tx=[leg_radius', max_disp(:, 1)]';
tx1=find(tx(2,:)==max(tx(2,:))); tx1=find(tx(2,:)==max(tx(2,:)));

59
Test.asv Normal file
View File

@ -0,0 +1,59 @@
%% paramétres variables
BP_leg_radius = 100:10:150;
TP_leg_radius = 50:10:100;
BP_leg_ang = 0:1:30;
TP_leg_ang = 0:1:30;
%% intervalle
intervalle1=10e-6;
intervalle2=10e-3;
% variation=1e-3;
%% Study the effect of the radius of the top platform position of the legs
max_disp = zeros(length(BP_leg_radius),length(TP_leg_radius),length(BP_leg_ang),length(TP_leg_ang), 6);
stiffness = zeros(length(BP_leg_radius),length(TP_leg_radius),length(BP_leg_ang),length(TP_leg_ang), 6, 6);
for Blri = 1:length(BP_leg_radius)
for Tlri = 1:length(TP_leg_radius)
for Blai = 1:length(BP_leg_ang)
for Tlai = 1:length(TP_leg_ang)
BP.leg.rad = BP_leg_radius(Blri);
TP.leg.rad = TP_leg_radius(Tlri);
BP.leg.ang = BP_leg_ang(Blai);
TP.leg.ang = TP_leg_ang(Tlai);
run stewart_init.m;
max_disp(Blri,Tlri,Blai,Tlai, :) = getMaxPureDisplacement(Leg, J)';
stiffness(Blri,Tlri,Blai,Tlai, :, :) = getStiffnessMatrix(Leg, J);
end
end
end
end
%%
M = min(min(stiffness(:, : , :, :, 1, 1), stiffness(:, : , :, :, 2, 2)), stiffness(:, : , :, :, 3, 3));
[C,I] = max(M(:));
[I1,I2,I3,I4] = ind2sub(size(stiffness(:, : , :, :, 3, 3)),I);
BP.leg.rad = BP_leg_radius(I1)
TP.leg.rad = TP_leg_radius(I2)
BP.leg.ang = BP_leg_ang(I3)
TP_leg_ang(I4)
% %%
% for Blri = 1:length(BP_leg_radius)
% for Tlri = 1:length(TP_leg_radius)
% for Blai = 1:length(BP_leg_ang)
% for Tlai = 1:length(TP_leg_ang)
% if max_disp==intervalle1
% i=i+1;
% s1(1,i)=BP_leg_radius(Blri);
% s1(2,i)=TP_leg_radius(Tlri);
% s1(3,i)=BP_leg_ang(Blai);
% s1(4,i)=TP_leg_ang(Tlai);
% else
% end
% end
% end
% end
% end
%

59
Test.m Normal file
View File

@ -0,0 +1,59 @@
%% paramétres variables
BP_leg_radius = 100:10:150;
TP_leg_radius = 50:10:100;
BP_leg_ang = 0:1:30;
TP_leg_ang = 0:1:30;
%% intervalle
intervalle1=10e-6;
intervalle2=10e-3;
% variation=1e-3;
%% Study the effect of the radius of the top platform position of the legs
max_disp = zeros(length(BP_leg_radius),length(TP_leg_radius),length(BP_leg_ang),length(TP_leg_ang), 6);
stiffness = zeros(length(BP_leg_radius),length(TP_leg_radius),length(BP_leg_ang),length(TP_leg_ang), 6, 6);
for Blri = 1:length(BP_leg_radius)
for Tlri = 1:length(TP_leg_radius)
for Blai = 1:length(BP_leg_ang)
for Tlai = 1:length(TP_leg_ang)
BP.leg.rad = BP_leg_radius(Blri);
TP.leg.rad = TP_leg_radius(Tlri);
BP.leg.ang = BP_leg_ang(Blai);
TP.leg.ang = TP_leg_ang(Tlai);
run stewart_init.m;
max_disp(Blri,Tlri,Blai,Tlai, :) = getMaxPureDisplacement(Leg, J)';
stiffness(Blri,Tlri,Blai,Tlai, :, :) = getStiffnessMatrix(Leg, J);
end
end
end
end
%%
M = min(min(stiffness(:, : , :, :, 4, 4), stiffness(:, : , :, :, 5, 5)), stiffness(:, : , :, :, 6, 6));
[C,I] = max(M(:));
[I1,I2,I3,I4] = ind2sub(size(stiffness(:, : , :, :, 3, 3)),I);
BP_leg_radius(I1)
TP_leg_radius(I2)
BP_leg_ang(I3)
TP_leg_ang(I4)
% %%
% for Blri = 1:length(BP_leg_radius)
% for Tlri = 1:length(TP_leg_radius)
% for Blai = 1:length(BP_leg_ang)
% for Tlai = 1:length(TP_leg_ang)
% if max_disp==intervalle1
% i=i+1;
% s1(1,i)=BP_leg_radius(Blri);
% s1(2,i)=TP_leg_radius(Tlri);
% s1(3,i)=BP_leg_ang(Blai);
% s1(4,i)=TP_leg_ang(Tlai);
% else
% end
% end
% end
% end
% end
%

View File

@ -18,7 +18,7 @@ TP = struct();
TP.rad.int = 0;%mm TP.rad.int = 0;%mm
TP.rad.ext = 150; %mm TP.rad.ext = 150; %mm
TP.thickness = 10; % mm TP.thickness = 10; % mm
TP.leg.rad = 120; %mm TP.leg.rad = 100; %mm
TP.leg.ang = 5; %deg TP.leg.ang = 5; %deg
TP.density = 8000; %kg/m^3 TP.density = 8000; %kg/m^3
TP.color = [0.5 0.5 0.5]; %rgb TP.color = [0.5 0.5 0.5]; %rgb
@ -54,7 +54,7 @@ SP.m = SP.density.bottom*2*pi*((SP.rad.bottom*1e-3)^2)*(SP.height.bottom*1e-3);
SP.color.bottom = [0.5 0.5 0.5]; %rgb SP.color.bottom = [0.5 0.5 0.5]; %rgb
SP.color.top = [0.5 0.5 0.5]; %rgb SP.color.top = [0.5 0.5 0.5]; %rgb
SP.k.ax = 0; % N*m/deg SP.k.ax = 0; % N*m/deg
SP.ksi.ax = 1; SP.ksi.ax = 10;
SP = updateDamping(SP); SP = updateDamping(SP);
%% %%

View File

@ -1,9 +1,9 @@
%% %%
run stewart_parameters.m run stewart_parameters.m
format short format shortE
%% Study the effect of the radius of the top platform position of the legs %% Study the effect of the radius of the top platform position of the legs
leg_radius = 50:1:150; leg_radius = 50:1:120;
max_disp = zeros(length(leg_radius), 6); max_disp = zeros(length(leg_radius), 6);
stiffness = zeros(length(leg_radius), 6, 6); stiffness = zeros(length(leg_radius), 6, 6);
@ -15,39 +15,39 @@ for i_leg = 1:length(leg_radius)
end end
%% Plot everything %% Plot everything
% figure; figure;
% hold on; hold on;
% plot(leg_radius, max_disp(:, 1)) plot(leg_radius, max_disp(:, 1))
% plot(leg_radius, max_disp(:, 2)) plot(leg_radius, max_disp(:, 2))
% plot(leg_radius, max_disp(:, 3)) plot(leg_radius, max_disp(:, 3))
% hold off; hold off;
% legend({'tx', 'ty', 'tz'}) legend({'tx', 'ty', 'tz'})
% xlabel('Leg Radius at the platform'); ylabel('Maximum translation (m)'); xlabel('Leg Radius at the platform'); ylabel('Maximum translation (m)');
%
% figure; figure;
% hold on; hold on;
% plot(leg_radius, max_disp(:, 4)) plot(leg_radius, max_disp(:, 4))
% plot(leg_radius, max_disp(:, 5)) plot(leg_radius, max_disp(:, 5))
% plot(leg_radius, max_disp(:, 6)) plot(leg_radius, max_disp(:, 6))
% hold off; hold off;
% legend({'rx', 'ry', 'rz'}) legend({'rx', 'ry', 'rz'})
% xlabel('Leg Radius at the platform'); ylabel('Maximum rotations (rad)'); xlabel('Leg Radius at the platform'); ylabel('Maximum rotations (rad)');
%
% figure; figure;
% hold on; hold on;
% plot(leg_radius, stiffness(:, 1, 1)) plot(leg_radius, stiffness(:, 1, 1))
% plot(leg_radius, stiffness(:, 2, 2)) plot(leg_radius, stiffness(:, 2, 2))
% plot(leg_radius, stiffness(:, 3, 3)) plot(leg_radius, stiffness(:, 3, 3))
% hold off; hold off;
% legend({'kx', 'ky', 'kz'}) legend({'kx', 'ky', 'kz'})
% xlabel('Leg Radius at the platform'); ylabel('Stiffness in translation (N/m)'); xlabel('Leg Radius at the platform'); ylabel('Stiffness in translation (N/m)');
%
% figure; figure;
% hold on; hold on;
% plot(leg_radius, stiffness(:, 4, 4)) plot(leg_radius, stiffness(:, 4, 4))
% plot(leg_radius, stiffness(:, 5, 5)) plot(leg_radius, stiffness(:, 5, 5))
% plot(leg_radius, stiffness(:, 6, 6)) plot(leg_radius, stiffness(:, 6, 6))
% hold off; hold off;
% legend({'mx', 'my', 'mz'}) legend({'mx', 'my', 'mz'})
% xlabel('Leg Radius at the platform'); ylabel('Stiffness in rotations (N/(m/rad))'); xlabel('Leg Radius at the platform'); ylabel('Stiffness in rotations (N/(m/rad))');