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

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

Comentários


  1. (!)elias mikhail - em 13/07/2010 -

    é uma fonte e tanto devez em quando bebo

  2. (!)Adaildes - em 02/07/2010 -

    muito bom vou ler

  3. (!)silvia - em 24/02/2010 -

    ola tem 17 anos e esto estudando o 3 ano do ensino fundamenta
    é esto cursando o 2 ano de ingles.mais tambem queri entra pra marinha mais esto sem infomação alguma gostaria de saber como faço para entra en contato para mais informações assim so do sexus feminino.

  4. (!)francivan daniel da silva pimentel - em 15/11/2009 -

    gostei muito!!!

Compartilhe

2590 visitas | 298 downloads

Avaliações

Erick
02/08/2006

Conteúdo relacionado