728x90
300x250

[Mechanics(역학)] - Mohr's Circle(모어원), 면적에 관한 식 / 실습하기

 

단면 모멘트, Mohr's Circle(모어원)에 대해서 컴퓨터로 실습하는 방법에 대해서 소개하겠다.


 

이러한 식은 처음 접하게 되면, 막상 어려워 보이는 것들이다.

2 + 3 = 5, 1 + 2 = 3 이 정도의 계산은 쉬우나 수식 형태로 표기되면 어려워진다고 볼 수 있다.

그래서 좀 더 재료역학을 접할 겸 "기계 요소설계"에 적용되는 복잡한 수식까지 알기 쉽게 접근하는 공부를 소개하려고 한다.

자연 공부(Study of Natural Science)에 더 친숙해졌으면 하는 바람이다.

 


1. 컴퓨터 소프트웨어

 

운영체제: 기호에 따라서 사용하기 바란다. 맥OS, 마이크로소프트 윈도우, 리눅스, 유닉스, 안드로이드(리눅스 계열)
소프트웨어: CAD 소프트웨어, 이클립스 프로그램(선택), 스프레드시트 프로그램(필수)
기기: 기호에 따라서 편하게 사용하면 된다.
(노트북<랩톱>을 좋아하면, 사용해도 되고, 타블릿 계열에 익숙하면 익숙한 데로 사용하면 된다. 컴퓨터를 좋아하면 컴퓨터 사용해도 된다.)

 


2. 수동 계산 방법(공학용 계산기에 의해서 계산하기)

= 공학용 계산기 + 공책이 있다.
한계점: 계산하려면, 수치를 한참 적어야 한다. 수치 하나가 오류나면 처음부터 다시 해야 한다.
과거에는 전자계산기(컴퓨터)의 발전이 있기 전에는 매우 힘들게 계산해야 했었다.

 


3. Mohr's Circle(모어원)

 

[사전의 설명]
Christian Otto Mohr의 이름을 따서 명명한 Mohr의 원은 Cauchy 응력 텐서의 변형 법칙을 2 차원 그래픽으로 표현한 것이다.
("도해적인"이라는 단어는 그래픽이라는 표기를 말함.)
연속체로 가정 된 재료 본체에 대한 응력 해석을 수행 한 후 특정 재료 점에서의 Cauchy 응력 텐서의 구성 요소는 좌표계와 관련하여 알려져 있다. 모어원은 회전 된 좌표계에 작용하는 응력 성분, 즉 그 점을 통과하는 다르게 배향 된 평면에 작용하는 응력 성분을 그래픽으로 결정하는데 사용된다.

횡좌표 
및 세로 좌표 은 회전 좌표계에서 작용하는 수직 응력과 전단 응력의 크기이다.
다시 말해, 원은 모든 방향에서 개별 평면의 응력 상태를 나타내는 점의 궤적이며 축이 응력 요소의 주 축을 나타낸다.

Karl Culmann은 구부리는 동안 수평 보의 세로 및 수직 응력을 고려하면서 응력에 대한 그래픽 표현을 처음으로 고안했다.
모어 (Mohr)의 공헌은 2 차원 및 3 차원 응력에 대한이 표현의 사용을 확장 시켰으며 응력 원을 기반으로 한 실패 기준을 개발했다.

어떤 지점에서 스트레스 상태의 표현을위한 대안적인 그래픽 방법은 Lamé의 스트레스 타원체와 Cauchy의 스트레스 이차 곡선을 포함한다.
모어 원은 변형률 및 관성 모멘트 텐서를 포함하여 대칭 2x2 텐서 행렬에 적용 할 수 있다.



그림 1. Mohr's circles for a three-dimensional state of stress (모어원에 대한 3차원 상태의 응력)

 

현재는 "텐서(Tensor)"까지는 이해할 필요는 전혀 없다.
추가적인 공부를 하고자 했을 때, 텐서 등에 대해서 공부하면 되는 부분이다. (심화 공부)

알기 쉽게 "텐서(Tensor)"에 대해서 소개하면, 3차원에 관한 주제이다. 기하(Geometrical)를 이야기하고 있다.


도도는 모어 원을 간단한 식의 형태에서만 소개하려고 한다.

복잡한 식이 왜 만들어졌는지를 생각하고 공부하면 도움이 될 것으로 보인다.

 


3-1. 2차원(Two Dimension) 모어원을 기반으로 실습하기

 

다음은 2차원 모어원에 대해서 소개하겠다.

 

 

 

그림 2. 모어원의 수학적인 그래피칼 표기의 예 - 도도(Dodo)

 

그림 2는 모어원을 수학적인 그래피칼(Graphical) 형태로 표기한 것이다.

 

(i)

 

일치하는 식: 법선응력(Normal Stress: ),

 

(ii)

 

일치하는 식: 전단응력(Shearing Stress: )

 

(iii)

 

 

 

일치하는 식: 법선응력(Normal Stress: )에서 를 대입하였음.

 

 

 

 

(iv)

 

일치하는 식: 전단응력(Shearing Stress: )에서 를 대입하였음.

 

법선응력(Normal Stress), 전단응력(Shearing Stress)에 대해서는 추가적으로 소개하겠음.

 


3-2. Windows 기반에서의 실습

 

아래의 영상은 Windows 기반에서의 모어원(Mohr's Circle) 실습이다.

 

 

영상 1. 모어원의 예(Microsoft Office for Excel) - 도도(Dodo)

 

 

영상 2. 모어원의 예(LibreOffice Calc) - 도도(Dodo)

 

 

영상 3. 모어원의 예(도면으로 작성하기 - AutoCAD) - 도도(Dodo)

 

 

영상 4. 모어원의 예(도면으로 작성하기 - LibreCAD) - 도도(Dodo)


[첨부(Attachment)]
mohrCircle.7z


[GNU/GPL v3 License를 적용받는다.]

 

 


3-2. Linux(리눅스) 기반에서의 실습

 

리눅스 기반에서 모어원(Mohr's Circle)을 제도하는 방법에 대해서 소개하겠다.

 

 

영상 5. 모어원 리눅스에서 시연하기의 예 - 도도(Dodo)

 

아래의 영상은 Linux(리눅스) 기반에서의 모어원(Mohr's Circle) 실습이다.


[첨부(Attachment)]

linux_libreCAD.dxf.zip

 

[GNU/GPL v3 License를 적용받는다.]

 


4. 프로젝트 참여

 

LibreCAD 등의 프로젝트에 참여하려면 아래의 링크를 클릭하기 바란다.

https://github.com/LibreCAD/LibreCAD/tree/2.1.3

 


5. 맺음글(Conclusion)

 

"Mohr's Circle(모어원), 면적에 관한 식 / 실습하기"에 대해서 살펴보았다.

 


6. 참고자료(Reference)

 

1. Mohr's circle - wikipedia, Last Modified 2018-09-23 06:41 (UTC)., Accessed by 2018-09-30, https://en.wikipedia.org/wiki/Mohr's circle

2. GitHub - LibreCAD/LibreCAD at 2.1.3, Last Modified, Accessed by 2018-10-22, https://github.com/LibreCAD/LibreCAD/tree/2.1.3

반응형
728x90
300x250

[Mechanics(역학)] 훅의 법칙, 탄성계수(Hook's law, the modulus of elasticity)


이번에 소개할 것은 훅의 법칙과 탄성계수에 대한 것이다.


1678년 영국의 물리학자 Robert Hooke은 아래와 같이 생긴 사람이다.

실제 로버트 훅의 초상화가 남아있지 않다고 한다.

로버트 훅은 많은 분야에서 활동하였는데, 물리학, 화학, 천문학, 광학 등 많은 분야에서 활동하셨다.

더불어 박물학자로 활동하셨으며 과학자로 활동하셨던 분이다.

 

 

그림 1-1. https://ko.wikipedia.org/wiki/로버트 훅

 


1. 훅의 법칙(Hooke's Law)

 

훅 법칙(영어: Hooke’s law)은 용수철과 같이 탄성이 있는 물체가 외력에 의해 늘어나거나 줄어드는 등 변형되었을 때 자신의 원래 모습으로 돌아오려고 저항하는 복원력의 크기와 변형의 정도의 관계를 나타내는 물리 법칙이다.

 

 

(K는 상수)

 

이 식이 기계 역학에서도 사용되고 있다.

 

(E는 비례상수)

 


2. 탄성계수(Modulus of elasticity)

 

앞서 소개한 훅의 법칙에서 K는 상수라고 표현하였고 E는 비례상수라고 표현하였다.

E라는 탄성계수는 영국의 토마스 영(Thomas young)에 의해서 만들어진 식이다.

 

https://ko.wikipedia.org/wiki/토머스 영

 

토마스 영은 1773년 6월 13일에 출생하여, 1829년 5월 10일에 돌아가셨다.

이 분의 활동 분야는 꽤 많은 것으로 알려져 있는데, 의사, 물리, 생리, 언어를 다루셨다고 한다.

 

박학다식과 천재성이 있다고 한다.

 


2-1. 세로탄성계수

 

 

이렇게 표현된다.

 

이걸 흔히 세로탄성계수라고도 부른다.

물체에서 일어나는 변형과 압력 사이의 관계를 나타내는 탄성 계수이다

기계(Mechanics)에서는 압력보다는 응력을 다루고 있다.

 


2-2. 세로탄성계수의 변형량

 

 

(변형량: , 응력(수직): , 힘:, 면적: , 탄성계수: , 길이: )

 

위의 식을 정리하면 아래처럼 표현할 수 있다.

 

 

 

물리에서의 면적 A는 달라질 수가 있겠으나,

기계(Mechanics)에서의 면적 A는  로 계산한다.

 


3. 가로 탄성계수(층밀리기 탄성계수 또는 가로 탄성계수, 전단탄성계수, 강성계수라는 용어도 같은 의미)

 

전단 탄성 계수(Shear modulus of elasticity) 또는 전단 탄성 계수는 재료과학 또는 고체역학에서 응력(전단 응력, τ }과 변형도(전단 변형도, γ)의 비로 정의되는 재료의 특성을 나타내는 값이다.

 

 

 

전단탄성계수와 연결해서 보면 도움되는 것은 선형 탄성계수라고 불리는 "탄성계수 관계식 G"를 보면 도움이 된다.

 


4. 체적탄성계수

 

크게 이 식은 앞서 세로탄성계수라고 불리는 영스 모듈러스를 참고하는 것도 도움이 된다.


5. 탄성 계수를 알면 무엇을 할 수 있는가?

 

재료를 결정할 수 있다.

참고자료 4를 잘 읽어보면 도움이 될 것이다.

 

 

 


6. 참고자료

 

1. 로버트 훅, Wikipedia, Last Modified 2018-07-22 09:11, Accessed by 2018-08-06 https://ko.wikipedia.org/wiki/%EB%A1%9C%EB%B2%84%ED%8A%B8_%ED%9B%85#/media/File:13_Portrait_of_Robert_Hooke.JPG.

2. 훅 법칙, Wikipedia, Last Modified 2018 06-03 16:50, Accessed by 2018-08-06, https://ko.wikipedia.org/wiki/훅 법칙

3. 토마스 영, Wikipedia, Last Modfiied 2018-05-17 17:18, Accessed by 2018-08-06, https://ko.wikipedia.org/wiki/토머스 영

4. Modulus of Elasticity – Young Modulus for some Common Materials, Bestech Australia., Last Modified , Accessed by 2018-08-06, https://www.bestech.com.au/modulus-of-elasticity/

반응형
728x90
300x250
[Mechanics(역학)] 체적변형률(Volumetric Strain, Bulk Strain)

 

이 글은 체적변형률에 관한 것입니다.
일반 물리하고 흡사하거나 비슷할 수도 있습니다.

 


1. 물체

 

 

그림 1-1. 어떤 물체, 도도(Dodo)

 

그림 1은 어떤 물체이다.

 

힘을 예를 들어서 위의 방향, 옆 방향, 오른쪽 방향으로 준다고 하자.

각각을 X, Y, Z라고 둔다.

 

아래의 그림은 각각의 축 단위로 변형이 일어날 수 있는 범위를 작성한 것이다.

그림 1-2. X, Y, Z축에 대한 변형, 도도(Dodo)

 


2. 체적 변형률

 

a, b, c의 변을 가정하자.

그리고 각 면에 대해서 수직하중을 라고 하자.

 

각 수직하중이 x, y, z축의 각 방향에 각각  의 변형률을 일으키고,
체적이 만큼 변화하였다고 하자.

 

그림 2-1. 변의 관계 (a, b, c)

 

그림 2-1을 변형률에 대한 관계로 살펴보면 다음과 같이 표현할 수 있다.

 

그림 2-2. 변형률 관계

 

[첨부(Attachment)]

physics_object.7z

 

이해가 안 된다면, 아래의 영상을 시청해보도록 하자. 

아래의 영상은 물체의 변형을 표현하기 위해 작성되었다.
위의 물체를 보면 알겠지만, 옆면에 예를 들어서 야구공을 던졌을 때도 일어날 수도 있다.
예) 충격으로 인한 변형 등.

그러나 지금 소개하는 체적변형률은 체적에 관한 변형률이다. 충격에 대한 것이 아니다.
여기에서는 체적에 관한 변형을 소개하고 있다. 이 영상의 한계점은 X, Y, Z좌표(3축)로 자유롭게 표현하지 못하고 있다.
1축(Y) 기준으로 표현되고 있다.

 

 

영상2-1. 변형의 현상 시연(Pad), 도도(Dodo)

 

 


2-1. 식 - 증명하기

 

a, b, c의 변을 가정하자.

그리고 각 면에 대해서 수직하중을 라고 하자.

 

각 수직하중이 x, y, z축의 각 방향에 각각  의 변형률을 일으키고,
체적이 만큼 변화하였다고 하자.

 

 

 

 

이것을 정리하면 아래의 식을 얻어낼 수 있다.

 

 

 

변형률에 대한 공식은 다음과 같다.

 

 

-> 길이에 대한 변형률을 구하는 것이 아니므로 l을 V로 표현하였다.

 

 

체적에 관한 변형률 식을 수립하면 다음과 같이 정의될 수 있다.

 

 

 


2-2. 이 동일한 값으로 변형할 때

 

이 된다.

 


2-3. 이 다른 값으로 변형할 때


 

각각의 변형률을 구해야 한다.

 

 

반응형
728x90
300x250

[Mechanics] Normal and Shear Stress and Strain(수직응력, 전단응력 그리고 변형률)

 

Hello, My name is Dodo.

헬로, 마이 네임이스 도도.

안녕하세요. 내 이름은 도도이다.

This article has explain to write a Stress and Strain.

디스 아티클 헤스 이스플레인 투 롸이트 어 스트레스 엔 스트레인

이 글은 응력과 변형률에 대해서 설명하기 위해 작성되었다.

 


1. Stress(응력)

 

응력 또는 변형력(變形力, 영어: stress)은 역학에서 단위면적당 작용하는 힘을 뜻한다. 응력(應力)이라고도 한다.
오귀스탱 루이 코시가 1822년 처음 고안했다.


Stress has type of two and "Normal, Shear".

1-1. Normal(Sigma, ): 수직응력(normal) 또는 법선응력이라고 부른다.

 

 

 

그림 1-1-1. Tensile Stress(인장 응력), Compressive(압축 응력)

 

 

 

 

 

1-2. Shearing Stress (Tau, ): Shear: 전단응력(Shearing Stress) 또는 접선응력(tangential Stress)라고 부른다.

 

 

그림 1-2-1. Shearing Stress(전단 응력)

 

 

[첨부(Attachment)] 

stress.7z

 

* 단순 응력(Simple stress): 수직 응력과 전단응력이 각각 작용되는 응력

예) 수직 응력만 작용했다. - 단순응력

예) 전단 응력만 작용했다. - 단순응력

 

* 조합응력(combinded Stress): 수직 응력, 전단응력 두 가지 이상 혼합 작용

예) 수직 응력 + 전단응력

예) 수직 응력 + 수직응력

예) 전단 응력 + 수직응력

예) 전단 응력 + 전단응력

* 굽힘응력(bending stress): 굽힘하중이 작용을 받는 물체의 횡단면에 발생되는 응력

* 비틀림응력(torsoional Stress): 비틀림하중이 작용을 받는 물체의 횡단면에 발생되는 응력

 


2. Strain(변형률)

 

변형도(strain) 또는 변형률은 응력으로 인해 발생하는 재료의 기하학적 변형을 나타낸다. 즉, 변형도는 형태나 크기의 변형을 의미한다.

 

 

그림 2-1. 가로 변형률

그림 2-2. 세로 변형률

 

(2-1) 가로 변형률

 

(입실론): 가로 변형률

l'(length prime): 나중길이

l(length) : 처음길이

(델타): l' - l = 나중길이 - 처음 길이

 

(2-2) 세로 변형률 

 

 

[첨부(Attachment)]

strain.7z

 


3. 참고자료(Reference)

 

[1] 변형력, Last Modified 10-29-2016 11:20(UTC+09), Accessed by 2018-07-30, https://ko.wikipedia.org/wiki/변형력

[2] 벤딩, Last Modified 04-28-2018 16:56(UTC), Accessed by 2018-07-30, https://en.wikipedia.org/wiki/Bending

[3] 토션(비틀림), Last Modified 07-20-2018 06:39(UTC), Accessed by 2018-07-30, https://en.wikipedia.org/wiki/Torsion_(mechanics)

[4] 변형도, Last Modified 03-10-2013(UTC+09), Accessed by 2018-07-30, https://ko.wikipedia.org/wiki/변형도

반응형
728x90
300x250

[Mechanics(역학)] Von Mises Stress (폰 미세스 응력)

 

CFD, FEM 프로그램에서 사용되는 폰 미세스 응력에 대해서 소개한다.

 


1. Von Mises (폰 미세스)

 

폰 미세스 응력은 폰 미세스라는 과학자가 만든 식이다.

 


그림 1
-1) 리차드 폰 미세스(사망: 1953년 7월 14일)

 

리차드 본 미세스는 1953년에 사망 하였다.

본 미세스의 식을 소개하겠다.

 


2. 폰 미세스 응력 소개

 

 

 


ref: http://en.wikipedia.org/wiki/File:Yield_surfaces.svg

von Mises 응력은 등방성 및 연성 금속이 복잡한 적재 조건에 노출 될 때 항복할지 여부를 결정하는 데 종종 사용된다.
이것은 von Mises 응력을 계산하고 von Mises 항복 기준을 구성하는 재료의 항복 응력과 비교함으로써 수행된다.

 

목적은 정상 및 전단 응력의 혼합에 관계없이 복잡한 3-D 하중 조건에서 작동하는 연성 금속에 대한 수율 기준을 개발하는 것이다.

 

von Mises 스트레스는 복잡한 응력 상태를 금속의 항복 강도와 비교되는 단일 스칼라 수로 끓여서 수행한다.

 

또한 단일 축력 테스트로 결정된 단일 스칼라 수치 (가장 쉬운 방법이기 때문에).

 

이것은 F = ma와 같은 정확한 과학이 아니라는 점에 유의해야 한다.

 

그것은 내재적 오차와 편차가 있는 경험적 과정이다.

 

사실, 금속은 폰 미세스 (Monises) 수율 기준에 따라 산출되어야한다는 단호하고 빠른 규칙이 없다.

 

(폰 미세스 응력)그것은 우연의 일치이다.

 

그럼에도 불구하고, 그것은 매우 잘 작동하고 처음으로 제안 된 후 한 세기 만에 선택의 방법으로 남아 있다.

 


1-2. 역사(History)

von Mises 스트레스에 대한 정의 방정식은 1904년 Huber에 의해 처음 제안되었지만, 폰 미세스가 1913 년에 다시 제안 할 때까지 거의 관심을 받지 못했다.

 

그러나 Huber와 von Mises의 정의는 수학 1924년 Hencky가 실제적으로 편차가있는 변형 에너지와 관련이 있다는 것을 인식 할 때까지 물리적인 해석이

없는 등식이었다.

1931년에 Taylor와 Quinney는 구리, 알루미늄 및 연강에 대한 시험 결과를 발표했는데, von Mises 응력은 최대 전단 응력 기준보다 금속 항복점의 시작을

더 정확하게 예측할 수 있음을 보여 주었다. 1864 년에 Tresca 그리고 지금까지 항복하는 금속의 가장 좋은 예언자였다.

 

오늘날, 폰 미세스 스트레스는 후버의 발전에 대한 공헌으로 후버 - 미세스 스트레스라고도 한다.
Mises 효과적인 스트레스와 단순히 효과적인 스트레스라고도 한다.


1-3. 기술적인 배경(Technical Background)


von Mises 응력에 대한 완전한 이해를 위해서는
응력과 변형 tensors, Hooke의 법칙변형 에너지 밀도의 수압편향 요소에 대한 이해가 필요하다.

정수 및 편차 응력과 변형률은 이미 검토되었습니다. 그리고 Hooke의 법칙은 이미 여기와 여기에서 다루어졌지만이 페이지에서도 자세히 논의 할 필요가 있다.

변형 에너지 밀도도 여기서 소개 할 것이다.

 


1-4. Von Mises Stress (폰 미세스 스트레스)

 

 

훅크의 법칙을 불러오면(훅스 로를 적용하면)

 

 

1번 식에 대입하면,

 

 

그래서 변형률 에너지 밀도의 일탈 부분은 편차 스트레스의 이중 내적과 직접 관련이 있다.

키네틱 에너지와의 유사성을 주목해라.

 

 

(식이 많아서 까먹거나 못 외우겠다면, 일반 물리책이나 참고 할 수 있는 유사한 책을 참고해라. )

 

스프링(Spring's)의 내부 에너지,  , 전력(Electrical Power), 그리고 다른 어떤 형태도 생각 할 수 있다.

마침내 약 20 % 낮지만 von Mises 스트레스에 비례하는 것으로 판명되는 등가 또는 유효 스트레스를 도입할 때이다.

= It is finally time to introduce an equivalent or effective stress that will turn out to be proportional to the von Mises stress, though about 20% low.

 

이 스트레스 값을 나타 내기 위해 대표적인 스트레스에 기호를 사용하십시오. 그리고 그것은 스칼라 스트레스 값이지 텐서가 아니다!

The defining equation for is

 


방정식의 형식은 위의 스칼라와 등가가되도록 의도적으로 선택된다. 그것들을 서로 같게 설정하면 (왜냐하면 둘 다 W '와 같기 때문이다.)

 

 

분명히 는 실제 3-D 응력 텐서와 동일한 편향 변형 에너지를주는 스칼라 응력 값을 의미한다. 양쪽에서 4G를 취소하면

 

 

마지막 단계는 단순한 편리 성 중 하나이다. 단축 운동의 가장 간단한 직선 운동의 사례가 동기이다.

그것을 보려면, 이 경우 를 계산해라. 일축 장력에 대한 응력 상태는

 

수압 응력(hydrostatic stress / 찾아보기)은 이며, 편차 응력 텐서(Deviatoric stress tensor)는

 

 

그래서 는 과 같습니다. 따라서

 

 

그리고 거기에는 좌절감이 있다.

단축 인장에 대한 대표 응력은 단축 인장 응력 σ와 같지 않고 그 대신에 약 82%이다.

이것은 대단히 불편하지만 해결 방법은 간단하다. 축 응력이 단축 인장 응력과 같아 질 때까지 대표 응력의 크기를 간단히 조정하라.

 

이것은 단순히 를 곱하면 된다.
이것은
에 비례하는 어떤 것도 여전히 편차 에너지에 대한 관계를 반영하기 때문에 받아 들일 수있다. 그것은 단지 약간 확장 될 것이다.

 

최종 결과는 von Mises 스트레스이다.

 

 

그리고 이것은 이것에 대한 정의 방정식이다.

 

[Alternate Forms / 대체식]

 

위의 방정식의 대수 조작은 다른 많은 동등한 형식을 제공한다. 여기에 요약되어 있다.

= Algebraic manipulation of the above equation gives many other equivalent forms. They are summarized here.

 

 

 

 

 

 

 

 

 


2. 참고자료(Reference)

 

1. Von Mises Stress, http://www.continuummechanics.org/vonmisesstress.html, Accessed by 2018-07-18

 

 

반응형
728x90
300x250

[Mechanics] 재료역학 - E, G, v의 관계식 / 모형화

 

재료역학(재료과학이라고도 불림.)에서 얇지만 충실하게 다루는 탄성계수 사이의 관계(E, G, v) 관계식에 대해서 프로그래밍 코드로 모형화를 하였습니다.

탄성 계수(modulus of elasticity)는 고체 역학에서 재료의 강성도(stiffness)를 나타내는 값이다.

 

 

 

 

 

E = 인장 탄성 계수(또는 선형탄성계수), 영 계수 (E) [Young's modulus (E)]

G = 전단탄성계수(또는 층밀리기 탄성계수) 또는 [전단 계수 또는 강성 계수 (G)] The shear modulus or modulus of rigidity (G)

v = 푸아송의 비

K = 벌크 모듈러스(bulk modulus (K))

 


1. 설계[Design]

 

  /*
 * Author: Dodo(rabbit.white at daum dot net)
 * Created by: 2018-07-15
 * Project Name: E,G,v의 관계식(탄성계수)
 * FileName: Calculate.h
 * Description:
 */

#ifndef CALCULATE_H_
#define CALCULATE_H_

 

class Calculate{

 

 private:
           int G_TYPE_EV = 1;
           int G_TYPE_KE = 2;
           int G_TYPE_KV = 3;

           int K_TYPE_GE = 1;
           int K_TYPE_EV = 2;
           int K_TYPE_GV = 3;

           int V_TYPE_EG = 1;
           int V_TYPE_KE = 2;
           int V_TYPE_KG = 3;

 

 public:

           Calculate();
           ~Calculate();

           int getG_TYPE_EV(){ return this->G_TYPE_EV; }
           int getG_TYPE_KE(){ return this->G_TYPE_KE; }
           int getG_TYPE_KV(){ return this->G_TYPE_KV; }

 

           // G에 관한 변형식
           double getG(double v1, double v2, const int type);

           // K에 관한 변형식
           double getK(double v1, double v2, const int type);

           // v에 관한 변형식
           double getV(double v1, double v2, const int type);

 

 protected:


};

#endif /* CALCULATE_H_ */

 Calculate.h

 

 /*
 * Author: Dodo(rabbit.white at daum dot net)
 * Created by: 2018-07-15
 * Project Name: E,G,v의 관계식(탄성계수)
 * FileName: Calculate.cpp
 * Description:
 */


 #include <iostream>
 #include "Calculate.h"

 

 using namespace std;

 

 Calculate::Calculate(){}

 Calculate::~Calculate(){}

 

 // G에 관한 변형식
 double Calculate::getG(double v1, double v2, int type){
       double f = 0;
       double e, v, k;
       e = v = k = 0;

 

       switch ( type ){
              case 1:

                   e = v1;
                   v = v2;

                   f = e / ( 2 * ( 1 + v ) );
                   break;

 

              case 2:

                   k = v1;
                   e = v2;

                   f = ( 3 * k * e ) / ( (9 * k) - e );
                   break;

 

              case 3:

                   k = v1;
                   v = v2;

                   f = ( ( 3 * k ) * ( 1 - ( 2 * v ) ) ) / ( 2 * (1+v));
                   break;

     }

 

     return f;
 }

 

 // K에 관한 변형식
 double Calculate::getK(double v1, double v2, int type){

        double f = 0;
        double g, e, v;
        g = e = v = 0;

 

        switch ( type ){
              case 1:

                   g = v1;
                   e = v2;

                   f = (g * e) / ( ( 9 * g) - (3 * e) );
                   break;

 

              case 2:

                   e = v1;
                   v = v2;

                   f = e / ( 3 * ( 1 - v ) );
                  break;

 

              case 3:

                  g = v1;
                  v = v2;

                  f = ( ( 2* g) * ( 1 + v) ) / ( 3 * ( 1 - ( 2*v ) ) );
                  break;

        }

 

        return f;
 }

 

 // K에 관한 변형식
 double Calculate::getK(double v1, double v2, int type){

         double f = 0;
         double g, e, v;
         g = e = v = 0;

 

         switch ( type ){
               case 1:

                   g = v1;
                   e = v2;

                   f = (g * e) / ( ( 9 * g) - (3 * e) );
                   break;

 

              case 2:

                   e = v1;
                   v = v2;

                   f = e / ( 3 * ( 1 - v ) );
                   break;

 

              case 3:

                   g = v1;
                   v = v2;

                   f = ( ( 2* g) * ( 1 + v) ) / ( 3 * ( 1 - ( 2*v ) ) );
                   break;

       }

       return f;
 }


 // v에 관한 변형식
 double Calculate::getV(double v1, double v2, const int type){

       double f = 0;
       double e, g, k;
       e = g = k = 0;

 

       switch ( type ){
             case 1:

                  e = v1;
                  g = v2;

                  f = ( e - (2*g)) / (2 * g);
                  break;

 

            case 2:

                  k = v1;
                  e = v2;

                  f = ( ( 3 * k) - e ) / ( 6 * k );
                  break;

 

            case 3:

                  k = v1;
                  g = v2;

                  f = ( (3*k) - (2* g) ) / ( ( 6* k) + ( 2 * g) );
                  break;

         }

         return f;
 }
 

 Calculate.cpp

 

 /*
 * Author: Dodo(rabbit.white at daum dot net)
 * Created by: 2018-07-15
 * Project Name: E,G,v의 관계식(탄성계수)
 * FileName: main.cpp
 * Description:
 */

 

 #include <iostream>
 #include <math.h>
 #include "Calculate.h"

 

 using namespace std;

 

 const int GB = pow(10, 9);
 const int MB = pow(10, 6);

 

 int main(){

        Calculate* cal = new Calculate();

        double e = 200 * (double)GB;
        double v = 0.3;

 

        cout.setf(ios::fixed);

        cout.precision(3);

        cout << e << endl;

 

        double result = cal->getG(e, v, cal->getG_TYPE_EV() );
        cout.precision(5);

        cout << result << endl;

        return 0;
 } 

 main.cpp

 

 

그림1-1) 출력값

 

[소스코드]


egk.7z

 


2. 참고하면 도움되는 자료

 

1. 영률(Young's), Wikipedia(한글), https://ko.wikipedia.org/wiki/영률

2. 탄성계수(Modulus of elasticity), Wikipedia(한글), https://ko.wikipedia.org/wiki/탄성 계수

3. 전단탄성계수(Shear modulus of elasticity), Wikipedia(한글), https://ko.wikipedia.org/wiki/전단탄성계수

4. 전단탄성계수(Shear modulus of elasticity), Wikipedia(영문) https://en.wikipedia.org/wiki/Elastic_modulus

반응형
728x90
300x250
[Mechanics] 역학을 공부하면서

 

역학이라는 게 정말 중요하다고 주장한다.

기계 가공을 하는데 있어서도 재료를 결정할 수가 있다.

 

재료역학에서 가장 중요한 식은 응력에 관한 식이다.

 


1. 재료역학에서 중요한 식

 

 

 

 수직응력(Normal Stress)

전단응력(Shearing Stress)

 

 

수직응력과 전단응력에 관한 식이다. 식으로는 큰 차이를 느끼진 못 한다.

그래서 몇 가지 간단한 시뮬레이션을 주제를 잡고 진행하게 되었다.

 

다음은 안전계수(factor of safety ; S)에 관한 식이다.

 

 

 

 안전계수(factor of safety ; S)

 

안전계수를 정하는 것은 정말 중요한 일이다.

말 그대로 재료를 사용하는데 있어서 파괴 등이 일어나지 않고, 적정한 범위를 유지하려면 중요한 식이다.

 

아래의 코드는 하드코딩(Hard-Coding)으로 작성한 자바 프로그램 코드이다.

 

 

 /*
 * Created: 2018-05-29
 * Subject: Calculate.java
 * Author: Dodo
 */

 public class Calculate {
 
      private final double PI = 3.14159265359;
 
      public Calculate() {
 
      }
 
      public double generalArea(double dimension) {
             return ( PI / 4 ) * (dimension * dimension);
      }
 
      public Stress getStress(Stress value) {
   
             double weight = value.getWeight();
             double area = value.getArea();
             double stress = weight / area;
  
             value.setStress(stress);
             return value;
     }

     public double getSafety(Stress allow, Stress yield) {
  
             double safety = allow.getStress() / yield.getStress();
             return safety;
     }

}

 Calculate.java

 

 

 /*
  * Created: 2018-05-29
  * Subject: Stress.java
  * Author: Dodo
*/

public class Stress {
 
       private double stress;
       private double weight;
       private double area;

   

       public Stress() {
            this.stress = 0;
            this.weight = 0;
            this.area = 0;
       }
 
       public Stress(double stress, double weight, double area) {
            this.stress = stress;
            this.weight = weight;
            this.area = area;
       }

 

       public double getStress() {
            return stress;
       }
 
       public void setStress(double stress) {
            this.stress = stress;
       }
 
       public double getWeight() {
            return weight;
       }
 
       public void setWeight(double weight) {
            this.weight = weight;
       }
 
       public double getArea() {
            return area;
       }
 
       public void setArea(double area) {
            this.area = area;
       }
  
 } 

 Stress.java

 

 /*
 * Created: 2018-05-29
 * Subject: Program.java
 * Author: Dodo
*/

 

 import java.io.File;
 import java.io.FileWriter;

 public class Program {
 
       private static final int MAX = 10000;
 
       public static void main(String[] args) {
              experiment();
       }
 
       public static void experiment() {
   
              String txt = "테스트입니다!!" ;
              String fileName = "test11.txt" ;      
       
              int retval1 = -1;
              int retval2 = -1;

 

              try{
                   // 파일 객체 생성
                   File file = new File(fileName) ;

                   // true 지정시 파일의 기존 내용에 이어서 작성
                   FileWriter fw = new FileWriter(file, true) ;

                   // 계산
                   Calculate calculate = new Calculate();

                   int count = 1;
      
                   double weight = 10;
                   double area = 0;  
                   double dimension = 0;
       
                   double resultStress = 0;
                   double targetMin = 8.1;
                   double targetMax = 9.4;

           

                   String strTxt ;
      
                   strTxt = "count,weight,dimension,area,stress,result";
                   // 파일안에 문자열 쓰기

                   fw.write(strTxt);
                   fw.write("\r\n");
                   fw.flush();
      
                   for ( int i = 0; i < MAX; i++ ) {
       
                      weight = i;
       
                      for ( int j = 0; j < MAX; j++ ) {
        
                           dimension = j;
                           area = calculate.generalArea(dimension);
        
                           resultStress = weight / area;
         
                           strTxt = count + "," + weight + "," + dimension + "," + area + "," + resultStress + " ,실험";
                
                           retval1 = Double.compare (resultStress, targetMin);
                           retval2 = Double.compare(resultStress, targetMax);
        
                           if ( retval1 > 0 && retval2 < 0 ) {
                                  strTxt = count + "," + weight + "," + dimension + "," + area + "," + resultStress + " ,참";
                           } // end of if
        
                           // 파일안에 문자열 쓰기
                          fw.write(strTxt);
                          fw.write("\r\n");
                          fw.flush();
        
                          count++;
         
                   } // end of for
      
               } // end of for

               // 객체 닫기
               fw.close();

        }catch(Exception e){
               e.printStackTrace();
        } // try~catch
       
    }
 
}

 Program.java

 

내가 찾고자 하는 것은 다른 것이 아니었다.

 

double weight = 10;
double area = 0;  

double dimension = 0;
       
double resultStress = 0;
double targetMin = 8.1; // (MPa)
double targetMax = 9.4; // (MPa)

 

주어진 응력(Sigma_{Min})은 8.1MPa, 응력(Sigma_{Max})은 9.4MPa이다.

이 범위에 부합하는 임의의 W, A, D을 결정할 수 있는 수치의 값이 어떠한지를 나는 찾고 싶었다.

 

 

 

이러한 주제이다.

사람이 풀라고 하면 못 푸는 문제이다.

 


맺음) 역학은 물체에 힘이 작용할 때 현상을 공부하는 것이다.

 

이러한 기본적인 식 이외에도 무수히 식이 많다.

다 외우는 건 한계가 있으며, 역학을 재미있게 공부하는 것은 현상을 이해하는 것이 중요하다고 본다.

반응형

+ Recent posts