Buscar

Programa em Octave para ponte de macarrão

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

% PROJETO DE UMA PONTE TRELI�ADA DE MACARR�O ESPAGUETE
clc
clear all
format short
% Dimens�es da Ponte
a1=input('Digite o valor da dimensao a1 [m]: ');
a2=input('Digite o valor da dimensao a2 [m]: ');
a3=input('Digite o valor da dimensao a3 [m]: ');
b1=input('Digite o valor da dimensao b1 [m]: ');
b2=input('Digite o valor da dimensao b2 [m]: ');
b3=input('Digite o valor da dimensao b3 [m]: ');
lcalc=2*(b1+b2+b3); %[m]
disp(['Comprimento da ponte = ' num2str(lcalc) ' m'])
c1=sqrt(a1^2+b1^2);
c2=sqrt((a2-a1)^2+b2^2);
c3=sqrt(a1^2+b2^2);
c4=sqrt(b3^2+a3^2);
c5=sqrt((a3-a2)^2+b3^2);
disp(['Dimensao "a1" = ' num2str(a1) ' m'])
disp(['Dimensao "a2" = ' num2str(a2) ' m'])
disp(['Dimensao "a3" = ' num2str(a3) ' m'])
disp(['Dimensao "b1" = ' num2str(b1) ' m'])
disp(['Dimensao "b2" = ' num2str(b2) ' m'])
disp(['Dimensao "b3" = ' num2str(b3) ' m'])
disp(['Dimensao "c1" = ' num2str(c1) ' m'])
disp(['Dimensao "c2" = ' num2str(c2) ' m'])
disp(['Dimensao "c3" = ' num2str(c3) ' m'])
disp(['Dimensao "c4" = ' num2str(c4) ' m'])
disp(['Dimensao "c5" = ' num2str(c5) ' m'])
% �ngulos da Ponte
alfa=atan(a1/b1); %[rad]
beta=pi/2-alfa; %[rad]
gama=atan(b2/a1); %[rad]
delta=pi/2-gama; %[rad]
epsilon=atan((a2-a1)/b2); %[rad]
teta=pi/2-epsilon; %[rad]
zeta=atan((a3-a2)/b3)
omega=pi/2-phi
phi=atan(b3/a3)
alfadeg=180*alfa/pi; %[graus]
betadeg=180*beta/pi; %[graus]
gamadeg=180*gama/pi; %[graus]
deltadeg=180*delta/pi; %[graus]
epsilondeg=180*epsilon/pi; %[graus]
tetadeg=180*teta/pi; %[graus]
zetadeg=180*zeta/pi
omegadeg=180*omega/pi
phideg=180*phi/pi
disp(['angulo alfa = ' num2str(alfadeg) ' graus'])
disp(['angulo beta = ' num2str(betadeg) ' graus'])
disp(['angulo gama = ' num2str(gamadeg) ' graus'])
disp(['angulo delta = ' num2str(deltadeg) ' graus'])
disp(['angulo epsilon = ' num2str(epsilondeg) ' graus'])
disp(['angulo teta = ' num2str(tetadeg) ' graus'])
disp(['angulo zeta= ' num2str(zetadeg) ' graus'])
disp(['angulo omega = ' num2str(omegadeg) ' graus'])
disp(['angulo phi = ' num2str(phideg) ' graus'])
salfa=sin(alfa);
calfa=cos(alfa);
sbeta=sin(beta);
cbeta=cos(beta);
sgama=sin(gama);
cgama=cos(gama);
sdelta=sin(delta);
cdelta=cos(delta);
sepsilon=sin(epsilon);
cepsilon=cos(epsilon);
steta=sin(teta);
cteta=cos(teta);
szeta=sin(zeta);
czeta=cos(zeta);
somega=sin(omega);
comega=cos(omega);
sphi=sin(phi);
cphi=cos(phi);
% Matriz de Coeficientes - C
C=zeros(16);
C(1,1)=calfa;
C(1,2)=+1;
C(1,14)=-1;
C(2,1)=salfa;
C(2,15)=+1;
C(3,1)=-sbeta;
C(3,4)=sgama;
C(3,5)=cepsilon;
C(4,1)=-cbeta;
C(4,3)=-1;
C(4,4)=-cgama;
C(4,5)=sepsilon;
C(5,2)=-1;
C(5,6)=+1;
C(6,3)=+1;
C(7,4)=-cdelta;
C(7,6)=-1;
C(7,8)=cdelta;
C(7,9)=+1;
C(8,4)=sdelta;
C(8,7)=+1;
C(8,8)=sdelta;
C(9,5)=-steta;
C(9,10)=steta;
C(10,5)=-cteta;
C(10,7)=-1;
C(10,10)=-cteta;
C(11,8)=-sgama;
C(11,10)=-cepsilon;
C(11,12)=sbeta;
C(12,8)=-cgama;
C(12,10)=sepsilon;
C(12,11)=-1;
C(12,12)=-cbeta;
C(13,9)=-1;
C(13,13)=+1;
C(14,11)=+1;
C(15,12)=-calfa;
C(15,13)=-1;
C(16,12)=salfa;
C(16,16)=+1;
disp(num2str(C))
 
% Vetor de Cargas Externas - F[N]
P=input('Digite o valor da carga total aplicada [N]: ');
F=zeros(16,1);
F(8,1)=P/2;
disp(['Forca total aplicada P = ' num2str(P) ' N'])
% Vetor de Forcas Normais nas Barras
% N = [NAB NAC NBC NBD NBE NCD NDE NDF NDG NEF NFG NFH NGH AX AY HY]'
N=inv(C)*F;
disp('Foraas nas Barras (N>0 => Tracao e N<0 => Compressao):')
disp(['NAB = ' num2str(N(1)) ' N'])
disp(['NAC = ' num2str(N(2)) ' N'])
disp(['NBC = ' num2str(N(3)) ' N'])
disp(['NBD = ' num2str(N(4)) ' N'])
disp(['NBE = ' num2str(N(5)) ' N'])
disp(['NCD = ' num2str(N(6)) ' N'])
disp(['NDE = ' num2str(N(7)) ' N'])
disp(['NDF = ' num2str(N(8)) ' N'])
disp(['NDG = ' num2str(N(9)) ' N'])
disp(['NEF = ' num2str(N(10)) ' N'])
disp(['NFG = ' num2str(N(11)) ' N'])
disp(['NFH = ' num2str(N(12)) ' N'])
disp(['NGH = ' num2str(N(13)) ' N'])
disp('Reacoes nos Apoios:')
disp(['AX = ' num2str(N(14)) ' N'])
disp(['AY = ' num2str(N(15)) ' N'])
disp(['HY = ' num2str(N(16)) ' N'])
% Dimensionamento das Barras
Tr=42.5; % Carga limite de resistencia a tracao[N]
E=3600e6; % Modulo de Elasticidade do macarrao [Pa]
d=1.8e-3; % Diametro do fio de macarrao [m]
cs=4; % Coeficiente de seguranca
lb=[c1 b1 a1 c3 c2 b2 a2 c3 b2 c2 a1 c1 b1]; %Comprimentos das barras [m]
nb=length(N)-3; % Numero de barras
nf=zeros(nb,1);
for i=1:nb
 if N(i)>0 % Tracao
 nf(i)=ceil(N(i)/(Tr/cs));
 elseif N(i)<0 %Compressao/Flambagem
 nf(i)=ceil(sqrt((64*abs(N(i)*cs)*lb(i)^2)/(pi^3*E*d^4)));
 else % N(i) = 0 Carga nula
 nf(i)=5;
 end
end
disp('Numero de Fios de Macarrao nas Barras')
disp(['nAB = ' num2str(nf(1))])
disp(['nAC = ' num2str(nf(2))])
disp(['nBC = ' num2str(nf(3))])
disp(['nBD = ' num2str(nf(4))])
disp(['nBE = ' num2str(nf(5))])
disp(['nCD = ' num2str(nf(6))])
disp(['nDE = ' num2str(nf(7))])
disp(['nDF = ' num2str(nf(8))])
disp(['nDG = ' num2str(nf(9))])
disp(['nEF = ' num2str(nf(10))])
disp(['nFG = ' num2str(nf(11))])
disp(['nFH = ' num2str(nf(12))]) 
disp(['nGH = ' num2str(nf(13))])

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais