ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO PMR 2370 -Elementos de Máquinas 2º Semestre 2004 Projeto de Dimensionamento de Eixo PMR2370 Elementos de Máquinas OBJETIVO Implementar um programa que, a partir da tensão máxima admissível do material do eixo e das forças decompostas e aplicadas em determinados pontos do eixo, dimensione o diâmetro mínimo do eixo de comprimento desejado. HIPÓTESES 1. 2. 3. 4. 5. Eixo de material homogêneo. Problema Estático. Os pontos que recebem os maiores esforços são pertencentes à superfície. Somente duas forças aplicadas no eixo. O momento causado pela componente Y das forças (momento torçor) deve ser igual por se tratar de um problema estático. 6. O eixo só aumenta de diâmetro entre as polias, sendo este aumento de 10%.7. A falha por fadiga ocorrerá nas superfícies das secções A e B (Fig. 1), pois é um fenômeno pontual, sendo muito influenciado por fatores de concentração de tensões. 8. Os eixos são orientados de acordo com a figura 2. Fig. 1 Esboço do eixo z x y Fig. 2 Orientação dos eixos coordenados ALGORITMO A partir de um eixo inicial de diâmetro zero, o programa calcula as tensões principais do bordo da primeira seção do eixo e, com estes valores, calcula as tensões equivalentes através do Critério de Von Misses para cada ponto do bordo. Adota-se a maior tensão equivalente para calcular o diâmetro desta seção, se tornando este o diâmetro do eixo. Posteriormente é feito o cálculo em uma segunda seção do eixo, obtendo-se um novo diâmetro de eixo, se este for maior que o anterior, se adota este como o novo diâmetro do eixo. Caso contrário, se mantém. E assim sucessivamente, até que ao se "vasculhe" toda a extensão do eixo, teremos assim o diâmetro definitivo do eixo desejado. 2 PMR2370 Elementos de Máquinas EQUACIONAMENTO Rby F1 =( FX 1 ,FY 1 ,FZ 1 ) p1 =( A1, B1, C1) Rbz z y Ray Raz Na x L F2 =( FX 2 ,FY 2 ,FZ 2 ) p2 =( A2, B 2, C 2) Diagramas: Força normal: F x =0 N a +Fx1 +Fx 2 =0 N a =( Fx1 +Fx 2 ) N ( x) =N a p / x A1 N ( x) =N a +Fx1 p / A1 x A2 N ( x) =N a +Fx1 +Fx 2 p / x A2 Forças cortantes: Reações na direção y: F F y =0 Ray +Rby =Fy1 -Fy2 z ay M ( A) =0 R z =Fx1.B1 -Fx2 .B2 -Fy1.(L -A1) -Fy2 .(L -A2) L -Fx1.C1 -Fx2 .C2 -Fz1.(L -A1) -Fz 2 .(L -A2) L =0 Raz +Rbz =Fz1 -Fz 2 y M ( A) =0 Raz =3 PMR2370 Elementos de Máquinas F y ( x ) =R ay p / x A1 F y ( x ) =R ay +F y 1 p / A1 x A 2 F y ( x ) =R ay +F y 1 +F y 2 p / x A 2 F z ( x ) =R az p / x A1 F z ( x ) =R az +F z 1 p / A1 x A 2 F z ( x ) =R az +F z 1 +F z 2 p / x A 2 Momentos fletores: M y ( x ) =Raz .x p / x A1 M y ( x ) =Raz .x -Fz1.( L -A1) -Fx1.C1 p / A1 x A 2 M y ( x ) =Raz .x -Fz1.( L -A1) -Fx1.C1 -Fz 2 .( L -A 2 ) -Fx 2 .C 2 p / x A 2 M z ( x ) =Ray .x p / x A1 M z ( x ) =Ray .x -Fy1 .( L -A1) -Fx1 .B1 p / A1 x A 2 M z ( x ) =Ray .x -Fy1 .( L -A1) -Fx1 .B1 -Fy 2 .( L -A 2 ) -Fx 2 .B 2 p / x A 2 Momento torçor: M t ( x ) =0 p / x A1 M t ( x ) =Fy1 .C1 -Fz1 B1 p / A1 x A 2 M t ( x ) =0 p / x A2 Z Mz Vz Mt X N Vy My Y 4 PMR2370 Elementos de Máquinas Tensão causada pela força normal N: x =N 4.N =As .d 2 Tensão causada pelos momentos fletores My e Mz :x =Mz.Y My.Z 64 +Mz.Y +My.Z Iz Iy .d4 [ ] Tensão causada pelo momento torçor Mt :xy =xz =32 -M t .Z [- M t .Z ] =Ip .d 4 M t .Y 32 [M t .Y ] =4 .d Ip Tensão causada pelas forças cortantes Vy e Vz :Vy d 2 Y 2 64 d 2 Y 2 .Vy .xy =by .I y I y 12 3 .d 4 12 3 Vy .S y Vz .S z Vz d 2 Z 2 64 d 2 Z 2 =Vz .xz =4 bz .I z I z 12 3 .d 12 3 Y b a h 5 PMR2370 Elementos de Máquinas obs: S =S.h =Ssc .a -St .b =b y =d .sen( ) 4 d .sen( ) a= 3 d .sen( ).y St =2 2 b= y 3 Ssc =d 2 y2 .d 4 d .sen( ) d .sen( ).y 2 .y S =d .sen( ). 4 3. 2 3 12 3 .d 4 Montemos agora o tensor através das tensões acima: x xy xz x xy xz [ ] =xy y yz =xy 0 0 xz yz z xz 0 0 Para acharmos as tensões principais, devemos achar as raízes do polinômio característico: x -[ ] -[I ] =0 xy xz xy 0- 0 0 =0 0 -xz 2 2 2 ( x -) +xy +xz =0 2 2 -2 +x .xy +xz =0 ( ) =0 2 2 -2 +x. xy +xz =0 2 2 2 x +4.( xy +xz ) 1 =2 x 2 +2 2 2 2 x +4.( xy +xz ) x 2 2 3 =0 6 PMR2370 Elementos de Máquinas Com as tensões principais, aplicamos o critério de Von Mises, obtendo assim o diâmetro necessário ao eixo: eq =1 .(1 -2)2 +(1 -3)2 +(2 -3)2 2 obs: Nos pontos onde há o raio de arredondamento "r",deve-se aplicar o concentrador de tensão K t N ,K t Mt ,K t f calculados na análise da falha por fadiga. Análise da falha por fadiga Análise dos esforços médios: médio decorrente da força normal ( N ) médio decorrente do momento torçor( M t ) xy médio decorrente do momento torçor( M t ) xz Análise dos esforços alternados: alternado decorrente dos momentos fletores ( M y e M z ) alternado decorrente da força cortante ( V y ) xy alternado decorrente da força cortante ( V z ) xz Introdução das constantes de concentração de tensão: K F =1 +( K t -1).q Para esforços decorrentes dos momentos fletores: K F f =1 +( K t f -1).q f ,onde: K t f =69939.x 6 -74847.x 5 +31824.x 4 -6864.x 3 +801,41.x 2 -51,897.x +3,1145 e q f =0,76 e x =r d obs: K t f foi aproximado pela equação acima através de uma regressão e dos dados retirados de Fundamentals of Machine Component Desing, Robert C. Juvinal; assim como q f ,que foi adaptado para uma tensão Su =900MPa 130ksi .7 PMR2370 Elementos de Máquinas Para esforços decorrentes da normal: K FN =1 +( K t N -1).qN ,onde: K t f =37358.x 6 -45798.x 5 +22456.x 4 -5605,2.x 3 +751,96.x 2 -53,865.x +3,1826 e qN =0,76 e x =obs: K t N r d foi aproximado pela equação acima através de uma regressão e dos dados retirados de Fundamentals of Machine Component Desing, Robert C. Juvinal; assim como q N ,que foi adaptado para uma tensão Su =900MPa 130ksi .Para esforços decorrentes do momento torçor: K FMt =1 +( K t Mt -1).qMt ,onde: K t f =77160.x 6 -80750.x 5 +33422.x 4 -6962,7.x 3 +770,74.x 2 -44,033.x +2,2003 e qMt =0,80 e x =r d obs: K t Mt foi aproximado pela equação acima através de uma regressão e dos dados retirados de Fundamentals of Machine Component Desing, Robert C. Juvinal; assim como qMt ,que foi adaptado para uma tensão Su =900MPa 130ksi .Para esforços decorrentes das forças cortantes, será admitido a constante devido ao momento torçor. médio =médio .K F N alternado =alternado .K F f médio xy =médioxy .K FMt xz Mt e alternado xy =alternadoxy .K FMt xz Mt médio =médio .K F xz alternado =alternado .K F xz Cálculo da tensão equivalente média: 1 =médio [ ] =médioxy médioxz médio xy médio médio xz 2 +médio +4. médio 2 ( 2 xy +médioxz 2 ) ) 0 0 0 0 2 =médio -2 2 médio +4. ( 2 2 médio xy +médioxz 2 2 3 =0 Adotamos como tensão equivalente média :médio -eq =1 .8 PMR2370 Elementos de Máquinas Cálculo da tensão equivalente alternada: 1 =alternado [ ] =alternadoxy alternadoxz alternado xy alternado alternado xz 2 +alternado +4. alternado 2 ( 2 xy +alternadoxz 2 ) ) 0 0 0 0 2 =alternado -2 2 alternado +4. ( 2 2 alternado xy +alternadoxz 2 2 3 =0 Achamos a tensão equivalente alternada através de Von Misses: alternado -eq =( 1 -2 ) 2 2 +12 +2 2 Tendo as tensões equivalentes, vamos agora analisar o diagrama de Goodman: S 0,9S u .C l Su .Cl .Cs .C g 2 3 6 log(N ) Através do gráfico, podemos tirar uma relação entre a tensão e o número de ciclos (log). E ainda podemos perceber que a partir de 10 6 ciclos obtemos a vida infinita. Portanto, temos: Seja: S n (log N ) =a. log N +b ,temos: p/ N =10 3 ,S n =0,9.S u .C l p/ N =10 6 ,S n =Su .C l .C s .C g 2 9 PMR2370 Elementos de Máquinas S n (log N ) =S u .C l 3 C s .C g C s .C g .2 -0,9 .log N +S u .C l 1,8 -2 ,p/ N 10 6 As constantes da equação acima foram retiradas de Fundamentals of Machine Component Desing, Robert C. Juvinal, e estão apresentadas a seguir: Cl =1 1, p / d 10mm Cg =0,9, p / d 10mm C s =0,72, p / S u =900 MPa Analisamos agora o diagrama de tensão alternada x tensão média: alternado y S n -gráfico y Su médio Temos, agora, duas situações à serem analisadas: P/ médio -eq +alternado -eq y :1. Seja alternado -eq =a. médio-eq +b ,S u .alternado -eq S u -médio -eq .substituindo em alguns pontos do gráfico, obtemos: S n -gráfico =2. P/ médio -eq +alternado -eq y :Fazemos a seguinte substituição: médio -eq =y -alternado -eq ,e alternado-eq fica inalterado. Isto tem uma explicação física: a tensão alternada somada à média não pode ultrapassar a tensão de escoamento. Portanto, 10 PMR2370 Elementos de Máquinas no primeiro ciclo, o material sofre uma pequena deformação plástica, mas a partir daí não ocorre mais deformação. Daí temos: S n -gráfico =S u .alternado -eq S u -médio -eq .Para encontrarmos o diâmetro ideal, fazemos todos os cálculos das tensões e dos fatores de concentração de tensões; e através deles, calculamos S n e S n -gráfico .Comparamos ambos e realizamos sucessivas iterações, sempre modificando o valor do diâmetro, a fim de encontrarmos o diâmetro que torna S n -gráfico menor ou igual à S n ,garantindo assim a resistência à fadiga para N ciclos. Código Fonte ARQUIVO RESOLUCAO import java.lang.*import java.awt.*// Classe que pega uma secao do eixo e calcula a tensao de Von-Mises e acha um diametro que atende os esforcos calculados sem fraturar. public class resolucao { static double tensaoequi, d ;public static double resolve (double r,boolean concentrador, double tensaomax, double N, double My, double Mz, double Mt, double Vy, double Vz) { double z, y, teta, tensao, sigma1, sigma2, sigmax, sigmay, talxy, talxz, I, ktf,ktn,ktm; tensaoequi=tensaomax+1; ktf=ktn=ktm=1; if(concentrador=true) { ktf =69939*(r/d)*(r/d)*(r/d)*(r/d)*(r/d)*(r/d) 74847*(r/d)*(r/d)*(r/d)*(r/d)*(r/d) +31824*(r/d)*(r/d)*(r/d)*(r/d) 6864*(r/d)*(r/d)*(r/d) +801.41*(r/d)*(r/d) -51.897*(r/d) +3.1145; ktn =37358*(r/d)*(r/d)*(r/d)*(r/d)*(r/d)*(r/d) 45798*(r/d)*(r/d)*(r/d)*(r/d)*(r/d) +22456*(r/d)*(r/d)*(r/d)*(r/d) 5605.2*(r/d)*(r/d)*(r/d) +751.96*(r/d)*(r/d) -53.865*(r/d) +3.1826; ktm =77160*(r/d)*(r/d)*(r/d)*(r/d)*(r/d)*(r/d) 80750*(r/d)*(r/d)*(r/d)*(r/d)*(r/d) +33422*(r/d)*(r/d)*(r/d)*(r/d) 6962.7*(r/d)*(r/d)*(r/d) +770.74*(r/d)*(r/d) -44.033*(r/d) +2.2003; } N=N*ktn; My=My*ktf; Mz=Mz*ktf; Mt=Mt*ktm; Vy=Vy*ktm; Vz=Vz*ktm; for(d=0.001;tensaoequi tensaomax;d=d+0.0001) { tensaoequi=0; for(teta=0;teta 2*java.lang.Math.PI;teta=teta+java.lang.Math.PI/16) { z=(d/2)*java.lang.Math.cos(teta); y=(d/2)*java.lang.Math.sin(teta); I =(java.lang.Math.PI*d*d*d*d)/64; sigmax =4*N/(java.lang.Math.PI*d*d)+(-1*Mz*y+My*z)/I; talxy =(-1*(2*Mt*z)/I)+(Vy*((d*d/12)-(y*y/3))/I); 11 PMR2370 Elementos de Máquinas talxz =(2*Mt*y)/I+Vz*((d*d/12)-(z*z/3))/I; sigma1 =sigmax/2+(java.lang.Math.sqrt(sigmax*sigmax+4*(talxy*talxy+talxz*talxz)))/2; sigma2 =sigmax/2(java.lang.Math.sqrt(sigmax*sigmax+4*(talxy*talxy+talxz*talxz)))/2; tensao =java.lang.Math.sqrt((sigma1-sigma2)*(sigma1sigma2)+(sigma1*sigma1)+(sigma2*sigma2))/java.lang.Math.sqrt(2); if(tensao tensaoequi) { tensaoequi=tensao; } } } return(d); } } ARQUIVO GRAFICO import java.io.*//Pacotes necessarios para a funcionalidade do programa import java.lang.*import java.awt.*import java.awt.event.*import javax.swing.*import java.applet.*import javax.swing.*import javax.swing.table.*import org.jfree.data.xy.*import org.jfree.chart.*import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.plot.*import org.jfree.chart.axis.*// Classe que gera as janelas dos graficos public class grafico extends Frame { public grafico(ChartPanel a, String b, int c, int d) { setTitle(b); setBounds(c,d,545,440); addWindowListener(new CloseAndExit()); add(a); } public static void main(ChartPanel a, String b, int c, int d) { new grafico(a,b,c,d).show(); } } ARQUIVO CLOSEANDEXIT import java.awt.event.*// Classe que implementa a opcao de fechar a janela public class CloseAndExit extends WindowAdapter { public void windowClosing(WindowEvent e) { e.getWindow().dispose(); } } ARQUIVO DIAGRAMA import java.io.*//Pacotes necessarios para a funcionalidade do programa import java.lang.*import java.awt.*import java.awt.event.*import javax.swing.*import java.applet.*12 PMR2370 Elementos de Máquinas import import import import import import import java.applet.Applet.*org.jfree.data.xy.*org.jfree.chart.*org.jfree.chart.plot.PlotOrientation; org.jfree.chart.plot.*org.jfree.chart.axis.*javax.swing.table.*// Classe que calcula os esforcos solicitantes por todo o comprimento do eixo class diagrama { static void tensoes (boolean escoamento, double fx1d,double fx2d,double fy1d, double fy2d,double fz1d,double fz2d,double a1d,double a2d,double b1d,double b2d, double c1d,double c2d,double tmaxd,double ld, double qn, double qm, double qf, double su, double r, double ciclos, double cs) { double local=0, somaFx, somaFy, somaFz, deltald, delta, dmax, d, p, Ktn, Ktf, Ktm, Ray, Raz; boolean concentrador; XYSeries normal =new XYSeries("Normal"); XYSeries Cortantey =new XYSeries("Cortante Y"); XYSeries Cortantez =new XYSeries("Cortante Z"); XYSeries momentoy =new XYSeries("Momento Y"); XYSeries momentoz =new XYSeries("Momento Z"); XYSeries momentot =new XYSeries("Momento Torçor"); somaFx =fx1d+fx2d; somaFy =fy1d+fy2d; somaFz =fz1d+fz2d; delta =ld/200; dmax=0; d=0; double Rby=0; double Rbz=0; Raz =(-fz1d*(ld -a1d) -fx1d*c1d -fz2d*(ld-a2d) -fx2d*c2d)/ld; Ray =(-fy1d*(ld -a1d) -fx1d*b1d -fy2d*(ld-a2d) -fx2d*b2d)/ld; for(deltald=0; deltald =ld; deltald=deltald+delta) { concentrador=false; double Normal =somaFx; if(deltald =a1d) Normal =Normal -fx1d; if(deltald =a2d) Normal =Normal -fx2d; double cortantey =1*(Ray); if(deltald =a1d) cortantey =cortantey -fy1d; if(deltald =a2d) cortantey =cortantey -fy2d; double cortantez =1*(Raz); if(deltald =a1d) 13 PMR2370 Elementos de Máquinas cortantez =cortantez -fz1d; if(deltald =a2d) cortantez =cortantez -fz2d; double My =1*(Raz)*deltald; if(deltald =a1d) My =My -fz1d*(deltald -a1d) -fx1d*c1d; if(deltald =a2d) My =My -fz2d*(deltald -a2d) -fx2d*c2d; double Mz =Ray*deltald; if(deltald =a1d) Mz =Mz +fy1d*(deltald -a1d) +fx1d*b1d; if(deltald =a2d) Mz =Mz +fy2d*(deltald -a2d) +fx2d*b2d; double Mt; if((deltald =a1d)&&(deltald =a2d)) Mt =fy1d*c1d-fz1d*b1d; else Mt=0; p =(deltald/ld)*100; janelainicial.porcentagem.setText("+p+"); if(((deltald =a1d)&&((deltalddelta) a1d)) ((deltald =a2d)&&((deltald+delta) a2d))) { concentrador=true; if(escoamento=false) d =fadiga.calculos(Normal,Mt,My,Mz,cortantey,cortantez,r,qf,qn,qm,su,tmaxd,ciclos,cs ); } else concentrador=false; if(escoamento=true) d =resolucao.resolve(r,concentrador,tmaxd, Normal, My, Mz, Mt, cortantey, cortantez); if((deltald =a1d)&&(deltald =a2d)) // verifica se esta na parte em que o eixo tem diametro maior d=d/1.1; if(d dmax) { dmax=d; local=deltald; } normal.add(deltald,Normal); Cortantey.add(deltald,cortantey); Cortantez.add(deltald,cortantez); momentoy.add(deltald,My); momentoz.add(deltald,Mz); momentot.add(deltald,Mt); Rby=cortantey; Rbz=cortantez; } 14 PMR2370 Elementos de Máquinas Reacoes.main(local,-somaFx, Ray, Raz, Rby, Rbz); janelainicial.porcentagem.setText("100%"); janelainicial.Diametro.setText("+dmax); /*Força Normal*/ XYDataset normalxydata =new XYSeriesCollection(normal); ((XYSeriesCollection)(normalxydata)).setAutoWidth(true); JFreeChart normalchart =ChartFactory.createXYLineChart (",L",Força",normalxydata, PlotOrientation.VERTICAL, true, //legenda true, //tooltips false //urls ); NumberAxis normalna =new NumberAxis(); normalna.setUpperBound(ld); normalna.setLowerBound(0); XYPlot normalplot =(XYPlot)normalchart.getPlot(); normalplot.setDomainAxis(normalna); ChartPanel normalcp =new ChartPanel(normalchart); /*Força CortanteZ*/ XYDataset cozxydata =new XYSeriesCollection(Cortantez); ((XYSeriesCollection)(cozxydata)).setAutoWidth(true); JFreeChart cozchart =ChartFactory.createXYLineChart (",L",Força",cozxydata, PlotOrientation.VERTICAL, true, //legenda true, //tooltips false //urls ); NumberAxis cozna =new NumberAxis(); cozna.setUpperBound(ld); cozna.setLowerBound(0); XYPlot cozplot =(XYPlot)cozchart.getPlot(); cozplot.setDomainAxis(cozna); ChartPanel cozcp =new ChartPanel(cozchart); /*Força CortanteY*/ XYDataset coyxydata =new XYSeriesCollection(Cortantey); ((XYSeriesCollection)(coyxydata)).setAutoWidth(true); JFreeChart coychart =ChartFactory.createXYLineChart (",L",Força",coyxydata, PlotOrientation.VERTICAL, true, //legenda true, //tooltips false //urls ); NumberAxis coyna =new NumberAxis(); coyna.setUpperBound(ld); 15 PMR2370 Elementos de Máquinas coyna.setLowerBound(0); XYPlot coyplot =(XYPlot)coychart.getPlot(); coyplot.setDomainAxis(coyna); ChartPanel coycp =new ChartPanel(coychart); /*MomentoY*/ XYDataset moyxydata =new XYSeriesCollection(momentoy); ((XYSeriesCollection)(moyxydata)).setAutoWidth(true); JFreeChart moychart =ChartFactory.createXYLineChart (",L",Força",moyxydata, PlotOrientation.VERTICAL, true, //legenda true, //tooltips false //urls ); NumberAxis moyna =new NumberAxis(); moyna.setUpperBound(ld); moyna.setLowerBound(0); XYPlot moyplot =(XYPlot)moychart.getPlot(); moyplot.setDomainAxis(moyna); ChartPanel moycp =new ChartPanel(moychart); /*MomentoZ*/ XYDataset mozxydata =new XYSeriesCollection(momentoz); ((XYSeriesCollection)(mozxydata)).setAutoWidth(true); JFreeChart mozchart =ChartFactory.createXYLineChart (",L",Força",mozxydata, PlotOrientation.VERTICAL, true, //legenda true, //tooltips false //urls ); NumberAxis mozna =new NumberAxis(); mozna.setUpperBound(ld); mozna.setLowerBound(0); XYPlot mozplot =(XYPlot)mozchart.getPlot(); mozplot.setDomainAxis(mozna); ChartPanel mozcp =new ChartPanel(mozchart); /*Momento Torçor*/ XYDataset motxydata =new XYSeriesCollection(momentot); ((XYSeriesCollection)(motxydata)).setAutoWidth(true); JFreeChart motchart =ChartFactory.createXYLineChart (",L",Força",motxydata, PlotOrientation.VERTICAL, true, //legenda true, //tooltips false //urls ); NumberAxis motna =new NumberAxis(); motna.setUpperBound(ld); motna.setLowerBound(0); XYPlot motplot =(XYPlot)motchart.getPlot(); 16 PMR2370 Elementos de Máquinas motplot.setDomainAxis(motna); ChartPanel motcp =new ChartPanel(motchart); /*-/ grafico.main(normalcp,"Força Normal",50,50); grafico.main(coycp,"Força Cortante Y",70,70); grafico.main(cozcp,"Força CortanteZ",90,90); grafico.main(moycp,"Momento Y",110,110); grafico.main(mozcp,"Momento Z",130,130); grafico.main(motcp,"Momento Torçor",150,150); } } ARQUIVO EIXO import java.io.*// Classes importadas para funcionamento do programa import java.lang.*import java.awt.*// Classe que cria a janela e delimita seu tamanho class eixo { public static void main(String [] args){ CloseableFrame j=new janelainicial(); // Criação da janela j.setBackground(null); // Cor da janela j.setBounds(100,100,590,460); // Dimensionamento j.setTitle ("Programa di faze eixo"); // Titulo j.setResizable(false); j.show(); // Mostra a janela } } ARQUIVO FADIGA import java.io.*//Pacotes necessarios para a funcionalidade do programa import java.lang.*import java.lang.Math.*// Classe que pega uma secao do eixo, e calcula ao seu redor as tensoes e verifica para que tamanho de eixo não ocorre falha por fadiga class fadiga { static double calculos(double N, double Mt, double My, double Mz, double Vy, double Vz, double r, double qf, double qn, double qm, double Su ,double Sy, double Ciclos, double Cs) { double d, Kff, Kfn, Kfm, sigm, siga, talmxy, talmxz, talaxy, talaxz, teta, I, sigmam, sigmaaeq, Sn, Cg, Sngraf, sigmaprovisorio, sigma1ap, sigma2ap, sigmamp; int h=1; Sn=sigmaprovisorio=talmxy=talaxy=talmxz=talaxz=sigma1ap=sigma2ap=sigm=sigmaaeq=si gmam=siga=sigmamp=0; double y=0; double z=0; Sngraf =Sn +1; for(d=0.001;Sngraf Sn;d=d+0.0001) { if(d =0.01) Cg=1; else Cg=0.9; Kff =1 +(69939*(r/d)*(r/d)*(r/d)*(r/d)*(r/d)*(r/d) 74847*(r/d)*(r/d)*(r/d)*(r/d)*(r/d) +31824*(r/d)*(r/d)*(r/d)*(r/d) 6864*(r/d)*(r/d)*(r/d) +801.41*(r/d)*(r/d) -51.897*(r/d) +3.1145 -1)*qf; 17 PMR2370 Elementos de Máquinas Kfn =1 +(37358*(r/d)*(r/d)*(r/d)*(r/d)*(r/d)*(r/d) 45798*(r/d)*(r/d)*(r/d)*(r/d)*(r/d) +22456*(r/d)*(r/d)*(r/d)*(r/d) 5605.2*(r/d)*(r/d)*(r/d) +751.96*(r/d)*(r/d) -53.865*(r/d) +3.1826 -1)*qn; Kfm =1 +(77160*(r/d)*(r/d)*(r/d)*(r/d)*(r/d)*(r/d) 80750*(r/d)*(r/d)*(r/d)*(r/d)*(r/d) +33422*(r/d)*(r/d)*(r/d)*(r/d) 6962.7*(r/d)*(r/d)*(r/d) +770.74*(r/d)*(r/d) -44.033*(r/d) +2.2003 -1)*qm; sigmaaeq=0; for(teta=0;teta 2*java.lang.Math.PI;teta=teta+java.lang.Math.PI/16) { z=(d/2)*Math.cos(teta); y=(d/2)*Math.sin(teta); I=(java.lang.Math.PI*d*d*d*d)/64; sigm =siga =talmxy talmxz talaxy talaxz ((4*N)/(java.lang.Math.PI*d*d))*Kfn; ((-1*Mz*y+My*z)/I)*Kff; (-1*(2*Mt*z)/I)*Kfm; ((2*Mt*y)/I)*Kfm; (Vy*((d*d/12)-(y*y/3))/I)*Kfm; (Vz*((d*d/12)-(z*z/3))/I)*Kfm; sigmamp =sigm/2+(Math.sqrt(sigm*sigm+4*(talmxy*talmxy+talmxz*talmxz))/2); sigma1ap =siga/2+(Math.sqrt(siga*siga+4*(talaxy*talaxy+talaxz*talaxz))/2); sigma2ap =siga/2(Math.sqrt(siga*siga+4*(talaxy*talaxy+talaxz*talaxz))/2); sigmaprovisorio =Math.sqrt((sigma1ap-sigma2ap)*(sigma1apsigma2ap)+sigma1ap*sigma1ap+sigma2ap*sigma2ap)/Math.sqrt(2); if((sigmaprovisorio sigmaaeq) h=1) { sigmaaeq=sigmaprovisorio; sigmam =sigmamp; } } Sn =(Su/3)*(((Cg*Cs)/(2))-0.9)*(Ciclos) +Su*(1.8 -(Cg*Cs)/2); if((sigmaaeq +sigmam) Sy) { sigmam =Sy -sigmaaeq; } Sngraf =(Su*sigmaaeq)/(Su-sigmam); h=0; } return(d); } } ARQUIVO CLOSEABLEFRAME import java.awt.*import java.awt.event.*// Classe para implementacao da possibilidade de fechar a janela aberta public class CloseableFrame extends Frame implements WindowListener { public CloseableFrame( ) { addWindowListener( this ); } public void windowClosing( WindowEvent event ) { System.exit( 0 ); } 18 PMR2370 Elementos de Máquinas public void windowClosed( WindowEvent event ) { } public void windowDeiconified( WindowEvent event ) { } public void windowIconified( WindowEvent event ) { } public void windowActivated( WindowEvent event ) { } public void windowDeactivated( WindowEvent event ) { } public void windowOpened( WindowEvent event ) { } } ARQUIVO JANELAINICIAL import java.io.*//Pacotes necessarios para a funcionalidade do programa import java.lang.*import java.awt.*import java.awt.event.*import javax.swing.*import java.applet.*import java.applet.Applet.*// Esta classe é o que define o conteudo da janela aberta class janelainicial extends CloseableFrame implements ActionListener, ItemListener { Button calcula; Checkbox a,b,c,d; CheckboxGroup escolhe, Ciclos; Image img; Graphics g; Label ciclos,cs, unidades, diametro,l1, forca1, forca2, fx1, fx2, fy1, fy2, fz1, fz2, a1, a2, b1, b2, c1, c2, tmax, l, r, qf, qn, qm, Su; TextField CICLOS, Cs, Qf, Qn, Qm, SU, R, Fx1, Fx2, Fy1, Fy2, Fz1, Fz2, A1, A2, B1, B2, C1, C2, Tmax, L; double csd, ciclosd, rd, fx1d, fx2d, fy1d, fy2d, fz1d, fz2d, a1d, a2d, b1d, b2d, c1d, c2d, tmaxd, ld, qfd, qmd, qnd, sud; static public Label porcentagem; static public TextField Diametro; janelainicial() { // Criação dos objetos dentro da janela setLayout(null); l1 =new Label ("Vamo faze eixooooo"); l1.setFont(new Font("Times New Roman",Font.BOLD, 16)); l1.setForeground(Color.blue); add(l1); l1.setBounds(20,30,400,20); unidades =new Label ("Todas as unidades devem estar em SI"); unidades.setFont(new Font("Times New Roman",Font.BOLD, 22)); unidades.setForeground(Color.red); add(unidades); 19 PMR2370 Elementos de Máquinas unidades.setBounds(10,350,400,50); forca1 =new Label ("Força 1"); forca1.setFont(new Font("Times New Roman",Font.BOLD, 14)); forca1.setForeground(Color.black); add(forca1); forca1.setBounds(20,60,80,20); forca2 =new Label ("Força 2"); forca2.setFont(new Font("Times New Roman",Font.BOLD, 14)); forca2.setForeground(Color.black); add(forca2); forca2.setBounds(20,140,80,20); fx1 =new Label ("Fx"); fx1.setFont(new Font("Times New Roman",Font.BOLD, 14)); fx1.setForeground(Color.black); add(fx1); fx1.setBounds(120,60,40,20); porcentagem =new Label ("0%"); porcentagem.setFont(new Font("Times New Roman",Font.BOLD, 20)); porcentagem.setForeground(Color.black); add(porcentagem); porcentagem.setBounds(510,400,65,20); fx2 =new Label ("Fx"); fx2.setFont(new Font("Times New Roman",Font.BOLD, 14)); fx2.setForeground(Color.black); add(fx2); fx2.setBounds(120,140,40,20); fy1 =new Label ("Fy"); fy1.setFont(new Font("Times New Roman",Font.BOLD, 14)); fy1.setForeground(Color.black); add(fy1); fy1.setBounds(120,80,40,20); fy2 =new Label ("Fy"); fy2.setFont(new Font("Times New Roman",Font.BOLD, 14)); fy2.setForeground(Color.black); add(fy2); fy2.setBounds(120,160,40,20); fz1 =new Label ("Fz"); fz1.setFont(new Font("Times New Roman",Font.BOLD, 14)); fz1.setForeground(Color.black); add(fz1); fz1.setBounds(120,100,40,20); fz2 =new Label ("Fz"); fz2.setFont(new Font("Times New Roman",Font.BOLD, 14)); fz2.setForeground(Color.black); add(fz2); fz2.setBounds(120,180,40,20); a1 =new Label ("a"); a1.setFont(new Font("Times New Roman",Font.BOLD, 14)); a1.setForeground(Color.black); 20 PMR2370 Elementos de Máquinas add(a1); a1.setBounds(220,60,30,20); a2 =new Label ("a"); a2.setFont(new Font("Times New Roman",Font.BOLD, 14)); a2.setForeground(Color.black); add(a2); a2.setBounds(220,140,30,20); b1 =new Label ("b"); b1.setFont(new Font("Times New Roman",Font.BOLD, 14)); b1.setForeground(Color.black); add(b1); b1.setBounds(220,80,30,20); b2 =new Label ("b"); b2.setFont(new Font("Times New Roman",Font.BOLD, 14)); b2.setForeground(Color.black); add(b2); b2.setBounds(220,160,30,20); c1 =new Label ("c"); c1.setFont(new Font("Times New Roman",Font.BOLD, 14)); c1.setForeground(Color.black); add(c1); c1.setBounds(220,100,30,20); diametro =new Label ("E o diametro deve ser"); diametro.setFont(new Font("Times New Roman",Font.BOLD, 14)); diametro.setForeground(Color.black); add(diametro); diametro.setBounds(30,410,150,20); c2 =new Label ("c"); c2.setFont(new Font("Times New Roman",Font.BOLD, 14)); c2.setForeground(Color.black); add(c2); c2.setBounds(220,180,30,20); tmax =new Label ("Tensão Máxima de escoamento"); tmax.setFont(new Font("Times New Roman",Font.BOLD, 14)); tmax.setForeground(Color.black); add(tmax); tmax.setBounds(20,220,230,20); Su =new Label ("Tensão Máxima de ruptura"); Su.setFont(new Font("Times New Roman",Font.BOLD, 14)); Su.setForeground(Color.black); add(Su); Su.setBounds(20,240,230,20); r =new Label ("Raio de arredondamento"); r.setFont(new Font("Times New Roman",Font.BOLD, 14)); r.setForeground(Color.black); add(r); r.setBounds(320,60,180,20); qf =new Label ("qf"); qf.setFont(new Font("Times New Roman",Font.BOLD, 14)); 21 PMR2370 Elementos de Máquinas qf.setForeground(Color.black); add(qf); qf.setBounds(470,80,30,20); qn =new Label ("qn"); qn.setFont(new Font("Times New Roman",Font.BOLD, 14)); qn.setForeground(Color.black); add(qn); qn.setBounds(470,100,30,20); qm =new Label ("qm"); qm.setFont(new Font("Times New Roman",Font.BOLD, 14)); qm.setForeground(Color.black); add(qm); qm.setBounds(470,120,30,20); cs =new Label ("Cs"); cs.setFont(new Font("Times New Roman",Font.BOLD, 14)); cs.setForeground(Color.black); add(cs); cs.setBounds(470,140,30,20); l =new Label ("Comprimento do Eixo"); l.setFont(new Font("Times New Roman",Font.BOLD, 14)); l.setForeground(Color.black); add(l); l.setBounds(20,280,170,20); ciclos =new Label ("Ciclos (potencia de 10)"); ciclos.setFont(new Font("Times New Roman",Font.BOLD, 14)); ciclos.setForeground(Color.black); add(ciclos); ciclos.setBounds(310,280,160,20); Fx1 =new TextField("); Fx1.setBounds(170,60,40,20); add(Fx1); Fy1 =new TextField("); Fy1.setBounds(170,80,40,20); add(Fy1); Fz1 =new TextField("); Fz1.setBounds(170,100,40,20); add(Fz1); A1 =new TextField("); A1.setBounds(260,60,40,20); add(A1); B1 =new TextField("); B1.setBounds(260,80,40,20); add(B1); C1 =new TextField("); C1.setBounds(260,100,40,20); add(C1); Fx2 =new TextField("); Fx2.setBounds(170,140,40,20); add(Fx2); 22 PMR2370 Elementos de Máquinas Fy2 =new TextField("); Fy2.setBounds(170,160,40,20); add(Fy2); Fz2 =new TextField("); Fz2.setBounds(170,180,40,20); add(Fz2); A2 =new TextField("); A2.setBounds(260,140,40,20); add(A2); B2 =new TextField("); B2.setBounds(260,160,40,20); add(B2); C2 =new TextField("); C2.setBounds(260,180,40,20); add(C2); R =new TextField("); R.setBounds(500,60,60,20); add(R); Qf =new TextField("); Qf.setBounds(500,80,60,20); add(Qf); Qn =new TextField("); Qn.setBounds(500,100,60,20); add(Qn); Qm =new TextField("); Qm.setBounds(500,120,60,20); add(Qm); Cs =new TextField("); Cs.setBounds(500,140,60,20); add(Cs); Tmax =new TextField("); Tmax.setBounds(250,220,90,20); add(Tmax); SU =new TextField("); SU.setBounds(250,240,90,20); add(SU); L =new TextField("); L.setBounds(200,280,60,20); add(L); CICLOS =new TextField(); CICLOS.setBounds(500,280,60,20); add(CICLOS); Diametro =new TextField(); Diametro.setBounds(200,410,90,20); add(Diametro); 23 PMR2370 Elementos de Máquinas calcula =new Button("Calcula o diametro ai rapá"); calcula.setBounds(70,325,220,20); calcula.addActionListener(this); add(calcula); escolhe =new CheckboxGroup(); a =new Checkbox("Fadiga"); b =new Checkbox("Escoamento"); a.setCheckboxGroup(escolhe); b.setCheckboxGroup(escolhe); a.setState(true); a.setBounds(430,240,100,20); b.setBounds(430,220,100,20); add(a); add(b); a.addItemListener(this); b.addItemListener(this); Ciclos =new CheckboxGroup(); c =new Checkbox(); c.setBounds(480,280,20,20); d =new Checkbox(" Vida Infinita"); d.setBounds(480,300,90,20); d.setState(true); c.setCheckboxGroup(Ciclos); d.setCheckboxGroup(Ciclos); add(c); add(d); } public void paint(Graphics g) { img =Toolkit.getDefaultToolkit().getImage("fadiga.jpg"); if (img !null) { Dimension apl =getSize(); int w =img.getWidth(this), h =img.getHeight(this); g.drawImage(img, (apl.width -w)/2, (apl.height -h)/2, this); } super.paint(g); } public void itemStateChanged (ItemEvent e) { if(e.getSource()=b) { Qf.setEditable(false); Qn.setEditable(false); Qm.setEditable(false); SU.setEditable(false); Cs.setEditable(false); CICLOS.setEditable(false); c.setEnabled(false); d.setEnabled(false); } else { Qf.setEditable(true); 24 PMR2370 Elementos de Máquinas Qn.setEditable(true); Qm.setEditable(true); SU.setEditable(true); Cs.setEditable(true); CICLOS.setEditable(true); c.setEnabled(true); d.setEnabled(true); } } public void actionPerformed (ActionEvent e) { // Método que verifica que botão foi apertado e chama a execução dos calculos if(e.getSource()=calcula){ // if(escolhe.getSelectedCheckbox()=b) { if((Fx1.getText().length() 0)&&(Fx2.getText().length() 0)&&(Fy1.getText().length( ) 0)&& (Fy2.getText().length() 0)&&(Fz1.getText().length() 0)&&(Fz2.getText().length() 0 )&& (A1.getText().length() 0)&&(A2.getText().length() 0)&&(B1.getText().length() 0)&& (B2.getText().length() 0)&&(C1.getText().length() 0)&&(C2.getText().length() 0)&& (L.getText().length() 0)&&(Tmax.getText().length() 0)&&(R.getText().length() 0)) { fx1d=Double.parseDouble(Fx1.getText()); fx2d=Double.parseDouble(Fx2.getText()); fy1d=Double.parseDouble(Fy1.getText()); fy2d=Double.parseDouble(Fy2.getText()); fz1d=Double.parseDouble(Fz1.getText()); fz2d=Double.parseDouble(Fz2.getText()); a1d=Double.parseDouble(A1.getText()); a2d=Double.parseDouble(A2.getText()); b1d=Double.parseDouble(B1.getText()); b2d=Double.parseDouble(B2.getText()); c1d=Double.parseDouble(C1.getText()); c2d=Double.parseDouble(C2.getText()); rd=Double.parseDouble(R.getText()); ld=Double.parseDouble(L.getText()); tmaxd=Double.parseDouble(Tmax.getText()); unidades.setText("Todas as unidades devem estar em SI"); unidades.setForeground(Color.red); diagrama.tensoes(true,fx1d,fx2d,fy1d,fy2d,fz1d,fz2d,a1d,a2d,b1d,b2d,c1d,c2d,tmaxd ,ld,0,0,0,0,rd,0,0); } else { unidades.setText("Favor completar todos os parametros"); unidades.setForeground(Color.blue); } } else { if((Ciclos.getSelectedCheckbox()=c&&CICLOS.getText().length() 0) (Ciclos.getSel ectedCheckbox()=d)) 25 PMR2370 Elementos de Máquinas if((Fx1.getText().length() 0)&&(Fx2.getText().length() 0)&&(Fy1.getText().length( ) 0)&& (Fy2.getText().length() 0)&&(Fz1.getText().length() 0)&&(Fz2.getText().length() 0 )&& (A1.getText().length() 0)&&(A2.getText().length() 0)&&(B1.getText().length() 0)&& (B2.getText().length() 0)&&(C1.getText().length() 0)&&(C2.getText().length() 0)&& (L.getText().length() 0)&&(Tmax.getText().length() 0)&&(SU.getText().length() 0) &&(Qm.getText().length() 0)&&(Qf.getText().length() 0)&&(Qn.getText().length() 0) &&(R.getText().length() 0)) { fx1d=Double.parseDouble(Fx1.getText()); fx2d=Double.parseDouble(Fx2.getText()); fy1d=Double.parseDouble(Fy1.getText()); fy2d=Double.parseDouble(Fy2.getText()); fz1d=Double.parseDouble(Fz1.getText()); fz2d=Double.parseDouble(Fz2.getText()); a1d=Double.parseDouble(A1.getText()); a2d=Double.parseDouble(A2.getText()); b1d=Double.parseDouble(B1.getText()); b2d=Double.parseDouble(B2.getText()); c1d=Double.parseDouble(C1.getText()); c2d=Double.parseDouble(C2.getText()); rd=Double.parseDouble(R.getText()); ld=Double.parseDouble(L.getText()); tmaxd=Double.parseDouble(Tmax.getText()); sud=Double.parseDouble(SU.getText()); qnd=Double.parseDouble(Qn.getText()); qmd=Double.parseDouble(Qm.getText()); qfd=Double.parseDouble(Qf.getText()); csd=Double.parseDouble(Cs.getText()); tmaxd=Double.parseDouble(Tmax.getText()); unidades.setText("Todas as unidades devem estar em SI"); unidades.setForeground(Color.red); if(Ciclos.getSelectedCheckbox()=c) ciclosd=Double.parseDouble(CICLOS.getText()); else ciclosd=6; diagrama.tensoes(false,fx1d,fx2d,fy1d,fy2d,fz1d,fz2d,a1d,a2d,b1d,b2d,c1d,c2d,tmax d,ld,qnd,qmd,qfd,sud,rd, ciclosd, csd); } else { unidades.setText("Favor completar todos os parametros"); unidades.setForeground(Color.blue); } else { unidades.setText("Favor completar todos os parametros"); unidades.setForeground(Color.blue); } } } 26 PMR2370 Elementos de Máquinas }//actionPerformed }//classe Janelainicial ARQUIVO REACOES import java.io.*//Pacotes necessarios para a funcionalidade do programa import java.lang.*import java.awt.*import java.awt.event.*import javax.swing.*import java.applet.*import java.applet.Applet.*import java.text.NumberFormat; // Classe que cria uma janela contendo as reacoes nos mancais e o ponto de falha class Reacoes extends Frame{ public Reacoes(double local,double R1x, double R1y, double R1z, double R2y, double R2z) { setTitle("Reações nos mancais"); setBounds(20,20,260,170); setBackground(new Color(217,217,217)); addWindowListener(new CloseAndExit()); Label r1x, r1y, r1z, r2y, r2z, fim, Local; r1x =new Label ("Reação X no mancal 1 =R1x); r1x.setFont(new Font("Times New Roman",Font.BOLD, 16)); add(r1x); r1x.setBounds(20,30,240,20); r1y =new Label ("Reação Y no mancal 1 =R1y); r1y.setFont(new Font("Times New Roman",Font.BOLD, 16)); add(r1y); r1y.setBounds(20,50,240,20); r1z =new Label ("Reação Z no mancal 1 =R1z); r1z.setFont(new Font("Times New Roman",Font.BOLD, 16)); add(r1z); r1z.setBounds(20,70,240,20); r2y =new Label ("Reação Y no mancal 2 =R2y); r2y.setFont(new Font("Times New Roman",Font.BOLD, 16)); add(r2y); r2y.setBounds(20,90,240,20); r2z =new Label ("Reação Z no mancal 2 =R2z); r2z.setFont(new Font("Times New Roman",Font.BOLD, 16)); add(r2z); r2z.setBounds(20,110,240,20); NumberFormat nf =NumberFormat.getInstance(); nf.setMaximumFractionDigits(2); String s =nf.format(local); Local =new Label ("A ponto crítico é em "s+"metros"); Local.setFont(new Font("Times New Roman",Font.BOLD, 16)); add(Local); Local.setBounds(20,130,240,20); fim =new Label("); add(fim); fim.setBounds(20,150,100,20); 27 PMR2370 Elementos de Máquinas } public static void main (double local,double R1x, double R1y, double R1z, double R2y, double R2z) { new Reacoes(local,R1x, R1y, R1z, R2y, R2z).show(); } } 28
Baixar Arquivo
1714 visitas | 256 downloads
Relatório Programa eixo maker com fadiga.pdf
Exercício proposto pelo professor Kawano em 2004 - programa que calcula diâmetro de eixo de acordo com o torque aplicado
fadiga.pdf
FATOS, MITOS E FALÁCIAS SOBRE OS
MODELOS EXPERIMENTAIS DE FADIGA
relatorio estagio supervisionado
relatorio
univasf topografia
relatório de campo
movimento circular
relatório movimento circular
Relatório Arhte equipe maieutica 2009.2
Relatório da Equipe Maiêutica 2009.2
Trabalho Sobre Reciclagem de Plásticos
relatório sobre recilagem de plásticos
20061213 - 2228.doc
Relatório de projetos de maquinas, do mini-torno CNC 2006
Estudo de caso do hipermecado extra
É um relatorio interdisciplinar, parecido com TCC.
lentes
relatório lentes
relatorio pcm.doc
Primeiro Relatório de Princípio da Ciência dos Materiais - PCM
Relatório
Relatório da primeira etapa do projeto arhte UNIFACS 2009.2 EQUIPE NOTOXY
Relatório - Curva ABC.doc
Relatório Curva ABC
Análise de Fourier
Relatório sobre Série de Fourier
determinaçao do ponto de fusao de uma substancia
relatorio de inorganica exp.
APOSTILA BIOQUÍMICA CELULAR
APOSTILA CONTENDO ROTEIRO PARA AULAS PRÁTICAS E MODELOS DE RELATÓRIOS
Relatório P.I. 3º Ano - Industrialização de despolpamento do Açai
Relatório referente a industrialização do Açai na indústria "Delicias do Pará" apresentado como parte da 2ª avaliação do curso de Engenharia de Controle e Automação
Perda de Carga em singularidades e Medidores de Vazão
Relatório 2 de Mec flu
difração e interferência
relatório difração e interferência
Titulação potenciométrica do AAS
Relatório Instrumental I
Análise instrumental
relatórios de análise instrumental
Validação de Processo
Relatório de Validação de Processo
Computador DNA
Relatório do que seria um computador DNA
Relatório de vazão com tubo de Pitot
Relatório de vazão com tubo de Pitot