duda en un código
Publicado por Pili (3 intervenciones) el 20/07/2013 21:20:42
Hola chicos, cómo están? estoy haciendo un programa de elementos finitos (plane stress) y no encuentro la forma de generar una matriz en función de las variables 'r 'y 's' a las que luego las voy a evaluar en diferentes puntos. Yo lo había podido hacer denominándolas como simbólicas pero me pidieron que no lo haga asi.
Les copio una parte del código (como estoy intentanto hacerlo) a ver si me pueden ayudar:
clc
clear
%se definen las variables
char 'r', char 's'
%
%% DATOS DE ENTRADA:
%% Número de nodos
n=xlsread('planestress.xlsx',1,'C2');
%% Posición
coordenadas=xlsread('estado plano de tensión.xlsx',2);
%% Condiciones de vínculo
cv=xlsread('planestress.xlsx',3);
%% Se define el arreglo matricial de condiciones de vínculo:
for i=1:n
CV((2*i)-1)=cv(i,1);
CV((2*i))=cv(i,2);
end
%% Número de elementos
nE=xlsread('planestress.xlsx',1, 'C4');
%% nodos por elemento
conectividad=xlsread('estado plano de tensión.xlsx',4);
%% vector de cargas concentradas
Rc=xlsread('planestress.xlsx',5);
%% Se define el arreglo matricial de cargas concentradas:
for i=1:n
RC((2*i)-1)=Rc(i,1);
RC((2*i))=Rc(i,2);
end
%% Las funciones de forma asiciadas con elemento
% (Figura 5.4 Bathe)
h9='(1-(r^2))*(1-(s^2))'
h8='(1/2*(1-(s^2))*(1+r))-(1/2*h9)'
h7='1/2*(1-(r^2))*(1-s)-(1/2*h9)'
h6='1/2*(1-(s^2))*(1-r)-(1/2*h9)'
h5='1/2*(1-(r^2))*(1+s)-(1/2*h9)'
h1='1/4*(1+r)*(1+s)-1/2*(h5+h8)-(1/4*h9)'
h2='1/4*(1-r)*(1+s)-1/2*(h5+h6)-(1/4*h9)'
h3='1/4*(1-r)*(1-s)-1/2*(h6+h7)-(1/4*h9)'
h4='1/4*(1+r)*(1-s)-1/2*(h7+h8)-(1/4*h9)'
%% Se define la matriz de interpolación, H
H=[h1 h2 h3 h4 h5 h6 h7 h8 h9]
%% Interpolación de la geometría del elemento.
x=0;
y=0;
for i=1:n
x=x+H(i)*coordenadas(i,1);
y=y+H(i)*coordenadas(i,2);
end
%% Se define la matriz Jacobiana, J,
J=[diff(x,r) diff(y,r);
diff(x,s) diff(y,s)]
Ahí por ejemplo, no logro que la 'x' y la 'y' sean funciones de 'r' y 's'
Beso y gracias!
Pili
Les copio una parte del código (como estoy intentanto hacerlo) a ver si me pueden ayudar:
clc
clear
%se definen las variables
char 'r', char 's'
%
%% DATOS DE ENTRADA:
%% Número de nodos
n=xlsread('planestress.xlsx',1,'C2');
%% Posición
coordenadas=xlsread('estado plano de tensión.xlsx',2);
%% Condiciones de vínculo
cv=xlsread('planestress.xlsx',3);
%% Se define el arreglo matricial de condiciones de vínculo:
for i=1:n
CV((2*i)-1)=cv(i,1);
CV((2*i))=cv(i,2);
end
%% Número de elementos
nE=xlsread('planestress.xlsx',1, 'C4');
%% nodos por elemento
conectividad=xlsread('estado plano de tensión.xlsx',4);
%% vector de cargas concentradas
Rc=xlsread('planestress.xlsx',5);
%% Se define el arreglo matricial de cargas concentradas:
for i=1:n
RC((2*i)-1)=Rc(i,1);
RC((2*i))=Rc(i,2);
end
%% Las funciones de forma asiciadas con elemento
% (Figura 5.4 Bathe)
h9='(1-(r^2))*(1-(s^2))'
h8='(1/2*(1-(s^2))*(1+r))-(1/2*h9)'
h7='1/2*(1-(r^2))*(1-s)-(1/2*h9)'
h6='1/2*(1-(s^2))*(1-r)-(1/2*h9)'
h5='1/2*(1-(r^2))*(1+s)-(1/2*h9)'
h1='1/4*(1+r)*(1+s)-1/2*(h5+h8)-(1/4*h9)'
h2='1/4*(1-r)*(1+s)-1/2*(h5+h6)-(1/4*h9)'
h3='1/4*(1-r)*(1-s)-1/2*(h6+h7)-(1/4*h9)'
h4='1/4*(1+r)*(1-s)-1/2*(h7+h8)-(1/4*h9)'
%% Se define la matriz de interpolación, H
H=[h1 h2 h3 h4 h5 h6 h7 h8 h9]
%% Interpolación de la geometría del elemento.
x=0;
y=0;
for i=1:n
x=x+H(i)*coordenadas(i,1);
y=y+H(i)*coordenadas(i,2);
end
%% Se define la matriz Jacobiana, J,
J=[diff(x,r) diff(y,r);
diff(x,s) diff(y,s)]
Ahí por ejemplo, no logro que la 'x' y la 'y' sean funciones de 'r' y 's'
Beso y gracias!
Pili
Valora esta pregunta


0