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