This MATLAB code solves for the displacements, reactions, and member forces of beams with 'N' spans using the stiffness method. It begins by inputting node coordinates, member properties, boundary conditions, and loads. It then calculates member lengths, stiffness matrices, and assembles the total stiffness matrix. The code solves for displacements, reacts displacements back to member forces, and outputs the results.
Development of Matlab Programme to study nonlinear vibration of a cantilever ...ijiert bestjournal
The finite element model for the nonlinear transverse vibration of t he beam was implemented in the program NLB This program was used to calculate the steady state response of the beam. The numerical results from the program were compared to the experimental res ults obtained by Malatkar (2003). The NLB program was also used to calculate the transient response of the be am,which was compared with the response obtained with ANSYS. The paper is a extension of the research papers which has been publishe d earlier in this issue of journal and December 2014 issue.
Simplified Solutions of the CLP and CCP Limiting Cases of the Problem of Apo...James Smith
The new solutions presented herein for the CLP and CCP limiting cases of the Problem of Apollonius are much shorter and more easily understood than those provided by the same author in References [1] and [2]. These improvements result from (1) a better selection of angle relationships as a starting point for the solution process; and (2) better use of GA identities to avoid forming troublesome combinations of terms within the resulting equations.
it is a lab manual, normally in various colleges filter designing is "Black-Sheep" on subjects. because many of the students failed in this exam.
it is very helpful to them.
Development of Matlab Programme to study nonlinear vibration of a cantilever ...ijiert bestjournal
The finite element model for the nonlinear transverse vibration of t he beam was implemented in the program NLB This program was used to calculate the steady state response of the beam. The numerical results from the program were compared to the experimental res ults obtained by Malatkar (2003). The NLB program was also used to calculate the transient response of the be am,which was compared with the response obtained with ANSYS. The paper is a extension of the research papers which has been publishe d earlier in this issue of journal and December 2014 issue.
Simplified Solutions of the CLP and CCP Limiting Cases of the Problem of Apo...James Smith
The new solutions presented herein for the CLP and CCP limiting cases of the Problem of Apollonius are much shorter and more easily understood than those provided by the same author in References [1] and [2]. These improvements result from (1) a better selection of angle relationships as a starting point for the solution process; and (2) better use of GA identities to avoid forming troublesome combinations of terms within the resulting equations.
it is a lab manual, normally in various colleges filter designing is "Black-Sheep" on subjects. because many of the students failed in this exam.
it is very helpful to them.
Математическая модель системы оценки эффективности реализации программ развит...Anatoly Simkin
Статья представляет результаты исследований в рамках магистерской диссертации на тему оценки эффективности финансирования программ развития национальных исследовательских университетов. Доклад темы был выполнен на третьей Всероссийской ежегодной научно-практической конференции «Информационные бизнес системы».
The article presents the results of the dissertation research on the topic of performance evaluation of financing development programs of national research universities. Report on the topic was performed at the third annual All-Russian scientific-practical conference "Business Information Systems".
Sistemas de comunicacion 4ta edicion - bruce a. carlson solutions manual
107069260 trabajo-final-de-estructuras-ii
1. CODIFICACIÓN DEL PROGRAMA EN MATLAB PARA LA SOLUCIÓN DE VIGAS DE “N”
TRAMOS POR EL MÉTODO DE LA RIGIDEZ:
function VIGARIGIDEZ
%%%%% ingreso de datos
clc
node=input ('INGRESE LAS COORDENADAS DE CADA NUDO [#n cx cy] =')
memb=input ('INGRESE MIEMBROS [#m ni nj prop(i)] =')
rest=input ('INGRESE RESTRICCIONES DE CADA NUDO [#n ry rz] =')
prop=input ('INGRESE PROPIEDADES DE CADA MIEMBRO [#m E I] =')
nlc=input ('INGRESE CARGAS CONCENTRADAS EN NUDOS [#n Fy Mz] =')
mlc=input ('INGRESE CARGAS CONCENTRADAS EN MIEMBROS [#m Fy Mz d1 d2] =')
mld=input ('INGRESE CARGAS DISTRIBUIDAS EN MIEMBROS [#m w1 w2 d1 d2] =')
%longitud
nn=size(node);
n=nn(1,1);
L=zeros(1,1,1);
for i=1:n-1
L(:,:,i)=((node(memb(i,2),2)-node(memb(i,3),2))^2+...
(node(memb(i,2),3)-node(memb(i,3),3))^2)^.5;
end
L=L(:);
%restricciones
r=zeros(2*n,1);
tp=size(rest);
pt=tp(1,1);
for i=1:pt
tp=rest(i,1);
r(2*tp-1,1)=rest(i,2);
r(2*tp,1)=rest(i,3);%r:es la lista de restricciones
end
r;
t=0;
rc=zeros(1,1);
for i=1:2*n;
rc(i,1)=r(i,1)+t;
t=rc(i,1); %rc:es rest cumu
end
%EI
EI=zeros(n-1,1);
for i=1:n-1
k=memb(i,4);
EI(i)=prop(k,2)*prop(k,3);
end
EI;
%matriz miembro
SM=zeros(4,4,1);
for i=1:n-1;
SM(:,:,i)=(EI(i)/L(i)^3)*[12 6*L(i) -12 6*L(i);...
6*L(i) 4*L(i)^2 -6*L(i) 2*L(i)^2;...
-12 -6*L(i) 12 -6*L(i);...
6*L(i) 2*L(i)^2 -6*L(i) 4*L(i)^2];
end
SM;
%matriz total de nudo
N=2*n-sum(r);
SJ=zeros(2*n,1);
for i=1:n-1;
j1=2*i-1;j2=2*i;k1=2*i+1;k2=2*i+2;
if r(j1,1)==0
j1=j1-rc(j1,1);
else
j1=N+rc(j1,1);
2. end
if r(j2,1)==0
j2=j2-rc(j2,1);
else
j2=N+rc(j2,1);
end
if r(k1,1)==0
k1=k1-rc(k1,1);
else
k1=N+rc(k1,1);
end
if r(k2,1)==0
k2=k2-rc(k2,1);
else
k2=N+rc(k2,1);
end
if r(2*i-1,1)==0;
SJ(j1,j1)=SJ(j1,j1)+SM(1,1,i);
SJ(j2,j1)=SJ(j2,j1)+SM(2,1,i);
SJ(k1,j1)=SM(3,1,i);
SJ(k2,j1)=SM(4,1,i);
end
if r(2*i,1)==0;
SJ(j1,j2)=SJ(j1,j2)+SM(1,2,i);
SJ(j2,j2)=SJ(j2,j2)+SM(2,2,i);
SJ(k1,j2)=SM(3,2,i);
SJ(k2,j2)=SM(4,2,i);
end
if r(2*i+1,1)==0;
SJ(j1,k1)=SM(1,3,i);
SJ(j2,k1)=SM(2,3,i);
SJ(k1,k1)=SJ(k1,k1)+SM(3,3,i);
SJ(k2,k1)=SJ(k2,k1)+SM(4,3,i);
end
if r(2*i+2,1)==0;
SJ(j1,k2)=SM(1,4,i);
SJ(j2,k2)=SM(2,4,i);
SJ(k1,k2)=SJ(k1,k2)+SM(3,4,i);
SJ(k2,k2)=SJ(k2,k2)+SM(4,4,i);
end
end
SJ;%matrizdenudototal
%cargas en los miembros
%(member load concenter)==%mlc
%AML1(cargaputual+momento);aplicable a cualquier # de carga por miembro
%[#m FY Fz d1 d2] ojoj
lc=size(mlc);
cl=lc(1,1);
AML1=zeros(n-1,4);
for i=1:cl;
temp=mlc(i,1);
p=mlc(i,2);ap=mlc(i,4);bp=L(temp)-ap;
map=p*ap*bp^2/L(temp)^2;mbp=-p*ap^2*bp/L(temp)^2;
rap=p*bp^2*(3*ap+bp)/L(temp)^3;rbp=p*ap^2*(ap+3*bp)/L(temp)^3;
M=mlc(i,3);am=mlc(i,4);bm=L(temp,1)-am;
mam=M*bm*(2*am-bm)/L(temp)^2;mbm=M*am*(2*bm-am)/L(temp)^2;
ram=6*M*am*bm/L(temp)^3;rbm=-ram;
AML1(temp,1)=AML1(temp,1)+rap+ram;
3. AML1(temp,2)=AML1(temp,2)+map+mam;
AML1(temp,3)=AML1(temp,3)+rbp+rbm;
AML1(temp,4)=AML1(temp,4)+mbp+mbm;
end
clear('lc','cl','temp','map','mbp','mam','mbm','rap','rbp','rap','ram');AML1;
%(member loadZ)==%mld
%AML2(carga distribuida);aplicable a cualquier # de carga dist por miembro
lc=size(mld);
cl=lc(1,1);
AML2=zeros(n-1,4);
for i=1:cl;
temp=mld(i,1);
w=mld(i,2);p=mld(i,5)-mld(i,4);
ma=w*p^2/12;mb=-ma;
ra=w*p/2;rb=w*p/2;
AML2(temp,1)=AML2(temp,1)+ra;
AML2(temp,2)=AML2(temp,2)+ma;
AML2(temp,3)=AML2(temp,3)+rb;
AML2(temp,4)=AML2(temp,4)+mb;
end
clear('lc','cl','temp','ma','mb');AML2;
%%%%%%%%%%%%%%%
AML=AML1+AML2;
%%%%%%%%%%%%%%%
%cargas en los nudos (nlc:nodal load concenter)
%[#n Fy Mz]
lc=size(nlc);
cl=lc(1,1);
A=zeros(2*n,1);
for i=1:cl;
temp=nlc(i,1);
A(2*temp-1,1)=nlc(i,2);
A(2*temp,1)=nlc(i,3);
end
clear('temp','lc','cl');A;
%matriz carga de nudo equivalente
AE=zeros(2*n,1);
for i=1:n-1;
AE(2*i-1,1)=AE(2*i-1,1)-AML(i,1);
AE(2*i,1)=AE(2*i,1)-AML(i,2);
AE(2*i+1,1)=AE(2*i+1,1)-AML(i,3);
AE(2*i+2,1)=AE(2*i+2,1)-AML(i,4);
end
AE;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%carga de nudo combinada
AC=AE*0;
for i=1:2*n;
if r(i,1)==0;
q=i-rc(i,1);
else
q=N+rc(i,1);
end
AC(q,1)=A(i,1)+AE(i,1);
end
AC;%ok carga de nudo combinada y ordenada
%%%%%%%RESULTADOS%%%%%%%%%
AD=AC(1:N,1);ARL=-1*AC(N+1:2*n,1);
S=SJ(1:N,1:N);SRD=SJ(N+1:2*n,1:N);
D=inv(S)*AD;%desplazamientos de nudos
4. AR=ARL+SRD*D;%reacciones en nudos
%%%%%%%%%Ordenando desplazamientos%%%%%%%%%
DJ=zeros(2*n,1);
j=0;kk=0;
for i=1:2*n;
j=j+1;
if r(i)==0;
kk=kk+1;
DJ(j)=D(kk);
end
end
DJ;
AM=zeros(1,4);
for i=1:n-1;
j1=2*i-1;j2=2*i;k1=2*i+1;k2=2*i+2;
kk1=4*EI(i)/L(i);kk2=1.5*kk1/L(i);kk3=2*kk2/L(i);
AM(i,1)=AML(i,1)+kk3*(DJ(j1)-DJ(k1))+kk2*(DJ(j2)+DJ(k2));
AM(i,2)=AML(i,2)+kk2*(DJ(j1)-DJ(k1))+kk1*(DJ(j2)+DJ(k2)/2);
AM(i,3)=AML(i,3)-kk3*(DJ(j1)-DJ(k1))-kk2*(DJ(j2)+DJ(k2));
AM(i,4)=AML(i,4)+kk2*(DJ(j1)-DJ(k1))+kk1*(DJ(j2)/2+DJ(k2));
end
clc
disp('---------------------------------------------------------------')
disp('--------PROGRAMA PARA LA SOLUCIÓN DE VIGAS DE N TRAMOS---------')
disp('---------------------------------------------------------------')
disp('-------UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA-------')
disp('------- FACULTAD DE INGENIERÍA DE MINAS GEOLOGÍA Y CIVIL-------')
disp('------ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERÍA CIVIL-----')
disp('---------------CURSO: ANÁLISIS ESTRUCTURAL II ----------------')
disp('----------------------SIGLA: IC - 444 ------------------------')
disp('----------------ALUMNO: BOLÍVAR ORÉ LUIS PAVEL-----------------')
disp('---------DOCENTE DEL CURSO: ING. RUBÉN YACHAPA CONDEÑA---------')
disp('')
disp('-------------------------RESULTADOS----------------------------')
disp('MATRIZ DE DESPLAZAMIENTOS:')
disp(DJ)
disp('MATRIZ DE REACCIONES:')
disp(AR)
disp('MATRIZ DE ACCIONES DE MIEMBRO:')
disp(AM)
%rptas en coordenadas globales
5. CODIFICACIÓN DEL PROGRAMA EN MATLAB PARA LA SOLUCIÓN DE ARMADURAS POR EL
MÉTODO DE LA RIGIDEZ:
function ARMADURA
disp('ingrese');
node=input('coordenadas:[#n cx cy]=');
disp('ingrese');
memb=input('miembros:[#n ni nj prop.]');
disp('ingrese');
rest=input('restricciones:[#n resX resY]');
disp('ingrese');
prop=input('propiedades:[#prop A E]');
disp('ingrese');
nlc=input('Cargas en Nudos:[#n Fx(+)> Fy(+)^]');
disp('ingrese');
mlc=input('Cargas Concentradas en miembro:[#m Fx< Fy! Mz d]');
disp('ingrese');
mld=input('cargas distribuidas en miembro:[#m w1 w2 d1 d2]');
%longitud
nn=size(node);
n=nn(1,1);
mm=size(memb);
m=mm(1,1);
L=zeros(1,1,1);
for i=1:m
L(:,:,i)=((node(memb(i,2),2)-node(memb(i,3),2))^2+...
(node(memb(i,2),3)-node(memb(i,3),3))^2)^.5;
end
L=L(:);
%cosenos directores
cx=zeros(1,1);
cy=zeros(1,1);
for i=1:m;
cx(i,1)=(node(memb(i,3),2)-node(memb(i,2),2))/L(i);
cy(i,1)=(node(memb(i,3),3)-node(memb(i,2),3))/L(i);
end
cx;
cy;
%restriccionesº
r=zeros(2*n,1);
tp=size(rest);
pt=tp(1,1);
for i=1:pt
tp=rest(i,1);
r(2*tp-1,1)=rest(i,2);
r(2*tp,1)=rest(i,3);%r:es la lista de restricciones
end
r;
t=0;
rc=zeros(1,1);
for i=1:2*n;
rc(i,1)=r(i,1)+t;
t=rc(i,1); %rc:es rest cumu
end
%EA
EA=zeros(n-1,1);
for i=1:m
k=memb(i,4);
EA(i)=prop(k,2)*prop(k,3);
end
EA;
%matriz miembro
SMD=zeros(4,4,1);
6. for i=1:m;
SMD(:,:,i)=(EA(i)/L(i))*[cx(i,1)^2 cx(i,1)*cy(i,1) -cx(i,1)^2
-cx(i,1)*cy(i,1);...
cx(i,1)*cy(i,1) cy(i,1)^2 -cx(i,1)*cy(i,1)
-cy(i,1)^2;...
-cx(i,1)^2 -cx(i,1)*cy(i,1) cx(i,1)^2
cx(i,1)*cy(i,1);...
-cx(i,1)*cy(i,1) -cy(i,1)^2 cx(i,1)*cy(i,1)
cy(i,1)^2];
end
SMD
%matriz total de nudo
N=2*n-sum(r);
SJ=zeros(2*n,2*n);
for i=1:m;
j1=2*memb(i,2)-1;j2=2*memb(i,2);k1=2*memb(i,3)-1;k2=2*memb(i,3);
if r(j1,1)==0
j1=j1-rc(j1,1);
else
j1=N+rc(j1,1);
end
if r(j2,1)==0
j2=j2-rc(j2,1);
else
j2=N+rc(j2,1);
end
if r(k1,1)==0
k1=k1-rc(k1,1);
else
k1=N+rc(k1,1);
end
if r(k2,1)==0
k2=k2-rc(k2,1);
else
k2=N+rc(k2,1);
end
if r(2*memb(i,2)-1,1)==0;
SJ(j1,j1)=SJ(j1,j1)+SMD(1,1,i);
SJ(j2,j1)=SJ(j2,j1)+SMD(2,1,i);
SJ(k1,j1)=SMD(3,1,i);
SJ(k2,j1)=SMD(4,1,i);
end
if r(2*memb(i,2),1)==0;
SJ(j1,j2)=SJ(j1,j2)+SMD(1,2,i);
SJ(j2,j2)=SJ(j2,j2)+SMD(2,2,i);
SJ(k1,j2)=SMD(3,2,i);
SJ(k2,j2)=SMD(4,2,i);
end
if r(2*memb(i,3)-1,1)==0;
SJ(j1,k1)=SMD(1,3,i);
SJ(j2,k1)=SMD(2,3,i);
SJ(k1,k1)=SJ(k1,k1)+SMD(3,3,i);
SJ(k2,k1)=SJ(k2,k1)+SMD(4,3,i);
end
if r(2*memb(i,3),1)==0;
SJ(j1,k2)=SMD(1,4,i);
SJ(j2,k2)=SMD(2,4,i);
SJ(k1,k2)=SJ(k1,k2)+SMD(3,4,i);
SJ(k2,k2)=SJ(k2,k2)+SMD(4,4,i);
end
end
SJ;%matrizdenudototal
7. lc=size(mlc);
cl=lc(1,1);
AML1=zeros(m,4);
if mlc==0*mlc
AML1=AML1;
else
for i=1:cl;
temp=mlc(i,1);
Ai=mlc(i,2:4)';
a=mlc(i,5);b=L(temp)-a;
TML=[b/L(temp) 0 0;0 b/L(temp) 1/L(temp);a/L(temp) 0 0;0 a/L(temp) -1/L(temp)];
AMi=TML*Ai;
AML1(temp,:)=AML1(temp,:)+AMi';
end
end
clear('lc','temp','map','mbp','mam','mbm','rap','rbp','rap','ram');AML1;
lc=size(mld);
cl=lc(1,1);
AML2=zeros(m,4);
if mld==0*mld
AML2=AML2
else
for i=1:cl;
temp=mld(i,1);
w1=mld(i,2);w2=mld(i,3);d1=mld(i,4);d2=mld(i,5);
c=d2-d1;xc=(d2-d1)*(2*w1+w2)/(3*(w1+w2));b=L(temp)-d1-c;
ra=(w1+w2)*c/2*(xc+b)/L(temp);rb=(w1+w2)*c/2-ra;
%AML2(temp,1)=AML2(temp,1)+ra;
AML2(temp,2)=AML2(temp,2)+ra;
%AML2(temp,3)=AML2(temp,3)+rb;
AML2(temp,4)=AML2(temp,4)+rb;
end
end
clear('lc','cl','temp','ma','mb');AML2;
%%%%%%%%%%%%%%%
AML=AML1+AML2;
%%%%%%%%%%%%%%%
%[#n Fx Fy]
lc=size(nlc);
cl=lc(1,1);
A=zeros(2*n,1);
for i=1:cl;
temp=nlc(i,1);
A(2*temp-1,1)=nlc(i,2);
A(2*temp,1)=nlc(i,3);
end
clear('temp','lc','cl');A;
%matriz carga de nudo equivalente;
AE=zeros(2*n,1);
for i=1:m;
j1=2*memb(i,2)-1;j2=2*memb(i,2);k1=2*memb(i,3)-1;k2=2*memb(i,3);
AE(j1,1)=AE(j1,1)-AML(i,1)*cx(i)+AML(i,2)*cy(i);
AE(j2,1)=AE(j2,1)-AML(i,1)*cy(i)-AML(i,2)*cx(i);
AE(k1,1)=AE(k1,1)-AML(i,3)*cx(i)+AML(i,4)*cy(i);
AE(k2,1)=AE(k2,1)-AML(i,3)*cy(i)-AML(i,4)*cx(i);
end
8. AE;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%carga de nudo combinada
AC=AE*0;
for i=1:2*n;
if r(i,1)==0;
q=i-rc(i,1);
else
q=N+rc(i,1);
end
AC(q,1)=A(i,1)+AE(i,1);
end
AC;%ok carga de nudo combinada y ordenada
%%%%%%%%%%%%%%%%%%RESULTADOS%%%%%%%%%%%%%%%%
AD=AC(1:N,1);ARL=-1*AC(N+1:2*n,1);
S=SJ(1:N,1:N);SRD=SJ(N+1:2*n,1:N);
D=inv(S)*AD;%desplazamientos de nudos
AR=ARL+SRD*D;%reacciones en nudos
%%%%%%%%%Ordenando desplazamientos%%%%%%%%%%%%%%%%%55
DJ=zeros(2*n,1);
j=0;kk=0;
for i=1:2*n;
j=j+1;
if r(i)==0;
kk=kk+1;
DJ(j)=D(kk);
end
end
DJ ;
%%%%%%ACCIONES DE MIEMBRO%%%%%%%%%%%%%%%%%%
AM=zeros(1,4);
for i=1:m
j1=2*memb(i,2)-1;j2=2*memb(i,2);k1=2*memb(i,3)-1;k2=2*memb(i,3);
kk=EA(i)/L(i);
AM(i,1)=AML(i,1)+kk*((DJ(j1)-DJ(k1))*cx(i)+(DJ(j2)-DJ(k2))*cy(i));
AM(i,2)=AML(i,2);
AM(i,3)=AML(i,3)-kk*((DJ(j1)-DJ(k1))*cx(i)+(DJ(j2)-DJ(k2))*cy(i));
AM(i,4)=AML(i,4);
end
AM;%rptas en coordenadas globales
clc
disp('------------------------------------------------------')
disp('----------------------RESULTADOS----------------------')
disp('------------------------------------------------------')
disp('Matriz desplazamientos')
disp(DJ)
disp('Matriz de Reacciones')
disp(AR)
disp('Matriz de Acciones de Miembro')
disp(AM)
9. CODIFICACIÓN DEL PROGRAMA EN MATLAB PARA LA SOLUCIÓN DE PÓRTICOS EN DOS
DIMENSIONES POR EL MÉTODO DE LA RIGIDEZ:
function PORTICO2D
disp('ingrese');
node=input('coordenadas:[#n cx cy]=');
disp('ingrese');
memb=input('miembros:[#n ni nj prop.]=');
disp('libre=0 retringido=1');
disp('ingrese');
rest=input('restricciones:[#n resX resY resZ]=');
disp('ingrese');
prop=input('propiedades:[#prop A E I]=');
disp('ingrese');
nlc=input('Cargas en Nudos:[#n Fx(+)> Fy(+)^ Fz]=');
disp('ingrese');
mlc=input('Cargas Concentradas en miembro:[#m Fx< Fy! Mz d]=');
disp('ingrese');
mld=input('cargas distribuidas en miembro:[#m w1 w2 d1 d2]=');
%longitud
nn=size(node);
n=nn(1,1);
mm=size(memb);
m=mm(1,1);
L=zeros(1,1);
for i=1:m
L(i,1)=((node(memb(i,2),2)-node(memb(i,3),2))^2+...
(node(memb(i,2),3)-node(memb(i,3),3))^2)^.5;
end
L;
%cosenos directores
cx=zeros(1,1);
cy=zeros(1,1);
for i=1:m;
cx(i,1)=(node(memb(i,3),2)-node(memb(i,2),2))/L(i);
cy(i,1)=(node(memb(i,3),3)-node(memb(i,2),3))/L(i);
end
%matrices de rotacion de miembro
R=zeros(3,3,1);
for i=1:m
R(1,1,i)=cx(i);R(1,2,i)=cy(i);
R(2,1,i)=-cy(i);R(2,2,i)=cx(i);R(3,3,i)=1;
end
%restricciones
r=zeros(3*n,1);
tp=size(rest);
pt=tp(1,1);
for i=1:pt
tp=rest(i,1);
r(3*tp-2,1)=rest(i,2);
r(3*tp-1,1)=rest(i,3);%r:es la lista de restricciones
r(3*tp,1)=rest(i,4);
end
t=0;
rc=zeros(1,1);
for i=1:3*n;
rc(i,1)=r(i,1)+t;
t=rc(i,1); %rc:es rest cumu
end
rc;
%EA
EA=zeros(m,1);
EI=zeros(m,1);
10. for i=1:m
k=memb(i,4);
EA(i)=prop(k,3)*prop(k,2);
EI(i)=prop(k,3)*prop(k,4);
end
EA
EI
%matriz miembro
SM=zeros(6,6,1);
for i=1:m;
SM(:,:,i)=[EA(i)/L(i) 0 0 -EA(i)/L(i) 0 0;...
0 12*EI(i)/L(i)^3 6*EI(i)/L(i)^2 0 -12*EI(i)/L(i)^3 6*EI(i)/L(i)^2;...
0 6*EI(i)/L(i)^2 4*EI(i)/L(i) 0 -6*EI(i)/L(i)^2 2*EI(i)/L(i);...
-EA(i)/L(i) 0 0 EA(i)/L(i) 0 0;...
0 -12*EI(i)/L(i)^3 -6*EI(i)/L(i)^2 0 12*EI(i)/L(i)^3
-6*EI(i)/L(i)^2;...
0 6*EI(i)/L(i)^2 2*EI(i)/L(i) 0 -6*EI(i)/L(i)^2 4*EI(i)/L(i)];
end
SM;
%matriz miembro en coordendas globales
ze=zeros(3,3);
SMD=zeros(6,6,1);
for i=1:m
RT=R(:,:,i);
RT=[RT ze;ze RT];
SMD(:,:,i)=RT'*SM(:,:,i)*RT;
end
SMD;
%matriz total de nudo
N=3*n-sum(r);
SJ=zeros(3*n,3*n);
for i=1:m;
j1=3*memb(i,2)-2;j2=3*memb(i,2)-1;j3=3*memb(i,2);
k1=3*memb(i,3)-2;k2=3*memb(i,3)-1;k3=3*memb(i,3);
if r(j1,1)==0
j1=j1-rc(j1,1);
else
j1=N+rc(j1,1);
end
if r(j2,1)==0
j2=j2-rc(j2,1);
else
j2=N+rc(j2,1);
end
if r(j3,1)==0
j3=j3-rc(j3,1);
else
j3=N+rc(j3,1);
end
if r(k1,1)==0
k1=k1-rc(k1,1);
else
k1=N+rc(k1,1);
end
if r(k2,1)==0
k2=k2-rc(k2,1);
else
k2=N+rc(k2,1);
end
11. if r(k3,1)==0
k3=k3-rc(k3,1);
else
k3=N+rc(k3,1);
end
if r(j1,1)==0;
SJ(j1,j1)=SJ(j1,j1)+SMD(1,1,i);
SJ(j2,j1)=SJ(j2,j1)+SMD(2,1,i);
SJ(j3,j1)=SJ(j3,j1)+SMD(3,1,i);
SJ(k1,j1)=SMD(4,1,i);
SJ(k2,j1)=SMD(5,1,i);
SJ(k3,j1)=SMD(6,1,i);
end
if r(j2,1)==0;
SJ(j1,j2)=SJ(j1,j2)+SMD(1,2,i);
SJ(j2,j2)=SJ(j2,j2)+SMD(2,2,i);
SJ(j3,j2)=SJ(j3,j2)+SMD(3,2,i);
SJ(k1,j2)=SMD(4,2,i);
SJ(k2,j2)=SMD(5,2,i);
SJ(k3,j2)=SMD(6,2,i);
end
if r(j3,1)==0;
SJ(j1,j3)=SJ(j1,j3)+SMD(1,3,i);
SJ(j2,j3)=SJ(j2,j3)+SMD(2,3,i);
SJ(j3,j3)=SJ(j3,j3)+SMD(3,3,i);
SJ(k1,j3)=SMD(4,3,i);
SJ(k2,j3)=SMD(5,3,i);
SJ(k3,j3)=SMD(6,3,i);
end
if r(k1,1)==0;
SJ(j1,k1)=SMD(1,4,i);
SJ(j2,k1)=SMD(2,4,i);
SJ(j3,k1)=SMD(3,4,i);
SJ(k1,k1)=SJ(k1,k1)+SMD(4,4,i);
SJ(k2,k1)=SJ(k2,k1)+SMD(5,4,i);
SJ(k3,k1)=SJ(k3,k1)+SMD(6,4,i);
end
if r(k2,1)==0;
SJ(j1,k2)=SMD(1,5,i);
SJ(j2,k2)=SMD(2,5,i);
SJ(j3,k2)=SMD(3,5,i);
SJ(k1,k2)=SJ(k1,k2)+SMD(4,5,i);
SJ(k2,k2)=SJ(k2,k2)+SMD(5,5,i);
SJ(k3,k2)=SJ(k3,k2)+SMD(6,5,i);
end
if r(k3,1)==0;
SJ(j1,k3)=SMD(1,6,i);
SJ(j2,k3)=SMD(2,6,i);
SJ(j3,k3)=SMD(3,6,i);
SJ(k1,k3)=SJ(k1,k3)+SMD(4,6,i);
SJ(k2,k3)=SJ(k2,k3)+SMD(5,6,i);
SJ(k3,k3)=SJ(k3,k3)+SMD(6,6,i);
end
end
SJ;%matrizdenudototal
lc=size(mlc);
cl=lc(1,1);
AML1=zeros(m,6);
if mlc==0*mlc
AML1=AML1;
else
12. for i=1:cl;
temp=mlc(i,1);
Ai=mlc(i,2:4)';
a=mlc(i,5);b=L(temp)-a;
TML=[ b/L(temp) 0 0;...
0 b^2*(3*a+b)/L(temp)^3 6*a*b/L(temp)^3;...
0 a*b^2/L(temp)^2 b*(2*a-b)/L(temp)^2;...
a/L(temp) 0 0;...
0 a^2*(a+3*b)/L(temp)^3 -6*a*b/L(temp)^3;...
0 -a^2*b/L(temp)^2 a*(2*b-a)/L(temp)^2];
AMi=TML*Ai;
AML1(temp,:)=AML1(temp,:)+AMi';
end
end
clear('lc','temp','map','mbp','mam','mbm','rap','rbp','rap','ram','a');AML1;
lc=size(mld);
cl=lc(1,1);
AML2=zeros(m,6);
if mld==0*mld;
AML2=AML2;
else
for i=1:cl;
temp=mld(i,1);
w1=mld(i,2);w2=mld(i,3);d1=mld(i,4);d2=mld(i,5);
q=min(w1,w2);c=L(temp)-d2;b=d2-d1;a=d1;e=c+b/2;d=a+b/2;
ma=-q*b*(b^2*(L(temp)+3*(c-a))-24*e^2*d)/(24*L(temp)^2);
ra=q*b*(4*e^2*(L(temp)+2*d)-b^2*(c-a))/(4*L(temp)^3);
mb=(ra*L(temp)-q*b*e-ma);rb=q*b-ra;
%AML2(temp,1)=AML2(temp,1)+ra;
AML2(temp,2)=AML2(temp,2)+ra %+ri;%solopara4.18-8y4.18-9
AML2(temp,3)=AML2(temp,3)+ma %+mi;%solopara4.18-8y4.18-9
AML2(temp,5)=AML2(temp,5)+rb %+rd;%solopara4.18-8y4.18-9
AML2(temp,6)=AML2(temp,6)+mb %+md;%solopara4.18-8y4.18-9
end
end
clear('lc','cl','temp','ma','mb');AML2;
%%%%%%%%%%%%%%%
AML=AML1+AML2;
%%%%%%%%%%%%%%%
%cargas en los nudos (nlc:nodal load concenter)
%[#n Fx Fy]
lc=size(nlc);
cl=lc(1,1);
A=zeros(3*n,1);
for i=1:cl;
temp=nlc(i,1);
A(3*temp-2,1)=nlc(i,2);
A(3*temp-1,1)=nlc(i,3);
A(3*temp,1)=nlc(i,4);
end
clear('temp','lc','cl');A;
%matriz carga de nudo equivalente;
AE=zeros(3*n,1);
for i=1:m;
j1=3*memb(i,2)-2;j2=3*memb(i,2)-1;j3=3*memb(i,2);
k1=3*memb(i,3)-2;k2=3*memb(i,3)-1;k3=3*memb(i,3);
AE(j1,1)=AE(j1,1)-AML(i,1)*cx(i)+AML(i,2)*cy(i);
AE(j2,1)=AE(j2,1)-AML(i,1)*cy(i)-AML(i,2)*cx(i);
13. AE(j3,1)=AE(j3,1)-AML(i,3);
AE(k1,1)=AE(k1,1)-AML(i,4)*cx(i)+AML(i,5)*cy(i);
AE(k2,1)=AE(k2,1)-AML(i,4)*cy(i)-AML(i,5)*cx(i);
AE(k3,1)=AE(k3,1)-AML(i,6);
end
AE;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%carga de nudo combinada
AC=AE*0;
for i=1:3*n;
if r(i,1)==0;
q=i-rc(i,1);
else
q=N+rc(i,1);
end
AC(q,1)=A(i,1)+AE(i,1);
end
AC;%ok carga de nudo combinada y ordenada
%%%%%%%%%%%%%%%%%%RESULTADOS%%%%%%%%%%%%%%%%
AD=AC(1:N,1);ARL=-1*AC(N+1:3*n,1)
S=SJ(1:N,1:N);SRD=SJ(N+1:3*n,1:N);
D=inv(S)*AD%desplazamientos de nudos
AR=ARL+SRD*D%reacciones en nudos
%%%%%%ACCIONES DE MIEMBRO%%%%%%%%%%%%%%%%%%
comp=zeros(3*n-N,1);
D=[D;comp];
AM=zeros(1,6);
for i=1:m
j1=3*memb(i,2)-2;j2=3*memb(i,2)-1;j3=3*memb(i,2);
k1=3*memb(i,3)-2;k2=3*memb(i,3)-1;k3=3*memb(i,3);
kk1=EA(i)/L(i);kk2=4*EI(i)/L(i);kk3=1.5*kk2/L(i);kk4=2*kk3/L(i);
AM(i,1)=AML(i,1)+kk1*((D(j1)-D(k1))*cx(i)+(D(j2)-D(k2))*cy(i));
AM(i,2)=AML(i,2)+kk4*(-(D(j1)-D(k1))*cy(i)+(D(j2)-D(k2))*cx(i))
+kk3*(D(j3)+D(k3));
AM(i,3)=AML(i,3)+kk3*(-(D(j1)-D(k1))*cy(i)+(D(j2)-D(k2))*cx(i))
+kk2*(D(j3)+D(k3)/2);
AM(i,4)=AML(i,4)+kk1*(-(D(j1)-D(k1))*cx(i)-(D(j2)-D(k2))*cy(i));
AM(i,5)=AML(i,5)+kk4*((D(j1)-D(k1))*cy(i)-(D(j2)-D(k2))*cx(i))-
kk3*(D(j3)+D(k3));
AM(i,6)=AML(i,6)+kk3*(-(D(j1)-D(k1))*cy(i)+(D(j2)-D(k2))*cx(i))
+kk2*(D(j3)/2+D(k3));
end
clc%limpia comand window
disp('----------------------RESULTADOS----------------------')
disp('Matriz desplazamientos')
disp(D)
disp('Matriz de Reacciones')
disp(AR);
disp('Matriz de Acciones de Miembro')
disp(AM);
disp ('RESPUESTAS EN COORDENADAS GLOBALES')
14. CODIFICACIÓN DEL PROGRAMA EN MATLAB PARA LA SOLUCIÓN DE PARRILAS POR EL
MÉTODO DE LA RIGIDEZ:
function parrilla
disp('ingrese');
node=input('coordenadas:[#n cx cy]=');
disp('ingrese');
memb=input('miembros:[#n ni nj prop.]=');
disp('libre=0 retringido=1');
disp('ingrese');
rest=input('restricciones:[#n resX resY resZ]=');
disp('ingrese');
prop=input('propiedades:[#prop A E I]=');
disp('ingrese');
nlc=input('Cargas en Nudos:[#n Fx(+)> Fy(+)^ Fz]=');
disp('ingrese');
mlc=input('Cargas Concentradas en miembro:[#m Fx< Fy! Mz d]=');
disp('ingrese');
mld=input('cargas distribuidas en miembro:[#m w1 w2 d1 d2]=');
%longitud
nn=size(node);
n=nn(1,1);
mm=size(memb);
m=mm(1,1);
L=zeros(1,1);
for i=1:m
L(i,1)=((node(memb(i,2),2)-node(memb(i,3),2))^2+...
(node(memb(i,2),3)-node(memb(i,3),3))^2)^.5;
end
L;
%cosenos directores
cx=zeros(1,1);
cy=zeros(1,1);
for i=1:m;
cx(i,1)=(node(memb(i,3),2)-node(memb(i,2),2))/L(i);
cy(i,1)=(node(memb(i,3),3)-node(memb(i,2),3))/L(i);
end
%matrices de rotacion de miembro
R=zeros(3,3,1);
for i=1:m
R(1,1,i)=cx(i);R(1,2,i)=cy(i);
R(2,1,i)=-cy(i);R(2,2,i)=cx(i);R(3,3,i)=1;
end
%restriccionesº
r=zeros(3*n,1);
tp=size(rest);
pt=tp(1,1);
for i=1:pt
tp=rest(i,1);
r(3*tp-2,1)=rest(i,2);
r(3*tp-1,1)=rest(i,3);%r:es la lista de restricciones
r(3*tp,1)=rest(i,4);
end
t=0;
rc=zeros(1,1);
for i=1:3*n;
rc(i,1)=r(i,1)+t;
t=rc(i,1); %rc:es rest cumu
end
rc;
%EA %[#m E Ix Iy G]
EI=zeros(1,1,1);
GI=zeros(1,1,1);
for i=1:m
k=memb(i,4);
EI(:,:,i)=prop(k,2)*prop(k,4);
15. GI(:,:,i)=prop(k,5)*prop(k,3);
end
EI=EI(:);
GI=GI(:);
%matriz miembro
SM=zeros(6,6,1);
for i=1:m;
SM(:,:,i)=[GI(i)/L(i) 0 0 -GI(i)/L(i) 0 0;...
0 4*EI(i)/L(i) -6*EI(i)/L(i)^2 0 2*EI(i)/L(i) 6*EI(i)/L(i)^2;...
0 -6*EI(i)/L(i)^2 12*EI(i)/L(i)^3 0 -6*EI(i)/L(i)^2
-12*EI(i)/L(i)^3;...
-GI(i)/L(i) 0 0 GI(i)/L(i) 0 0;...
0 2*EI(i)/L(i) -6*EI(i)/L(i)^2 0 4*EI(i)/L(i) 6*EI(i)/L(i)^2;...
0 6*EI(i)/L(i)^2 -12*EI(i)/L(i)^3 0 6*EI(i)/L(i)^2 12*EI(i)/L(i)^3];
end
SM;
%matriz miembro en coordendas globales
ze=zeros(3,3);
SMD=zeros(6,6,1);
for i=1:m
RT=R(:,:,i);
RT=[RT ze;ze RT];
SMD(:,:,i)=RT'*SM(:,:,i)*RT;
end
SMD;
%matriz total de nudo
N=3*n-sum(r);
SJ=zeros(3*n,3*n);
for i=1:m;
j1=3*memb(i,2)-2;j2=3*memb(i,2)-1;j3=3*memb(i,2);
k1=3*memb(i,3)-2;k2=3*memb(i,3)-1;k3=3*memb(i,3);
if r(j1,1)==0
j1=j1-rc(j1,1);
else
j1=N+rc(j1,1);
end
if r(j2,1)==0
j2=j2-rc(j2,1);
else
j2=N+rc(j2,1);
end
if r(j3,1)==0
j3=j3-rc(j3,1);
else
j3=N+rc(j3,1);
end
if r(k1,1)==0
k1=k1-rc(k1,1);
else
k1=N+rc(k1,1);
end
if r(k2,1)==0
k2=k2-rc(k2,1);
else
k2=N+rc(k2,1);
end
if r(k3,1)==0
k3=k3-rc(k3,1);
else
k3=N+rc(k3,1);
end
16. if r(j1,1)==0;
SJ(j1,j1)=SJ(j1,j1)+SMD(1,1,i);
SJ(j2,j1)=SJ(j2,j1)+SMD(2,1,i);
SJ(j3,j1)=SJ(j3,j1)+SMD(3,1,i);
SJ(k1,j1)=SMD(4,1,i);
SJ(k2,j1)=SMD(5,1,i);
SJ(k3,j1)=SMD(6,1,i);
end
if r(j2,1)==0;
SJ(j1,j2)=SJ(j1,j2)+SMD(1,2,i);
SJ(j2,j2)=SJ(j2,j2)+SMD(2,2,i);
SJ(j3,j2)=SJ(j3,j2)+SMD(3,2,i);
SJ(k1,j2)=SMD(4,2,i);
SJ(k2,j2)=SMD(5,2,i);
SJ(k3,j2)=SMD(6,2,i);
end
if r(j3,1)==0;
SJ(j1,j3)=SJ(j1,j3)+SMD(1,3,i);
SJ(j2,j3)=SJ(j2,j3)+SMD(2,3,i);
SJ(j3,j3)=SJ(j3,j3)+SMD(3,3,i);
SJ(k1,j3)=SMD(4,3,i);
SJ(k2,j3)=SMD(5,3,i);
SJ(k3,j3)=SMD(6,3,i);
end
if r(k1,1)==0;
SJ(j1,k1)=SMD(1,4,i);
SJ(j2,k1)=SMD(2,4,i);
SJ(j3,k1)=SMD(3,4,i);
SJ(k1,k1)=SJ(k1,k1)+SMD(4,4,i);
SJ(k2,k1)=SJ(k2,k1)+SMD(5,4,i);
SJ(k3,k1)=SJ(k3,k1)+SMD(6,4,i);
end
if r(k2,1)==0;
SJ(j1,k2)=SMD(1,5,i);
SJ(j2,k2)=SMD(2,5,i);
SJ(j3,k2)=SMD(3,5,i);
SJ(k1,k2)=SJ(k1,k2)+SMD(4,5,i);
SJ(k2,k2)=SJ(k2,k2)+SMD(5,5,i);
SJ(k3,k2)=SJ(k3,k2)+SMD(6,5,i);
end
if r(k3,1)==0;
SJ(j1,k3)=SMD(1,6,i);
SJ(j2,k3)=SMD(2,6,i);
SJ(j3,k3)=SMD(3,6,i);
SJ(k1,k3)=SJ(k1,k3)+SMD(4,6,i);
SJ(k2,k3)=SJ(k2,k3)+SMD(5,6,i);
SJ(k3,k3)=SJ(k3,k3)+SMD(6,6,i);
end
end
SJ;%matrizdenudototal
lc=size(mlc);
cl=lc(1,1);
AML1=zeros(m,6);
for i=1:cl;
temp=mlc(i,1);
Ai=mlc(i,2:4)';
a=mlc(i,5);b=L(temp)-a;
TML=[ -b/L(temp) 0 0;...
0 -b*(2*a-b)/L(temp)^2 -a*b^2/L(temp)^2 ;...
0 6*a*b/L(temp)^3 b^2*(3*a+b)/L(temp)^3;...
-a/L(temp) 0 0;...
0 -a*(2*b-a)/L(temp)^2 a^2*b/L(temp)^2;...
17. 0 -6*a*b/L(temp)^3 a^2*(a+3*b)/L(temp)^3];
AMi=TML*Ai;
AML1(temp,:)=AML1(temp,:)+AMi';
end
clear('lc','temp','map','mbp','mam','mbm','rap','rbp','rap','ram','a');AML1
lc=size(mld);
cl=lc(1,1);
AML2=zeros(m,6);
for i=1:cl;
temp=mld(i,1);
w1=mld(i,2);w2=mld(i,3);d1=mld(i,4);d2=mld(i,5);
q=min(w1,w2);c=L(temp)-d2;b=d2-d1;a=d1;e=c+b/2;d=a+b/2;
ma=q*b*(b^2*(L(temp)+3*(c-a))-24*e^2*d)/(24*L(temp)^2);
ra=q*b*(4*e^2*(L(temp)+2*d)-b^2*(c-a))/(4*L(temp)^3);
mb=-(ra*L(temp)-q*b*e+ma);rb=q*b-ra;
%AML2(temp,1)=AML2(temp,1)+ra;
AML2(temp,2)=AML2(temp,2)+ma;
AML2(temp,3)=AML2(temp,3)+ra;
AML2(temp,5)=AML2(temp,5)+mb;
AML2(temp,6)=AML2(temp,6)+rb;
end
clear('lc','cl','temp','ma','mb');AML2
%%%%%%%%%%%%%%%
AML=AML1+AML2;
%%%%%%%%%%%%%%%
%[#n Mx My Fz]
lc=size(nlc);
cl=lc(1,1);
A=zeros(3*n,1);
for i=1:cl;
temp=nlc(i,1);
A(3*temp-2,1)=nlc(i,2);
A(3*temp-1,1)=nlc(i,3);
A(3*temp,1)=nlc(i,4);
end
clear('temp','lc','cl');A
%matriz carga de nudo equivalente;
AE=zeros(3*n,1);
for i=1:m;
j1=3*memb(i,2)-2;j2=3*memb(i,2)-1;j3=3*memb(i,2);
k1=3*memb(i,3)-2;k2=3*memb(i,3)-1;k3=3*memb(i,3);
AE(j1,1)=AE(j1,1)-AML(i,1)*cx(i)+AML(i,2)*cy(i);
AE(j2,1)=AE(j2,1)-AML(i,1)*cy(i)-AML(i,2)*cx(i);
AE(j3,1)=AE(j3,1)-AML(i,3);
AE(k1,1)=AE(k1,1)-AML(i,4)*cx(i)+AML(i,5)*cy(i);
AE(k2,1)=AE(k2,1)-AML(i,4)*cy(i)-AML(i,5)*cx(i);
AE(k3,1)=AE(k3,1)-AML(i,6);
end
AE;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%carga de nudo combinada
AC=AE*0;
for i=1:3*n;
if r(i,1)==0;
q=i-rc(i,1);
else
q=N+rc(i,1);
end
18. AC(q,1)=A(i,1)+AE(i,1);
end
AC;%ok carga de nudo combinada y ordenada
%%%%%%%%%%%%%%%%%%RESULTADOS%%%%%%%%%%%%%%%%
AD=AC(1:N,1);ARL=-1*AC(N+1:3*n,1);
S=SJ(1:N,1:N);SRD=SJ(N+1:3*n,1:N);
D=inv(S)*AD%desplazamientos de nudos
AR=ARL+SRD*D%reacciones en nudos
%%%%%%ACCIONES DE MIEMBRO%%%%%%%%%%%%%%%%%%
comp=zeros(3*n-N,1);
D=[D;comp];
AM=zeros(m,6);
for i=1:m
j1=3*memb(i,2)-2;j2=3*memb(i,2)-1;j3=3*memb(i,2);
k1=3*memb(i,3)-2;k2=3*memb(i,3)-1;k3=3*memb(i,3);
kk1=GI(i)/L(i);kk2=4*EI(i)/L(i);kk3=1.5*kk2/L(i);kk4=2*kk3/L(i);
AM(i,1)=AML(i,1)+kk1*((D(j1)-D(k1))*cx(i)+(D(j2)-D(k2))*cy(i));
AM(i,2)=AML(i,2)+kk2*(-(D(j1)+D(k1)/2)*cy(i)+(D(j2)+D(k2)/2)*cx(i))-
kk3*(D(j3)-D(k3));
AM(i,3)=AML(i,3)+kk3*((D(j1)+D(k1))*cy(i)-(D(j2)+D(k2))*cx(i))+kk4*(D(j3)-
D(k3));
AM(i,4)=AML(i,4)+kk1*(-(D(j1)-D(k1))*cx(i)-(D(j2)-D(k2))*cy(i));
AM(i,5)=AML(i,5)+kk2*(-(D(j1)/2+D(k1))*cy(i)+(D(j2)/2+D(k2))*cx(i))-
kk3*(D(j3)-D(k3));
AM(i,6)=AML(i,6)+kk3*(-(D(j1)+D(k1))*cy(i)+(D(j2)+D(k2))*cx(i))-kk4*(D(j3)-
D(k3));
end