AYUDA CON ALGORITMO
Publicado por José (71 intervenciones) el 26/02/2017 21:54:52
Muy buenas tardes, saludos a todos necesito ayuda para crear un algoritmo que me permita ingresa, el acero en horizontal en el dibujo que ven continuación, estoy creando un software para el calculo de columnas rectangulares y cuadradas en concreto armado, y se basa en que el programa realice un diagrama, que se denomina diagrama de interacción de columnas, ya logre generarlo en el eje vertical pero tengo problemas con el horizontal ya que no encuentro la forma de que al ingresar el numero de lineas de aceros horizontales las distancias al centro de las barras y el numero de barras por cada linea me calculo la cantidad de acero en una matriz en centímetros cuadrados, ya que en el eje vertical esta condicionado que no cambien los diámetros por linea, pero se nota que en el eje horizontal cambian he allí mi problemática, necesito ayuda para crear el algoritmo que me permita hacer eso, para luego aplicar los cálculos para el diagrama horizontal. de antemano gracias por su ayuda. espero haber sido lo mas explicito posible.
Adjunto estará parte del código de mi programa
Aquí esta una parte del código que estoy implementando para la realización de mi diagrama, este es en el eje Y con lineas de acero verticales, el otro no lo he podido hacer por el problema que tengo, puedes probarlo ingresando estos valores
H= 50
B=60
Recubrimiento= 4
Fc= 250
Fy= 4200
Es= 2.1e+6
Nlas=5
y luego introduce los diámetros con sus respectivas distancias
diámetros 7/8" distancia 5.11 cm numero de barras 5 @ primera Linea de acero
diámetros 1/2" distancia 17.56 cm numero de barras 2 @ segunda Linea de acero
diámetros 1/2" distancia 30 cm numero de barras 2 @ tercera Linea de acero
diámetros 1/2" distancia 42.45 cm numero de barras 2 @ cuarta Linea de acero
diámetros 7/8" distancia 54.84 cm numero de barras 5 @ quinta Linea de acero
Fíjense que cuando se rota la figura para hacer el calculo en el eje horizontal ya en la primera linea de acero no es el mismo diámetro de la barra si no que varían, he allí donde esta mi problema necesito hallar la forma de al momento de ingresar los diámetros pueda hacerlo independientemente de que varíen, el programa básicamente se trata de hallar la máxima carga resistente de una sección de una columna ingresada. Feliz tarde saludos.
Adjunto estará parte del código de mi programa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
% PROGRAMA PARA EL CALCULO Y DISEÑO DE COLUMNAS RECTANGULARES Y CUADRADAS DE CONCRETO ARMADO
disp('CÓDIGO PARA DIBUJAR EL DIAGRAMA DE INTERACCIÓN DE COLUMNAS RECTANGULARES Y CUADRADAS')
disp('UNIVERSIDAD EXPERIMENTAL DE LOS LLANOS OCCIDENTALES EZEQUIEL ZAMORA')
disp('INGRESO DE DATOS')
fc=input('Resistencia del Concreto Kg/cm2:');
if fc<=280
B1=0.85; %Valor del factor B1
else B1=(1.05-fc)/1400; %Valor del factor B1
end
rec=input('Recubrimieto cm:');
Fy=input('Resistencia del Acero Kg/cm2:');
Es=input ('Módulo de elasticidad del acero Es:');
B=input('Base de Columna cm:');
if B>=30;
display('Base minima de 30 cm');
end
H=input('Altura de Columna cm:');
if B>=30;
disp('Base minima de 30 cm');
end
Nlas=input('Numero de Lineas de Acero:');
Ast=0;
for i=1:1:Nlas
%Diametros de Barras Segun Lineas de Acero
Db(i)=input('Ingrese el Diametro de la Barra por Fila en Pulg:');
Nb(i)=input('Ingrese el Numero de Barras por Fila:');
d(i)=input('Ingrese la Separación entre Barras desde la Fibra Comprimida:');
As(i)=Nb(i)*((Db(i)*2.54)^(2))*pi/4;
Ast=sum(As);
end
% CALCULO DE LOS MOMENTOS Y CARGAS NOMINALES
disp('CÁLCULOS')
disp('1) Fuerza a compresion pura en Ton');
% PARA EL PUNTO P0
P0=(0.75*0.65*(0.85*fc*((B*H)-Ast)+Fy*Ast))/1000
M0=0;
eb=M0/P0;
dt=H-rec;
Ecu=0.003;
C=0;
fs=0;
Es1=0;
Est=0;
fact=0;
% Condicionante para ver que aceros están en tracción y compresión
for i=1:1:H;
C(i)=i/B1;
display('2)Esfuerzos para cada Linea de Acero');
% Aceros a Tensión Negativos , Aceros a Compresión Positivos
for j=1:Nlas
Es1(j)=Ecu*((C(i)-d(j))/C(i))
fs(j)=Es*Es1(j)
if abs(fs(j))>Fy
if fs(j)>=0;
fs(j)=Fy
else
fs(j)=-Fy
end
end
Fi(j)=fs(j)*As(j)
display('3)Calculo del factor de Minoracion de Carga')
Est(j)=Ecu*((C(i)-dt)/C(i))
if abs(Est(j))<=0.002
fact(j)=0.65;
else fact(j)=0.90;
end
display('4)Calculo de Cargas y Momentos')
P(i)=((0.85*fc*i*B+sum(Fi))/1000)*fact(j)
M(i)=((((0.85*fc*i*B)/1000)*((H/2-i/2)/100))+(Fi(j)/1000)*((d(j)-H/2)/100))*fact(j)
end
end
H= 50
B=60
Recubrimiento= 4
Fc= 250
Fy= 4200
Es= 2.1e+6
Nlas=5
y luego introduce los diámetros con sus respectivas distancias
diámetros 7/8" distancia 5.11 cm numero de barras 5 @ primera Linea de acero
diámetros 1/2" distancia 17.56 cm numero de barras 2 @ segunda Linea de acero
diámetros 1/2" distancia 30 cm numero de barras 2 @ tercera Linea de acero
diámetros 1/2" distancia 42.45 cm numero de barras 2 @ cuarta Linea de acero
diámetros 7/8" distancia 54.84 cm numero de barras 5 @ quinta Linea de acero
Fíjense que cuando se rota la figura para hacer el calculo en el eje horizontal ya en la primera linea de acero no es el mismo diámetro de la barra si no que varían, he allí donde esta mi problema necesito hallar la forma de al momento de ingresar los diámetros pueda hacerlo independientemente de que varíen, el programa básicamente se trata de hallar la máxima carga resistente de una sección de una columna ingresada. Feliz tarde saludos.
Valora esta pregunta
0