Diferencia entre revisiones de «Carga crítica en una columna (G 7A)»

De MateWiki
Saltar a: navegación, buscar
Línea 1: Línea 1:
 
{{matlab|codigo=
 
{{matlab|codigo=
  
clear all
+
% Calculamos numéricamente los valores de P_cr. El primer autovalor es el que se corresponde con dicha carga (esto está almacenado en la primera columna de la matriz A)
L=9;
+
clear all; clf
R0=1;
+
a=0;L=9;
RL=5;
+
ya=0;yL=0;
h=0.01;
+
h=0.1;N=(L-a)/h;
N=(RL-R0)/h;
+
R=R0:h:RL;
+
P=zeros(1,N+1);
+
for k=1:(N+1)
+
    P(1,k)=(pi^3*1.2*R(1,k).^4)/2*L;
+
end
+
plot(R,P)
+
xlabel('Radio (m)');
+
ylabel('Carga crítica (KN)');
+
}}
+
 
+
{{matlab|codigo=
+
 
+
% Calculamos numéricamente los valores de P_cr. El primer autovalor es el que se corresponde con dicha carga  
+
% (esto está almacenado en la primera columna de la matriz A)
+
clear all clf
+
a=0;
+
L=9;
+
ya=0;
+
yL=0;
+
h=0.1;
+
N=(L-a)/h;
+
 
x=a:h:L;
 
x=a:h:L;
 
K=(1/h^(2))*(2*diag(ones(N-1,1))-diag(ones(N-2,1),1)-diag(ones(N-2,1),-1));
 
K=(1/h^(2))*(2*diag(ones(N-1,1))-diag(ones(N-2,1),1)-diag(ones(N-2,1),-1));
 
R=linspace(1,5,N+1);
 
R=linspace(1,5,N+1);
for i=1:length(R)
+
l=sqrt(pi.*R.^2);      %lado del cuadrado (resultado de igualar masas)
     A(i,:)=eig(0.25*pi*1.2*R(i)^4.*K);
+
for i=1:length(l)
 +
     A(i,:)=eig((1/12)*1.2*l(i)^4*L.*K);     %momento inercia prisma rectangular
 
end
 
end
 
hold on
 
hold on
 
Pcr=A(:,1);
 
Pcr=A(:,1);
L2=9; p2=1.2;
+
plot(l,Pcr,'-')
R2=1:0.1:5;
+
P2=(pi^3*p2*R2.^4)/(4*L2.^2);
+
plot(R2,P2,'g')
+
plot(R,Pcr,'-')
+
 
xlabel('Radio (m)');
 
xlabel('Radio (m)');
 
ylabel('Carga critica (kN)')
 
ylabel('Carga critica (kN)')
 
hold off
 
hold off
 
}}
 
}}
 
  
 
{{matlab|codigo=
 
{{matlab|codigo=
  
 +
clear all  clf
 +
 +
xa=0;xb=9;
 +
ya=0;yb=0;
 +
L=xb;
 +
p1=1.2;
 +
N=20; h=(xb-xa)/N;
 +
x=xa:h:xb;
 +
K=(1/h^(2))*(2*diag(ones(N-1,1))-diag(ones(N-2,1),1)-diag(ones(N-2,1),-1));
 +
%Definimos los parámetros a b y c
 +
a0=0.13;
 +
af=0.5;
 +
a=linspace(a0,af,N+1);
 +
%Es un bucle doble anidado.
 +
for j=1:length(a) 
 +
    b=((-4/a(j))*sin(a(j)*(L/2))+sqrt((16/(a(j)^2))*(sin(a(j)*L/2))^2)-4*L*(((1/(2*a(j)))*sin(a(j)*L))-31/(pi*p1)+L/2));
 +
    for k=1:length(x)
 +
        R(j,k)=cos(a(j)*(x(k)-L/2))+b;
 +
    end
 +
end
 +
for i=1:length(R)
 +
    Rsm(i)=min(R(i,:));
 +
end
 +
for i=1:length(R)
 +
    A(i,:)=eig(0.25*pi*1.2*Rsm(i).^4.*K); %Los autovalores
 +
end
 +
p=A(:,1); %De aquí sacamos que la columna con menor P es la número 1 (a0) y la de mayor la número N+1 (af)
 +
figure (1) %Dibujamos la columna mas estrecha
 +
plot(x,R(1,:),'-') %En este caso a es cte, por lo que la sección es como la resuelta en el 2 circular y sin cambio de radio
 +
grid on
 +
title('Columna con menor carga crítica (admisible)')
 +
xlabel('x (m)'); ylabel('Radio de la columna (m)')
 +
figure (2)
 +
plot(x,R(N+1,:),'-')
 +
title('Columna cerca de que mayor carga crítica tiene')
 +
xlabel('x (m)'); ylabel('Radio de la columna (m)')
 +
grid on
 +
figure (3)
 +
plot(a,p,'x')
 +
title('Evolución de la carga crítica con el valor de a')
 +
xlabel('a'); ylabel('P_cr')
 +
grid on
 +
R2=0.955859;  % radio de la columna constante si su masa es 31 kg
  
 +
for k=1:length(p)
 +
    g(k)=(p(k)-(pi^3*p1*R2^4)/(4*L^2))*100/(pi^3*p1*R2^4)/(4*L^2); %Calculamos así la ganancia (o pérdida) en porcentaje de Pcrit para cada valor de R0 respecto a la columna de seccion circular constante (R0=1)
 +
end
 +
figure (4) %Dibujamos el cambio en porcentaje de Pcrit para cada valor de a respecto a la columna de seccion circular constante
 +
plot(a,g,'.-')
 +
grid on
 +
title('Ganancia en porcentaje de Pcrit respecto a la columna circular de seccion constante')
 +
xlabel('R0'); ylabel('Ganancia en porcentaje de Pcrit')
 +
title('Columna con R=0.9558 (31 kg r=cte)')
 +
xlabel('a'); ylabel('Radio de la columna (m)')
 +
figure(5)  %como cambia el radio en funcion de los valores de a y x
 +
[xx,aa]=meshgrid(x,a);
 +
surf(x,a,R)
 +
 +
}}
 +
 +
 +
{{matlab|codigo=
 +
 +
clear all clc
 +
%apartado 8
 +
a=0;b=9;
 +
h=0.001;
 +
N=(b-a)/h;
 +
x=a:h:b;
 +
E=1;
 +
I=1/4*1.2*pi*0.8^4;
 +
P=0.8846678;
 +
%introducimos la función -x/EI
 +
f=-x./(E*I);
 +
%indica numero de sumando que tomamos de la serie de fourier
 +
G=[3,5,10,40];
 +
Q=0;
 +
hold on
 +
for i=1:4
 +
    for k=1:G(i)
 +
 
 +
        %introducimos los autovalores
 +
        muk=(k*pi/b)^2;
 +
        %autofunciones
 +
        pk=sin(k*pi*x/b);
 +
        %calculmo los coeficientes de fourier
 +
        ak=trapz(x,f.*pk)/trapz(x,pk.^2);
 +
        %calculo de la aproximación de fourier
 +
        Q=Q+(ak/(-muk+P/E*I))*pk;
 +
    end
 +
    plot(Q,x)
 +
    ylabel('x (m)'); xlabel('y(x)')
 +
end
 +
hold off
 
}}
 
}}
  

Revisión del 17:24 14 may 2015

% Calculamos numéricamente los valores de P_cr. El primer autovalor es el que se corresponde con dicha carga (esto está almacenado en la primera columna de la matriz A)
clear all; clf
a=0;L=9;
ya=0;yL=0;
h=0.1;N=(L-a)/h;
x=a:h:L;
K=(1/h^(2))*(2*diag(ones(N-1,1))-diag(ones(N-2,1),1)-diag(ones(N-2,1),-1));
R=linspace(1,5,N+1);
l=sqrt(pi.*R.^2);       %lado del cuadrado (resultado de igualar masas)
for i=1:length(l)
    A(i,:)=eig((1/12)*1.2*l(i)^4*L.*K);     %momento inercia prisma rectangular
end
hold on
Pcr=A(:,1);
plot(l,Pcr,'-')
xlabel('Radio (m)');
ylabel('Carga critica (kN)')
hold off


clear all  clf
 
xa=0;xb=9;
ya=0;yb=0;
L=xb;
p1=1.2;
N=20; h=(xb-xa)/N;
x=xa:h:xb;
K=(1/h^(2))*(2*diag(ones(N-1,1))-diag(ones(N-2,1),1)-diag(ones(N-2,1),-1));
%Definimos los parámetros a b y c
a0=0.13;
af=0.5;
a=linspace(a0,af,N+1);
%Es un bucle doble anidado.
for j=1:length(a)  
    b=((-4/a(j))*sin(a(j)*(L/2))+sqrt((16/(a(j)^2))*(sin(a(j)*L/2))^2)-4*L*(((1/(2*a(j)))*sin(a(j)*L))-31/(pi*p1)+L/2));
    for k=1:length(x)
        R(j,k)=cos(a(j)*(x(k)-L/2))+b;
    end
end
for i=1:length(R)
    Rsm(i)=min(R(i,:));
end
for i=1:length(R)
    A(i,:)=eig(0.25*pi*1.2*Rsm(i).^4.*K); %Los autovalores
end
p=A(:,1); %De aquí sacamos que la columna con menor P es la número 1 (a0) y la de mayor la número N+1 (af)
figure (1) %Dibujamos la columna mas estrecha
plot(x,R(1,:),'-') %En este caso a es cte, por lo que la sección es como la resuelta en el 2 circular y sin cambio de radio
grid on
title('Columna con menor carga crítica (admisible)')
xlabel('x (m)'); ylabel('Radio de la columna (m)')
figure (2)
plot(x,R(N+1,:),'-')
title('Columna cerca de que mayor carga crítica tiene')
xlabel('x (m)'); ylabel('Radio de la columna (m)')
grid on
figure (3)
plot(a,p,'x')
title('Evolución de la carga crítica con el valor de a')
xlabel('a'); ylabel('P_cr')
grid on
R2=0.955859;   % radio de la columna constante si su masa es 31 kg

for k=1:length(p)
    g(k)=(p(k)-(pi^3*p1*R2^4)/(4*L^2))*100/(pi^3*p1*R2^4)/(4*L^2); %Calculamos así la ganancia (o pérdida) en porcentaje de Pcrit para cada valor de R0 respecto a la columna de seccion circular constante (R0=1)
end
figure (4) %Dibujamos el cambio en porcentaje de Pcrit para cada valor de a respecto a la columna de seccion circular constante 
plot(a,g,'.-')
grid on
title('Ganancia en porcentaje de Pcrit respecto a la columna circular de seccion constante')
xlabel('R0'); ylabel('Ganancia en porcentaje de Pcrit')
title('Columna con R=0.9558 (31 kg r=cte)')
xlabel('a'); ylabel('Radio de la columna (m)')
figure(5)   %como cambia el radio en funcion de los valores de a y x
[xx,aa]=meshgrid(x,a);
surf(x,a,R)


clear all clc
%apartado 8
a=0;b=9;
h=0.001;
N=(b-a)/h;
x=a:h:b;
E=1;
I=1/4*1.2*pi*0.8^4;
P=0.8846678;
%introducimos la función -x/EI 
f=-x./(E*I);
%indica numero de sumando que tomamos de la serie de fourier
G=[3,5,10,40];
Q=0;
hold on
for i=1:4
    for k=1:G(i)
   
        %introducimos los autovalores
        muk=(k*pi/b)^2;
        %autofunciones
        pk=sin(k*pi*x/b);
        %calculmo los coeficientes de fourier
        ak=trapz(x,f.*pk)/trapz(x,pk.^2);
        %calculo de la aproximación de fourier
        Q=Q+(ak/(-muk+P/E*I))*pk;
    end
    plot(Q,x)
    ylabel('x (m)'); xlabel('y(x)')
end
hold off