Nothing Special   »   [go: up one dir, main page]

Borrarme

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 18

Table of Contents

Definición:...............................................................................................................................................................12
Ejemplo:................................................................................................................................................................. 12
Tipos de Matrices.................................................................................................................................................. 13
Ejemplo:................................................................................................................................................................. 13
Ejemplo:................................................................................................................................................................. 13
Graficos.................................................................................................................................................................. 15
Funciones de Matlab............................................................................................................................................. 16

%cargas aplicadas y grado de libertad asociados


F3d=zeros(168,1);
F3d([135 138 141 144 147 150 153 156],1)=-50000;
%propiedades del material y dimensiones
E=210000;A=1000;
%coordenadas de los nodos
xyz=[-30312.5 10312.5 -5000;30312.5 10312.5 -5000;30312.5 -10312.5 -5000;-30312.5 -10312.5 -500
%nodos asociados a los elementos
nodos3d=[5 6;6 7;7 8;8 9;9 10;10 11;11 12;12 13;13 14;14 5;15 16;16 17;17 18;18 19;19 20;20 21;
%grados de libertad asociados a los elementos
NdE=length(nodos3d);
NpE=size(nodos3d,2);
GdL=3;
NdN=length(xyz);
GdLT=NdN*GdL;
TMR=GdLT;
%grados de libertad asociados a los elementos
grados3d=zeros(NdE,GdL*NpE);
for i=1:NdE
n1=3*nodos3d(i,1);
n2=3*nodos3d(i,2);
grados3d(i,:)=[n1-2 n1-1 n1 n2-2 n2-1 n2];
end
%apoyos fijos
cond3d=[1 2 3 4 53 54 55 56];
condDOF3d=zeros(3*length(cond3d),1);
for i=1:length(cond3d)
nx=cond3d(i);
condDOF3d([3*i-2 3*i-1 3*i])=[3*nx-2 3*nx-1 3*nx];
end
%declaración de matrices principales
Q=zeros(GdLT,1);ESF=zeros(NdE,1);
%Ensamble de matriz de rigidez
K=zeros(GdLT);
for i=1:NdE
dx=(xyz(nodos3d(i,2),1)-xyz(nodos3d(i,1),1));
dy=(xyz(nodos3d(i,2),2)-xyz(nodos3d(i,1),2));
dz=(xyz(nodos3d(i,2),3)-xyz(nodos3d(i,1),3));
L=sqrt(dx^2+dy^2+dz^2);
l=dx/L;
m=dy/L;
n=dz/L;
base=E*A*[l 0;m 0;n 0;0 l;0 m;0 n]*[1 -1;-1 1]*[l m n 0 0 0;0 0 0 l m n]/L;

1
K(grados3d(i,:),grados3d(i,:))=K(grados3d(i,:),grados3d(i,:))+base;
end
%Reduccion de matrices Q1=Q2=Q8=0
K2=K;
K2(condDOF3d,:) = [];
K2(:,condDOF3d) = [];
K2=K2+(0.31172)*eye(length(K2));
F2=F3d;
F2(condDOF3d,:) = [];
%RESOLVIENDO EL SISTEMA
X=linsolve(K2,F2);
%ARMANDO LA MATRIZ DESPLAZAMIENTOS(14x1)
cond2=zeros(1,GdLT);
cond2(1,condDOF3d)=condDOF3d;
i=1;
for k=1:GdLT
if k==cond2(k)
else
Q(k)=X(i);
i=i+1;
end
end
k=1;
xyzf=zeros(NdN,3);
Q2=zeros(NdN,3);
for i=1:NdN
Q2(i,:)=[Q(k) Q(k+1) Q(k+2)];
xyzf(i,:)=xyz(i,:)+Q2(i,:);
k=k+3;
end
%OBTENIENDO LOS ESFUERZOS EN CADA ELEMENTO(11x1)
for i=1:NdE
lL=(xyz(nodos3d(i,2),1)-xyz(nodos3d(i,1),1));
mL=(xyz(nodos3d(i,2),2)-xyz(nodos3d(i,1),2));
nL=(xyz(nodos3d(i,2),3)-xyz(nodos3d(i,1),3));
L=sqrt((lL)^2+(mL)^2+(nL)^2);
l=lL/L;
m=mL/L;
n=nL/L;
ESF(i)=E*[-l -m -n l m n]*Q(grados3d(i,:))/L;
end
%OBTENIENDO LAS REACCIONES(14x1)
R=K*Q-F3d;
disp(R)

1.0e+04 *

0.3373
-0.3373
5.3965
-0.3434
-0.3434
5.4936
-0.3434
0.3434
5.4936

2
0.3373
0.3373
5.3965
0.0004
-0.0000
0.0000
0.0004
-0.0000
0.0000
0.0003
-0.0000
0.0000
0.0003
-0.0000
0.0001
-0.0000
-0.0000
0.0002
0.0003
0.0000
0.0001
0.0003
0.0000
0.0000
0.0004
0.0000
0.0000
0.0004
0.0000
0.0000
0.0000
-0.0000
0.0002
0.0002
-0.0000
0.0002
0.0002
-0.0000
0.0002
0.0003
-0.0000
0.0002
0.0003
-0.0000
0.0002
-0.0000
-0.0000
0.0003
0.0003
0.0000
0.0002
0.0003
0.0000
0.0002
0.0002
0.0000
0.0002
0.0002
0.0000
0.0002
0.0000
-0.0000
0.0003
0.0004
-0.0000

3
0.0003
0.0004
-0.0000
0.0003
0.0003
-0.0000
0.0003
0.0002
-0.0000
0.0003
-0.0000
-0.0000
0.0004
0.0002
0.0000
0.0003
0.0003
0.0000
0.0003
0.0004
0.0000
0.0003
0.0004
0.0000
0.0003
0.0000
-0.0000
0.0004
0.0002
-0.0000
0.0004
0.0002
-0.0000
0.0004
0.0003
-0.0000
0.0004
0.0003
-0.0000
0.0004
-0.0000
-0.0000
0.0005
0.0003
0.0000
0.0004
0.0003
0.0000
0.0004
0.0002
0.0000
0.0004
0.0002
0.0000
0.0004
0.0000
-0.0000
0.0005
0.0004
0.0000
0.0005
0.0004
0.3112
0.0200
0.0003

4
0.3112
0.0200
0.0003
0.0000
0.0005
0.0003
-0.0000
0.0005
0.0003
-0.3112
0.0200
0.0004
-0.3112
0.0200
0.0004
-0.0000
0.0005
0
-0.2888
4.6208
0
-0.2777
4.4429
0
0.2777
4.4429
0
0.2888
4.6208

disp(ESF)

6.4849
10.9040
10.9009
0.0000
0.0000
10.9009
10.9040
6.4849
0.0000
0.0000
-0.0024
-12.1446
0.0031
0.0005
0.0005
0.0031
-12.1446
-0.0024
0.0005
0.0005
12.4539
21.5585
21.5559
0.0008
0.0008
21.5559
21.5585
12.4539
0.0008
0.0008
-0.0022
-12.4613
0.0032

5
0.0009
0.0009
0.0032
-12.4613
-0.0022
0.0011
0.0011
2.2730
6.2136
6.2103
-3.1239
6.2103
6.2136
2.2730
-3.1238
-11.8121
-5.3186
-19.8394
-0.0009
-0.0009
-19.8394
-5.3186
-11.8121
-0.0009
-0.0009
-9.5631
-5.3999
-17.3356
-0.0015
-0.0015
-17.3356
-5.3999
-9.5631
-0.0016
-0.0016
-14.4647
-5.5533
-24.0611
-0.0020
-0.0020
-24.0611
-5.5533
-14.4647
-0.0022
-0.0022
-10.7524
-4.7431
-18.5771
-0.0025
-0.0025
-18.5771
-4.7431
-10.7524
-0.0028
-0.0028
-54.1754
-55.1506
-55.1506
-54.1754
-44.7009
-43.3446
-44.5162
-39.2376
-39.2376
-44.5162

6
-43.3446
-44.7009
-44.7034
-44.6886
-45.6468
-39.2402
-39.2402
-45.6468
-44.6886
-44.7034
-40.5409
-44.6063
-45.6498
-33.5271
-33.5271
-45.6498
-44.6063
-40.5409
-40.5472
-47.2624
-49.8968
-33.5329
-33.5329
-49.8968
-47.2624
-40.5472
-46.2985
-44.5158
-44.5158
-46.2985

disp(Q2)

1.0e+03 *

0 0 0
0 0 0
0 0 0
0 0 0
-0.0119 0.0000 -0.0006
-0.0114 0.0001 -0.0011
-0.0099 0.0001 -0.0011
-0.0091 0.0000 -0.0019
0.0003 0.0000 -0.0051
-0.0091 -0.0000 -0.0019
-0.0099 -0.0001 -0.0011
-0.0114 -0.0001 -0.0011
-0.0119 -0.0000 -0.0006
-0.0003 0.0000 -0.0056
-0.0080 0.0000 -0.0051
-0.0080 0.0003 -0.0052
-0.0097 0.0003 -0.0053
-0.0097 0.0000 -0.0057
0.0006 0.0000 -0.0088
-0.0097 -0.0000 -0.0057
-0.0097 -0.0003 -0.0053
-0.0080 -0.0003 -0.0052
-0.0080 -0.0000 -0.0051
-0.0006 0.0000 -0.0098
-0.0121 0.0000 -0.0091
-0.0114 0.0006 -0.0095
-0.0083 0.0006 -0.0096
-0.0070 0.0000 -0.0093
0.0008 0.0000 -0.0120
-0.0070 -0.0000 -0.0093

7
-0.0083 -0.0006 -0.0096
-0.0114 -0.0006 -0.0095
-0.0121 -0.0000 -0.0091
-0.0009 0.0000 -0.0137
-0.0077 0.0000 -0.0133
-0.0077 0.0009 -0.0137
-0.0095 0.0009 -0.0140
-0.0095 0.0000 -0.0127
0.0010 0.0000 -0.0153
-0.0095 -0.0000 -0.0127
-0.0095 -0.0009 -0.0140
-0.0077 -0.0009 -0.0137
-0.0077 -0.0000 -0.0133
-0.0011 0.0000 -0.0176
-0.0115 -0.0001 -0.0170
-0.0114 -9.9849 -0.6424
-0.0105 -9.9848 -0.6429
-0.0102 -0.0001 -0.0159
-0.0102 0.0001 -0.0159
-0.0105 9.9848 -0.6429
-0.0114 9.9849 -0.6424
-0.0115 0.0001 -0.0170
0 0 0
0 0 0
0 0 0
0 0 0

grafico3d(xyz,xyzf,nodos3d,ESF,NdE);

%cargas aplicadas
f1=-1000000;f2=-1000000;f3=-1000000;f4=-1000000;f5=-1000000;
%propiedades del material y dimensiones

8
E=180000;A=625;L=1600;
%coordenadas de los nodos
xy0=[1 0 0;2 L 0;3 2*L 0;4 3*L 0;5 4*L 0;6 5*L 0;7 6*L 0;8 7*L 0;9 8*L 0;10 9*L 0;11 10*L 0;12
%grados de libertad asociados a los elementos
grados=[1 2 3 4;3 4 5 6;5 6 7 8;7 8 9 10;9 10 11 12;11 12 13 14;13 14 15 16;15 16 17 18;17 18 1
%cond. de contorno
cond=[1 2 26];
%factor de dibujo
fd=40;
%---------------------------------------------------------------------
%obteniendo parametros principales
NdE=length(grados);
NpE=size(grados,2)/2;
GdL=size(grados,2)/NpE;
NdN=max(max(grados))/2;
GdLT=NdN*GdL;
TMR=GdLT;
nodos=zeros(NdE,NpE);
%nodos asociados a los elementos
for i=1:NdE
nodos(i,:)=[grados(i,2) grados(i,4)]/NpE;
end
%declaración de matrices principales
K=zeros(GdLT);F=zeros(GdLT,1);Q=zeros(GdLT,1);ESF=zeros(NdE,1);
%Ensamble de matriz de rigidez
for i=1:NdE
l=(xy0(nodos(i,2),2)-xy0(nodos(i,1),2))/L;
m=(xy0(nodos(i,2),3)-xy0(nodos(i,1),3))/L;
base=[l^2 l*m -l^2 -l*m;l*m m^2 -l*m -m^2;-l^2 -l*m l^2 l*m;-l*m -m^2 l*m m^2];
K(grados(i,:),grados(i,:))=K(grados(i,:),grados(i,:))+E*A*base/L;
end
%Matriz de fuerzas,
F([40 42 44 46 48])=[f1;f2;f3;f4;f5];
%Reduccion de matrices Q1=Q2=Q8=0
K2=K;
K2(cond,:) = [];
K2(:,cond) = [];
F2=F;
F2(cond,:) = [];
%RESOLVIENDO EL SISTEMA
X=linsolve(K2,F2);
%ARMANDO LA MATRIZ DESPLAZAMIENTOS(14x1)
cond2=zeros(1,GdLT);
cond2(1,cond)=cond;
i=1;
for k=1:GdLT
if k==cond2(k)
else
Q(k)=X(i);
i=i+1;
end
end
%OBTENIENDO LOS ESFUERZOS EN CADA ELEMENTO(11x1)
for i=1:NdE

9
l=(xy0(nodos(i,2),2)-xy0(nodos(i,1),2))/L;
m=(xy0(nodos(i,2),3)-xy0(nodos(i,1),3))/L;
ESF(i)=E*[-l -m l m]*Q(grados(i,:))/L;
end
%OBTENIENDO LAS REACCIONES(14x1)
R=K*Q-F;
%----------------------------------------------------------------------------------------------
resultados=zeros(NdN,7);
Q2=zeros(NdN,3);
k=1;
for i=1:NdN
Q2(i,:)=[ i Q(k) Q(k+1)];
xyf(i,:)=xy0(i,:)+Q2(i,:);
xyf(i,1)=xy0(i,1);
resultados(i,:)=round([i R(k)/1000 R(k+1)/1000 Q(k) Q(k+1) xyf(i,2) xyf(i,3)],3);
Q2(i,:)=[ i Q(k) Q(k+1)];
k=k+2;
end
mESF=zeros(NdE,2);
for i=1:NdE
mESF(i,:)=[ i ESF(i)];
end
%MOSTRANDO LOS RESULTADOS
fprintf('\n REACCIONES EN NODOS(KN) DESPLAZAMIENTOS(mm) COORDENADA

REACCIONES EN NODOS(KN) DESPLAZAMIENTOS(mm) COORDENADAS FINALES(mm)

fprintf('Nodo RX RY X Y X

Nodo RX RY X Y X Y

disp(num2str(resultados))

1 0 2500 0 0 0 0
2 0 0 35.556 -238.222 1635.556 -238.222
3 0 0 71.111 -369.778 3271.111 -369.778
4 0 0 106.667 -494.222 4906.667 -494.222
5 0 0 142.222 -568.889 6542.222 -568.889
6 0 0 206.222 -707.556 8206.222 -707.556
7 0 0 270.222 -711.111 9870.222 -711.111
8 0 0 334.222 -707.556 11534.222 -707.556
9 0 0 398.222 -568.889 13198.222 -568.889
10 0 0 433.778 -494.222 14833.778 -494.222
11 0 0 469.333 -369.778 16469.333 -369.778
12 0 0 504.889 -238.222 18104.889 -238.222
13 0 2500 540.444 0 19740.444 0
14 0 0 337.778 -238.222 17937.778 1361.778
15 0 0 344.889 -494.222 14744.889 1105.778
16 0 0 266.667 -707.556 11466.667 892.444
17 0 0 273.778 -707.556 8273.778 892.444
18 0 0 195.556 -494.222 4995.556 1105.778
19 0 0 202.667 -238.222 1802.667 1361.778
20 0 0 298.667 -369.778 3498.667 2830.222
21 0 0 284.444 -572.444 6684.444 2627.556
22 0 0 270.222 -711.111 9870.222 2488.889
23 0 0 256 -572.444 13056 2627.556
24 0 0 241.778 -369.778 16241.778 2830.222

fprintf('\n ESFUERZOS EN CADA ELEMENTO(MPa) \n')

10
ESFUERZOS EN CADA ELEMENTO(MPa)

fprintf('ELEM ESFUERZO \n');

ELEM ESFUERZO

disp(num2str(mESF))

1 4000
2 4000
3 4000
4 4000
5 7200
6 7200
7 7200
8 7200
9 4000
10 4000
11 4000
12 4000
13 -4000
14 0
15 -4.6566129e-12
16 -3.7252903e-11
17 9.3132257e-12
18 2400
19 -800
20 0
21 -1.8626451e-11
22 -1.8626451e-11
23 0
24 -800
25 2400
26 -9.3132257e-12
27 4.6566129e-12
28 -1.8626451e-11
29 0
30 -4000
31 -4000
32 -1.8626451e-11
33 2400
34 -800
35 -800
36 0
37 -800
38 -800
39 2400
40 0
41 -4000
42 -3200
43 -3200
44 -3200
45 -3200

%MATRICES PARA DIBUJO


xyfd=xy0+fd*Q2;
xyfd(:,1)=xy0(:,1);

%funcion que grafica


grafico(xyf,xy0,nodos,ESF,NdE);

11
MATRICES Y APLICACIONES

Definición:
Una matriz es un arreglo bidimensional.

Ejemplo:
Crear la siguiente matriz.

Solución:

A=[2 6 9;3 -6 2;4 0 7]

A = 3×3
2 6 9
3 -6 2

12
4 0 7

Tipos de Matrices
Matriz identidad

I=eye(3)

I = 3×3
1 0 0
0 1 0
0 0 1

Matriz diagonal

D=diag([2 55 7])

D = 3×3
2 0 0
0 55 0
0 0 7

Matriz nula

O=zeros(3,4)

O = 3×4
0 0 0 0
0 0 0 0
0 0 0 0

Ejemplo:
Implemente una función que calcule la siguiente Sumatoria:

Solución:

s=expo(1,10)

s = 2.7183

exp(1)

ans = 2.7183

Ejemplo:
Implemente una funcion que permita verificar si el número es par.

13
Solución:

n=input('Ingrese un número: ')

n = 15

verificapar(n)

El número 15 es impar

Ejemplo:

Construya la siguiente matriz con comandos de matlab

Luego extraer las siguientes submatrices:

Solución:

R1=diag([1 2 3 4])

R1 = 4×4
1 0 0 0
0 2 0 0
0 0 3 0
0 0 0 4

R2=[1:4;5:8;9:12;20 0 5 4]

R2 = 4×4
1 2 3 4
5 6 7 8
9 10 11 12
20 0 5 4

R3=zeros(4,4)

R3 = 4×4

14
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0

T=[R1 R2;R2' R3]

T = 8×8
1 0 0 0 1 2 3 4
0 2 0 0 5 6 7 8
0 0 3 0 9 10 11 12
0 0 0 4 20 0 5 4
1 5 9 20 0 0 0 0
2 6 10 0 0 0 0 0
3 7 11 5 0 0 0 0
4 8 12 4 0 0 0 0

T1=T([3:6],[3:6])

T1 = 4×4
3 0 9 10
0 4 20 0
9 20 0 0
10 0 0 0

T2=T([4 8],[4 5 7 8])

T2 = 2×4
4 20 5 4
4 0 0 0

Graficos
xx=[-4:0.01:4];
yy=xx.^2;
plot(xx,yy,'r')
grid on
xlabel('Eje x')
ylabel ('Eje y')
title ('Función cuadrática')

15
Funciones de Matlab

function graficar=grafico3d(a,b,c,d,e)
%CODIGO DE COLORES -100MAX 100MAX(MPa)
n = 25;
cmap(1,:) = [0 0 0]; %negro(sin carga)
cmap(2,:) = [0 0 1]; % azul(-20|-10)
cmap(3,:) = [0 1 0]; % verde(-10|0)
cmap(4,:) = [1 1 0]; % amarillo(0|4)
cmap(5,:) = [1 0 0]; % rojo(4|8)
[Xc,Yc] = meshgrid([1:3],[1:n]);
colormap(interp2(Xc([1,2,9,20,n],:),Yc([1,2,9,20,n],:),cmap,Xc,Yc))
%-------------------------------------------------------------------%
for i=1:e
x=[a(c(i,1),1);a(c(i,2),1)];
y=[a(c(i,1),2);a(c(i,2),2)];
z=[a(c(i,1),3);a(c(i,2),3)];
xx=[x x];
yy=[y y];
zz=[z z];
xf=[b(c(i,1),1);b(c(i,2),1)];
yf=[b(c(i,1),2);b(c(i,2),2)];
zf=[b(c(i,1),3);b(c(i,2),3)];
xxf=[xf xf];

16
yyf=[yf yf];
zzf=[zf zf];
cc=[-110 -110;-110 -110];
cc2=[d(i) d(i);d(i) d(i)];
figure(1)
%intacta=surf(xx,yy,zz,cc,'EdgeColor','interp','FaceColor','none','Marker','o');
%set(intacta,'LineWidth',0.5)
%hold on
deformada=surf(xxf,yyf,zzf,cc2,'EdgeColor','interp','FaceColor','none','Marker','o');
set(deformada,'LineWidth',1.5)
hold on
shading interp
view(180,0)
color=colorbar;
ylabel(color, 'Esfuerzos en MPa')
end
title('ESTRUCTURA DEFORMADA ')
xlabel('Dimensiones en mm')
hold off
graficar=0;
end

%function s=expo(x,n)
%s=1;
%for k=1:n
% s=s+x^k/factorial(k);
%end
%end

%function []=verificapar(n)
%if mod(n,2)==0
% fprintf('El número %d es par \n',n)
%else
% fprintf ('El número %d es impar\n',n)
%end
%end

function graficar=grafico(a,b,c,d,e)
%CODIGO DE COLORES -100MAX 100MAX(MPa)
n = 25;
cmap(1,:) = [0 0 0]; %negro(sin carga)
cmap(2,:) = [0 0 1]; % azul(-100|-50)
cmap(3,:) = [0 1 0]; % verde(-50|0)
cmap(4,:) = [1 1 0]; % amarillo(0|50)
cmap(5,:) = [1 0 0]; % rojo(50|100)
[Xc,Yc] = meshgrid([1:3],[1:n]);
colormap(interp2(Xc([1,2,9,20,n],:),Yc([1,2,9,20,n],:),cmap,Xc,Yc))

17
%-------------------------------------------------------------------%
%CODIGO PARA GENERAR EL GRAFICO DE LAS ARAMDURAS--------------------%
for i=1:e
x=[b(c(i,1),2);b(c(i,2),2)];
y=[b(c(i,1),3);b(c(i,2),3)];
xx=[x x];
yy=[y y];
xf=[a(c(i,1),2);a(c(i,2),2)];
yf=[a(c(i,1),3);a(c(i,2),3)];
xxf=[xf xf];
yyf=[yf yf];
zz = zeros(size(xx));
cc=[-110 -110;-110 -110];
cc2=[d(i) d(i);d(i) d(i)];
figure(1)
intacta=surf(xx,yy,zz,cc,'EdgeColor','interp','FaceColor','none','Marker','o');
set(intacta,'LineWidth',1)
hold on
deformada=surf(xxf,yyf,zz,cc2,'EdgeColor','interp','FaceColor','none','Marker','o');
set(deformada,'LineWidth',1.5)
hold on
shading interp
view(2)
color=colorbar;
ylabel(color, 'Esfuerzos en MPa')
end
title('ARMADURA DEFORMADA VS ARMADURA SIN DEFORMAR(40x factor de dibujo)')
xlabel('Dimensiones en mm')
hold off
graficar=0;
end

18

También podría gustarte