anexo

Anuncio
ANEXO
ANEXO
function main_Fun1000
panelColor = get(0,'DefaultUicontrolBackgroundColor');
%% ------------ GUI layout --------------%% CORNER DATA FIGURE%%
f2 = figure('Units','normalized',...
'Position',[0.4 0.4 0.2 0.3],...
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name','Corner Data',...
'tag','mainWin');
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.1 0.8 0.9 0.1],'String','Number of materials',...
'FontWeight','Bold','HorizontalAlignment','Left');
uicontrol(f2,'Style','edit','Units','normalized','tag','nm',...
'Position',[0.1 0.7 0.5 0.1],'String','',...
'HorizontalAlignment','Left');
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.1 0.5 0.9 0.1],'String','Type of corner',...
'FontWeight','Bold','HorizontalAlignment','Left');
uicontrol(f2,'Style','popupmenu','Units','normalized','tag','tipo esquina',...
'Position',[0.1 0.4 0.5 0.1],'String',{'Type of
corner...','Closed','Opened'},...
'HorizontalAlignment','Left');
uicontrol(f2,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.05 0.5 0.15],'String','INTRO','Callback',@intronmat);
end
%%MULTIMATERIAL CORNER DATA%%
function intronmat(varargin)
global nm
nm = str2double(get(findobj('tag','nm'),'String'));
%disp(nm)
ANEXO
if nm==1
panelColor = get(0,'DefaultUicontrolBackgroundColor');
f = figure('Units','normalized',...
'Position',[0.05 0.05 0.2*nm 0.4],...
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name','Multimaterial Corner',...
'tag','Tipomat');
for i=1:nm
uicontrol(f,'Style','text','Units','normalized',...
'Position',[0.05+0.3*(i-1) 0.8 0.6 0.08],'String','Material',...
'FontWeight','Bold','HorizontalAlignment','Left');
uicontrol(f,'Style','popupmenu','Units','normalized','tag',strcat(['MATERIAL',num2
str(i)]),...
'Position',[0.05+0.3*(i-1) 0.8 0.6 0.08],'String',{'Material
selection...','Orthotropic','Isotropic','Transversely isotropic'},...
'HorizontalAlignment','Left');
end
uicontrol(f,'Style','pushbutton','Units','normalized',...
'Position',[0.05 0.6 0.5*nm 0.1],'String','Intro
Materials','Callback',@introMaterial);
uicontrol(f,'Style','pushbutton','Units','normalized',...
'Position',[0.05 0.45 0.5*nm 0.1],'String','Boundary-Interface
conditions','Callback',@calculate2);
uicontrol(f,'Style','pushbutton','Units','normalized',...
'Position',[0.05 0.30 0.5*nm 0.1],'String','Calculate Global Transfer
Matrix','Callback',@calculate);
uicontrol(f,'Style','pushbutton','Units','normalized',...
'Position',[0.05 0.15 0.3*nm 0.1],'String','Get
roots','Callback',@getroots);
elseif nm==2
panelColor = get(0,'DefaultUicontrolBackgroundColor');
f = figure('Units','normalized',...
'Position',[0.05 0.05 0.15*nm 0.4],...
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name','Multimaterial Corner',...
'tag','Tipomat');
for i=1:nm
ANEXO
uicontrol(f,'Style','text','Units','normalized',...
'Position',[0.05+0.3*(i-1) 0.8 0.3 0.08],'String','Material',...
'FontWeight','Bold','HorizontalAlignment','Left');
uicontrol(f,'Style','popupmenu','Units','normalized','tag',strcat(['MATERIAL',num2
str(i)]),...
'Position',[0.05+0.3*(i-1) 0.8 0.3 0.08],'String',{'Material
selection...','Orthotropic','Isotropic','Transversely isotropic'},...
'HorizontalAlignment','Left');
end
uicontrol(f,'Style','pushbutton','Units','normalized',...
'Position',[0.05 0.6 0.3*nm 0.1],'String','Intro
Materials','Callback',@introMaterial);
%%%%%%%%%%%
uicontrol(f,'Style','pushbutton','Units','normalized',...
'Position',[0.05 0.45 0.3*nm 0.1],'String','Boundary-Interface
conditions','Callback',@calculate2);
%%%%%%%%%%%%%
uicontrol(f,'Style','pushbutton','Units','normalized',...
'Position',[0.05 0.30 0.3*nm 0.1],'String','Calculate Global Transfer
Matrix','Callback',@calculate);
%%%%%%%%%%%%%
uicontrol(f,'Style','pushbutton','Units','normalized',...
'Position',[0.05 0.15 0.3*nm 0.1],'String','Get
roots','Callback',@getroots);
else
panelColor = get(0,'DefaultUicontrolBackgroundColor');
f = figure('Units','normalized',...
'Position',[0.05 0.05 0.15*nm 0.4],...
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name','Multimaterial Corner',...
'tag','Tipomat');
for i=1:nm
uicontrol(f,'Style','text','Units','normalized',...
'Position',[0.05+0.15*(i-1) 0.8 0.15 0.08],'String','Material',...
'FontWeight','Bold','HorizontalAlignment','Left');
uicontrol(f,'Style','popupmenu','Units','normalized','tag',strcat(['MATERIAL',num2
str(i)]),...
'Position',[0.05+0.15*(i-1) 0.8 0.15 0.08],'String',{'Material
selection...','Orthotropic','Isotropic','Transversely isotropic'},...
'HorizontalAlignment','Left');
end
uicontrol(f,'Style','pushbutton','Units','normalized',...
ANEXO
'Position',[0.05 0.6 0.15*nm 0.1],'String','Intro
Materials','Callback',@introMaterial);
uicontrol(f,'Style','pushbutton','Units','normalized',...
'Position',[0.05 0.45 0.15*nm 0.1],'String','Boundary-Interface
conditions','Callback',@calculate2);
uicontrol(f,'Style','pushbutton','Units','normalized',...
'Position',[0.05 0.30 0.15*nm 0.1],'String','Calculate Global Transfer
Matrix','Callback',@calculate);
uicontrol(f,'Style','pushbutton','Units','normalized',...
'Position',[0.05 0.15 0.3*nm 0.1],'String','Get
roots','Callback',@getroots);
end
end
function introMaterial(varargin)
global nm
global FI;
global FIT;
global Zlambda;
global L;
global Ei;
syms FI FIT Zlambda L Ei di dr
I = complex (0,1);
for i=1:nm
matNum =get(findobj('tag',strcat(['MATERIAL',num2str(i)])),'Value');
FI(:,:,i) = sym(zeros(3,3));
FIT(:,:,i) = sym(zeros(3,3));
Zlambda(:,:,i) = sym(zeros(6,6));
Ei(:,:,i)= sym(zeros(6,6));
if matNum == 2
pOrto4(i);
elseif matNum == 3
pIso12(i);
elseif matNum == 4
pTransIso2(i);
end
end
end
function calculate2(varargin)
global nm
global tesquina
tesquina =get(findobj('tag','tipo esquina'),'Value');
%%%%%%%
%%%%%%%
%%%%%%%
ANEXO
if tesquina == 2
Closed;
elseif tesquina == 3
Opened;
end
disp(nm)
end
function calculate(varargin)
global Ii
global nm
global Ei
global intcon
global Sr
global S3
global N
global nui
global I33
global KSIMPLY
global DI
global DB1
global DB2
%global D1TI
%global D2TI
global tesquina
global X1
global di
global dr
global L
global m
global f
global w
global nc
global F
global wu
global FU
global KS
syms X X1 KSIMPLY m f DB1 FU
%IDENTITY MATRIX
I3 = eye(3,3);
I6 = eye(6,6);
%NULE MATRIX
O31 = zeros(3,1);
O33 = zeros (3,3);
%%%%%%% BOUNDARY AND INTERFACE MATRIX %%%%%%%
%%CLOSED CORNER%%
if tesquina == 2
for i=1:nm
wu = sym('wu', [1 i]);
%%%%%%%
ANEXO
if intcon(:,:,i) ==2
F(:,i) =1;
%INTERFACE CONDITION MATRICES
D1I(:,:,i) =(1/(2^(0.5)))*(horzcat(vertcat(N(:,:,i),O31),vertcat(O31,Sr(:,:,i)),vertcat(O33,-I3),vertcat(O31,S3(:,:,i)))).';
D2I(:,:,i) =
(1/(2^(0.5)))*(horzcat(vertcat(N(:,:,i),O31),vertcat(O31,Sr(:,:,i)),vertcat(O33,I3
),vertcat(O31,S3(:,:,i)))).';
D1TI(:,:,i) =
(1/(2^(0.5)))*(horzcat(vertcat(N(:,:,i),O31),vertcat(O31,N(:,:,i)),vertcat((2^(0.5
))*Sr(:,:,i),O31),vertcat(O31,O31),vertcat((2^(0.5))*S3(:,:,i),O31),vertcat(O31,O3
1))).';
D2TI(:,:,i) =
(1/(2^(0.5)))*(horzcat(vertcat(N(:,:,i),O31),vertcat(O31,N(:,:,i)),vertcat(O31,O31
),vertcat((2^(0.5))*Sr(:,:,i),O31),vertcat(O31,O31),vertcat((2^(0.5))*S3(:,:,i),O3
1))).';
%FRICTIONLESS SLIDING INTERFACE MATRIX
DIO(:,:,i) =
horzcat(vertcat(D1I(:,:,i),D1TI(:,:,i)),vertcat(D2I(:,:,i),D2TI(:,:,i)));
elseif intcon(:,:,i) ==3
F(:,i) =1;
% k(theta,w)
K(:,:,i)= cos((wu(1,i)))*Sr(:,:,i)+sin(wu(1,i))*S3(:,:,i);
% k(theta,wu)
KU(:,:,i)= cos((wu(1,i)))*Sr(:,:,i)+sin(wu(1,i))*S3(:,:,i);
% m(theta,w)
M(:,:,i)= -sin((wu(1,i)))*Sr(:,:,i)+cos(wu(1,i))*S3(:,:,i);
% mu(theta,wu)
MU(:,:,i)= -sin((wu(1,i)))*Sr(:,:,i)+cos((wu(1,i)))*S3(:,:,i);
% nu(theta,w,nu)
NU(:,:,i) = (N(:,:,i)+nui(1,1,i)*K(:,:,i))/(1+nui(1,1,i)^2)^0.5;
% snu(theta,w,nu)
Snu(:,:,i) = (K(:,:,i)-nui(1,1,i)*N(:,:,i))/(1+nui(1,1,i)^2)^0.5;
%INTERFACE CONDITION MATRICES
D1I(:,:,i) = (1/(2^(0.5)))*(horzcat(vertcat(N(:,:,i),O31),vertcat(O31,Snu(:,:,i)),vertcat(O33,-I3),vertcat(MU(:,:,i),O31),vertcat(O31,M(:,:,i)))).';
D2I(:,:,i) =
(1/(2^(0.5)))*(horzcat(vertcat(N(:,:,i),O31),vertcat(O31,Snu(:,:,i)),vertcat(O33,I
3),vertcat(MU(:,:,i),O31),vertcat(O31,M(:,:,i)))).';
D1TI(:,:,i) =
(1/(2^(0.5)))*(horzcat(vertcat(N(:,:,i),O31),vertcat(O31,NU(:,:,i)),vertcat((2^(0.
5))*KU(:,:,i),O31),vertcat(O31,O31),vertcat(MU(:,:,i),O31))).';
D2TI(:,:,i)
=(1/(2^(0.5)))*(horzcat(vertcat(N(:,:,i),O31),vertcat(O31,NU(:,:,i)),vertcat(O31,O
31),vertcat((2^(0.5))*KU(:,:,i),O31),vertcat(MU(:,:,i),O31))).';
%FRICTION SLIDING INTERFACE MATRIX
DIO(1:7,1:6,i) = D1I(:,:,i);
DIO(8:12,1:6,i) = D1TI(:,:,i);
DIO(1:7,7:12,i) = D2I(:,:,i);
DIO(8:12,7:12,i) = D2TI(:,:,i);
ANEXO
%disp(D1I)
elseif intcon(:,:,i) ==4
F(:,i) =0;
%BONDED
D1IB(:,:,i)= (1/(2^(0.5)))*(-I6);
D2IB(:,:,i)= (1/(2^(0.5)))*I6;
D1TIB(:,:,i)=(1/(2^(0.5)))*I6;
D2TIB(:,:,i)=(1/(2^(0.5))*I6);
DIO(:,:,i) =
horzcat(vertcat(D1IB(:,:,i),D1TIB(:,:,i)),vertcat(D2IB(:,:,i),D2TIB(:,:,i)));
end
end
%%OPENED CORNER
elseif tesquina == 3
if nm==1
for i=1:1
if intcon(:,:,i) ==5
%Free
DB(:,:,i) = vertcat(horzcat(O33,I33),horzcat(I33,O33));
F(:,i) =0;
elseif intcon(:,:,i) ==6
%Fixed
DB(:,:,i) = vertcat(horzcat(I33,O33),horzcat(O33,I33));
F(:,i) =0;
elseif intcon(:,:,i) ==7
%Symetry
Du(:,:,i) = horzcat(N(:,:,i),O31(:,:,i),O31(:,:,i));
D1B(:,:,i) = Du(:,:,i)';
Dfi(:,:,i) = horzcat(O31(:,:,i),Sr(:,:,i),S3(:,:,i));
D2B(:,:,i) =Dfi(:,:,i)';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif intcon(:,:,i) ==8
%Antisymetry
Du(:,:,i) = horzcat(Sr(:,:,i),S3(:,:,i),O33);
D1B(:,:,i) = Du(:,:,i)';
ANEXO
Dfi(:,:,i) = horzcat(O33,O33,N(:,:,i));
D2B(:,:,i) =Dfi(:,:,i)';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif intcon(:,:,i) ==9
%Ur_restricted
D1B(:,:,i) = horzcat(Sr(:,:,i),O33,O33).';
D2B(:,:,i) = horzcat(O33,N(:,:,i),S3(:,:,i)).';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif intcon(:,:,i) ==10
%Ur_allowed
D1B(:,:,i) = horzcat (N(:,:,i),S3(:,:,i),O33).';
D2B(:,:,i) = horzcat (O33,O33,Sr(:,:,i)).';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif intcon(:,:,i) ==11
%Ur_restricted
D1B(:,:,i) = horzcat(S3(:,:,i),O33,O33).';
D2B(:,:,i) = horzcat (O33,Sr(:,:,i),N(:,:,i)).';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif intcon(:,:,i) ==12
%U3_allowed
D1B(:,:,i) = horzcat(Sr(:,:,i),N(:,:,i),O33).';
D2B(:,:,i) = horzcat(O33,O33,S3(:,:,i)).';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif
intcon(:,:,i) ==13
%Friction
wu = sym('wu', [1 i]);
% k(theta,w)
K(:,:,i)= cos((wu(1,i)))*Sr(:,:,i)+sin(wu(1,i))*S3(:,:,i);
% k(theta,wu)
KU(:,:,i)= cos((wu(1,i)))*Sr(:,:,i)+sin(wu(1,i))*S3(:,:,i);
% m(theta,w)
M(:,:,i)= -sin((wu(1,i)))*Sr(:,:,i)+cos(wu(1,i))*S3(:,:,i);
ANEXO
% mu(theta,wu)
MU(:,:,i)= -sin((wu(1,i)))*Sr(:,:,i)+cos((wu(1,i)))*S3(:,:,i);
FU= MU(:,:,i);
% nu(theta,w,nu)
NU(:,:,i) = (N(:,:,i)+nui(1,1,i)*K(:,:,i))/(1+nui(1,1,i)^2)^0.5;
% snu(theta,w,nu)
Snu(:,:,i) = (K(:,:,i)-nui(1,1,i)*N(:,:,i))/(1+nui(1,1,i)^2)^0.5;
Du(:,:,i) = horzcat(N(:,:,i),O31,MU(:,:,i),O31)';
DuT(:,:,i) = horzcat(O31,KU(:,:,i))';
Dfi(:,:,i) = horzcat(O31,Snu(:,:,i),O31,MU(:,:,i))';
DfiT(:,:,i) = horzcat(NU(:,:,i),O31)';
DB(:,:,i)=horzcat(vertcat(Du(:,:,i),DuT(:,:,i)),vertcat(Dfi(:,:,i),DfiT(:,:,i)));
F(:,i) =1;
%DBc(:,:,i) = horzcat(DuT(:,:,i),DfiT(:,:,i));
end
end
for i=nm+1:nm+1
wu = sym('wu', [1 i]);
if intcon(:,:,i) ==5
%Free
DB(:,:,i) = vertcat(horzcat(O33,I33),horzcat(I33,O33));
F(:,i) = 0;
%DBc(:,:,i) =horzcat(I33,O33);
elseif intcon(:,:,i) ==6
%Fixed
DB(:,:,i) = vertcat(horzcat(I33,O33),horzcat(O33,I33));
F(:,i) =0;
elseif intcon(:,:,i) ==7
%Symetry
Du(:,:,i) = horzcat(N(:,:,i),O31,O31);
D1B(:,:,i) = Du(:,:,i)';
Dfi(:,:,i) = horzcat(O31,Sr(:,:,i),S3(:,:,i));
D2B(:,:,i) =Dfi(:,:,i)';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif intcon(:,:,i) ==8
ANEXO
%Antisymetry
D1B(:,:,i) = horzcat(Sr(:,:,i),S3(:,:,i),O33).';
D2B(:,:,i) = horzcat(O33,O33,N(:,:,i)).';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif intcon(:,:,i) ==9
%Ur_restricted
D1B(:,:,i) = horzcat(Sr(:,:,i),O33,O33).';
D2B(:,:,i) = horzcat(O33,N(:,:,i),S3(:,:,i)).';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif intcon(:,:,i) ==10
%Ur_allowed
D1B(:,:,i) = horzcat (N(:,:,i),S3(:,:,i),O33).';
D2B(:,:,i) = horzcat (O33,O33,Sr(:,:,i)).';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif intcon(:,:,i) ==11
%Ur_restricted
D1B(:,:,i) = horzcat(S3(:,:,i),O33,O33).';
D2B(:,:,i) = horzcat (O33,Sr(:,:,i),N(:,:,i)).';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif intcon(:,:,i) ==12
%U3_allowed
D1B(:,:,i) = horzcat(Sr(:,:,i),N(:,:,i),O33).';
D2B(:,:,i) = horzcat(O33,O33,S3(:,:,i)).';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif
intcon(:,:,i) ==13
%Friction
% k(theta,w)
K(:,:,i)= cos((wu(1,i)))*Sr(:,:,i)+sin(wu(1,i))*S3(:,:,i);
% k(theta,wu)
KU(:,:,i)= cos((wu(1,i)))*Sr(:,:,i)+sin(wu(1,i))*S3(:,:,i);
% m(theta,w)
ANEXO
M(:,:,i)= -sin((wu(1,i)))*Sr(:,:,i)+cos(wu(1,i))*S3(:,:,i);
% mu(theta,wu)
MU(:,:,i)= -sin((wu(1,i)))*Sr(:,:,i)+cos((wu(1,i)))*S3(:,:,i);
% nu(theta,w,nu)
NU(:,:,i) = (N(:,:,i)+nui(1,1,i)*K(:,:,i))/(1+nui(1,1,i)^2)^0.5;
% snu(theta,w,nu)
Snu(:,:,i) = (K(:,:,i)-nui(1,1,i)*N(:,:,i))/(1+nui(1,1,i)^2)^0.5;
Du(:,:,i) = horzcat(N(:,:,i),O31,MU(:,:,i),O31)';
DuT(:,:,i) = horzcat(O31,KU(:,:,i))';
Dfi(:,:,i) = horzcat(O31,Snu(:,:,i),O31,MU(:,:,i))';
DfiT(:,:,i) = horzcat(NU(:,:,i),O31)';
DB(:,:,i)=horzcat(vertcat(Du(:,:,i),DuT(:,:,i)),vertcat(Dfi(:,:,i),DfiT(:,:,i)));
F(:,i) =1;
end
end
else
for i=1:1
wu = sym('wu', [1 i]);
if intcon(:,:,i) ==5
%Free
DB(:,:,i) = vertcat(horzcat(O33,I33),horzcat(I33,O33));
F(:,i) =0;
elseif intcon(:,:,i) ==6
%Fixed
DB(:,:,i) = vertcat(horzcat(I33,O33),horzcat(O33,I33));
F(:,i) =0;
elseif intcon(:,:,i) ==7
%Symetry
Du(:,:,i) = horzcat(N(:,:,i),O31(:,:,i),O31(:,:,i));
D1B(:,:,i) = Du(:,:,i)';
Dfi(:,:,i) = horzcat(O31(:,:,i),Sr(:,:,i),S3(:,:,i));
D2B(:,:,i) =Dfi(:,:,i)';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif intcon(:,:,i) ==8
%Antisymetry
Du(:,:,i) = horzcat(Sr(:,:,i),S3(:,:,i),O33);
D1B(:,:,i) = Du(:,:,i)';
Dfi(:,:,i) = horzcat(O33,O33,N(:,:,i));
ANEXO
D2B(:,:,i) =Dfi(:,:,i)';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif intcon(:,:,i) ==9
%Ur_restricted
D1B(:,:,i) = horzcat(Sr(:,:,i),O33,O33).';
D2B(:,:,i) = horzcat(O33,N(:,:,i),S3(:,:,i)).';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif intcon(:,:,i) ==10
%Ur_allowed
D1B(:,:,i) = horzcat (N(:,:,i),S3(:,:,i),O33).';
D2B(:,:,i) = horzcat (O33,O33,Sr(:,:,i)).';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif intcon(:,:,i) ==11
%Ur_restricted
D1B(:,:,i) = horzcat(S3(:,:,i),O33,O33).';
D2B(:,:,i) = horzcat (O33,Sr(:,:,i),N(:,:,i)).';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif intcon(:,:,i) ==12
%U3_allowed
D1B(:,:,i) = horzcat(Sr(:,:,i),N(:,:,i),O33).';
D2B(:,:,i) = horzcat(O33,O33,S3(:,:,i)).';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif
intcon(:,:,i) ==13
%Friction
% k(theta,w)
K(:,:,i)= cos((wu(1,i)))*Sr(:,:,i)+sin(wu(1,i))*S3(:,:,i);
% k(theta,wu)
KU(:,:,i)= cos((wu(1,i)))*Sr(:,:,i)+sin(wu(1,i))*S3(:,:,i);
% m(theta,w)
M(:,:,i)= -sin((wu(1,i)))*Sr(:,:,i)+cos(wu(1,i))*S3(:,:,i);
% mu(theta,wu)
MU(:,:,i)= -sin((wu(1,i)))*Sr(:,:,i)+cos((wu(1,i)))*S3(:,:,i);
% nu(theta,w,nu)
ANEXO
NU(:,:,i) = (N(:,:,i)+nui(1,1,i)*K(:,:,i))/(1+nui(1,1,i)^2)^0.5;
% snu(theta,w,nu)
Snu(:,:,i) = (K(:,:,i)-nui(1,1,i)*N(:,:,i))/(1+nui(1,1,i)^2)^0.5;
Du(:,:,i) = horzcat(N(:,:,i),O31,MU(:,:,i),O31)';
DuT(:,:,i) = horzcat(O31,KU(:,:,i))';
Dfi(:,:,i) = horzcat(O31,Snu(:,:,i),O31,MU(:,:,i))';
DfiT(:,:,i) = horzcat(NU(:,:,i),O31)';
DB(:,:,i)=horzcat(vertcat(Du(:,:,i),DuT(:,:,i)),vertcat(Dfi(:,:,i),DfiT(:,:,i)));
F(:,i) =1;
end
end
for i=2:nm
wu = sym('wu', [1 i]);
if intcon(:,:,i) ==2
%INTERFACE CONDITION MATRICES
D1I(:,:,i) =(1/(2^(0.5)))*(horzcat(vertcat(N(:,:,i),O31),vertcat(O31,Sr(:,:,i)),vertcat(O33,-I3),vertcat(O31,S3(:,:,i)))).';
D2I(:,:,i) =
(1/(2^(0.5)))*(horzcat(vertcat(N(:,:,i),O31),vertcat(O31,Sr(:,:,i)),vertcat(O33,I3
),vertcat(O31,S3(:,:,i)))).';
D1TI(:,:,i) =
(1/(2^(0.5)))*(horzcat(vertcat(N(:,:,i),O31),vertcat(O31,N(:,:,i)),vertcat((2^(0.5
))*Sr(:,:,i),O31),vertcat(O31,O31),vertcat((2^(0.5))*S3(:,:,i),O31),vertcat(O31,O3
1))).';
D2TI(:,:,i) =
(1/(2^(0.5)))*(horzcat(vertcat(N(:,:,i),O31),vertcat(O31,N(:,:,i)),vertcat(O31,O31
),vertcat((2^(0.5))*Sr(:,:,i),O31),vertcat(O31,O31),vertcat((2^(0.5))*S3(:,:,i),O3
1))).';
%FRICTIONLESS SLIDING INTERFACE MATRIX
DIO(:,:,i) =
horzcat(vertcat(D1I(:,:,i),D1TI(:,:,i)),vertcat(D2I(:,:,i),D2TI(:,:,i)));
elseif intcon(:,:,i) ==3
% k(theta,w)
K(:,:,i)= cos((wu(1,i)))*Sr(:,:,i)+sin(wu(1,i))*S3(:,:,i);
% k(theta,wu)
KU(:,:,i)= cos((wu(1,i)))*Sr(:,:,i)+sin(wu(1,i))*S3(:,:,i);
% m(theta,w)
M(:,:,i)= -sin((wu(1,i)))*Sr(:,:,i)+cos(wu(1,i))*S3(:,:,i);
% mu(theta,wu)
MU(:,:,i)= -sin((wu(1,i)))*Sr(:,:,i)+cos((wu(1,i)))*S3(:,:,i);
% nu(theta,w,nu)
NU(:,:,i) = (N(:,:,i)+nui(1,1,i)*K(:,:,i))/(1+nui(1,1,i)^2)^0.5;
% snu(theta,w,nu)
Snu(:,:,i) = (K(:,:,i)-nui(1,1,i)*N(:,:,i))/(1+nui(1,1,i)^2)^0.5;
%INTERFACE CONDITION MATRICES
D1I(:,:,i) = (1/(2^(0.5)))*(horzcat(vertcat(-
ANEXO
N(:,:,i),O31),vertcat(O31,Snu(:,:,i)),vertcat(O33,-I3),vertcat(MU(:,:,i),O31),vertcat(O31,M(:,:,i)))).';
D2I(:,:,i) =
(1/(2^(0.5)))*(horzcat(vertcat(N(:,:,i),O31),vertcat(O31,Snu(:,:,i)),vertcat(O33,I
3),vertcat(MU(:,:,i),O31),vertcat(O31,M(:,:,i)))).';
D1TI(:,:,i) =
(1/(2^(0.5)))*(horzcat(vertcat(N(:,:,i),O31),vertcat(O31,NU(:,:,i)),vertcat((2^(0.
5))*KU(:,:,i),O31),vertcat(O31,O31),vertcat(MU(:,:,i),O31))).';
D2TI(:,:,i)
=(1/(2^(0.5)))*(horzcat(vertcat(N(:,:,i),O31),vertcat(O31,NU(:,:,i)),vertcat(O31,O
31),vertcat((2^(0.5))*KU(:,:,i),O31),vertcat(MU(:,:,i),O31))).';
%FRICTION SLIDING INTERFACE MATRIX
DIO(1:7,1:6,i) = D1I(:,:,i);
DIO(8:12,1:6,i) = D1TI(:,:,i);
DIO(1:7,7:12,i) = D2I(:,:,i);
DIO(8:12,7:12,i) = D2TI(:,:,i);
F(:,i) =1;
elseif intcon(:,:,i) ==4
%BONDED
D1I(:,:,i)= (1/(2^(0.5)))*(-I6);
D2I(:,:,i)= (1/(2^(0.5)))*I6;
D1TI(:,:,i)=(1/(2^(0.5)))*I6;
D2TI(:,:,i)=(1/(2^(0.5))*I6);
end
end
for i=nm+1:nm+1
wu = sym('wu', [1 i]);
if intcon(:,:,i) ==5
%Free
DB(:,:,i) = vertcat(horzcat(O33,I33),horzcat(I33,O33));
F(:,i) =0;
elseif intcon(:,:,i) ==6
%Fixed
DB(:,:,i) = vertcat(horzcat(I33,O33),horzcat(O33,I33));
F(:,i) =0;
elseif intcon(:,:,i) ==7
%Symetry
Du(:,:,i) = horzcat(N(:,:,i),O31,O31);
D1B(:,:,i) = Du(:,:,i)';
Dfi(:,:,i) = horzcat(O31,Sr(:,:,i),S3(:,:,i));
D2B(:,:,i) =Dfi(:,:,i)';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
ANEXO
F(:,i) =0;
elseif intcon(:,:,i) ==8
%Antisymetry
D1B(:,:,i) = horzcat(Sr(:,:,i),S3(:,:,i),O33).';
D2B(:,:,i) = horzcat(O33,O33,N(:,:,i)).';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif intcon(:,:,i) ==9
%Ur_restricted
D1B(:,:,i) = horzcat(Sr(:,:,i),O33,O33).';
D2B(:,:,i) = horzcat(O33,N(:,:,i),S3(:,:,i)).';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif intcon(:,:,i) ==10
%Ur_allowed
D1B(:,:,i) = horzcat (N(:,:,i),S3(:,:,i),O33).';
D2B(:,:,i) = horzcat (O33,O33,Sr(:,:,i)).';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif intcon(:,:,i) ==11
%Ur_restricted
D1B(:,:,i) = horzcat(S3(:,:,i),O33,O33).';
D2B(:,:,i) = horzcat (O33,Sr(:,:,i),N(:,:,i)).';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif intcon(:,:,i) ==12
%U3_allowed
D1B(:,:,i) = horzcat(Sr(:,:,i),N(:,:,i),O33).';
D2B(:,:,i) = horzcat(O33,O33,S3(:,:,i)).';
DB(:,:,i)=horzcat(vertcat(D1B(:,:,i),D2B(:,:,i)),vertcat(D2B(:,:,i),D1B(:,:,i)));
F(:,i) =0;
elseif
intcon(:,:,i) ==13
%Friction
ANEXO
% k(theta,w)
K(:,:,i)= cos((wu(1,i)))*Sr(:,:,i)+sin(wu(1,i))*S3(:,:,i);
% k(theta,wu)
KU(:,:,i)= cos((wu(1,i)))*Sr(:,:,i)+sin(wu(1,i))*S3(:,:,i);
% m(theta,w)
M(:,:,i)= -sin((wu(1,i)))*Sr(:,:,i)+cos(wu(1,i))*S3(:,:,i);
% mu(theta,wu)
MU(:,:,i)= -sin((wu(1,i)))*Sr(:,:,i)+cos((wu(1,i)))*S3(:,:,i);
% nu(theta,w,nu)
NU(:,:,i) = (N(:,:,i)+nui(1,1,i)*K(:,:,i))/(1+nui(1,1,i)^2)^0.5;
% snu(theta,w,nu)
Snu(:,:,i) = (K(:,:,i)-nui(1,1,i)*N(:,:,i))/(1+nui(1,1,i)^2)^0.5;
Du(:,:,i) = horzcat(N(:,:,i),O31,MU(:,:,i),O31)';
DuT(:,:,i) = horzcat(O31,KU(:,:,i))';
Dfi(:,:,i) = horzcat(O31,Snu(:,:,i),O31,MU(:,:,i))';
DfiT(:,:,i) = horzcat(NU(:,:,i),O31)';
DB(:,:,i)=horzcat(vertcat(Du(:,:,i),DuT(:,:,i)),vertcat(Dfi(:,:,i),DfiT(:,:,i)));
F(:,i) =1;
end
end
end
end
%%%%%% GLOBAL TRANSFER MATRIX %%%%%%%
%%CLOSED CORNER
if tesquina== 2
nc(:,1) =6-F(:,1);
for i=2:nm
nc(:,i) = nc(:,i-1)+6-F(:,i);
end
disp(DIO)
%disp(Ei)
KSIMPLY = sym(zeros(6*nm,nc(:,nm)));
%KSIMPLY ((1+6*(nm-1)):(6*nm),1:nc(:,1))= -D1TI(:,:,1)';
KSIMPLY ((1+6*(nm-1)):(6*nm),1:nc(:,1))= -DIO(7+F(:,1):12,1:6,1)';
%KSIMPLY (1:6,1:nc(:,1))= Ei(:,:,1)*D2TI(:,:,1)';
KSIMPLY (1:6,1:nc(:,1))= Ei(:,:,1)*DIO(7+F(:,1):12,7:12,1)';
for i=2:nm
ANEXO
% KSIMPLY ((1+6*(i-2)):6*(i-1),nc(:,i-1)+1:nc(:,i))= -D1TI(:,:,i)';
KSIMPLY ((1+6*(i-2)):6*(i-1),nc(:,i-1)+1:nc(:,i))= -DIO(7+F(:,i):12,1:6,i)';
% KSIMPLY ((1+6*(i-1)):6*i,nc(:,i-1)+1:nc(:,i))= Ei(:,:,i)*D2TI(:,:,i)';
KSIMPLY ((1+6*(i-1)):6*i,nc(:,i-1)+1:nc(:,i))=
Ei(:,:,i)*DIO(7+F(:,i):12,7:12,i)';
end
%%OPENED CORNER
elseif tesquina== 3
disp(DB)
disp(Ei)
if nm==1
nc(:,1) = 3-F(:,1);
for i=nm+1:nm+1
nc(:,i) =nc(:,i-1)+3-F(:,i);
end
else
nc(:,1) =3-F(:,1);
for i=2:nm+1
if i==nm+1
nc(:,i) = nc(:,i-1)+3-F(:,i);
else
nc(:,i) = nc(:,i-1)+6-F(:,i);
end
end
end
if nm==1
KSIMPLY = sym(zeros(6*nm,nc(:,nm+1)));
KSIMPLY (1:6,1:3-F(:,1)) = Ei(:,:,1)*DB(4+F(:,1):6,:,1)';
KSIMPLY ((6*nm)-5:6*nm,nc(:,nm)+1:nc(:,nm+1))= -DB(4+F(:,nm+1):6,:,nm+1)';
%disp(KSIMPLY)
else
KSIMPLY = sym(zeros(6*nm,nc(:,nm+1)));
KSIMPLY (1:6,1:3-F(:,1)) = Ei(:,:,1)*DB(4+F(:,1):6,:,1)';
KSIMPLY ((6*nm)-5:6*nm,nc(:,nm)+1:nc(:,nm+1))= -DB(4+F(:,nm+1):6,:,nm+1)';
ANEXO
% disp(KSIMPLY)
if nm==2
KSIMPLY (1:6,nc(:,1)+1:nc(:,2))= -D1TI(:,:,2)';
KSIMPLY(7:12,nc(:,1)+1:nc(:,2))= Ei(:,:,2)*D2TI(:,:,2)';
elseif nm~=2
for i=2:nm-1
KSIMPLY ((1+6*(i-2)):6*(i-1),(4+(i-2)*6):(9+(i-2)*6))= -D1TI(:,:,i)';
KSIMPLY ((1+6*(i-1)):6*i,(4+(i-2)*6):(9+(i-2)*6))= Ei(:,:,i)*D2TI(:,:,i)';
end
end
end
end
disp(KSIMPLY)
if size(KSIMPLY,1)==size(KSIMPLY,2)
X = det(KSIMPLY);
X1real = real(X);
X1imag = imag (X);
disp(ezplot(X1real,[0.05, 0.98], figure));
hold on
xlabel('L');
ylabel('Real(determinant)');
title('Explicit real function');
grid on;
hold off
%disp(ezplot(X1imag,[-0.4, 0.4], figure));
%hold on
%xlabel('L');
%ylabel('Imag(determinate)');
%title('Explicit imag function');
%grid on;
%hold off
m = real(X);
f = inline(m);
elseif size(wu,2)==2;
syms l
K= subs(KSIMPLY,L,l);
h = matlabFunction(K);
K = matlabFunction(K,'file', 'out.m');
KS=KSIMPLY;
procesador7
else
syms l
K= subs(KSIMPLY,L,l);
h = matlabFunction(K);
K = matlabFunction(K,'file', 'out.m')
procesador4
ANEXO
end
disp('OK')
end
function getroots(varargin)
global KSIMPLY
if size(KSIMPLY,1)==size(KSIMPLY,2)
% Use system background color for GUI components
panelColor = get(0,'DefaultUicontrolBackgroundColor');
%% ------------ GUI layout --------------% Crea la figura
f2 = figure('Units','normalized',... %normalized = la posicion es sobre 1
'Position',[0.4 0.4 0.2 0.3],... % esto cambia tama�o y posicion [posX
posY tamX tamY]
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name','Choose method',...
'tag','mainWin'); % nombre de la ventana
% Create data for number of roots
% max. value of roots
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.1 0.8 0.9 0.1],'String','number of roots',...
'FontWeight','Bold','HorizontalAlignment','Left');
% place for max. value of roots
uicontrol(f2,'Style','edit','Units','normalized','tag','nr',...
'Position',[0.1 0.7 0.5 0.1],'String','',...
'HorizontalAlignment','Left');
% button intro get roots
uicontrol(f2,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.5 0.5 0.15],'String','Newton
method','Callback',@newtonroots);
% button intro get roots
uicontrol(f2,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.3 0.5 0.15],'String','Bisection
method','Callback',@bisecroots);
% button intro get roots
uicontrol(f2,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.1 0.5 0.15],'String','Print
roots','Callback',@showRoots);
else
% Use system background color for GUI components
panelColor = get(0,'DefaultUicontrolBackgroundColor');
ANEXO
%% ------------ GUI layout --------------% Crea la figura
f2 = figure('Units','normalized',... %normalized = la posicion es sobre 1
'Position',[0.4 0.4 0.2 0.3],... % esto cambia tama�o y posicion [posX
posY tamX tamY]
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name','Choose method',...
'tag','mainWin'); % nombre de la ventana
% Create data for number of roots
% max. value of roots
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.1 0.8 0.9 0.1],'String','number of roots',...
'FontWeight','Bold','HorizontalAlignment','Left');
% place for max. value of roots
uicontrol(f2,'Style','edit','Units','normalized','tag','nr',...
'Position',[0.1 0.7 0.5 0.1],'String','',...
'HorizontalAlignment','Left');
% button intro get roots
uicontrol(f2,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.5 0.5 0.15],'String','LevenbergMarquardt','Callback',@solnonsquare3);
% button intro get roots
uicontrol(f2,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.1 0.5 0.15],'String','Print
roots','Callback',@showRoots);
end
end
ANEXO
pOrto4
function pOrto4(i)
panelColor = get(0,'DefaultUicontrolBackgroundColor');
f2 = figure('Units','normalized',...
'Position',[0.1*i 0.1 0.3 0.4],...
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name',num2str(i),...
'tag','mainWin');
% Crea los datos para E11
%Etiqueta E11
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.1 0.9 0.3 0.08],'String','E11',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta E22
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.3 0.9 0.4 0.08],'String','E22',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta E33
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.5 0.9 0.4 0.08],'String','E33',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta G12
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.1 0.75 0.4 0.08],'String','G12',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta G13
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.3 0.75 0.4 0.08],'String','G13',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta G23
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.5 0.75 0.4 0.08],'String','G23',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta nu12
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.1 0.6 0.4 0.08],'String','nu12',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta nu13
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.3 0.6 0.4 0.08],'String','nu13',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta nu23
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.5 0.6 0.4 0.08],'String','nu23',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta w1
uicontrol(f2,'Style','text','Units','normalized',...
ANEXO
'Position',[0.1 0.45 0.4 0.08],'String','w1',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta w2
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.3 0.45 0.4 0.08],'String','w2',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta w3
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.5 0.45 0.4 0.08],'String','w3',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta theta(i-1)
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.1 0.3 0.4 0.08],'String','theta1',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta theta(i)
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.3 0.3 0.4 0.08],'String','theta',...
'FontWeight','Bold','HorizontalAlignment','Left');
%campo para E11
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['E11',num2str(i)]),
...
'Position',[0.1 0.85 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% campo para E22
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['E22',num2str(i)]),
...
'Position',[0.3 0.85 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% campo para E33
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['E33',num2str(i)]),
...
'Position',[0.5 0.85 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% campo para G12
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['G12',num2str(i)]),
...
'Position',[0.1 0.7 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% campo para G13
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['G13',num2str(i)]),
...
'Position',[0.3 0.7 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% campo para G23
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['G23',num2str(i)]),
...
'Position',[0.5 0.7 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% campo para nu12
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['nu12',num2str(i)])
,...
'Position',[0.1 0.55 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% campo para nu13
ANEXO
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['nu13',num2str(i)])
,...
'Position',[0.3 0.55 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% campo para nu23
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['nu23',num2str(i)])
,...
'Position',[0.5 0.55 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% campo para w1
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['w1',num2str(i)]),.
..
'Position',[0.1 0.4 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% campo para w2
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['w2',num2str(i)]),.
..
'Position',[0.3 0.4 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% campo para w3
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['w3',num2str(i)]),.
..
'Position',[0.5 0.4 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% campo para theta(i-1)
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['theta1',num2str(i)
]),...
'Position',[0.1 0.25 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% campo para theta(i)
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['theta',num2str(i)]
),...
'Position',[0.3 0.25 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% boton para cargar propiedades
uicontrol(f2,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.05 0.5 0.1],'String','Load
Properties','Callback',@cargarE40);
end
ANEXO
function pIso12(i)
panelColor = get(0,'DefaultUicontrolBackgroundColor');
f2 = figure('Units','normalized',...
'Position',[0.1*i 0.1 0.2 0.3],...
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name',num2str(i),...
'tag','mainWin');
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.1 0.9 0.3 0.08],'String','E',...
'FontWeight','Bold','HorizontalAlignment','Left');
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.1 0.7 0.4 0.08],'String','nu',...
'FontWeight','Bold','HorizontalAlignment','Left');
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.1 0.5 0.4 0.08],'String','theta1',...
'FontWeight','Bold','HorizontalAlignment','Left');
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.1 0.3 0.4 0.08],'String','theta',...
'FontWeight','Bold','HorizontalAlignment','Left');
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['E',num2str(i)]),..
.
'Position',[0.1 0.85 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['nu',num2str(i)]),.
..
'Position',[0.1 0.65 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['theta1',num2str(i)
]),...
'Position',[0.1 0.45 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['theta',num2str(i)]
),...
'Position',[0.1 0.25 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
uicontrol(f2,'Style','pushbutton','Units','normalized',...
ANEXO
'Position',[0.1 0.05 0.5 0.1],'String','Load
Properties','Callback',@cargarE71);
end
ANEXO
function pTransIso2(i)
panelColor = get(0,'DefaultUicontrolBackgroundColor');
f2 = figure('Units','normalized',...
'Position',[0.1*i 0.1 0.3 0.4],...
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name',num2str(i),...
'tag','mainWin');
% Crea los datos para E
%Etiqueta E
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.1 0.9 0.3 0.08],'String','E',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta E33
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.5 0.9 0.4 0.08],'String','E33',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta G13
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.3 0.75 0.4 0.08],'String','G13',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta nu
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.1 0.6 0.4 0.08],'String','nu',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta nu31
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.3 0.6 0.4 0.08],'String','nu31',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta fi
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.1 0.45 0.4 0.08],'String','fi',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta th
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.3 0.45 0.4 0.08],'String','th',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta theta(i-1)
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.1 0.3 0.4 0.08],'String','theta1',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta theta(i)
uicontrol(f2,'Style','text','Units','normalized',...
'Position',[0.3 0.3 0.4 0.08],'String','theta',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo para E
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['E',num2str(i)]),..
.
ANEXO
'Position',[0.1 0.85 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% campo para E33
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['E33',num2str(i)]),
...
'Position',[0.5 0.85 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% campo para G13
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['G13',num2str(i)]),
...
'Position',[0.3 0.7 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% campo para nu
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['nu',num2str(i)]),.
..
'Position',[0.1 0.55 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% campo para nu31
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['nu31',num2str(i)])
,...
'Position',[0.3 0.55 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% campo para fi
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['fi',num2str(i)]),.
..
'Position',[0.1 0.4 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% campo para th
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['th',num2str(i)]),.
..
'Position',[0.3 0.4 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% campo para theta(i-1)
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['theta1',num2str(i)
]),...
'Position',[0.1 0.25 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% campo para theta(i)
uicontrol(f2,'Style','edit','Units','normalized','tag',strcat(['theta',num2str(i)]
),...
'Position',[0.3 0.25 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% boton para cargar propiedades
uicontrol(f2,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.05 0.5 0.1],'String','Load
Properties','Callback',@cargarEIso2);
end
ANEXO
function introE40(varargin)
cadena=get(findobj('tag','mainWin'),'Name');
NombreVentanaActiva=cadena(1);
i=str2double(NombreVentanaActiva);
%%%%%%%%%%
%%%%%%%%%%
%%%%%%%%%%
global Ei;
global Ii;
global L;
global TH;
global FI
%global ST
%global Kinvx
%global Kinvy
%global Kinvz
%global So
%global F
global A
global B
global P1
global P2
global P3
%CARGAR THETA
theta1 = str2double(get(findobj('tag',strcat(['theta1',num2str(i)])),'String'));
theta = str2double(get(findobj('tag',strcat(['theta',num2str(i)])),'String'));
%MATRIZ ANGULOS DE ESQUINA THETA INICIAL Y FINAL
TH(:,:,i) = zeros(2,1);
TH(1,1,i) = 2*pi*theta1/360;
TH(2,1,i) = 2*pi*theta/360;
e11=str2double(get(findobj('tag',strcat(['E11',num2str(i)])),'String'));
% aqui habria que comprobar si lo que se ha metido es un numero y cosas
% de esas...
%set(findobj('tag','RESPUESTA_E11'),'String',['El valor de E11 es '
num2str(e11)]);
So(1,1,i) = 1/e11;
e22=str2double(get(findobj('tag',strcat(['E22',num2str(i)])),'String'));
% aqu� habr�a que comprobar si lo que se ha metido es un n�mero y cosas
% de esas...
%set(findobj('tag','RESPUESTA_E22'),'String',['El valor de E22 es '
num2str(e22)]);
So(2,2,i) = 1/e22;
e33=str2double(get(findobj('tag',strcat(['E33',num2str(i)])),'String'));
% aqu� habr�a que comprobar si lo que se ha metido es un n�mero y cosas
% de esas...
%set(findobj('tag','RESPUESTA_E33'),'String',['El valor de E33 es '
num2str(e33)]);
So(3,3,i) = 1/e33;
g12=str2double(get(findobj('tag',strcat(['G12',num2str(i)])),'String'));
% aqu� habr�a que comprobar si lo que se ha metido es un n�mero y cosas
ANEXO
% de esas...
%set(findobj('tag','RESPUESTA_E33'),'String',['El valor de E33 es '
num2str(e33)]);
So(6,6,i) = 1/g12;
g13=str2double(get(findobj('tag',strcat(['G13',num2str(i)])),'String'));
% aqu� habr�a que comprobar si lo que se ha metido es un n�mero y cosas
% de esas...
%set(findobj('tag','RESPUESTA_E33'),'String',['El valor de E33 es '
num2str(e33)]);
So(5,5,i) = 1/g13;
g23=str2double(get(findobj('tag',strcat(['G23',num2str(i)])),'String'));
% aqu� habr�a que comprobar si lo que se ha metido es un n�mero y cosas
% de esas...
%set(findobj('tag','RESPUESTA_E33'),'String',['El valor de E33 es '
num2str(e33)]);
So(4,4,i) = 1/g23;
nu12=str2double(get(findobj('tag',strcat(['nu12',num2str(i)])),'String'));
% aqu� habr�a que comprobar si lo que se ha metido es un n�mero y cosas
% de esas...
%set(findobj('tag','RESPUESTA_E33'),'String',['El valor de E33 es '
num2str(e33)]);
So(1,2,i) = -nu12/e11;
So(2,1,i) = -nu12/e11;
nu13=str2double(get(findobj('tag',strcat(['nu13',num2str(i)])),'String'));
% aqu� habr�a que comprobar si lo que se ha metido es un n�mero y cosas
% de esas...
%set(findobj('tag','RESPUESTA_E33'),'String',['El valor de E33 es '
num2str(e33)]);
So(1,3,i) = -nu13/e11;
So(3,1,i) = -nu13/e11;
nu23=str2double(get(findobj('tag',strcat(['nu23',num2str(i)])),'String'));
% aqu� habr�a que comprobar si lo que se ha metido es un n�mero y cosas
% de esas...
%set(findobj('tag','RESPUESTA_E33'),'String',['El valor de E33 es '
num2str(e33)]);
So(2,3,i) = -nu23/e22;
So(3,2,i) = -nu23/e22;
w11=str2double(get(findobj('tag',strcat(['w1',num2str(i)])),'String'));
% aqu� habr�a que comprobar si lo que se ha metido es un n�mero y cosas
% de esas...
%set(findobj('tag','RESPUESTA_E33'),'String',['El valor de E33 es '
num2str(e33)]);
disp(So)
w1 = w11*2*pi/360;
Kinvz(1,1,i)= 1;
Kinvz(2,2,i)= (cos(w1))^2;
Kinvz(2,3,i)= (sin(w1))^2;
Kinvz(2,4,i)= -2*cos(w1)*sin(w1);
Kinvz(3,3,i)= (cos(w1))^2;
Kinvz(3,2,i)= (sin(w1))^2;
Kinvz(3,4,i)= 2*cos(w1)*sin(w1);
Kinvz(4,2,i)= cos(w1)*sin(w1);
Kinvz(4,3,i)= -cos(w1)*sin(w1);
Kinvz(4,4,i)= (cos(w1))^2-(sin(w1))^2;
Kinvz(5,5,i)= cos(w1);
Kinvz(5,6,i)= sin(w1);
Kinvz(6,5,i)= -sin(w1);
Kinvz(6,6,i)= cos(w1);
w22=str2double(get(findobj('tag',strcat(['w2',num2str(i)])),'String'));
% aqu� habr�a que comprobar si lo que se ha metido es un n�mero y cosas
% de esas...
%set(findobj('tag','RESPUESTA_E33'),'String',['El valor de E33 es '
ANEXO
%num2str(e33)]);
w2 = w22*2*pi/360;
Kinvy(1,1,i)=(cos(w2))^2;
Kinvy(1,3,i)=(sin(w2))^2;
Kinvy(1,5,i)= -2*cos(w2)*sin(w2);
Kinvy(2,2,i)= 1;
Kinvy(3,1,i)=(sin(w2))^2;
Kinvy(3,3,i)=(cos(w2))^2;
Kinvy(3,5,i)=2*cos(w2)*sin(w2);
Kinvy(4,4,i)= cos(w2);
Kinvy(4,6,i)= sin(w2);
Kinvy(5,1,i)= cos(w2)*sin(w2);
Kinvy(5,3,i)= -cos(w2)*sin(w2);
Kinvy(5,5,i)= (cos(w2))^2-(sin(w2))^2;
Kinvy(6,4,i)= -sin(w2);
Kinvy(6,6,i)= cos(w2);
w33=str2double(get(findobj('tag',strcat(['w3',num2str(i)])),'String'));
% aqu� habr�a que comprobar si lo que se ha metido es un n�mero y cosas
% de esas...
%set(findobj('tag','RESPUESTA_E33'),'String',['El valor de E33 es '
%num2str(e33)]);
w3 =w33*2*pi/360;
Kinvx(1,1,i)= (cos(w3))^2;
Kinvx(1,2,i)= (sin(w3))^2;
Kinvx(1,6,i)= 2*cos(w3)*sin(w3);
Kinvx(2,2,i)= (cos(w3))^2;
Kinvx(2,1,i)= (sin(w3))^2;
Kinvx(2,6,i)= -2*cos(w3)*sin(w3);
Kinvx(3,3,i)= 1;
Kinvx(4,4,i)= cos(w3);
Kinvx(4,5,i)= -(sin(w3));
Kinvx(5,5,i)= (cos(w3));
Kinvx(5,4,i)= (sin(w3));
Kinvx(6,1,i)= -cos(w3)*sin(w3);
Kinvx(6,2,i)= cos(w3)*sin(w3);
Kinvx(6,6,i)= cos(w3)^2-(sin(w3))^2;
%DETERMINACION MATRIZ S EN EJES DE LA ESQUINA PARA CADA MATERIAL
ST1(:,:,i) = transpose(Kinvx(:,:,i))*So(:,:,i)*Kinvx(:,:,i);
ST2(:,:,i) = transpose(Kinvy(:,:,i))*ST1(:,:,i)*Kinvy(:,:,i);
ST(:,:,i) = transpose(Kinvz(:,:,i))*ST2(:,:,i)*Kinvz(:,:,i);
disp(ST);
%STx(:,:,i)= transpose(Kinvx(:,:,i))*So(:,:,i)*Kinvx(:,:,i);
%STy(:,:,i)= transpose(Kinvy(:,:,i))*STx(:,:,i)*Kinvy(:,:,i);
%ST(:,:,i) = transpose(Kinvz(:,:,i))*STy(:,:,i)*Kinvz(:,:,i);
%DETERMINACIÓN DE LAS MATRICES S' PARA CADA MATERIAL ORTÓTROPO
for j = 1:6
for k = 1:6
Sre(j,k,i)= ST(j,k,i)-(ST(j,3,i)*ST(3,k,i)/ST(3,3,i));
end
end
%disp(Sre(:,:,i))
%DETERMINACIÓN DE LOS 6 AUTOVALORES p PARA CADA PATERIAL ORTÓTROPO
ANEXO
I = complex (0,1);
syms F
P(:,:,i) = sym('P', [1 1]);
L2(:,:,i)= Sre(5,5,i)*(P(1,1,i))^2-2*P(1,1,i)*Sre(4,5,i)+Sre(4,4,i);
L3(:,:,i)= Sre(1,5,i)*(P(1,1,i))^3(Sre(1,4,i)+Sre(5,6,i))*(P(1,1,i))^2+(Sre(2,5,i)+Sre(4,6,i))*P(1,1,i)-Sre(2,4,i);
L4(:,:,i)= Sre(1,1,i)*(P(1,1,i))^42*Sre(1,6,i)*(P(1,1,i))^3+(2*Sre(1,2,i)+Sre(6,6,i))*(P(1,1,i))^22*Sre(2,6,i)*P(1,1,i)+Sre(2,2,i);
F(:,:,i) =(L2(:,:,i)*L4(:,:,i)-L3(:,:,i)*L3(:,:,i));
P2(:,:,i)= solve(F(:,:,i));
%disp(P2(:,:,i))
if abs(real(P2(:,:,i)))<0.000001;
P3(:,:,i) = sort(((P2(:,:,i))));
disp(P3(:,:,i));
P1(1,1,i)= P3(2,1,i);
P1(2,1,i)= P3(1,1,i);
P1(3,1,i)= P3(4,1,i);
P1(4,1,i)= P3(3,1,i);
P1(5,1,i)= P3(6,1,i);
P1(6,1,i)= P3(5,1,i);
disp(P1(:,:,i));
else
P3(:,:,i) = sort(P2(:,:,i),'descend');
disp(P3(:,:,i));
P1(1,1,i)= P3(1,1,i);
P1(2,1,i)= P3(2,1,i);
P1(3,1,i)= P3(3,1,i);
P1(4,1,i)= P3(4,1,i);
P1(5,1,i)= P3(5,1,i);
P1(6,1,i)= P3(6,1,i);
disp(P1(:,:,i));
end
disp(L3);
%OBTENCIÓN DE LOS TRES VECTORES DE LAMBDA PARA CADA MATERIAL
lambda1(:,:,i)= zeros(3,1);
lambda1(1,1,i)= -(subs(L3(1,1,i),P1(2,1,i))/subs(L2(1,1,i),P1(2,1,i)));
lambda1(2,1,i)= -(subs(L3(1,1,i),P1(4,1,i))/subs(L2(1,1,i),P1(4,1,i)));
lambda1(3,1,i)= -(subs(L3(1,1,i),P1(6,1,i))/subs(L4(1,1,i),P1(6,1,i)));
%disp(lambda1(:,:,1));
%OBTENCIÓN DE LA MATRIZ DE EPSILON Y NU
for r = 1:3
Epsilon1(r,1,i) = Sre(1,1,i)*(P1(2*r,1,i))^2 - P1(2*r,1,i)*Sre(1,6,i) +
Sre(1,2,i)+ lambda1(r,1,i)*(Sre(1,5,i)*P1(2*r,1,i)-Sre(1,4,i));
Epsilon2(r,1,i) = Sre(2,1,i)*(P1(2*r,1,i))^2 - P1(2*r,1,i)*Sre(2,6,i) +
Sre(2,2,i)+ lambda1(r,1,i)*(Sre(2,5,i)*P1(2*r,1,i)-Sre(2,4,i));
Epsilon4(r,1,i) = Sre(4,1,i)*(P1(2*r,1,i))^2 - P1(2*r,1,i)*Sre(4,6,i) +
Sre(4,2,i)+ lambda1(r,1,i)*(Sre(4,5,i)*P1(2*r,1,i)-Sre(4,4,i));
end
% disp(Epsilon1);
ANEXO
Nu1(:,:,i) = lambda1(3,1,i)*(((P1(6,1,i))^2*Sre(1,1,i) - P1(6,1,i)*Sre(1,6,i) +
Sre(1,2,i))) + (P1(6,1,i)*Sre(1,5,i)-Sre(1,4,i));
Nu2(:,:,i) = lambda1(3,1,i)*(((P1(6,1,i))^2*Sre(2,1,i) - P1(6,1,i)*Sre(2,6,i) +
Sre(2,2,i))) + (P1(6,1,i)*Sre(2,5,i)-Sre(2,4,i));
Nu4(:,:,i) = lambda1(3,1,i)*(((P1(6,1,i))^2*Sre(4,1,i) - P1(6,1,i)*Sre(4,6,i) +
Sre(4,2,i))) + (P1(6,1,i)*Sre(4,5,i)-Sre(4,4,i));
%OBTENCION DE Ki PARA CADA MATERIAL
K1(:,:,i) = (0.5*(1/((P1(2,1,i)^-1)*Epsilon2(1,1,i)-P1(2,1,i)*Epsilon1(1,1,i)lambda1(1,1,i)*((P1(2,1,i))^-1)*Epsilon4(1,1,i))))^(0.5);
K2(:,:,i) = (0.5*(1/((P1(4,1,i)^-1)*Epsilon2(2,1,i)-P1(4,1,i)*Epsilon1(2,1,i)lambda1(2,1,i)*((P1(4,1,i))^-1)*Epsilon4(2,1,i))))^(0.5);
%K3(:,:,i) = (0.5*(1/(lambda1(3,1,i)*(((P1(6,1,i)^-1)*Nu2(1,1,i)P1(6,1,i)*Nu1(1,1,i)))-(P1(6,1,i)^-1)*Epsilon4(3,1,i))))^(0.5);
K3(:,:,i) = (0.5/((lambda1(3,1,i)*((P1(6,1,i)^-1)*Nu2(1,1,i)P1(6,1,i)*Nu1(:,:,i)))-(P1(6,1,i)^-1)*Nu4(:,:,i)))^0.5;
%K3(:,:,i) = sqrt(0.5*(lambda(3,1,i)*((P1(6,1,i)^(-1))*Nu2(1,1,i)P1(6,1,i)*Nu1(:,:,i))-((P1(6,1,i)^-1)*Epsilon4(3,1,i))));
%MATRIZ A
A(:,:,i) =
A(1,1,i) =
A(2,1,i) =
A(3,1,i) =
A(1,2,i) =
A(2,2,i) =
A(3,2,i) =
A(1,3,i) =
A(2,3,i) =
A(3,3,i) =
AT(:,:,i)=
AC(:,:,i)=
TAC(:,:,i)
zeros(3,3);
K1(1,1,i)*Epsilon1(1,1,i);
K1(1,1,i)*P1(2,1,i)^(-1)*Epsilon2(1,1,i);
K1(1,1,i)*P1(2,1,i)^(-1)*Epsilon4(1,1,i);
K2(1,1,i)*Epsilon1(2,1,i);
K2(1,1,i)*P1(4,1,i)^(-1)*Epsilon2(2,1,i);
K2(1,1,i)*P1(4,1,i)^(-1)*Epsilon4(2,1,i);
K3(1,1,i)*Nu1(1,1,i);
K3(1,1,i)*P1(6,1,i)^(-1)*Nu2(1,1,i);
K3(1,1,i)*P1(6,1,i)^(-1)*Nu4(1,1,i);
transpose(A(:,:,i));
conj(A(:,:,i));
= transpose(AC(:,:,i));
%MATRIZ B
B(:,:,i) = zeros(3,3);
B(1,1,i) = -K1(1,1,i)*P1(2,1,i);
B(2,1,i) = K1(1,1,i);
B(3,1,i) = -K1(1,1,i)*lambda1(1,1,i);
B(1,2,i) = -K2(1,1,i)*P1(4,1,i);
B(2,2,i) = K2(1,1,i);
B(3,2,i) = -K2(1,1,i)*lambda1(2,1,i);
B(1,3,i) = -K3(1,1,i)*P1(6,1,i)*lambda1(3,1,i);
B(2,3,i) = K3(1,1,i)*lambda1(3,1,i);
B(3,3,i) = -K3(1,1,i);
BT(:,:,i) = transpose(B(:,:,i));
BC(:,:,i)= conj(B(:,:,i));
TBC(:,:,i) = transpose(BC(:,:,i));
%disp (A)
%disp(B)
%MATRIZ X
X(:,:,i) = horzcat(vertcat(A(:,:,i),B(:,:,i)),vertcat(AC(:,:,i),BC(:,:,i)));
TU(:,:,i) = [1 0 0 ; 0 1 0; 0 0 1];
MB(:,:,i)= TU(:,:,i)*BT(:,:,i);
MBC(:,:,i)= TU(:,:,i)*TBC(:,:,i);
MA(:,:,i) = TU(:,:,i)*AT(:,:,i);
ANEXO
MAC(:,:,i) = TU(:,:,i)*TAC(:,:,i);
X1(:,:,i)=horzcat(vertcat(MB(:,:,i),MBC(:,:,i)),vertcat(MA(:,:,i),MAC(:,:,i)));
%disp(X)
%disp(X1)
disp(X(:,:,i)*X1(:,:,i))
%p alfa theta(i-1)
Palfa(:,:,i)= zeros(3,1);
Palfa(1,1,i) = (P1(2,1,i)*cos(TH(1,1,i))- sin
(TH(1,1,i)))/(P1(2,1,i)*sin(TH(1,1,i))+cos(TH(1,1,i)));
Palfa(2,1,i) = (P1(4,1,i)*cos(TH(1,1,i))- sin
(TH(1,1,i)))/(P1(4,1,i)*sin(TH(1,1,i))+cos(TH(1,1,i)));
Palfa(3,1,i) = (P1(6,1,i)*cos(TH(1,1,i))- sin
(TH(1,1,i)))/(P1(6,1,i)*sin(TH(1,1,i))+cos(TH(1,1,i)));
%FI theta(i) and theta(i-1)
FI(1,1,i) = (cos(TH(2,1,i)-TH(1,1,i))+Palfa(1,1,i)*sin (TH(2,1,i)TH(1,1,i)))^L;
FI(2,2,i) = (cos(TH(2,1,i)-TH(1,1,i))+Palfa(2,1,i)*sin (TH(2,1,i)TH(1,1,i)))^L;
FI(3,3,i) = (cos(TH(2,1,i)-TH(1,1,i))+Palfa(3,1,i)*sin (TH(2,1,i)TH(1,1,i)))^L;
%p alfa conj theta(i-1)
Palfac(:,:,i)= zeros(3,1);
Palfac(1,1,i) = (P1(1,1,i)*cos(TH(1,1,i))- sin
(TH(1,1,i)))/(P1(1,1,i)*sin(TH(1,1,i))+cos(TH(1,1,i)));
Palfac(2,1,i) = (P1(3,1,i)*cos(TH(1,1,i))- sin
(TH(1,1,i)))/(P1(3,1,i)*sin(TH(1,1,i))+cos(TH(1,1,i)));
Palfac(3,1,i) = (P1(5,1,i)*cos(TH(1,1,i))- sin
(TH(1,1,i)))/(P1(5,1,i)*sin(TH(1,1,i))+cos(TH(1,1,i)));
%FIC theta(i) and theta(i-1)
FIC(1,1,i) = (cos(TH(2,1,i)-TH(1,1,i))+Palfac(1,1,i)*sin (TH(2,1,i)TH(1,1,i)))^L;
FIC(2,2,i) = (cos(TH(2,1,i)-TH(1,1,i))+Palfac(2,1,i)*sin (TH(2,1,i)TH(1,1,i)))^L;
FIC(3,3,i) = (cos(TH(2,1,i)-TH(1,1,i))+Palfac(3,1,i)*sin (TH(2,1,i)TH(1,1,i)))^L;
%Z LAMBDA
Zlambda(:,:,i) = blkdiag(FI(:,:,i),FIC(:,:,i));
%Transfer Matrix E for each isotropic material
Epi(:,:,i) = X(:,:,i)*Zlambda(:,:,i)*X1(:,:,i);
Ei(1,1,i)=Epi(1,1,i);
Ei(1,2,i)=Epi(1,2,i);
Ei(1,3,i)=Epi(1,3,i);
Ei(1,4,i)=Epi(1,4,i);
Ei(1,5,i)=Epi(1,5,i);
Ei(1,6,i)=Epi(1,6,i);
Ei(2,1,i)=Epi(2,1,i);
ANEXO
Ei(2,2,i)=Epi(2,2,i);
Ei(2,3,i)=Epi(2,3,i);
Ei(2,4,i)=Epi(2,4,i);
Ei(2,5,i)=Epi(2,5,i);
Ei(2,6,i)=Epi(2,6,i);
Ei(3,1,i)=Epi(3,1,i);
Ei(3,2,i)=Epi(3,2,i);
Ei(3,3,i)=Epi(3,3,i);
Ei(3,4,i)=Epi(3,4,i);
Ei(3,5,i)=Epi(3,5,i);
Ei(3,6,i)=Epi(3,6,i);
Ei(4,1,i)=Epi(4,1,i);
Ei(4,2,i)=Epi(4,2,i);
Ei(4,3,i)=Epi(4,3,i);
Ei(4,4,i)=Epi(4,4,i);
Ei(4,5,i)=Epi(4,5,i);
Ei(4,6,i)=Epi(4,6,i);
Ei(5,1,i)=Epi(5,1,i);
Ei(5,2,i)=Epi(5,2,i);
Ei(5,3,i)=Epi(5,3,i);
Ei(5,4,i)=Epi(5,4,i);
Ei(5,5,i)=Epi(5,5,i);
Ei(5,6,i)=Epi(5,6,i);
Ei(6,1,i)=Epi(6,1,i);
Ei(6,2,i)=Epi(6,2,i);
Ei(6,3,i)=Epi(6,3,i);
Ei(6,4,i)=Epi(6,4,i);
Ei(6,5,i)=Epi(6,5,i);
Ei(6,6,i)=Epi(6,6,i);
Ii(:,:,i)= eye(6,6);
% disp(Ei)
close (gcf);
end
ANEXO
function introE71(varargin)
format short
cadena=get(findobj('tag','mainWin'),'Name');
NombreVentanaActiva=cadena(1);
i=str2double(NombreVentanaActiva);
%disp(i)
global
global
global
global
global
global
global
global
global
global
global
global
global
global
global
%%%%%%%%%%
%%%%%%%%%%
%%%%%%%%%%
TH;
Ii;
L;
Ei;
Ai;
B;
FI;
FIT;
I;
CA
TA
TCA
CB
TB
TCB
I = complex (0,1);
disp(L)
E=str2double(get(findobj('tag',strcat(['E',num2str(i)])),'String'));
% aqui habria que comprobar si lo que se ha metido es un numero y cosas
% de esas...
%set(findobj('tag','RESPUESTA_E11'),'String',['El valor de E11 es '
num2str(e11)]);
nu=str2double(get(findobj('tag',strcat(['nu',num2str(i)])),'String'));
%CARGAR THETA
theta1 = str2double(get(findobj('tag',strcat(['theta1',num2str(i)])),'String'));
theta = str2double(get(findobj('tag',strcat(['theta',num2str(i)])),'String'));
%MATRIZ ANGULOS DE ESQUINA THETA INICIAL Y FINAL
TH(:,:,i) = zeros(2,1);
TH(1,1,i) = 2*pi*theta1/360;
TH(2,1,i) = 2*pi*theta/360;
disp(TH)
mu = E/(2*(1+nu));
ep = (1-I)*(2*(1-nu))^0.5;
epa= (1+I)*(2*(1-nu))^0.5;
gamma= 0.5*(3-4*nu);
fi =1/((8*mu*(1-nu))^0.5);
ANEXO
%MATRIZ A
Ai(:,:,i)=(zeros(3,3));
Ai(1,1,i)= fi;
Ai(1,2,i)= -(I*gamma)*fi;
Ai(2,1,i)= I*fi;
Ai(2,2,i)= -gamma*fi;
Ai(3,3,i)= ep*fi;
CA(:,:,i)= conj(Ai(:,:,i));
TA(:,:,i) = transpose(Ai(:,:,i));
TCA(:,:,i) = transpose (CA(:,:,i));
%disp(Ai)
%disp(CA)
%MATRIZ B
B(:,:,i)= zeros(3,3);
B(1,1,i)=(2*I*mu)*fi;
B(1,2,i)=mu*fi;
B(2,1,i)=(-2*mu)*fi;
B(2,2,i)=(-I*mu)*fi;
B(3,3,i)=(epa*mu)*fi;
CB(:,:,i)= conj(B(:,:,i));
TB(:,:,i) = transpose (B(:,:,i));
TCB(:,:,i) = transpose (CB(:,:,i));
%disp(B)
%disp(CB)
%MATRIZ X y MATRIZ X-1
X(:,:,i)= horzcat(vertcat(Ai(:,:,i),B(:,:,i)),vertcat(CA(:,:,i),CB(:,:,i)));
TU(:,:,i) = [0 1 0;1 0 0;0 0 1];
MB(:,:,i)= TU(:,:,i)*TB(:,:,i);
MBC(:,:,i)= TU(:,:,i)*TCB(:,:,i);
MA(:,:,i) = TU(:,:,i)*TA(:,:,i);
MAC(:,:,i) = TU(:,:,i)*TCA(:,:,i);
X1(:,:,i)=horzcat(vertcat(MB(:,:,i),MBC(:,:,i)),vertcat(MA(:,:,i),MAC(:,:,i)));
% MATRIZ FI Y FI DEL CONJUGADO DE P
te = exp((L)*I*(TH(2,1,i)-TH(1,1,i)));
fa = L*sin(TH(2,1,i)-TH(1,1,i))*exp(-I*(TH(2,1,i)+TH(1,1,i)));
FI(1,1,i)=te;
FI(1,2,i) = te*fa;
FI(2,2,i) = te;
FI(3,3,i) = te;
%disp (FI(:,:,i))
cte = exp((-I)*L*(TH(2,1,i)-TH(1,1,i)));
cfa = L*sin(TH(2,1,i)-TH(1,1,i))*exp(I*(TH(2,1,i)+TH(1,1,i)));
FIT(1,1,i)= cte;
FIT(1,2,i) = cte*cfa;
FIT(2,2,i)= cte;
FIT(3,3,i)=cte;
%disp (FIT)
%Z LAMBDA
Zlambda(:,:,i) = blkdiag(FI(:,:,i),FIT(:,:,i));
%Zlambda(1,1,i) = FI(1,1,i);
ANEXO
%Zlambda(1,2,i)
%Zlambda(2,2,i)
%Zlambda(3,3,i)
%Zlambda(4,4,i)
%Zlambda(4,5,i)
%Zlambda(5,5,i)
%Zlambda(6,6,i)
disp (Zlambda)
=
=
=
=
=
=
=
FI(1,2,i);
FI(2,2,i);
FI(3,3,i);
FIT(1,1,i);
FIT(1,2,i);
FIT(2,2,i);
FIT(3,3,i);
%Transfer Matrix E for each isotropic material
Epi(:,:,i) = X(:,:,i)*Zlambda(:,:,i)*X1(:,:,i);
Ei(1,1,i)=Epi(1,1,i);
Ei(1,2,i)=Epi(1,2,i);
Ei(1,3,i)=Epi(1,3,i);
Ei(1,4,i)=Epi(1,4,i);
Ei(1,5,i)=Epi(1,5,i);
Ei(1,6,i)=Epi(1,6,i);
Ei(2,1,i)=Epi(2,1,i);
Ei(2,2,i)=Epi(2,2,i);
Ei(2,3,i)=Epi(2,3,i);
Ei(2,4,i)=Epi(2,4,i);
Ei(2,5,i)=Epi(2,5,i);
Ei(2,6,i)=Epi(2,6,i);
Ei(3,1,i)=Epi(3,1,i);
Ei(3,2,i)=Epi(3,2,i);
Ei(3,3,i)=Epi(3,3,i);
Ei(3,4,i)=Epi(3,4,i);
Ei(3,5,i)=Epi(3,5,i);
Ei(3,6,i)=Epi(3,6,i);
Ei(4,1,i)=Epi(4,1,i);
Ei(4,2,i)=Epi(4,2,i);
Ei(4,3,i)=Epi(4,3,i);
Ei(4,4,i)=Epi(4,4,i);
Ei(4,5,i)=Epi(4,5,i);
Ei(4,6,i)=Epi(4,6,i);
Ei(5,1,i)=Epi(5,1,i);
Ei(5,2,i)=Epi(5,2,i);
Ei(5,3,i)=Epi(5,3,i);
Ei(5,4,i)=Epi(5,4,i);
Ei(5,5,i)=Epi(5,5,i);
Ei(5,6,i)=Epi(5,6,i);
Ei(6,1,i)=Epi(6,1,i);
Ei(6,2,i)=Epi(6,2,i);
Ei(6,3,i)=Epi(6,3,i);
Ei(6,4,i)=Epi(6,4,i);
Ei(6,5,i)=Epi(6,5,i);
Ei(6,6,i)=Epi(6,6,i);
Ii(:,:,i)= eye(6,6);
disp(Ei)
close (gcf);
end
ANEXO
function introEIso2(varargin)
cadena=get(findobj('tag','mainWin'),'Name');
NombreVentanaActiva=cadena(1);
i=str2double(NombreVentanaActiva);
global
global
global
global
global
global
global
global
global
global
global
global
global
global
global
global
global
global
global
global
global
%%%%%%%%%%
%%%%%%%%%%
%%%%%%%%%%
Ei;
Ii;
L;
TH;
A
B
STI
aT
nT
fT
lT
cT
Ai
Bi
P
mut
fi
th
xx1
xx2
knor
I = complex (0,1);
%LOAD THETA
theta1 = str2double(get(findobj('tag',strcat(['theta1',num2str(i)])),'String'));
theta = str2double(get(findobj('tag',strcat(['theta',num2str(i)])),'String'));
%MATRIX CORNER ANGLES INITIAL THETA AND FINAL ANGLE
TH(:,:,i) = zeros(2,1);
TH(1,1,i) = 2*pi*theta1/360;
TH(2,1,i) = 2*pi*theta/360;
%LOAD CONSTANTS
ETI=str2double(get(findobj('tag',strcat(['E',num2str(i)])),'String'));
STI(1,1,i) = 1/ETI;
STI(2,2,i)= 1/ETI;
nuTI=str2double(get(findobj('tag',strcat(['nu',num2str(i)])),'String'));
STI(1,2,i) = -nuTI/ETI;
STI(2,1,i) = -nuTI/ETI;
STI(6,6,i) = 1/(ETI/(2*(1+nuTI)));
E33TI=str2double(get(findobj('tag',strcat(['E33',num2str(i)])),'String'));
STI(3,3,i) = 1/E33TI;
G13TI=str2double(get(findobj('tag',strcat(['G13',num2str(i)])),'String'));
STI(4,4,i)= 1/G13TI;
STI(5,5,i) = 1/G13TI;
ANEXO
nu31=str2double(get(findobj('tag',strcat(['nu31',num2str(i)])),'String'));
STI(1,3,i) = -nu31/E33TI;
STI(2,3,i) = -nu31/E33TI;
STI(3,1,i) = -nu31/E33TI;
STI(3,2,i) = -nu31/E33TI;
CTI(:,:,i) = inv(STI(:,:,i));
aT(1,1,i)= CTI(1,1,i);
nT(1,1,i)= CTI(1,2,i);
fT(1,1,i) = CTI(1,3,i);
cT(1,1,i) = CTI(3,3,i);
lT(1,1,i) = CTI(4,4,i);
fi=str2double(get(findobj('tag',strcat(['fi',num2str(i)])),'String'));
fi(1,1,i) = 2*pi*fi/360;
th=str2double(get(findobj('tag',strcat(['th',num2str(i)])),'String'));
th(1,1,i) = 2*pi*th/360;
xx1(:,:,i) = aT(1,1,i)*cT(1,1,i)-fT(1,1,i)*fT(1,1,i)-2*fT(1,1,i)*lT(1,1,i);
xx2(:,:,i) =(aT(1,1,i)*cT(1,1,i)(fT(1,1,i)+2*lT(1,1,i))^2)*(aT(1,1,i)*cT(1,1,i)-fT(1,1,i)*fT(1,1,i));
tcc(:,:,i) = cos(fi(1,1,i))*cos(fi(1,1,i));
tss(:,:,i) = sin(fi(1,1,i))*sin(fi(1,1,i));
p1T(:,:,i)= I*sqrt(tcc(:,:,i)+tss(:,:,i)*(2*lT(1,1,i)/(aT(1,1,i)-nT(1,1,i))));
p2T(:,:,i)=
I*sqrt(tcc(:,:,i)+tss(:,:,i)*(xx1(:,:,1)+sqrt(xx2(:,:,1)))/(2*aT(1,1,i)*lT(1,1,i))
);
p3T(:,:,i)= I*sqrt(tcc(:,:,i)+tss(:,:,i)*(xx1(:,:,1)sqrt(xx2(:,:,1)))/(2*aT(1,1,i)*lT(1,1,i)));
mut(:,:,i)
mut(1,1,i)
mut(1,2,i)
mut(1,3,i)
=
=
=
=
zeros(1,3);
p1T(1,1,i);
p2T(1,1,i);
p3T(1,1,i);
% N MATRIX NO SEMI-SIMPLE CASES
% Case 1.a
if fi(1,1,i)==0 || fi(1,1,i)==pi || fi(1,1,i)==-pi
k(1,1,i) = sqrt((aT(1,1,i)+nT(1,1,i))/(4*aT(1,1,i)*((aT(1,1,i)nT(1,1,i)))));
kk(1,1,i) = (3*aT(1,1,i)-nT(1,1,i)/(2*(aT(1,1,i)+nT(1,1,i))));
A(:,:,i)
A(1,1,i)
A(1,2,i)
A(2,1,i)
A(2,2,i)
A(3,3,i)
=
=
=
=
=
=
zeros(3,3);
cos(fi(1,1,i))*kk(1,1,i);
-cos(fi(1,1,i))*kk(1,1,i)*k(1,1,i)*I;
I*kk(1,1,i);
kk(1,1,i)*k(1,1,i);
1/sqrt(2*I*lT(1,1,i));
B(:,:,i) = zeros(3,3);
ANEXO
B(1,1,i)
B(1,2,i)
B(2,1,i)
B(2,2,i)
B(3,3,i)
=
=
=
=
=
cos(fi(1,1,i))*I*kk(1,1,i)*(aT(1,1,i)-nT(1,1,i));
cos(fi(1,1,i))*kk(1,1,i)*0.5*((aT(1,1,i)-nT(1,1,i)));
-kk(1,1,i)*(aT(1,1,i)-nT(1,1,i));
0.5*kk(1,1,i)*(aT(1,1,i)-nT(1,1,i))*(-I);
I*lT(1,1,i)/sqrt(2*I*lT(1,1,i));
elseif sqrt(aT(1,1,i)*cT(1,1,i))-fT(1,1,i)-2*lT(1,1,i)==0
%Case 1.b.2
if 2*lT(1,1,i)/(aT(1,1,i)-nT(1,1,i))-sqrt(cT(1,1,i)/aT(1,1,i)) < 0.0001;
pT(:,:,i) = p1T(:,:,i);
j(1,1,i) =
(aT(1,1,i)+nT(1,1,i))*lT(1,1,i)*(sin(fi(1,1,i))^2)/((aT(1,1,i)nT(1,1,i))*2*aT(1,1,i)*pT(1,1,i)*cos(fi(1,1,i)));
j1(1,1,i) = (I/sin(fi(1,1,i)))* sqrt(pT(1,1,i)/(2*lT(1,1,i)));
j2(1,1,i) =
(I*cos(fi(1,1,i))/lT(1,1,i)*(sin(1,1,i))^2)*sqrt(aT(1,1,i)*(aT(1,1,i)nT(1,1,i))/(aT(1,1,i)+nT(1,1,i)));
j3(1,1,i) = cos(fi(1,1,i))*(aT(1,1,i)-nT(1,1,i))*0.5;
j4(1,1,i) =
(aT(1,1,i)+nT(1,1,i))*lT(1,1,i)*(sin(fi(1,1,i)))^2/(4*aT(1,1,i)*cos(fi(1,1,i)));
j5(1,1,i) = (3*aT(1,1,i)nT(1,1,i))*lT(1,1,i)*((sin(fi(1,1,i)))^2)/((aT(1,1,i)nT(1,1,i))*4*aT(1,1,i)*(pT(1,1,i)^2)*cos(fi(1,1,i)));
A(:,:,i)
A(1,1,i)
A(1,2,i)
A(1,3,i)
A(2,1,i)
A(2,2,i)
A(2,3,i)
A(3,2,i)
A(3,3,i)
=
=
=
=
=
=
=
=
=
zeros(3,3);
j2(1,1,i)*j(1,1,i);
j2(1,1,i)*(j5(1,1,i)+cos(fi(1,1,i))*(1+1/(2*pT(1,1,i)^2)));
j1(1,1,i)*cos(fi(1,1,i));
j2(1,1,i)*j(1,1,i)*pT(1,1,i);
-j2(1,1,i)*(pT(1,1,i)*j5(1,1,i)+0.5*cos(fi(1,1,i))/pT(1,1,i));
-j1(1,1,i)*cos(fi(1,1,i))/pT(1,1,i);
j2(1,1,i)*sin(fi(1,1,i));
j1(1,1,i)*sin(fi(1,1,i));
B(:,:,i) = zeros(3,3);
B(1,1,i) = -j2(1,1,i)*j(1,1,i)*(pT(1,1,i)^3)*(aT(1,1,i)-nT(1,1,i));
B(1,2,i) = j2(1,1,i)*(j3(1,1,i)-j4(1,1,i))*pT(1,1,i);
B(1,3,i) = j1(1,1,i)*cos(fi(1,1,i))*pT(1,1,i)*(aT(1,1,i)-nT(1,1,i));
B(2,1,i) = j2(1,1,i)*j(1,1,i)*(pT(1,1,i)^2)*(aT(1,1,i)-nT(1,1,i));
B(2,2,i) = -j2(1,1,i)*(j3(1,1,i)-j4(1,1,i));
B(2,3,i) = -j1(1,1,i)*cos(fi(1,1,i))*(aT(1,1,i)-nT(1,1,i));
B(3,1,i) = (j2(1,1,i)*j(1,1,i)*(pT(1,1,i)^3)*(aT(1,1,i)nT(1,1,i)))*(cos(fi(1,1,i))/sin(fi(1,1,i)))*(1+1/pT(1,1,i)^2);
B(3,2,i) =
(j3(1,1,i)*pT(1,1,i)*sin(fi(1,1,i))/cos(fi(1,1,i))+j4(1,1,i)*(1+pT(1,1,i)^2)*cos(1
,1,i)/(pT(1,1,i)*sin(1,1,i)))*j2(1,1,i);
B(3,3,i) = j1(1,1,i)*(cos(fi(1,1,i))^2/sin(fi(1,1,i)))*(aT(1,1,i)nT(1,1,i))*((pT(1,1,i)^2)*(sin(fi(1,1,i))^2/cos(fi(1,1,i))^2-1)/(2*pT(1,1,i)));
else
ANEXO
%Case 1.b.2
h1(1,1,i) = (I/sin(fi(1,1,i)))* sqrt(p1T(1,1,i)*0.5 /lT(1,1,i));
h2(1,1,i) = (I*0.5/p2T(1,1,i))*
sqrt((fT(1,1,i)+lT(1,1,i))/(aT(1,1,i)*lT(1,1,i)));
h3(1,1,i) = aT(1,1,i)*cos(fi(1,1,i))^2 + lT(1,1,i)*sin(fi(1,1,i))^2 aT(1,1,i)*p2T(1,1,i)^2;
h4(1,1,i) = 2*p2T(1,1,i)*sin(fi(1,1,i))^2 *(fT(1,1,i)+lT(1,1,i));
h5(1,1,i) = (aT(1,1,i)nT(1,1,i))/((fT(1,1,i)+lT(1,1,i))*sin(fi(1,1,i))^2);
A(:,:,i) = zeros(3,3);
A(1,1,i) = h2(1,1,i);
A(1,2,i) =
(h2(1,1,i)/h4(1,1,i))*(4*aT(1,1,i)*(p2T(1,1,i)^2)*(cos(fi(1,1,i))^2)+h3(1,1,i));
A(1,3,i) = h1(1,1,i)*cos(fi(1,1,i));
A(2,1,i) = h2(1,1,i)*p2T(1,1,i);
A(2,2,i) = -(h2(1,1,i)/h4(1,1,i))*p2T(1,1,i)*h3(1,1,i);
A(2,3,i) = -h1(1,1,i)*cos(fi(1,1,i))/p1T(1,1,i);
A(3,2,i) = (h2(1,1,i)/h4(1,1,i))*4*
aT(1,1,i)*p2T(1,1,i)^2*cos(fi(1,1,i))*sin(fi(1,1,i));
A(3,3,i) = h1(1,1,i)*sin(fi(1,1,i));
B(:,:,i) = zeros(3,3);
B(1,1,i) = -h2(1,1,i)*(p1T(1,1,i)^2)*p2T(1,1,i)*(aT(1,1,i)-nT(1,1,i));
B(1,2,i) =
h2(1,1,i)*h5(1,1,i)*(aT(1,1,i)*(p2T(1,1,i)^2)*(cos(fi(1,1,i))^2)0.5*(fT(1,1,i)+lT(1,1,i))*(p1T(1,1,i)^2)*(cos(fi(1,1,i))^2));
B(1,3,i) = h1(1,1,i)*cos(fi(1,1,i))*p1T(1,1,i)*(aT(1,1,i)-nT(1,1,i));
B(2,1,i) = h2(1,1,i)*(p1T(1,1,i)^2)*(aT(1,1,i)-nT(1,1,i));
B(2,2,i) = h2(1,1,i)*h5(1,1,i)*(1/p2T(1,1,i))*(aT(1,1,i)*(p2T(1,1,i)^2)*(cos(fi(1,1,i)^2)0.5*(fT(1,1,i)+lT(1,1,i))*(p1T(1,1,i)^2)*(sin(fi(1,1,i))^2)));
B(2,3,i) = -h1(1,1,i)*cos(fi(1,1,i))*(aT(1,1,i)-nT(1,1,i));
B(3,1,i) = h2(1,1,i)*(p1T(1,1,i)^2)*(aT(1,1,i)nT(1,1,i))*p2T(1,1,i)*(cos(fi(1,1,i))/sin(fi(1,1,i)))*(1+1/(p1T(1,1,i)^2));
B(3,2,i) =
h2(1,1,i)*h5(1,1,i)*(cos(fi(1,1,i))/sin(fi(1,1,i)))*(aT(1,1,i)*(p2T(1,1,i)^2)*(sin
(fi(1,1,i))^2)-0.5*(1+p1T(1,1,i)^2)*(h3(1,1,i)+2*aT(1,1,i)*(p2T(1,1,i)^2)));
B(3,3,i) = h1(1,1,i)*((cos(fi(1,1,i))^2)/sin(fi(1,1,i)))*(aT(1,1,i)nT(1,1,i))*((p1T(1,1,i)^2)*(sin(fi(1,1,i))^2/(cos(fi(1,1,i))^2)-1)1)/(2^p1T(1,1,i));
end
else
% N MATRIX SEMI-SIMPLE AND SIMPLE CASES
if fT(1,1,i)+ lT(1,1,i) < 0.0001
k1d(1,1,i)
k2d(1,1,i)
k3d(1,1,i)
k4d(1,1,i)
nT(1,1,i));
k5d(1,1,i)
=
=
=
=
(I/cos(fi(1,1,i)))* sqrt(p1T(1,1,i)/(2*lT(1,1,i)));
1/sqrt(2*lT(1,1,i)*p2T(1,1,i));
I/(sin(fi(1,1,i))*sqrt(2*p3T(1,1,i)*lT(1,1,i)));
((cos(fi(1,1,i))^2)-p1T(1,1,i)*p1T(1,1,i))*0.5*(aT(1,1,i)-
= (aT(1,1,i)-nT(1,1,i))*(cos(fi(1,1,i))^2)/sin(fi(1,1,i));
A(:,:,i) = zeros(3,3);
A(1,1,i) = k2d(1,1,i)*sin(fi(1,1,i));
ANEXO
A(1,2,i)
A(1,3,i)
A(2,2,i)
A(2,3,i)
A(3,1,i)
A(3,2,i)
A(3,3,i)
=
=
=
=
=
=
=
k3d(1,1,i)*(cos(fi(1,1,i))^2);
-k1d(1,1,i)*(cos(fi(1,1,i))^2)/sin(fi(1,1,i));
k3d(1,1,i)*p3T(1,1,i);
k1d(1,1,i)*(cos(fi(1,1,i))^2)/(sin(fi(1,1,i))*p1T(1,1,i));
-k2d(1,1,i) * cos(fi(1,1,i));
k3d(1,1,i)*sin(fi(1,1,i))*cos(fi(1,1,i));
-k1d(1,1,i)*cos(fi(1,1,i));
B(:,:,i) = zeros(3,3);
B(1,1,i) = k2d(1,1,i)*lT(1,1,i)*p2T(1,1,i)*sin(fi(1,1,i));
B(1,2,i) = k3d(1,1,i)*k4d(1,1,i)*p3T(1,1,i);
B(1,3,i) = -k1d(1,1,i)*k5d(1,1,i)*p1T(1,1,i);
B(2,1,i) = -k2d(1,1,i)*lT(1,1,i)*sin(fi(1,1,i));
B(2,2,i) = -k3d(1,1,i)*k4d(1,1,i);
B(2,3,i) = k1d(1,1,i)*k5d(1,1,i);
B(3,1,i) = -k2d(1,1,i)*lT(1,1,i)*p2T(1,1,i)*cos(fi(1,1,i));
B(3,2,i) =
k3d(1,1,i)*k4d(1,1,i)*p3T(1,1,i)*(cos(fi(1,1,i))/sin(fi(1,1,i)))*(2/((cos(fi(1,1,i
))^2)-p1T(1,1,i)^2)-1);
B(3,3,i) =
k1d(1,1,i)*k5d(1,1,i)*((cos(fi(1,1,i))^2)*(1+2*(p1T(1,1,i)^2))p1T(1,1,i)^2)/(2*p1T(1,1,i)*cos(fi(1,1,i))*sin(fi(1,1,i)));
else
disp('3b')
for j=2:3
a1(1,j,i) = (fT(1,1,i)+lT(1,1,i))*tcc(1,1,i)*sin(fi(1,1,i))+aT(1,1,i)*sin(fi(1,1,i))*(tcc(1,1,
i)+mut(1,j,i)^2)+lT(1,1,i)*tss(1,1,i)*sin(fi(1,1,i));
a2(1,j,i) = -(fT(1,1,i)+lT(1,1,i))*mut(1,j,i)*sin(fi(1,1,i));
a3(1,j,i) = -(fT(1,1,i)+lT(1,1,i))*
cos(fi(1,1,i))*(sin(fi(1,1,i))^2)aT(1,1,i)*cos(fi(1,1,i))*((cos(fi(1,1,i))^2)+mut(1,j,i)^2)lT(1,1,i)*cos(fi(1,1,i))*(sin(fi(1,1,i))^2);
b1(1,j,i) = -(aT(1,1,i)nT(1,1,i))*(fT(1,1,i)+lT(1,1,i))*mut(1,j,i)*tcc(1,1,i)*sin(fi(1,1,i))lT(1,1,i)*mut(1,j,i)*sin(fi(1,1,i))*(fT(1,1,i)*tss(1,1,i)-aT(1,1,i)*tcc(1,1,i)aT(1,1,i)*mut(1,j,i)^2);
b2(1,j,i) = (((aT(1,1,i)*fT(1,1,i))(fT(1,1,i)+lT(1,1,i))*nT(1,1,i))*tcc(1,1,i)+fT(1,1,i)*lT(1,1,i)*tss(1,1,i)aT(1,1,i)*lT(1,1,i)*mut(1,j,i)^2)*sin(fi(1,1,i));
b3(1,j,i) = -(aT(1,1,i)nT(1,1,i))*(fT(1,1,i)+lT(1,1,i))*mut(1,j,i)*cos(fi(1,1,i))*tss(1,1,i)+lT(1,1,i)*mu
t(1,j,i)*cos(fi(1,1,i))*(fT(1,1,i)*tss(1,1,i)-aT(1,1,i)*tcc(1,1,i)aT(1,1,i)*mut(1,j,i)^2);
knor(1,j,i) =
(2*mut(1,j,i)*aT(1,1,i)*lT(1,1,i)*(tcc(1,1,i)+mut(1,j,i)^2)*(aT(1,1,i)*(tcc(1,1,i)
+mut(1,j,i)^2)+2*lT(1,1,i)*tss(1,1,i))2*mut(1,j,i)*fT(1,1,i)*lT(1,1,i)*tss(1,1,i)*tss(1,1,i)*(fT(1,1,i)+2*lT(1,1,i)))^(0.5);
end
knor(1,1,i) = (I*cos(fi(1,1,i))/sin(fi(1,1,i)))*sqrt(mut(1,1,i)/(2*lT(1,1,i)));
ANEXO
A(:,:,i)
A(1,1,i)
A(1,2,i)
A(1,3,i)
A(2,1,i)
A(2,2,i)
A(2,3,i)
A(3,1,i)
A(3,2,i)
A(3,3,i)
=
=
=
=
=
=
=
=
=
=
zeros(3,3);
-knor(1,1,i);
knor(1,2,i)*a1(1,2,i);
knor(1,3,i)*a1(1,3,i);
knor(1,1,i)/mut(1,1,i);
knor(1,2,i)*a2(1,2,i);
knor(1,3,i)*a2(1,3,i);
I*sqrt(mut(1,1,i)/(2*lT(1,1,i)));
knor(1,2,i)*a3(1,2,i);
knor(1,3,i)*a3(1,3,i);
B(:,:,i) = zeros(3,3);
B(1,1,i) = -knor(1,1,i)*(aT(1,1,i)-nT(1,1,i))*p1T(1,1,i);
B(1,2,i) = knor(1,2,i)*b1(1,2,i);
B(1,3,i) = knor(1,3,i)*b1(1,3,i);
B(2,1,i) = knor(1,1,i)*(aT(1,1,i)-nT(1,1,i));
B(2,2,i) = knor(1,2,i)*b2(1,2,i);
B(2,3,i) = knor(1,3,i)*b2(1,3,i);
B(3,1,i) = knor(1,1,i)*(aT(1,1,i)nT(1,1,i))*((cos(fi(1,1,i))^2)*(1+2*p1T(1,1,i)^2)p1T(1,1,i)^2)/(2*p1T(1,1,i)*cos(fi(1,1,i))*sin(fi(1,1,i)));
B(3,2,i) = knor(1,2,i)*b3(1,2,i);
B(3,3,i) = knor(1,3,i)*b3(1,3,i);
end
end
%p
P(:,:,i)= zeros(3,1);
P(1,1,i)=(p1T(:,:,i)*cos(th(1,1,i))sin(th(1,1,i)))/(p1T(:,:,i)*sin(th(1,1,i))+cos(th(1,1,i)));
P(2,1,i)=(p2T(:,:,i)*cos(th(1,1,i))sin(th(1,1,i)))/(p2T(:,:,i)*sin(th(1,1,i))+cos(th(1,1,i)));
P(3,1,i)=(p3T(:,:,i)*cos(th(1,1,i))sin(th(1,1,i)))/(p3T(:,:,i)*sin(th(1,1,i))+cos(th(1,1,i)));
%z
z1(:,:,i) = zeros(3,1);
z1(1,1,i) = cos(TH(1,1,i))+P(1,1,i)*sin(TH(1,1,i));
z1(2,1,i) = cos(TH(1,1,i))+P(2,1,i)*sin(TH(1,1,i));
z1(3,1,i) = cos(TH(1,1,i))+P(3,1,i)*sin(TH(1,1,i));
mz1(:,:,i) = zeros(3,1);
mz1(1,1,i) = abs(z1(1,1,i));
mz1(2,1,i) = abs(z1(2,1,i));
mz1(3,1,i) = abs(z1(3,1,i));
az1(:,:,i) = zeros(3,1);
az1(1,1,i) = angle(z1(1,1,i));
az1(2,1,i) = angle(z1(2,1,i));
az1(3,1,i) = angle(z1(3,1,i));
z2(:,:,i)
z2(1,1,i)
z2(2,1,i)
z2(3,1,i)
=
=
=
=
zeros(3,1);
cos(TH(2,1,i))+P(1,1,i)*sin(TH(2,1,i));
cos(TH(2,1,i))+P(2,1,i)*sin(TH(2,1,i));
cos(TH(2,1,i))+P(3,1,i)*sin(TH(2,1,i));
ANEXO
mz2(:,:,i)
mz2(1,1,i)
mz2(2,1,i)
mz2(3,1,i)
az2(:,:,i)
az2(1,1,i)
az2(2,1,i)
az2(3,1,i)
=
=
=
=
=
=
=
=
zeros(3,1);
abs(z2(1,1,i));
abs(z2(2,1,i));
abs(z2(3,1,i));
zeros(3,1);
angle(z2(1,1,i));
angle(z2(2,1,i));
angle(z2(3,1,i));
%G
%g(:,:,i) = zeros(3,1);
g(1,1,i) = exp((az1(1,1,i)-az2(1,1,i))*(-I)*L)*((mz2(1,1,i)/mz1(1,1,i))^L);
g(2,1,i) = exp((az1(2,1,i)-az2(2,1,i))*(-I)*L)*((mz2(2,1,i)/mz1(2,1,i))^L);
g(3,1,i) = exp((az1(3,1,i)-az2(3,1,i))*(-I)*L)*((mz2(3,1,i)/mz1(3,1,i))^L);
%CONG G
% cg(:,:,i) = zeros(3,1);
cg(1,1,i) = exp((-(az1(1,1,i)-az2(1,1,i)))*(-I)*L)*((mz2(1,1,i)/mz1(1,1,i))^L);
cg(2,1,i) = exp((-(az1(2,1,i)-az2(2,1,i)))*(-I)*L)*((mz2(2,1,i)/mz1(2,1,i))^L);
cg(3,1,i) = exp((-(az1(3,1,i)-az2(3,1,i)))*(-I)*L)*((mz2(3,1,i)/mz1(3,1,i))^L);
%twi
twi(:,:,i) = [cos(th(1,1,i)) -sin(th(1,1,i)) 0; sin(th(1,1,i)) cos(th(1,1,i)) 0;
0 0 1];
Ai(:,:,i) = twi(:,:,i)*A(:,:,i);
Bi(:,:,i) = twi(:,:,i)*B(:,:,i);
BT(:,:,i) = transpose(Bi(:,:,i));
BC(:,:,i)= conj(Bi(:,:,i));
TCB(:,:,i) = transpose(BC(:,:,i));
AT(:,:,i) = transpose(Ai(:,:,i));
AC(:,:,i)= conj(Ai(:,:,i));
TCA(:,:,i) = transpose(AC(:,:,i));
if fi(1,1,i)==0 || fi(1,1,i)==pi || fi(1,1,i)==-pi
%MATRIZ X y MATRIZ X-1
X(:,:,i)= horzcat(vertcat(Ai(:,:,i),Bi(:,:,i)),vertcat(AC(:,:,i),BC(:,:,i)));
TU(:,:,i) = [0 1 0;1 0 0;0 0 1];
MB(:,:,i)= TU(:,:,i)*BT(:,:,i);
MBC(:,:,i)= TU(:,:,i)*TCB(:,:,i);
MA(:,:,i) = TU(:,:,i)*AT(:,:,i);
MAC(:,:,i) = TU(:,:,i)*TCA(:,:,i);
X1(:,:,i)=horzcat(vertcat(MB(:,:,i),MBC(:,:,i)),vertcat(MA(:,:,i),MAC(:,:,i)));
ext = g(2,1,i)*L*sin(th(1,1,i)-fi(:,:,i))/(z1(2,1,i)*z2(2,1,i));
cext = cg(2,1,i)*L * sin(th(1,1,i)-fi(:,:,i))/(conj(z1(2,1,i))*conj(z2(2,1,i)));
FI(:,:,i) = [ext g(2,1,i) 0; g(3,1,i) 0 0; 0 0 g(1,1,i)];
FIC(:,:,i) = [cext cg(2,1,i) 0; cg(3,1,i) 0 0; 0 0 cg(1,1,i)];
elseif sqrt(aT(1,1,i)*cT(1,1,i))-fT(1,1,i)-2*lT(1,1,i)==0
%MATRIZ X y MATRIZ X-1
X(:,:,i)= horzcat(vertcat(Ai(:,:,i),Bi(:,:,i)),vertcat(AC(:,:,i),BC(:,:,i)));
TU(:,:,i) = [0 1 0;1 0 0;0 0 1];
MB(:,:,i)= TU(:,:,i)*BT(:,:,i);
MBC(:,:,i)= TU(:,:,i)*TCB(:,:,i);
ANEXO
MA(:,:,i) = TU(:,:,i)*AT(:,:,i);
MAC(:,:,i) = TU(:,:,i)*TCA(:,:,i);
X1(:,:,i)=horzcat(vertcat(MB(:,:,i),MBC(:,:,i)),vertcat(MA(:,:,i),MAC(:,:,i)));
ext = g(2,1,i)*L*sin(th(1,1,i)-fi(:,:,i))/(z1(2,1,i)*z2(2,1,i));
cext = cg(2,1,i)*L * sin(th(1,1,i)-fi(:,:,i))/(conj(z1(2,1,i))*conj(z2(2,1,i)));
FI(:,:,i) = [ext g(2,1,i) 0; g(3,1,i) 0 0; 0 0 g(1,1,i)];
FIC(:,:,i) = [cext cg(2,1,i) 0; cg(3,1,i) 0 0; 0 0 cg(1,1,i)];
else
%MATRIZ X y MATRIZ X-1
X(:,:,i) = horzcat(vertcat(Ai(:,:,i),Bi(:,:,i)),vertcat(AC(:,:,i),BC(:,:,i)));
TU(:,:,i) = [1 0 0 ; 0 1 0; 0 0 1];
MB(:,:,i)= TU(:,:,i)*BT(:,:,i);
MBC(:,:,i)= TU(:,:,i)*TCB(:,:,i);
MA(:,:,i) = TU(:,:,i)*AT(:,:,i);
MAC(:,:,i) = TU(:,:,i)*TCA(:,:,i);
X1(:,:,i)=horzcat(vertcat(MB(:,:,i),MBC(:,:,i)),vertcat(MA(:,:,i),MAC(:,:,i)));
FI(:,:,i) = [g(1,1,i) 0 0; 0 g(2,1,i) 0; 0 0 g(3,1,i)];
FIC(:,:,i) = [cg(1,1,i) 0 0; 0 cg(2,1,i) 0; 0 0 cg(3,1,i)];
end
disp(X(:,:,i)*X1(:,:,i))
%Z LAMBDA
Zlambda(:,:,i) = blkdiag(FI(:,:,i),FIC(:,:,i));
%Transfer Matrix E for each isotropic material
Epi(:,:,i) = X(:,:,i)*Zlambda(:,:,i)*X1(:,:,i);
Ei(1,1,i)=Epi(1,1,i);
Ei(1,2,i)=Epi(1,2,i);
Ei(1,3,i)=Epi(1,3,i);
Ei(1,4,i)=Epi(1,4,i);
Ei(1,5,i)=Epi(1,5,i);
Ei(1,6,i)=Epi(1,6,i);
Ei(2,1,i)=Epi(2,1,i);
Ei(2,2,i)=Epi(2,2,i);
Ei(2,3,i)=Epi(2,3,i);
Ei(2,4,i)=Epi(2,4,i);
Ei(2,5,i)=Epi(2,5,i);
Ei(2,6,i)=Epi(2,6,i);
Ei(3,1,i)=Epi(3,1,i);
Ei(3,2,i)=Epi(3,2,i);
Ei(3,3,i)=Epi(3,3,i);
Ei(3,4,i)=Epi(3,4,i);
Ei(3,5,i)=Epi(3,5,i);
Ei(3,6,i)=Epi(3,6,i);
Ei(4,1,i)=Epi(4,1,i);
Ei(4,2,i)=Epi(4,2,i);
ANEXO
Ei(4,3,i)=Epi(4,3,i);
Ei(4,4,i)=Epi(4,4,i);
Ei(4,5,i)=Epi(4,5,i);
Ei(4,6,i)=Epi(4,6,i);
Ei(5,1,i)=Epi(5,1,i);
Ei(5,2,i)=Epi(5,2,i);
Ei(5,3,i)=Epi(5,3,i);
Ei(5,4,i)=Epi(5,4,i);
Ei(5,5,i)=Epi(5,5,i);
Ei(5,6,i)=Epi(5,6,i);
Ei(6,1,i)=Epi(6,1,i);
Ei(6,2,i)=Epi(6,2,i);
Ei(6,3,i)=Epi(6,3,i);
Ei(6,4,i)=Epi(6,4,i);
Ei(6,5,i)=Epi(6,5,i);
Ei(6,6,i)=Epi(6,6,i);
Ii(:,:,i)= eye(6,6);
% disp(Ei)
close (gcf);
end
ANEXO
function Opened(varargin)
global nm
panelColor = get(0,'DefaultUicontrolBackgroundColor');
%%%%%%%%%%%%%%%%%BOUNDARY AND INTERFACE CONDITIONS FOR OPENED CORNER%%%%%%%%%%%%%%
f = figure('Units','normalized',...
'Position',[0.05 0.05 0.15*(nm+1) 0.4],...
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name','Boundary and Interface condition for open corner',...
'tag','interface'); % nombre de la ventana
for i=1:nm+1
if i==1
%Etiqueta
uicontrol(f,'Style','text','Units','normalized',...
'Position',[0.05+0.15*(i-1) 0.8 0.15 0.1],'String','Boundary
condition',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo
uicontrol(f,'Style','popupmenu','Units','normalized','tag',strcat(['INTERFACE',num
2str(i)]),...
'Position',[0.05+0.15*(i-1) 0.6 0.15 0.08],'String',{'Type of
Boundary...','.','.','.','Free','Fixed','Symetry','Antisimetry','Ur_restricted','U
r_allowed','U3_restricted','U3_allowed','Friction'},...
'HorizontalAlignment','Left');
elseif i~=1
if i~=nm+1
%Etiqueta
uicontrol(f,'Style','text','Units','normalized',...
'Position',[0.05+0.15*(i-1) 0.8 0.15 0.1],'String','Interface
condition',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo
uicontrol(f,'Style','popupmenu','Units','normalized','tag',strcat(['INTERFACE',num
2str(i)]),...
'Position',[0.05+0.15*(i-1) 0.6 0.15 0.08],'String',{'Type of
Interface...','Frictionless','Friction','Bounded'},...
'HorizontalAlignment','Left');
elseif i==nm+1
%Etiqueta
uicontrol(f,'Style','text','Units','normalized',...
'Position',[0.05+0.15*(i-1) 0.8 0.15 0.1],'String','Boundary
condition',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo
uicontrol(f,'Style','popupmenu','Units','normalized','tag',strcat(['INTERFACE',num
2str(i)]),...
%%%%%%%%%%%%%
'Position',[0.05+0.15*(i-1) 0.6 0.15 0.08],'String',{'Type of
Boundary...','.','.','.','Free','Fixed','Symetry','Antisymmetry','Ur_restricted','
ANEXO
Ur_allowed','U3_restricted','U3_allowed','Friction'},...
'HorizontalAlignment','Left');
end
end
end
% boton para calcular matrices de interface
uicontrol(f,'Style','pushbutton','Units','normalized',...
'Position',[0.05 0.30 0.25*(nm+1) 0.1],'String','Boundary-Interface
Matrix','Callback',@calcular3);
end
function calcular3(varargin)
global nm
global intcon
for i=1:nm+1
intcon =get(findobj('tag',strcat(['INTERFACE',num2str(i)])),'Value');
%%%%%%%%%
if intcon == 2
frictionless_o(i);
elseif intcon== 3
friction_o(i);
elseif intcon == 4
bounded_o(i);
elseif intcon ==5
Free_o(i);
elseif intcon ==6
Fixed_o(i);
elseif intcon == 7
Symetry_o(i)
elseif intcon == 8
Antisimetry_o(i)
elseif intcon == 9
Ur_restricted_o(i)
elseif intcon ==10
Ur_allowed_o(i)
elseif intcon == 11
U3_restricted_o(i)
elseif intcon ==12
U3_allowed_o(i)
elseif intcon ==13
BC_Friction_o(i)
end
end
end
function Closed(varargin)
% Use system background color for GUI components
global nm
panelColor = get(0,'DefaultUicontrolBackgroundColor');
%% ------------ GUI layout --------------% Crea la figura
%%%%%%%
%%%%%%%
ANEXO
f = figure('Units','normalized',... %normalized = la posici�n es sobre 1
'Position',[0.05 0.05 0.15*nm 0.4],... % esto cambia tama�o y posicion
[posX posY tamX tamY]
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name','Interface condition for closed corner',...
'tag','interface'); % nombre de la ventana
for i=1:nm
% Crea los datos para Material
%Etiqueta Material
uicontrol(f,'Style','text','Units','normalized',...
'Position',[0.05+0.15*(i-1) 0.8 0.15 0.1],'String','Interface
condition',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo para Material
uicontrol(f,'Style','popupmenu','Units','normalized','tag',strcat(['INTERFACE',num
2str(i)]),...
%%%%%%%%%%%%%
'Position',[0.05+0.15*(i-1) 0.6 0.15 0.08],'String',{'Type of
Interface...','Frictionless','Friction','Bounded'},...
'HorizontalAlignment','Left');
end
% boton para calcular matrices de interface
uicontrol(f,'Style','pushbutton','Units','normalized',...
'Position',[0.05 0.30 0.25*nm 0.1],'String','Boundary-Interface
Matrix','Callback',@calcular3);
end
function calcular3(varargin)
global nm
global intcon
for i=1:nm
intcon =get(findobj('tag',strcat(['INTERFACE',num2str(i)])),'Value');
%%%%%%%%%
if intcon == 2
frictionless(i);
elseif intcon == 3
friction(i);
elseif intcon == 4
bounded_i(i);
end
end
end
function friction(i)
% Use system background color for GUI components
%%%%%%%
%%%%%%%
%%%%%%%
ANEXO
panelColor = get(0,'DefaultUicontrolBackgroundColor');
%% ------------ GUI layout --------------% Crea la figura
f3 = figure('Units','normalized',... %normalized = la posici�n es sobre 1
'Position',[0.1*i 0.3 0.3 0.2],... % esto cambia tamaño y posicion [posX
posY tamX tamY]
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name',num2str(i),...
%%%%%%%%
'tag','interface conditions matrix'); % nombre de la ventana
%Etiqueta theta(i)
uicontrol(f3,'Style','text','Units','normalized',...
'Position',[0.3 0.8 0.4 0.1],'String','theta friction',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta nu(i)
uicontrol(f3,'Style','text','Units','normalized',...
'Position',[0.5 0.8 0.4 0.1],'String','friction coef.',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo para theta(i)
uicontrol(f3,'Style','edit','Units','normalized','tag',strcat(['theta
friction',num2str(i)]),...
'Position',[0.3 0.6 0.2 0.2],'String','',...
'HorizontalAlignment','Left');
% campo para theta(i)
uicontrol(f3,'Style','edit','Units','normalized','tag',strcat(['friction
coef.',num2str(i)]),...
'Position',[0.5 0.6 0.2 0.2],'String','',...
'HorizontalAlignment','Left');
% boton para cargar propiedades
uicontrol(f3,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.2 0.4 0.2],'String','Calculate interface matrix wedge
(i)','Callback',@cargarDi)
end
function cargarDi(varargin)
%ORTHONORMAL VECTORS
global
global
global
global
global
global
global
global
global
global
TH
S3
Sr
N
I3
O31
O33
nui
w
nm
cadena=get(findobj('tag','interface conditions matrix'),'Name');
%%%%%%%%%%
NombreVentanaActiva=cadena(1);
%%%%%%%%%%
i=str2double(NombreVentanaActiva);
%CARGAR THETA
ANEXO
wi = str2double(get(findobj('tag',strcat(['theta
friction',num2str(i)])),'String'));
nu = str2double(get(findobj('tag',strcat(['friction
coef.',num2str(i)])),'String'));
%MATRIZ NU
nui(1,1,i)=nu;
%ANGULO DE DESLIZAMIENTO%%
w(1,1,i) = 2*pi*wi/360;
%Sr(theta)
Sr = zeros (3,1);
Sr(1,1,i)= -cos(TH(2,1,i));
Sr(2,1,i)= -sin(TH(2,1,i));
%S3
S3 = zeros (3,1);
S3(3,1,i)=1;
%N(theta)
N(:,:,i) = zeros (3,1);
N(1,1,i) = -sin(TH(2,1,i));
N(2,1,i) = cos(TH(2,1,i));
%IDENTITY MATRIX
I3 = eye(3,3);
%NULE MATRIX
O31 = zeros(3,1);
O33 = zeros (3,3);
global intcon
intcon (:,:,i)=get(findobj('tag',strcat(['INTERFACE',num2str(i)])),'Value');
if i== nm
close ('Interface condition for closed corner')
end
close (gcf);
end
function friction_o(i)
% Use system background color for GUI components
panelColor = get(0,'DefaultUicontrolBackgroundColor');
%% ------------ GUI layout --------------% Crea la figura
f4 = figure('Units','normalized',... %normalized = la posici�n es sobre 1
'Position',[0.1*i 0.3 0.3 0.2],... % esto cambia tamaño y posicion [posX
posY tamX tamY]
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
ANEXO
'Name',num2str(i),...
%%%%%%%%
'tag','interface conditions matrix'); % nombre de la ventana
%Etiqueta theta(i)
uicontrol(f4,'Style','text','Units','normalized',...
'Position',[0.3 0.8 0.4 0.1],'String','theta friction',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta nu(i)
uicontrol(f4,'Style','text','Units','normalized',...
'Position',[0.5 0.8 0.4 0.1],'String','friction coef.',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo para theta(i)
uicontrol(f4,'Style','edit','Units','normalized','tag',strcat(['theta
friction',num2str(i)]),...
'Position',[0.3 0.6 0.2 0.2],'String','',...
'HorizontalAlignment','Left');
% campo para theta(i)
uicontrol(f4,'Style','edit','Units','normalized','tag',strcat(['friction
coef.',num2str(i)]),...
'Position',[0.5 0.6 0.2 0.2],'String','',...
'HorizontalAlignment','Left');
% boton para cargar propiedades
uicontrol(f4,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.2 0.5 0.2],'String','Calculate interface matrix wedge
(i)','Callback',@cargarDi)
end
function cargarDi(varargin)
%ORTHONORMAL VECTORS
global
global
global
global
global
global
global
global
global
global
S3
Sr
N
I3
O31
O33
nui
nm
w
TH
cadena=get(findobj('tag','interface conditions matrix'),'Name');
%%%%%%%%%%
NombreVentanaActiva=cadena(1);
%%%%%%%%%%
i=str2double(NombreVentanaActiva);
%CARGAR
wi = str2double(get(findobj('tag',strcat(['theta
friction',num2str(i)])),'String'));
nu = str2double(get(findobj('tag',strcat(['friction
coef.',num2str(i)])),'String'));
%MATRIZ NU
nui(1,1,i)=nu;
%ANGULO DE DESLIZAMIENTO%%
ANEXO
w(1,1,i) = 2*pi*wi/360;
%Sr(theta)
Sr (:,:,i)= zeros (3,1);
Sr(1,1,i)= -cos(TH(2,1,i));
Sr(2,1,i)= -sin(TH(2,1,i));
%S3
S3(:,:,i) = zeros (3,1);
S3(3,1,i)=1;
%N(theta)
N(:,:,i) = zeros (3,1);
N(1,1,i) = -sin(TH(2,1,i));
N(2,1,i) = cos(TH(2,1,i));
%IDENTITY MATRIX
I3 = eye(3,3);
%NULE MATRIX
O31 = zeros(3,1);
O33 = zeros (3,3);
global intcon
intcon (:,:,i)=get(findobj('tag',strcat(['INTERFACE',num2str(i)])),'Value');
if i== nm+1
close ('Boundary and Interface condition for open corner')
end
close (gcf);
end
function frictionless(i)
% Use system background color for GUI components
panelColor = get(0,'DefaultUicontrolBackgroundColor');
%% ------------ GUI layout --------------% Crea la figura
f3 = figure('Units','normalized',... %normalized = la posici�n es sobre 1
'Position',[0.1*i 0.3 0.3 0.2],... % esto cambia tamaño y posicion [posX
posY tamX tamY]
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name',num2str(i),...
%%%%%%%%
'tag','interface conditions matrix'); % nombre de la ventana
%Etiqueta theta(i)
uicontrol(f3,'Style','text','Units','normalized',...
'Position',[0.3 0.8 0.4 0.1],'String','theta',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo para theta(i-1)
% campo para theta(i)
uicontrol(f3,'Style','edit','Units','normalized','tag',strcat(['theta',num2str(i)]
),...
'Position',[0.3 0.6 0.2 0.2],'String','',...
'HorizontalAlignment','Left');
ANEXO
% boton para cargar propiedades
uicontrol(f3,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.2 0.4 0.2],'String','Calculate interface matrix wedge
(i)','Callback',@cargarDi)
end
function cargarDi(varargin)
%ORTHONORMAL VECTORS
global TH
global S3
global Sr
global N
global I3
global O31
global O33
global nm
cadena=get(findobj('tag','interface conditions matrix'),'Name');
%%%%%%%%%%
NombreVentanaActiva=cadena(1);
%%%%%%%%%%
i=str2double(NombreVentanaActiva);
%CARGAR THETA
theta = str2double(get(findobj('tag',strcat(['theta',num2str(i)])),'String'));
%MATRIZ ANGULOS DE ESQUINA THETA INICIAL Y FINAL
TH(:,:,i) = zeros(2,1);
TH(1,1,i) = 0;
TH(2,1,i) = theta;
%Sr(theta)
Sr = zeros (3,1);
Sr(1,1,i)= -cos(TH(2,1,i));
Sr(2,1,i)=-sin(TH(2,1,i));
%S3
S3 = zeros (3,1);
S3(3,1,i)=1;
%N(theta)
N(:,:,i) = zeros (3,1);
N(1,1,i) = -sin(TH(2,1,i));
N(2,1,i) = cos(TH(2,1,i));
%IDENTITY MATRIX
I3 = eye(3,3);
%NULE MATRIX
O31 = zeros(3,1);
O33 = zeros (3,3);
global intcon
intcon (:,:,i)=get(findobj('tag',strcat(['INTERFACE',num2str(i)])),'Value');
if i== nm
close ('Boundary and Interface condition for open corner')
end
close (gcf);
end
ANEXO
function frictionless_o(i)
% Use system background color for GUI components
panelColor = get(0,'DefaultUicontrolBackgroundColor');
%% ------------ GUI layout --------------% Crea la figura
f3 = figure('Units','normalized',... %normalized = la posici�n es sobre 1
'Position',[0.1*i 0.3 0.3 0.2],... % esto cambia tamaño y posicion [posX
posY tamX tamY]
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name',num2str(i),...
%%%%%%%%
'tag','interface conditions matrix'); % nombre de la ventana
%Etiqueta theta(i)
uicontrol(f3,'Style','text','Units','normalized',...
'Position',[0.3 0.8 0.4 0.1],'String','theta sliding',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo para theta(i)
uicontrol(f3,'Style','edit','Units','normalized','tag',strcat(['theta
sliding',num2str(i)]),...
'Position',[0.3 0.6 0.2 0.2],'String','',...
'HorizontalAlignment','Left');
% boton para cargar propiedades
uicontrol(f3,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.2 0.5 0.2],'String','Calculate interface matrix wedge
(i)','Callback',@cargarDi)
end
function cargarDi(varargin)
%ORTHONORMAL VECTORS
global S3
global Sr
global N
global I3
global O31
global O33
global nm
cadena=get(findobj('tag','interface conditions matrix'),'Name');
%%%%%%%%%%
NombreVentanaActiva=cadena(1);
%%%%%%%%%%
i=str2double(NombreVentanaActiva);
%CARGAR THETA
theta = str2double(get(findobj('tag',strcat(['theta
sliding',num2str(i)])),'String'));
%MATRIZ ANGULOS DE ESQUINA THETA INICIAL Y FINAL
TH(:,:,i) = zeros(2,1);
TH(1,1,i) = theta1;
TH(2,1,i) = theta;
ANEXO
%Sr(theta)
Sr (:,:,i)= zeros (3,1);
Sr(1,1,i)= -cos(TH(2,1,i));
Sr(2,1,i)=-sin(TH(2,1,i));
%S3
S3 (:,:,i)= zeros (3,1);
S3(3,1,i)=1;
%N(theta)
N(:,:,i) = zeros (3,1);
N(1,1,i) = -sin(TH(2,1,i));
N(2,1,i) = cos(TH(2,1,i));
%IDENTITY MATRIX
I3 = eye(3,3);
%NULE MATRIX
O31 = zeros(3,1);
O33 = zeros (3,3);
global intcon
intcon (:,:,i)=get(findobj('tag',strcat(['INTERFACE',num2str(i)])),'Value');
if i== nm+1
close ('Boundary and Interface condition for open corner')
end
close (gcf);
end
function bounded_i(i)
% Use system background color for GUI components
panelColor = get(0,'DefaultUicontrolBackgroundColor');
%% ------------ GUI layout --------------% Crea la figura
f3 = figure('Units','normalized',... %normalized = la posici�n es sobre 1
'Position',[0.1*i 0.3 0.3 0.2],... % esto cambia tamaño y posicion [posX
posY tamX tamY]
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name',num2str(i),...
%%%%%%%%
'tag','interface conditions matrix'); % nombre de la ventana
%Etiqueta theta(i)
uicontrol(f3,'Style','text','Units','normalized',...
'Position',[0.3 0.8 0.4 0.1],'String','theta bounded',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo para theta(i)
uicontrol(f3,'Style','edit','Units','normalized','tag',strcat(['theta
bounded',num2str(i)]),...
'Position',[0.3 0.6 0.2 0.2],'String','',...
'HorizontalAlignment','Left');
% boton para cargar propiedades
uicontrol(f3,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.2 0.5 0.2],'String','Calculate interface matrix wedge
ANEXO
(i)','Callback',@cargarDi)
end
function cargarDi(varargin)
global O33
global nm
global I33
cadena=get(findobj('tag','interface conditions matrix'),'Name');
%%%%%%%%%%
NombreVentanaActiva=cadena(1);
%%%%%%%%%%
i=str2double(NombreVentanaActiva);
%CARGAR THETA
%theta = str2double(get(findobj('tag',strcat(['theta
symetry',num2str(i)])),'String'));
%MATRIZ ANGULOS DE ESQUINA THETA INICIAL Y FINAL
O33= zeros(3,3);
I33= eye(3,3);
global intcon
intcon (:,:,i)=get(findobj('tag',strcat(['INTERFACE',num2str(i)])),'Value');
if i== nm
close ('Interface condition for closed corner')
end
close (gcf);
end
function bounded_o(i)
% Use system background color for GUI components
panelColor = get(0,'DefaultUicontrolBackgroundColor');
%% ------------ GUI layout --------------% Crea la figura
f3 = figure('Units','normalized',... %normalized = la posici�n es sobre 1
'Position',[0.1*i 0.3 0.3 0.2],... % esto cambia tamaño y posicion [posX
posY tamX tamY]
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name',num2str(i),...
%%%%%%%%
'tag','interface conditions matrix'); % nombre de la ventana
%Etiqueta theta(i)
uicontrol(f3,'Style','text','Units','normalized',...
'Position',[0.3 0.8 0.4 0.1],'String','theta bounded',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo para theta(i)
ANEXO
uicontrol(f3,'Style','edit','Units','normalized','tag',strcat(['theta
bounded',num2str(i)]),...
'Position',[0.3 0.6 0.2 0.2],'String','',...
'HorizontalAlignment','Left');
% boton para cargar propiedades
uicontrol(f3,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.2 0.5 0.2],'String','Calculate interface matrix wedge
(i)','Callback',@cargarDi)
end
function cargarDi(varargin)
global O33
global nm
global I33
cadena=get(findobj('tag','interface conditions matrix'),'Name');
%%%%%%%%%%
NombreVentanaActiva=cadena(1);
%%%%%%%%%%
i=str2double(NombreVentanaActiva);
%CARGAR THETA
%theta = str2double(get(findobj('tag',strcat(['theta
symetry',num2str(i)])),'String'));
%MATRIZ ANGULOS DE ESQUINA THETA INICIAL Y FINAL
O33= zeros(3,3);
I33= eye(3,3);
global intcon
intcon (:,:,i)=get(findobj('tag',strcat(['INTERFACE',num2str(i)])),'Value');
if i== nm+1
close ('Boundary and Interface condition for open corner')
end
close (gcf);
end
function BC_Friction_o(i)
% Use system background color for GUI components
panelColor = get(0,'DefaultUicontrolBackgroundColor');
%% ------------ GUI layout --------------% Crea la figura
f4 = figure('Units','normalized',... %normalized = la posici�n es sobre 1
'Position',[0.1*i 0.3 0.3 0.2],... % esto cambia tamaño y posicion [posX
posY tamX tamY]
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
ANEXO
'Name',num2str(i),...
%%%%%%%%
'tag','interface conditions matrix'); % nombre de la ventana
%Etiqueta theta(i)
uicontrol(f4,'Style','text','Units','normalized',...
'Position',[0.3 0.8 0.4 0.1],'String','theta friction',...
'FontWeight','Bold','HorizontalAlignment','Left');
%Etiqueta nu(i)
uicontrol(f4,'Style','text','Units','normalized',...
'Position',[0.5 0.8 0.4 0.1],'String','friction coef.',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo para theta(i)
uicontrol(f4,'Style','edit','Units','normalized','tag',strcat(['theta
friction',num2str(i)]),...
'Position',[0.3 0.6 0.2 0.2],'String','',...
'HorizontalAlignment','Left');
% campo para theta(i)
uicontrol(f4,'Style','edit','Units','normalized','tag',strcat(['friction
coef.',num2str(i)]),...
'Position',[0.5 0.6 0.2 0.2],'String','',...
'HorizontalAlignment','Left');
% boton para cargar propiedades
uicontrol(f4,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.2 0.5 0.2],'String','Calculate interface matrix wedge
(i)','Callback',@cargarDi)
end
function cargarDi(varargin)
%ORTHONORMAL VECTORS
global
global
global
global
global
global
global
global
global
global
S3
Sr
N
I3
O31
O33
nui
nm
w
TH
cadena=get(findobj('tag','interface conditions matrix'),'Name');
%%%%%%%%%%
NombreVentanaActiva=cadena(1);
%%%%%%%%%%
i=str2double(NombreVentanaActiva);
%CARGAR
wi = str2double(get(findobj('tag',strcat(['theta
friction',num2str(i)])),'String'));
nu = str2double(get(findobj('tag',strcat(['friction
coef.',num2str(i)])),'String'));
%MATRIZ NU
nui(1,1,i)=nu;
%ANGULO DE DESLIZAMIENTO%%
ANEXO
w(1,1,i) = 2*pi*wi/360;
if i==1
%Sr(theta)
Sr (:,:,i)= zeros (3,1);
Sr(1,1,i)= -cos(TH(1,1,i));
Sr(2,1,i)= -sin(TH(1,1,i));
%S3
S3(:,:,i) = zeros (3,1);
S3(3,1,i)=1;
%N(theta)
N(:,:,i) = zeros (3,1);
N(1,1,i) = -sin(TH(1,1,i));
N(2,1,i) = cos(TH(1,1,i));
%IDENTITY MATRIX
I3 = eye(3,3);
%NULE MATRIX
O31 = zeros(3,1);
O33 = zeros (3,3);
else
%Sr(theta)
Sr (:,:,i)= zeros (3,1);
Sr(1,1,i)= -cos(TH(2,1,i-1));
Sr(2,1,i)= -sin(TH(2,1,i-1));
%S3
S3(:,:,i) = zeros (3,1);
S3(3,1,i)=1;
%N(theta)
N(:,:,i) = zeros (3,1);
N(1,1,i) = -sin(TH(2,1,i-1));
N(2,1,i) = cos(TH(2,1,i-1));
%IDENTITY MATRIX
I3 = eye(3,3);
%NULE MATRIX
O31 = zeros(3,1);
O33 = zeros (3,3);
end
global intcon
intcon (:,:,i)=get(findobj('tag',strcat(['INTERFACE',num2str(i)])),'Value');
if i== nm+1
close ('Boundary and Interface condition for open corner')
end
close (gcf);
end
function Antisimetry_o(i)
% Use system background color for GUI components
panelColor = get(0,'DefaultUicontrolBackgroundColor');
%% ------------ GUI layout --------------% Crea la figura
f3 = figure('Units','normalized',... %normalized = la posici�n es sobre 1
ANEXO
'Position',[0.1*i 0.3 0.3 0.2],... % esto cambia tamaño y posicion [posX
posY tamX tamY]
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name',num2str(i),...
%%%%%%%%
'tag','interface conditions matrix'); % nombre de la ventana
%Etiqueta theta(i)
uicontrol(f3,'Style','text','Units','normalized',...
'Position',[0.3 0.8 0.4 0.1],'String','theta antisymetry',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo para theta(i)
uicontrol(f3,'Style','edit','Units','normalized','tag',strcat(['theta
antisymetry',num2str(i)]),...
'Position',[0.3 0.6 0.2 0.2],'String','',...
'HorizontalAlignment','Left');
% boton para cargar propiedades
uicontrol(f3,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.2 0.5 0.2],'String','Calculate boundary matrix
wedge(i)','Callback',@cargarDi)
end
function cargarDi(varargin)
%ORTHONORMAL VECTORS
global S3
global Sr
global N
global I3
global O31
global O33
global nm
cadena=get(findobj('tag','interface conditions matrix'),'Name');
%%%%%%%%%%
NombreVentanaActiva=cadena(1);
%%%%%%%%%%
i=str2double(NombreVentanaActiva);
%CARGAR THETA
theta1 = 0;
theta = str2double(get(findobj('tag',strcat(['theta
antisymetry',num2str(i)])),'String'));
%MATRIZ ANGULOS DE ESQUINA THETA INICIAL Y FINAL
TH(:,:,i) = zeros(2,1);
TH(1,1,i) = theta1;
TH(2,1,i) = theta;
%Sr(theta)
Sr(:,:,i) = zeros (3,1);
Sr(1,1,i)= -cos(TH(2,1,i));
Sr(2,1,i)=-sin(TH(2,1,i));
%S3
S3 (:,:,i)= zeros (3,1);
S3(3,1,i)=1;
%N(theta)
ANEXO
N(:,:,i) = zeros (3,1);
N(1,1,i) = -sin(TH(2,1,i));
N(2,1,i) = cos(TH(2,1,i));
%IDENTITY MATRIX
I3 = eye(3,3);
%NULE MATRIX
O31 = zeros(3,1);
O33 = zeros (3,3);
global intcon
intcon (:,:,i)=get(findobj('tag',strcat(['INTERFACE',num2str(i)])),'Value');
if i== nm+1
close ('Boundary and Interface condition for open corner')
end
close (gcf);
end
function Symetry_o(i)
% Use system background color for GUI components
panelColor = get(0,'DefaultUicontrolBackgroundColor');
%% ------------ GUI layout --------------% Crea la figura
f3 = figure('Units','normalized',... %normalized = la posici�n es sobre 1
'Position',[0.1*i 0.3 0.3 0.2],... % esto cambia tamaño y posicion [posX
posY tamX tamY]
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name',num2str(i),...
%%%%%%%%
'tag','interface conditions matrix'); % nombre de la ventana
%Etiqueta theta(i)
uicontrol(f3,'Style','text','Units','normalized',...
'Position',[0.3 0.8 0.4 0.1],'String','theta symetry',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo para theta(i)
uicontrol(f3,'Style','edit','Units','normalized','tag',strcat(['theta
symetry',num2str(i)]),...
'Position',[0.3 0.6 0.2 0.2],'String','',...
'HorizontalAlignment','Left');
% boton para cargar propiedades
uicontrol(f3,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.2 0.5 0.2],'String','Calculate boundary matrix
wedge(i)','Callback',@cargarDi)
end
function cargarDi(varargin)
%ORTHONORMAL VECTORS
global S3
global Sr
global N
global I3
global O31
ANEXO
global O33
global nm
cadena=get(findobj('tag','interface conditions matrix'),'Name');
%%%%%%%%%%
NombreVentanaActiva=cadena(1);
%%%%%%%%%%
i=str2double(NombreVentanaActiva);
%CARGAR THETA
theta = str2double(get(findobj('tag',strcat(['theta
symetry',num2str(i)])),'String'));
%MATRIZ ANGULOS DE ESQUINA THETA INICIAL Y FINAL
TH(:,:,i) = zeros(2,1);
TH(1,1,i) = 0;
TH(2,1,i) = theta;
%Sr(theta)
Sr(:,:,i) = zeros (3,1);
Sr(1,1,i)= -cos(TH(2,1,i));
Sr(2,1,i)=-sin(TH(2,1,i));
%S3
S3(:,:,i) = zeros (3,1);
S3(3,1,i)=1;
%N(theta)
N(:,:,i) = zeros (3,1);
N(1,1,i) = -sin(TH(2,1,i));
N(2,1,i) = cos(TH(2,1,i));
%IDENTITY MATRIX
I3 = eye(3,3);
%NULE MATRIX
O31 = zeros(3,1);
O33 = zeros (3,3);
global intcon
intcon (:,:,i)=get(findobj('tag',strcat(['INTERFACE',num2str(i)])),'Value');
if i== nm+1
close ('Boundary and Interface condition for open corner')
end
close (gcf);
end
function U3_allowed_o(i)
% Use system background color for GUI components
panelColor = get(0,'DefaultUicontrolBackgroundColor');
%% ------------ GUI layout --------------% Crea la figura
f3 = figure('Units','normalized',... %normalized = la posici�n es sobre 1
'Position',[0.1*i 0.3 0.3 0.2],... % esto cambia tamaño y posicion [posX
posY tamX tamY]
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
ANEXO
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name',num2str(i),...
%%%%%%%%
'tag','interface conditions matrix'); % nombre de la ventana
%Etiqueta theta(i)
uicontrol(f3,'Style','text','Units','normalized',...
'Position',[0.3 0.8 0.4 0.1],'String','theta U3_allow',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo para theta(i)
uicontrol(f3,'Style','edit','Units','normalized','tag',strcat(['theta
U3_allow',num2str(i)]),...
'Position',[0.3 0.6 0.2 0.2],'String','',...
'HorizontalAlignment','Left');
% boton para cargar propiedades
uicontrol(f3,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.2 0.5 0.2],'String','Calculate boundary matrix wedge
(i)','Callback',@cargarDi)
end
function cargarDi(varargin)
%ORTHONORMAL VECTORS
global S3
global Sr
global N
global I3
global O31
global O33
global nm
cadena=get(findobj('tag','interface conditions matrix'),'Name');
%%%%%%%%%%
NombreVentanaActiva=cadena(1);
%%%%%%%%%%
i=str2double(NombreVentanaActiva);
%CARGAR THETA
theta1 = 0;
theta = str2double(get(findobj('tag',strcat(['theta
U3_allow',num2str(i)])),'String'));
%MATRIZ ANGULOS DE ESQUINA THETA INICIAL Y FINAL
TH(:,:,i) = zeros(2,1);
TH(1,1,i) = theta1;
TH(2,1,i) = theta;
%Sr(theta)
Sr(:,:,i) = zeros (3,1);
Sr(1,1,i)= -cos(TH(2,1,i));
Sr(2,1,i)=-sin(TH(2,1,i));
%S3
S3(:,:,i) = zeros (3,1);
S3(3,1,i)=1;
%N(theta)
N(:,:,i) = zeros (3,1);
N(1,1,i) = -sin(TH(2,1,i));
N(2,1,i) = cos(TH(2,1,i));
%IDENTITY MATRIX
I3 = eye(3,3);
%NULE MATRIX
ANEXO
O31 = zeros(3,1);
O33 = zeros (3,3);
global intcon
global int
int(:,:,i)= intcon;
if i== nm+1
close ('Boundary and Interface condition for open corner')
end
close (gcf);
end
function U3_restricted_o(i)
% Use system background color for GUI components
panelColor = get(0,'DefaultUicontrolBackgroundColor');
%% ------------ GUI layout --------------% Crea la figura
f3 = figure('Units','normalized',... %normalized = la posici�n es sobre 1
'Position',[0.1*i 0.3 0.3 0.2],... % esto cambia tamaño y posicion [posX
posY tamX tamY]
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name',num2str(i),...
%%%%%%%%
'tag','interface conditions matrix'); % nombre de la ventana
%Etiqueta theta(i)
uicontrol(f3,'Style','text','Units','normalized',...
'Position',[0.3 0.8 0.4 0.1],'String','theta U3_restric.',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo para theta(i)
uicontrol(f3,'Style','edit','Units','normalized','tag',strcat(['theta
U3_restric.',num2str(i)]),...
'Position',[0.3 0.6 0.2 0.2],'String','',...
'HorizontalAlignment','Left');
% boton para cargar propiedades
uicontrol(f3,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.2 0.5 0.2],'String','Calculate boundary matrix wedge
(i)','Callback',@cargarDi)
end
function cargarDi(varargin)
%ORTHONORMAL VECTORS
global
global
global
global
global
global
S3
Sr
N
I3
O31
O33
ANEXO
global nm
cadena=get(findobj('tag','interface conditions matrix'),'Name');
%%%%%%%%%%
NombreVentanaActiva=cadena(1);
%%%%%%%%%%
i=str2double(NombreVentanaActiva);
%CARGAR THETA
theta1 = 0;
theta = str2double(get(findobj('tag',strcat(['theta
U3_restric.',num2str(i)])),'String'));
%MATRIZ ANGULOS DE ESQUINA THETA INICIAL Y FINAL
TH(:,:,i) = zeros(2,1);
TH(1,1,i) = theta1;
TH(2,1,i) = theta;
%Sr(theta)
Sr(:,:,i) = zeros (3,1);
Sr(1,1,i)= -cos(TH(2,1,i));
Sr(2,1,i)=-sin(TH(2,1,i));
%S3
S3(:,:,i) = zeros (3,1);
S3(3,1,i)=1;
%N(theta)
N(:,:,i) = zeros (3,1);
N(1,1,i) = -sin(TH(2,1,i));
N(2,1,i) = cos(TH(2,1,i));
%IDENTITY MATRIX
I3 = eye(3,3);
%NULE MATRIX
O31 = zeros(3,1);
O33 = zeros (3,3);
global intcon
global int
int(:,:,i)= intcon;
if i== nm+1
close ('Boundary and Interface condition for open corner')
end
close (gcf);
end
function Ur_allowed_o(i)
% Use system background color for GUI components
panelColor = get(0,'DefaultUicontrolBackgroundColor');
%% ------------ GUI layout --------------% Crea la figura
f3 = figure('Units','normalized',... %normalized = la posici�n es sobre 1
'Position',[0.1*i 0.3 0.3 0.2],... % esto cambia tamaño y posicion [posX
posY tamX tamY]
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
ANEXO
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name',num2str(i),...
%%%%%%%%
'tag','interface conditions matrix'); % nombre de la ventana
%Etiqueta theta(i)
uicontrol(f3,'Style','text','Units','normalized',...
'Position',[0.3 0.8 0.4 0.1],'String','theta Ur_allow',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo para theta(i)
uicontrol(f3,'Style','edit','Units','normalized','tag',strcat(['theta
Ur_allow',num2str(i)]),...
'Position',[0.3 0.6 0.2 0.2],'String','',...
'HorizontalAlignment','Left');
% boton para cargar propiedades
uicontrol(f3,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.2 0.5 0.2],'String','Calculate boundary matrix wedge
(i)','Callback',@cargarDi)
end
function cargarDi(varargin)
%ORTHONORMAL VECTORS
global S3
global Sr
global N
global I3
global O31
global O33
global nm
cadena=get(findobj('tag','interface conditions matrix'),'Name');
%%%%%%%%%%
NombreVentanaActiva=cadena(1);
%%%%%%%%%%
i=str2double(NombreVentanaActiva);
%CARGAR THETA
theta1 = 0;
theta = str2double(get(findobj('tag',strcat(['theta
Ur_allow',num2str(i)])),'String'));
%MATRIZ ANGULOS DE ESQUINA THETA INICIAL Y FINAL
TH(:,:,i) = zeros(2,1);
TH(1,1,i) = theta1;
TH(2,1,i) = theta;
%Sr(theta)
Sr(:,:,i) = zeros (3,1);
Sr(1,1,i)= -cos(TH(2,1,i));
Sr(2,1,i)=-sin(TH(2,1,i));
%S3
S3(:,:,i) = zeros (3,1);
S3(3,1,i)=1;
%N(theta)
N(:,:,i) = zeros (3,1);
N(1,1,i) = -sin(TH(2,1,i));
N(2,1,i) = cos(TH(2,1,i));
%IDENTITY MATRIX
I3 = eye(3,3);
ANEXO
%NULE MATRIX
O31 = zeros(3,1);
O33 = zeros (3,3);
global intcon
global int
int(:,:,i)= intcon;
if i== nm+1
close ('Boundary and Interface condition for open corner')
end
close (gcf);
end
function Ur_restricted_o(i)
% Use system background color for GUI components
panelColor = get(0,'DefaultUicontrolBackgroundColor');
%% ------------ GUI layout --------------% Crea la figura
f3 = figure('Units','normalized',... %normalized = la posici�n es sobre 1
'Position',[0.1*i 0.3 0.3 0.2],... % esto cambia tamaño y posicion [posX
posY tamX tamY]
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name',num2str(i),...
%%%%%%%%
'tag','interface conditions matrix'); % nombre de la ventana
%Etiqueta theta(i)
uicontrol(f3,'Style','text','Units','normalized',...
'Position',[0.3 0.8 0.4 0.1],'String','theta Ur_restric.',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo para theta(i)
uicontrol(f3,'Style','edit','Units','normalized','tag',strcat(['theta
Ur_restric.',num2str(i)]),...
'Position',[0.3 0.6 0.2 0.2],'String','',...
'HorizontalAlignment','Left');
% boton para cargar propiedades
uicontrol(f3,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.2 0.5 0.2],'String','Calculate boundary matrix wedge
(i)','Callback',@cargarDi)
end
function cargarDi(varargin)
%ORTHONORMAL VECTORS
global
global
global
global
global
global
global
S3
Sr
N
I3
O31
O33
nm
ANEXO
cadena=get(findobj('tag','interface conditions matrix'),'Name');
%%%%%%%%%%
NombreVentanaActiva=cadena(1);
%%%%%%%%%%
i=str2double(NombreVentanaActiva);
%CARGAR THETA
theta1 = 0;
theta = str2double(get(findobj('tag',strcat(['theta
Ur_restric.',num2str(i)])),'String'));
%MATRIZ ANGULOS DE ESQUINA THETA INICIAL Y FINAL
TH(:,:,i) = zeros(2,1);
TH(1,1,i) = theta1;
TH(2,1,i) = theta;
%Sr(theta)
Sr(:,:,i) = zeros (3,1);
Sr(1,1,i)= -cos(TH(2,1,i));
Sr(2,1,i)=-sin(TH(2,1,i));
%S3
S3(:,:,i) = zeros (3,1);
S3(3,1,i)=1;
%N(theta)
N(:,:,i) = zeros (3,1);
N(1,1,i) = -sin(TH(2,1,i));
N(2,1,i) = cos(TH(2,1,i));
%IDENTITY MATRIX
I3 = eye(3,3);
%NULE MATRIX
O31 = zeros(3,1);
O33 = zeros (3,3);
global intcon
global int
int(:,:,i)= intcon;
if i== nm+1
close ('Boundary and Interface condition for open corner')
end
close (gcf);
end
Npoints=800;
wu1=linspace(-pi,pi,Npoints);
l=linspace(0,1,Npoints);
for i=1:length(l)
for j=1:length(wu1)
A=out(l(i),wu1(j));
[U,S,V] = svd(A,'econ');
R(i,j)=min(diag(S));
end
end
figure;
[x,y]=meshgrid(wu1,l);
ANEXO
contourf(x,y,R,20);
xlabel('w');
ylabel('Lambda')
% para buscar la solución exacta
% F=matriz_ext(X) --> F=A(L,wu1)*x, siendo A una matriz que depende no
% linealmente de L y wu1 y x, siendo x=X(1:5), L=X(6) y wu1=X(7)
%[X,FVAL,EXITFLAG,OUTPUT] = fsolve(@(X) matriz_ext2(X),[ones(5,1);0.2;0]);
function newtonroots(varargin)
global nr
nr = str2double(get(findobj('tag','nr'),'String'));
for i=1:nr
% Use system background color for GUI components
panelColor = get(0,'DefaultUicontrolBackgroundColor');
%% ------------ GUI layout --------------% Crea la figura
f3 = figure('Units','normalized',... %normalized = la posici�n es sobre 1
'Position',[0.1*i 0.1 0.2 0.3],... % esto cambia tamaño y posicion [posX
posY tamX tamY]
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name',num2str(i),...
%%%%%%%%
'tag','mainWin'); % nombre de la ventana
% Crea los datos para E
%Etiqueta E
uicontrol(f3,'Style','text','Units','normalized',...
'Position',[0.1 0.9 0.3 0.08],'String','sol',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo para E
uicontrol(f3,'Style','edit','Units','normalized','tag',strcat(['sol',num2str(i)]),
...
'Position',[0.1 0.85 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% boton para cargar propiedades
uicontrol(f3,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.05 0.5 0.1],'String','Solution','Callback',@solnewton);
end
end
function bisecroots(varargin)
nr = str2double(get(findobj('tag','nr'),'String'));
ANEXO
for i=1:nr
% Use system background color for GUI components
panelColor = get(0,'DefaultUicontrolBackgroundColor');
%% ------------ GUI layout --------------% Crea la figura
f3 = figure('Units','normalized',... %normalized = la posici�n es sobre 1
'Position',[0.1*i 0.1 0.2 0.3],... % esto cambia tamaño y posicion [posX
posY tamX tamY]
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name',num2str(i),...
%%%%%%%%
'tag','mainWin'); % nombre de la ventana
% Crea los datos para E
%Etiqueta E
uicontrol(f3,'Style','text','Units','normalized',...
'Position',[0.1 0.9 0.3 0.08],'String','a',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo para E
uicontrol(f3,'Style','edit','Units','normalized','tag',strcat(['a',num2str(i)]),..
.
'Position',[0.1 0.85 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
%Etiqueta E
uicontrol(f3,'Style','text','Units','normalized',...
'Position',[0.1 0.75 0.3 0.08],'String','b',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo para E
uicontrol(f3,'Style','edit','Units','normalized','tag',strcat(['b',num2str(i)]),..
.
'Position',[0.1 0.70 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
%Etiqueta E
uicontrol(f3,'Style','text','Units','normalized',...
'Position',[0.1 0.60 0.3 0.08],'String','tol',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo para E
uicontrol(f3,'Style','edit','Units','normalized','tag',strcat(['tol',num2str(i)]),
...
'Position',[0.1 0.55 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% boton para cargar propiedades
uicontrol(f3,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.05 0.5 0.1],'String','Solution','Callback',@bisection);
end
end
function solnewton(varargin)
ANEXO
format lonG
cadena=get(findobj('tag','mainWin'),'Name');
NombreVentanaActiva=cadena(1);
i=str2double(NombreVentanaActiva);
disp(i)
%%%%%%%%%%
%%%%%%%%%%
%%%%%%%%%%
global m
global Der
global root
sol=str2double(get(findobj('tag',strcat(['sol',num2str(i)])),'String'));
Der = inline(m);
root (:,:,i)= fsolve(Der,sol);
disp(root)
close (gcf);
end
function xb=bisection(varargin)
% Matlab function bisect.m
% Solves f(x) = 0 using the bisection method
%
% Inputs:
% a = left endpoint of interval
% b = right endpoint of interval
% tol = tolerance for stopping bisection method
%
% Required m-file:
% f.m is m-file for function f(x)
% Outputs:
% Root by bisection
%%
global f
global root
format lonG
cadena=get(findobj('tag','mainWin'),'Name');
NombreVentanaActiva=cadena(1);
i=str2double(NombreVentanaActiva);
disp(i)
%%%%%%%%%%
%%%%%%%%%%
%%%%%%%%%%
a=str2double(get(findobj('tag',strcat(['a',num2str(i)])),'String'));
b=str2double(get(findobj('tag',strcat(['b',num2str(i)])),'String'));
tol=str2double(get(findobj('tag',strcat(['tol',num2str(i)])),'String'));
it=0; % set iteration count to zero
fa=f(a);
fb=f(b);
%
% check bracketing
%
if sign(fa)==sign(fb), error('Root not in bracket'); end
%
% begin while loop
ANEXO
%
while (b-a)>tol
it=it+1;
c=a+0.5*(b-a);
fc=f(c);
if sign(fa)~=sign(fc); % root lies in [a,c]
b=c;
fb=fc;
else % root lies in [c,b]
a=c;
fa=fc;
end
% print progress
xb(:,:,i)=0.5*(a+b);
err=0.5*abs(b-a);
fprintf('\n n = %i Solution = %15.10e error = %15.10e\n',it,xb(:,:,i), err);
pause;
% The pause command causes the execution of this routine to
% be paused at the end of each iteration. Press any key
% on the keyboard to continue.
end
% print results
format long e
fprintf('\n\n Computed Solution = %e \n\n',xb(:,:,i));
fprintf(' Iteration count = %i \n\n',it);
root (:,:,i)= xb(:,:,i);
close (gcf);
function solnonsquare3(varargin)
global nr
nr = str2double(get(findobj('tag','nr'),'String'));
for i=1:nr
% Use system background color for GUI components
panelColor = get(0,'DefaultUicontrolBackgroundColor');
%% ------------ GUI layout --------------% Crea la figura
f3 = figure('Units','normalized',... %normalized = la posici�n es sobre 1
'Position',[0.1*i 0.1 0.2 0.3],... % esto cambia tamaño y posicion [posX
posY tamX tamY]
'Color',panelColor,...
'HandleVisibility','callback',...
'IntegerHandle','off',...
'Renderer','painters',...
'Toolbar','none',...
'Menubar','none',...
'NumberTitle','off',...
'Name',num2str(i),...
%%%%%%%%
'tag','mainWin'); % nombre de la ventana
% Crea los datos para E
%Etiqueta E
uicontrol(f3,'Style','text','Units','normalized',...
'Position',[0.1 0.9 0.3 0.08],'String','omega',...
'FontWeight','Bold','HorizontalAlignment','Left');
ANEXO
% campo para E
uicontrol(f3,'Style','edit','Units','normalized','tag',strcat(['omega',num2str(i)]
),...
'Position',[0.1 0.85 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
%Etiqueta E
uicontrol(f3,'Style','text','Units','normalized',...
'Position',[0.1 0.75 0.3 0.08],'String','sol',...
'FontWeight','Bold','HorizontalAlignment','Left');
% campo para E
uicontrol(f3,'Style','edit','Units','normalized','tag',strcat(['sol',num2str(i)]),
...
'Position',[0.1 0.70 0.2 0.08],'String','',...
'HorizontalAlignment','Left');
% boton para cargar propiedades
uicontrol(f3,'Style','pushbutton','Units','normalized',...
'Position',[0.1 0.05 0.5
0.1],'String','Solution','Callback',@fsolnosquare3);
function fsolnosquare3(varargin)
format lonG
cadena=get(findobj('tag','mainWin'),'Name');
NombreVentanaActiva=cadena(1);
i=str2double(NombreVentanaActiva);
disp(i)
%%%%%%%%%%
%%%%%%%%%%
%%%%%%%%%%
global root
global ome
global KSIMPLY
n=size(KSIMPLY,2);
sol=str2double(get(findobj('tag',strcat(['sol',num2str(i)])),'String'));
om=str2double(get(findobj('tag',strcat(['omega',num2str(i)])),'String'));
omega=2*pi*om/360;
% para buscar la solución exacta
% F=matriz_ext(X) --> F=A(L,wu1)*x, siendo A una matriz que depende no
% linealmente de L y wu1 y x, siendo x=X(1:5), L=X(6) y wu1=X(7)
[X,FVAL,EXITFLAG,OUTPUT] = fsolve(@(X) matriz_ext4(X),[ones(n,1);sol;omega]);
root(:,:,i) = X(n+1,1);
ome(:,:,i) = X(n+2,1);
close (gcf);
end
unction showRoots(varargin)
global nr
global root
format lonG
% create a figure
handles.fig = figure('Units', 'pixels', ...
'Position', [300 300 300 150], ...
ANEXO
'Menubar', 'none', ...
'Name', 'ROOTS',...
'Numbertitle','off');
%% INPUT PANEL subpanels
handles.resultados = uipanel('Parent', handles.fig,...
'Units', 'normalized', ...
'Backgroundcolor', [1 1 1], ...
'Foregroundcolor', [0 0 0], ...
'Title', ' RESULTS ', ...
'Position', [0.05 0.05 0.9 0.9]);
for i=1:nr
handles.resultado1 = uicontrol('Parent', handles.resultados,...
'Style','text',...
'Units', 'normalized', ...
'Backgroundcolor', [1 1 1], ...
'Foregroundcolor', [0 0 0], ...
'Tag','numberFlights',...
'String', ['Root: ' num2str(root(:,:,i))], ...
'HorizontalAlignment','left',...
'Position', [0.1 0.2*(i) 0.8 0.2]);
end
fileID = fopen('Roots.txt','w');
fprintf(fileID,'%6s %12s\n','Roots:');
fprintf(fileID,'%12.8f %12.8f\n',root);
fclose(fileID);
close('Corner Data');
close('Multimaterial Corner');
close('Choose method');
clear all;
end
Documentos relacionados
Descargar