2 Ejercicio resistencias.nb

Estas variables son los datos de entrada del sistema. Para el problema que se ... El valor numérico de la condición de c
110KB Größe 6 Downloads 104 Ansichten
Circuito de resistencias Curso de Geomecánica Computacional Dr. Alejo O. Sfriso

Módulos Matriz de rigidez elemental La matriz de rigidez elemental es In[34]:=

Clear  RigidezElemento  RigidezElemento [ R_ ] :=

1 R

* 

1 -1  -1 1

Ensamblador de matriz de rigidez global Esta rutina forma la matriz de rigidez global a partir de la matriz de rigidez elemental y la matriz de conectividad In[36]:=

Clear [ Ensamblador ] Ensamblador Conectividad_ , nodos_ , elementos_ , R_  :=Module   i , j , k , ini , fin , Res , RigidezGlobal  , RigidezGlobal = Table  0 ,  j , nodos  , { k , nodos }  ; i = 1 ; While  i ≤ elementos , ini = Conectividad   i , 1   ; fin = Conectividad   i , 2   ; Res = R   i   ; RigidezGlobal   ini , ini   = RigidezElemento [ Res ] [ [ 1 , 1 ] ] + RigidezGlobal RigidezGlobal   ini , fin   = RigidezElemento [ Res ] [ [ 1 , 2 ] ] + RigidezGlobal RigidezGlobal   fin , ini   = RigidezElemento [ Res ] [ [ 2 , 1 ] ] + RigidezGlobal RigidezGlobal   fin , fin   = RigidezElemento [ Res ] [ [ 2 , 2 ] ] + RigidezGlobal i = i + 1 ;  ; Return  RigidezGlobal  

Condensación de la matriz de rigidez global y del vector de cargas La condensación de la matriz de rigidez implica la eliminación de filas y columnas, mediante la utilización de las condiciones de contorno. La información almacenada en estas filas y columnas pasa al término de carga, que también es condensado.

2

2 Ejercicio resistencias.nb

In[38]:=

Clear [ Condensador ] Condensador  CondicionContorno_ , ValorContorno_ , RigidezGlobal_ , nodos_  := Module  i , j , iRC , jRC , RigidezCondensada , Cargas , gdl  , gdl = nodos - Sum  CondicionContorno   i   ,  i , nodos   ; RigidezCondensada = Table  0 ,  i , gdl  ,  j , gdl   ; Cargas = Table  0 ,  i , gdl   ; i = 1 ; iRC = 1 ; While  i≤ nodos , j = 1 ; jRC = 1 ; If  CondicionContorno   i   ⩵ 0 , Cargas   iRC   = ValorContorno   i   + Cargas   iRC   ; While  j ≤ nodos , If  CondicionContorno   j   ⩵ 0 , RigidezCondensada   iRC , jRC   = RigidezGlobal   i , j   j = j + 1 ; jRC = jRC + 1 ; , Cargas   iRC   = Cargas   iRC   - RigidezGlobal   i , j j = j + 1 ;  ; i = i + 1 ; iRC = iRC + 1 ; , i = i + 1 ;  ; Return   RigidezCondensada , Cargas   

Expansión del vector de tensiones El vector de tensiones debe ser expandido, para que cada posición corresponda a la numeración global de nodos

2 Ejercicio resistencias.nb

In[40]:=

3

Clear  Expansion  Expansion  nodos_ , CondicionContorno_ , ValorContorno_ , TensionCondensada_  := Module  TensionExpandida , i , iT  , TensionExpandida = Table  0 ,  i , nodos   ; i = 1 ; iT = 1 ; While  i ≤ nodos , If  CondicionContorno   i   ⩵ 0 , TensionExpandida   i   = TensionCondensada   iT   ; iT = iT + 1 ; i = i + 1 ; , TensionExpandida   i   = ValorContorno   i   ; i = i + 1 ;   ; Return  TensionExpandida  

Ejercicio del ejemplo Datos de entrada La geometría del problema está definida por: - la cantidad de nodos y elementos - las características de cada uno de los elementos - la conexión entre ellos - las condiciones de contorno, tanto esenciales (CCE) como naturales (CCN) Estas variables son los datos de entrada del sistema. Para el problema que se plantea como ejemplo, In[42]:=

Clear [ nodos , elementos ] nodos = 6 ; elementos = 8 ;

La resistencia de cada uno de los elementos se almacena en el vector de resistencias elementales. Para el problema del ejemplo es In[45]:=

Clear [ R , R1 , R2 , R3 , R4 , R5 , R6 , R7 , R8 ] R = { R1 , R2 , R3 , R4 , R5 , R6 , R7 , R8 } ;

La conectividad entre los diferentes elementos se establece en la matriz de conectividad, que contiene en la fila iésima, columna 1, el nodo de partida del elemento iésimo. En la columna 2 está el correspondiente nodo de llegada.

4

2 Ejercicio resistencias.nb

In[47]:=

Clear  Conectividad 

Conectividad =

1 2 3 4 5 3 2 1

2 3 4 5 6 5 5 6

;

Finalmente, las condiciones de contorno se almacenan en un vector que tiene un 1 si existe una CCE y un 0 si existe una CCN. El valor numérico de la condición de contorno se almacena en otro vector. Los valores numéricos nulos de las CCN no necesitan ser definidos, puesto que 0 es el valor de inicialización de la variable. In[49]:=

Clear  CondicionContorno , ValorContorno  ValorContorno = CondicionContorno = Table  0 ,  i , nodos   ; CondicionContorno [ [ 6 ] ] = 1 ; ValorContorno [ [ 2 ] ] = 0.1 ; ValorContorno [ [ 6 ] ] = 12 ;

Matriz de rigidez global In[54]:=

RigidezGlobal = Ensamblador  Conectividad , nodos , elementos , R  ; RigidezGlobal // MatrixForm

Out[55]//MatrixForm=

1 R1

+

1 R8

1 - R1

1 - R1 1 R1

0

1 1 + R7 R2 1 - R2

+

0

0

0

-

1 - R8

1 R7

0

1 R2

0

0

0

1 - R8

1 - R2

0

1 - R7

0

1 R6 1 R4

0

1 1 + R3 + R6 1 - R3 1 - R6

1 R3

-

0

1 R3

+

-

1 R4

1 R4

1 R4

+

1 R5

+

1 R6

0 +

1 R7

1 - R5

0

1 - R5 1 R5

+

1 R8

Condensación de matriz de rigidez In[56]:=

 RigidezCondensada , Cargas  = Condensador  CondicionContorno , ValorContorno , RigidezGlobal RigidezCondensada // MatrixForm

Out[57]//MatrixForm=

1 R1

-

+

1 R8

1 R1

0

1 - R1 1 R1

1 1 + R2 + R7 1 - R2

0

0

0

1 - R7

0

0

0

1 - R2 1 1 1 + R3 + R6 R2 1 - R3 1 - R6

0

1 - R7

1 - R3

1 - R6

1 R3

+

1 R4

1 - R4

1 - R4 1 R4

+

1 R5

+

1 R6

+

1 R7

2 Ejercicio resistencias.nb

In[58]:=

5

R1 = 10. ; R2 = 3. ; R3 = 2. ; R4 = 7. ; R5 = 12. ; R6 = 5. ; R7 = 4. ; R8 = 9. ;  RigidezCondensada // MatrixForm , Cargas // MatrixForm 

Out[59]=

0.211111 - 0.1 0 0 0 - 0.1 0.683333 - 0.333333 0 - 0.25  , 0 - 0.333333 1.03333 - 0.5 - 0.2 0 0 - 0.5 0.642857 - 0.142857 0 - 0.25 - 0.2 - 0.142857 0.67619

1.33333 0.1  0 0 1.

Solución del sistema de ecuaciones La solución del sistema lineal de ecuaciones no es parte del ejercicio, por lo que Mathematica se encarga. In[60]:=

Clear  RigidezInvertida , TensionCondensada  RigidezInvertida := Inverse  RigidezCondensada  ; TensionCondensada := RigidezInvertida . Cargas ;

Con este procedimiento, se obtienen las tensiones e intensidades en todos los nodos y elementos de la malla In[63]:=

ClearTension , Intensidad  Tension = Expansion  nodos , CondicionContorno , ValorContorno , TensionCondensada  ; Intensidad = RigidezGlobal . Tension ; Print   MatrixForm  Tension  , MatrixForm  Intensidad    12.3885 12.8202 12.7535  , 12.7376 12.6819 12

0. 0.1 4.44089 × 10-16 - 1.9984 × 10-15 8.88178 × 10-16 - 0.1