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

De MateWiki
Saltar a: navegación, buscar
(Página blanqueada)
 
Línea 1: Línea 1:
{{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;
 
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
 
}}
 
 
{{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
 
}}
 
 
 
{{matlab|codigo=
 
 
 
}}
 

Revisión actual del 17:28 14 may 2015