3.3 Code Matlab: ... ... ... ... ... If End If Else End
3.3 Code Matlab: ... ... ... ... ... If End If Else End
3 CODE MATLAB
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Outputs from this function are returned to the command line.
function varargout = CODE_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
a1 = 145;
a2 = 90;
a3 = 105;
a4 = 78.25;
theta1=get(handles.slider1,'value');
set(handles.edit1,'string',num2str(theta1));
theta2=get(handles.slider2,'value');
set(handles.edit2,'string',num2str(theta2));
theta3=get(handles.slider3,'value');
set(handles.edit3,'string',num2str(theta3));
theta4=get(handles.slider4,'value');
set(handles.edit4,'string',num2str(theta4));
T1 = [ cosd(theta1) 0 sind(theta1) 0;
sind(theta1) 0 -cosd(theta1) 0;
0 1 0 a1;
0 0 0 1];
T = T1*T2*T3*T4;
px=T(1,4);
py=T(2,4);
pz=T(3,4);
set(handles.edit5,'string',num2str(px));
set(handles.edit6,'string',num2str(py));
set(handles.edit7,'string',num2str(pz));
a1 = 145;
a2 = 90;
a3 = 105;
a4 = 78.25;
theta1=get(handles.slider1,'value');
set(handles.edit1,'string',num2str(theta1));
theta2=get(handles.slider2,'value');
set(handles.edit2,'string',num2str(theta2));
theta3=get(handles.slider3,'value');
set(handles.edit3,'string',num2str(theta3));
theta4=get(handles.slider4,'value');
set(handles.edit4,'string',num2str(theta4));
T = T1*T2*T3*T4;
px=T(1,4);
py=T(2,4);
pz=T(3,4);
set(handles.edit5,'string',num2str(px));
set(handles.edit6,'string',num2str(py));
set(handles.edit7,'string',num2str(pz));
a1 = 145;
a2 = 90;
a3 = 105;
a4 = 78.25;
theta1=get(handles.slider1,'value');
set(handles.edit1,'string',num2str(theta1));
theta2=get(handles.slider2,'value');
set(handles.edit2,'string',num2str(theta2));
theta3=get(handles.slider3,'value');
set(handles.edit3,'string',num2str(theta3));
theta4=get(handles.slider4,'value');
set(handles.edit4,'string',num2str(theta4));
set_param([ModelName '/Slider Gain'],'Gain',num2str(theta1));
set_param([ModelName '/Slider Gain1'],'Gain',num2str(theta2));
set_param([ModelName '/Slider Gain2'],'Gain',num2str(theta3));
set_param([ModelName '/Slider Gain3'],'Gain',num2str(theta4));
T1 = [ cosd(theta1) 0 sind(theta1) 0;
sind(theta1) 0 -cosd(theta1) 0;
0 1 0 a1;
0 0 0 1];
T = T1*T2*T3*T4;
px=T(1,4);
py=T(2,4);
pz=T(3,4);
set(handles.edit5,'string',num2str(px));
set(handles.edit6,'string',num2str(py));
set(handles.edit7,'string',num2str(pz));
a1 = 145;
a2 = 90;
a3 = 105;
a4 = 78.25;
theta1=get(handles.slider1,'value');
set(handles.edit1,'string',num2str(theta1));
theta2=get(handles.slider2,'value');
set(handles.edit2,'string',num2str(theta2));
theta3=get(handles.slider3,'value');
set(handles.edit3,'string',num2str(theta3));
theta4=get(handles.slider4,'value');
set(handles.edit4,'string',num2str(theta4));
T1 = [ cosd(theta1) 0 sind(theta1) 0;
sind(theta1) 0 -cosd(theta1) 0;
0 1 0 a1;
0 0 0 1];
T = T1*T2*T3*T4;
px=T(1,4);
py=T(2,4);
pz=T(3,4);
set(handles.edit5,'string',num2str(px));
set(handles.edit6,'string',num2str(py));
set(handles.edit7,'string',num2str(pz));
a1 = 145;
a2 = 90;
a3 = 105;
a4 = 78.25;
thate1=get(handles.edit1,'string');
thate2=get(handles.edit2,'string');
thate3=get(handles.edit3,'string');
thate4=get(handles.edit4,'string');
theta1= str2num(thate1);
theta2= str2num(thate2);
theta3= str2num(thate3);
theta4= str2num(thate4);
set(handles.slider1,'value',theta1);
set(handles.slider2,'value',theta2);
set(handles.slider3,'value',theta3);
set(handles.slider4,'value',theta4);
T1 = [ cosd(theta1) 0 sind(theta1) 0;
sind(theta1) 0 -cosd(theta1) 0;
0 1 0 a1;
0 0 0 1];
T = T1*T2*T3*T4;
px=T(1,4);
py=T(2,4);
pz=T(3,4);
set(handles.edit5,'string',num2str(px));
set(handles.edit6,'string',num2str(py));
set(handles.edit7,'string',num2str(pz));
function edit1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
a1 = 145;
a2 = 90;
a3 = 105;
a4 = 78.25;
thate1=get(handles.edit1,'string');
thate2=get(handles.edit2,'string');
thate3=get(handles.edit3,'string');
thate4=get(handles.edit4,'string');
theta1= str2num(thate1);
theta2= str2num(thate2);
theta3= str2num(thate3);
theta4= str2num(thate4);
set(handles.slider1,'value',theta1);
set(handles.slider2,'value',theta2);
set(handles.slider3,'value',theta3);
set(handles.slider4,'value',theta4);
T1 = [ cosd(theta1) 0 sind(theta1) 0;
sind(theta1) 0 -cosd(theta1) 0;
0 1 0 a1;
0 0 0 1];
T = T1*T2*T3*T4;
px=T(1,4);
py=T(2,4);
pz=T(3,4);
set(handles.edit5,'string',num2str(px));
set(handles.edit6,'string',num2str(py));
set(handles.edit7,'string',num2str(pz));
a1 = 145;
a2 = 90;
a3 = 105;
a4 = 78.25;
thate1=get(handles.edit1,'string');
thate2=get(handles.edit2,'string');
thate3=get(handles.edit3,'string');
thate4=get(handles.edit4,'string');
theta1= str2num(thate1);
theta2= str2num(thate2);
theta3= str2num(thate3);
theta4= str2num(thate4);
set(handles.slider1,'value',theta1);
set(handles.slider2,'value',theta2);
set(handles.slider3,'value',theta3);
set(handles.slider4,'value',theta4);
T1 = [ cosd(theta1) 0 sind(theta1) 0;
sind(theta1) 0 -cosd(theta1) 0;
0 1 0 a1;
0 0 0 1];
T2 = [ cosd(theta2) -sind(theta2) 0 a2*cosd(theta2);
sind(theta2) cosd(theta2) 0 a2*sind(theta2);
0 0 1 0;
0 0 0 1];
T = T1*T2*T3*T4;
px=T(1,4);
py=T(2,4);
pz=T(3,4);
set(handles.edit5,'string',num2str(px));
set(handles.edit6,'string',num2str(py));
set(handles.edit7,'string',num2str(pz));
function edit3_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
a1 = 145;
a2 = 90;
a3 = 105;
a4 = 78.25;
thate1=get(handles.edit1,'string');
thate2=get(handles.edit2,'string');
thate3=get(handles.edit3,'string');
thate4=get(handles.edit4,'string');
theta1= str2num(thate1);
theta2= str2num(thate2);
theta3= str2num(thate3);
theta4= str2num(thate4);
set(handles.slider1,'value',theta1);
set(handles.slider2,'value',theta2);
set(handles.slider3,'value',theta3);
set(handles.slider4,'value',theta4);
set_param([ModelName '/Slider Gain'],'Gain',num2str(theta1));
set_param([ModelName '/Slider Gain1'],'Gain',num2str(theta2));
set_param([ModelName '/Slider Gain2'],'Gain',num2str(theta3));
set_param([ModelName '/Slider Gain3'],'Gain',num2str(theta4));
T1 = [ cosd(theta1) 0 sind(theta1) 0;
sind(theta1) 0 -cosd(theta1) 0;
0 1 0 a1;
0 0 0 1];
T = T1*T2*T3*T4;
px=T(1,4);
py=T(2,4);
pz=T(3,4);
set(handles.edit5,'string',num2str(px));
set(handles.edit6,'string',num2str(py));
set(handles.edit7,'string',num2str(pz));
function edit4_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
open_system(ModelName);
set_param(ModelName,'BlockReduction','off');
set_param(ModelName,'StopTime','inf');
set_param(ModelName,'simulationMode','normal');
set_param(ModelName,'StartFcn','1');
set_param(ModelName, 'SimulationCommand', 'start');
a1 = 145;
a2 = 90;
a3 = 105;
a4 = 78.25;
theta1 = 0;
theta2 = 0;
theta3 = 0;
theta4 = 0;
T1 = [ cosd(theta1) 0 sind(theta1) 0;
sind(theta1) 0 -cosd(theta1) 0;
0 1 0 a1;
0 0 0 1];
T2 = [ cosd(theta2) -sind(theta2) 0 a2*cosd(theta2);
sind(theta2) cosd(theta2) 0 a2*sind(theta2);
0 0 1 0;
0 0 0 1];
T = T1*T2*T3*T4;
px=T(1,4);
py=T(2,4);
pz=T(3,4);
set(handles.slider1,'value',theta1);
set(handles.slider2,'value',theta2);
set(handles.slider3,'value',theta3);
set(handles.slider4,'value',theta4);
set(handles.edit1,'string',num2str(0));
set(handles.edit2,'string',num2str(0));
set(handles.edit3,'string',num2str(0));
set(handles.edit4,'string',num2str(0));
set(handles.edit5,'string',num2str(px));
set(handles.edit6,'string',num2str(py));
set(handles.edit7,'string',num2str(pz));
px=get(handles.slider5,'value');
set(handles.edit8,'string',num2str(px));
py=get(handles.slider6,'value');
set(handles.edit9,'string',num2str(py));
pz=get(handles.slider7,'value');
set(handles.edit10,'string',num2str(pz));
set(handles.edit5,'string',num2str(px));
set(handles.edit6,'string',num2str(py));
set(handles.edit7,'string',num2str(pz));
a1 = 145;
a2 = 90;
a3 = 105;
a4 = 78.25;
theta1=atan2d(py,px);
theta234= 0;
nx = px*cosd(theta1)+py*sind(theta1)-a4*cosd(theta234);
ny = -a1 + pz-a4*sind(theta234);
c3 = ((nx^2)+(ny^2)-(a3^2)-(a2^2))/(2*a3*a2);
s3 = sqrt(1-c3^2);
theta3 = atan2d(s3,c3);
c2 = (nx*(a3*c3+a2)+a3*s3*ny)/((a3*c3+a2)^2+a3^2*s3^2);
s2 = (ny*(a3*c3+a2)-a3*s3*nx)/((a3*c3+a2)^2+a3^2*s3^2);
theta2 = atan2d(s2,c2);
theta4=theta234-theta2-theta3;
set(handles.edit1,'string',num2str(theta1));
set(handles.edit2,'string',num2str(theta2));
set(handles.edit3,'string',num2str(theta3))
set(handles.edit4,'string',num2str(theta4));