Our robot uses a scissor mechanism which requires an optimization for selecting the correct dimension.
% Optimization on 4 Bar Mechanism
% Class: MAE156B
% Programmed by: Yau C. Yun, Keishi Tateda.
% Date: 01/26/2023
%% Given Parameter
Fs = 10; % Fs = 10N from the spring force
Fg = 7; % Force at point G = 7N
AE = 130;
EG = 80; % EG
GEA = 70*pi/180; %Angle GEA
%% Range of possible dimension
%%
% $Fa\cdot \overline{AC} - F_g\cdot \overline{CE} = 0$
DC = [0:1:130]; % DC: 0 mm to 130 mm
AC = [54:1:130]; % AC: 54 mm to 130 mm
DA_1 = 75.9; % 75.9 mm
DA_2 = 60.9; % 60.9 mm
%% Optimization
maxDC = 0;
maxAC = 0;
maxDAC_1 = 0;
maxdy = 0;
% n = 1;
for j = 1:length(DC)
for i = 1:length(AC)
if abs((DA_1^2+AC(i)^2-DC(j)^2)/(2*DA_1*AC(i))) > 1
continue
end
if abs((DA_2^2+AC(i)^2-DC(j)^2)/(2*DA_2*AC(i))) > 1
continue
end
DAC_1 = acos((DA_1^2+AC(i)^2-DC(j)^2)/(2*DA_1*AC(i)));
DAC_2 = acos((DA_2^2+AC(i)^2-DC(j)^2)/(2*DA_2*AC(i)));
ycorn1 = AE*cos(DAC_1)-DA_1;
ycorn2 = AE*cos(DAC_2)-DA_2;
ytip1 = ycorn1 +cos(GFA-DAC_1)*EG;
ytip2 = ycorn2 +cos(GFA-DAC_2)*EG;
if ytip2-ytip1 > maxdy
maxdy = ytip2-ytip1;
maxDC = DC(j);
maxAC = AC(i);
end
end
end
fprintf('\nThe maximum displacyment is %f mm\n', maxdy)
fprintf('length of DC %d mm\n', maxDC)
fprintf('Length of AC is %d mm\n', maxAC)