0% encontró este documento útil (0 votos)
19 vistas7 páginas

VIGA

Cargado por

jose salazar
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
19 vistas7 páginas

VIGA

Cargado por

jose salazar
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Matriz de rigidez para vigas

% Definición de parámetros

L = 3; % Longitud de la viga [m]

q = 100; % Carga distribuida uniformemente [N/m]

E = 200e9; % Módulo de elasticidad [Pa]

I = 1e-6; % Momento de inercia [m^4]

n = 10; % Número de elementos finitos

% División de la viga en elementos finitos

dx = L / n;

x = 0:dx:L;

% Cálculo de la matriz de rigidez elemental

k_e = element_stiffness(E, I, L);

% Ensamblaje de la matriz de rigidez global

K = global_stiffness(k_e, n);

% Definición de las condiciones de contorno

u = zeros(3*n, 1);

u(1) = 0;

u(2) = 0;

u(3*n) = 0;

% Cálculo de la matriz de cargas


f = global_loads(q, L, n);

% Solución del sistema de ecuaciones

u = K \ f;

% Cálculo de las reacciones en los apoyos

R = support_reactions(u, f, K, L);

% Cálculo de las deflexiones, momentos flectores y fuerzas cortantes

[v, m, t] = element_stresses(u, k_e, n, dx);

% Representación gráfica de los resultados

plot(x, v, 'b-', x, m, 'r-', x, t, 'g-');

xlabel('Posición [m]');

ylabel('Magnitud');

title('Resultados para viga con tres apoyos y carga distribuida');

PORTICO DE 2 BARRAS

% Definición de parámetros

L1 = 2; % Longitud de la pata vertical [m]

L2 = 3; % Longitud del brazo horizontal [m]

q = 1000; % Carga puntual [N]

E = 200e9; % Módulo de elasticidad [Pa]

I = 1e-6; % Momento de inercia [m^4]

n = 10; % Número de elementos finitos para cada barra


% Definición de la geometría del pórtico

nodes = [0 0; 0 L1; L2 L1; L2 0];

% Cálculo de las matrices de rigidez elementales

k_e1 = element_stiffness(E, I, L1);

k_e2 = element_stiffness(E, I, L2);

% Ensamblaje de la matriz de rigidez global

K = global_stiffness(k_e1, k_e2, nodes, n);

% Definición de las condiciones de contorno

u = zeros(4*n, 1);

u(1) = 0;

u(2) = 0;

u(3*n + 2) = 0;

u(4*n) = 0;

% Cálculo de la matriz de cargas

f = global_loads(q, nodes, n);

% Solución del sistema de ecuaciones

u = K \ f;

% Cálculo de las reacciones en los apoyos


R = support_reactions(u, f, K, nodes);

% Cálculo de las deflexiones, momentos flectores y fuerzas cortantes

[v1, m1, t1] = element_stresses(u, k_e1, n, L1);

[v2, m2, t2] = element_stresses(u, k_e2, n, L2);

Armadura

## Código MATLAB para resolver una armadura de 6 barras aplicando el método de rigidez

Este código MATLAB resuelve el análisis estático de una armadura de 6 barras planas utilizando el
método de rigidez. El código calcula las fuerzas en cada barra, las reacciones en los apoyos y los
desplazamientos de los nodos.

**Descripción del código:**

1. **Definición de datos:**

- Se definen las coordenadas de los nodos de la armadura.

- Se definen las conectividades de las barras, indicando los nodos inicial y final de cada barra.

- Se definen las áreas de las barras.

- Se definen las fuerzas aplicadas en los nodos (si las hay).

2. **Cálculo de la matriz de rigidez global:**

- Se utiliza la función `element_stiffness` para calcular la matriz de rigidez elemental de cada barra.

- Se ensambla la matriz de rigidez global a partir de las matrices de rigidez elementales utilizando la
función `global_stiffness`.

3. **Definición de las condiciones de contorno:**


- Se identifican los nodos con desplazamientos restringidos (apoyos) e indica qué tipo de restricción
tienen (desplazamiento horizontal, vertical o ambos).

4. **Cálculo de las fuerzas en las barras:**

- Se elimina las filas y columnas correspondientes a los nodos con desplazamientos restringidos de la
matriz de rigidez global y el vector de fuerzas aplicadas.

- Se resuelve el sistema de ecuaciones reducido para obtener los desplazamientos de los nodos libres.

- Se calculan las fuerzas en cada barra utilizando los desplazamientos de los nodos, la matriz de rigidez
elemental y las conectividades de las barras.

5. **Cálculo de las reacciones en los apoyos:**

- Se utilizan las ecuaciones de equilibrio estático para calcular las reacciones en los apoyos horizontales
y verticales.

6. **Presentación de resultados:**

- Se muestran los resultados obtenidos, incluyendo las fuerzas en cada barra, las reacciones en los
apoyos y los desplazamientos de los nodos.

**Ejemplo de uso:**

```MATLAB

% Definición de datos

nodes = [0 0; 3 0; 6 0; 3 3; 6 3; 3 6]; % Coordenadas de nodos

bars = [1 2; 2 3; 1 3; 4 5; 5 6; 3 5]; % Conectividades de barras

areas = [1; 1; 1; 1; 1; 1]; % Áreas de las barras

forces = [0 -100; 0 0; 0 0; -50 0; 0 0; 0 0]; % Fuerzas aplicadas en nodos (opcional)


% Cálculo de la matriz de rigidez global

K = global_stiffness(nodes, bars, areas);

% Definición de las condiciones de contorno

fixed_nodes = [1 2]; % Nodos con desplazamientos restringidos

fixed_dofs = [1 2]; % Grados de libertad restringidos (1: horizontal, 2: vertical)

% Cálculo de las fuerzas en las barras

[u, f_bars] = solve_system(K, forces, fixed_nodes, fixed_dofs);

% Cálculo de las reacciones en los apoyos

R = support_reactions(nodes, bars, areas, forces, u);

% Presentación de resultados

fprintf('Fuerzas en barras:\n');

for i = 1:length(bars)

fprintf('Barra %d: %f\n', i, f_bars(i));

end

fprintf('Reacciones en apoyos:\n');

fprintf('Rx = %f, Ry = %f\n', R(1), R(2));

fprintf('Desplazamientos de nodos:\n');

for i = 1:length(nodes)

fprintf('Nodo %d: x = %f, y = %f\n', i, u(2*i-1), u(2*i));


end

```

**Explicación del código:**

* La función `element_stiffness` calcula la matriz de rigidez elemental de una barra bidimensional


utilizando la fórmula correspondiente.

* La función `global_stiffness` ensambla la matriz de rigidez global a partir de las matrices de rigidez
elementales y las conectividades de las barras.

* La función `solve_system` elimina las filas y columnas correspondientes a los nodos con
desplazamientos restringidos, resuelve el sistema de ecuaciones reducido

También podría gustarte