반응형

What is meshing?

메쉬(meshing)는 모델을 finite elements라 불리는 작고 간단한 모양으로 분해하는 과정이다.

  • finite: 한정된, 유한한
  • element: 요소, 성분


elements는 모델의 기본 구성이다. Meshing은 복잡한 문제(모델)를 계산하기 쉬운 유한한(finite) 갯수의 요소(element)로 분해하는 것이라 할 수 있다. 시뮬레이션 소프트웨어는 복잡한 모델의 응력(stress)등을 계산하기 위해 방정식을 사용한다. 하지만 하나의 큰 모델을 한번의 계산할 수는 없다. 아래 그림과 같이 큰 모델을 수천, 수만개의 작은 요소로 분해하여 계산한다.



Creating Mesh

솔리드웍스 시뮬레이션에서 mesh를 만드는건 어렵지 않다. 시뮬레이션 트리 메쉬 아이콘에서 오른쪽 클릭하고 Create Mesh...를 선택하자.



메쉬 인터페이스가 열린다. 메쉬 만들기에는 2가지 방법이 있다. 솔리드웍스 공식 용어는 아니지만 Quck Mesh와 Advanced Mesh라는 방법이 있다고 생각하자. 두 방법 모두 이 메쉬 인터페이스를 사용한다.



Quick Mesh - The Simplest Way to Mesh Your Model

Qiuck Mesh는 복잡한 옵션이나 숫자를 생각할 필요가 없다. 요소의 밀도를 컨트롤 하는 슬라이더만 조정하면 된다. 슬라이더를 오른쪽으로 움직이면 미세하고 고운(fine) 요소를, 왼쪽으로 움직이면 굵고 거친(coarse) 요소를 얻을 수 있다. 미세하고 고운 요소로 이루어진 메쉬는 굵고 거친 요소의 메쉬보다 훨씬 많은 요소를 가진다.



모델의 평균적인 요소 사이즈는 슬라이더로 간단히 조정할 수 있다. 이 슬라이더에 숨겨진 강력한 알고리즘 덕분에 모든 요소의 사이즈를 변경하는건 굉장히 쉬워 졌지만 당신은 이 알고리즘이 모든걸 잘 해줄것이라 믿고 의지하는게 된다.



Advanced Mesh - Have Control Over the Mesh

Advanced Mesh는 Mesh Parameters 옵션을 선택하면 나타난다. 다양한 옵션으로 메쉬를 컨트롤 할 수 있다.


첫 번째 옵션은 사용할 메쉬 알고리즘이다. 이것은 CAD geometry에서 mesh를 생성할 방법을 결정한다. 사용 가능한 메쉬 알고리즘은 3가지가 있다: Standard mesh, Curvature-based mesh, Blended curvature-based mesh.


각 메쉬 생성 알고리즘은 다양한 세팅값을 제공한다.


Standard Mesh

Standard mesh는 솔리드웍스 시뮬레이션의 기본 메쉬 생성 방법이며 초보가 시작하기 좋은 방법이다. 간단한 구조의 모델에 잘 작동한다.



Curvature-based Mesh

Curvature-based Mesh는 요소의 최대, 최소 사이즈 값을 지정할 수 있다. 이 알고리즘은 작은 feature가 많은 구조에 적합하지만 단순한 구조에는 불필요한 요소가 추가될 수도 있다. 각기둥(prismatic) 모양에서 곡선(curved) 형태로 변화되는 구조에 매우 유용하다.



Blended Curvature-based Mesh

솔리드웍스 2016에 처음 소개된 Blended Curvature-based Mesh는 아주 작은 구조의 feature까지 meshing 할 수 있는 옵션을 제공하는 Curvature-based Mesh 알고리즘 확장판이라 할 수 있다. Calculate Minimum Element Size 옵션을 통해 자동으로 작은 구조의 feature 사이즈를 결정할 수 있다.




Mesh Controls

Mesh Control은 솔리드웍스 mesh 생성법 중 가장 수동적인(manually) 방법이다. Mesh Control은 특정 영역의 요소 사이즈를 지정함으로써 시스템 자원을 모델 전체가 아닌 특정 영역에 집중 할 수 있도록 해준다.



Mesh Control은 아래 그림의 바퀴 살과 같이 모델의 한 부분만 작은 feature를 가지는 경우 특히 유용하다.



크고 복잡한 모델을 시뮬레이션 하는 경우 Mesh Control은 필수적이다. 아래 그림의 중장비 예에서 하위 부품인 붐(boom)이 작동 중 하중을 충분히 견디는지 확인하기 위해 시뮬레이션이 진행 되었다. 모든 구조를 meshing 하기 위해 다양한 사이즈의 부품들과 함께 8개의 Mesh Control이 사용되었다.









붐(boom)에서 1개의 브라켓만 시물레이션시 그 구조가 간단하고 일관적이므로 Mesh Control은 필요 없다. 하지만 붐 전체는 크고 작은 다양한 사이즈의 많은 부품이 포함되기 때문에 적절한 mesh를 생성하기 위해 많은 Mesh Control이 필요하다. Mesh Control이 없다면 mesh 생성에 실패 하거나 운이 좋아 성공 하더라도 적절하지 않은 mesh를 생성하게 된다.


What's a good mesh?

좋은 메쉬 만들기는 어려운 작업이지만 솔리드웍스 시뮬레이션은 이를 쉽게 만들었다. Mesh를 오른쪽 클릭하고 Details...를 클릭하자. Mesh 품질을 결정하는 여러가지 항목의 리스트가 나타난다.


  • Maximum Aspect Ratio
  • Percentage of elements with Aspect Ratio < 3
  • Percentage of elements with Aspect Ratio > 10



What's the Aspect Ratio?

Aspect Ratio는 요소의 모양을 의미한다. 1이 가장 이상적인 상태다. 숫자가 커질수록 요소의 모양은 이상적인 상태에서 벗어나게 된다.


물론 Aspect Ratio가 단순히 모양만을 의미하지는 않지만 이를 이해하는 좋은 방법은 이것을 요소의 모양이라 가정하는 것이다. Aspect Ratio는 한 면(face)에서 맞은편 꼭지점(vertex)까지 잇는 법선(normal)들의 비율이라 정의할 수 있다. 아래 그림에서 볼 수 있듯이 Aspect Ratio가 높을수록 요소의 모양은 편향되게(비뚤어지게) 된다.




그럼 좋은 메쉬를 생성했다는건 어떻게 알 수 있을까? 완벽한 Aspect Ratio가 1이라는것은 알았으니 모든 요소의 Aspect Ratio가 1이 되면 된다. 하지만 그건 현실적으로 불가능하다. 그보다는 전체적인 요소의 Aspect Ratio가 낮은 값을 가지도록 하면 된다. 이는 Mesh Details에서 Percentage of elements with Aspect Ratio < 3, > 10 항목을 보면 확인할 수 있다.



이제 우리는 어떻게 Mesh를 생성하는지, 어떻게 Mesh Control을 이용해 Mesh를 향상시키는지 또, 좋은 Mesh를 생성했는지 판단할 수 있게 되었다. 이 3가지 내용이 솔리드웍스 시뮬레이션 Meshing의 기본이다.


출처: SOLIDWORKS Simulation Makes Meshing Easy. Too Easy?


반응형
Posted by J-sean
:
반응형

솔리드웍스 열/온도 해석 동적 시뮬레이션

Solidworks Simulation - Thermal Study: Transient

 

Simulation - New Study를 선택한다.

 

Thermal을 선택하고 원하는 이름을 지정한다.

 

Study - Properties...를 선택한다.

 

Transient를 선택하고 Total time과 Time increment를 변경한다.

 

Thermal Loads - Temperature...를 선택한다.

 

Initial temperature를 선택하고 초기 온도 지정이 필요한 모든 파트를 선택한다. 온도는 25℃로 지정한다. 

 

Thermal Loads - Convection...에서 적당한 조건을 입력한다.

 

Thermal Loads - Heat Power... 에서 전기가 공급되는 파트를 선택하고 필요한 용량을 입력한다.

Thermostat(Transient)를 선택하고 온도를 감지할 vertex를 클릭한다. Cut off details에 전기 공급/차단의 기준이 될 온도를 지정한다.

 

다른 열원도 추가할 수 있다.

 

Mesh - Create Mesh...를 선택하고 매쉬를 생성한다. 필요하다면 Mesh Control을 추가한다.

 

매쉬가 생성 되었다.

 

Run This Study를 선택한다.

 

계산이 진행된다.

Study - Properties에서 Total time: 300sec, Time increment: 30sec 으로 지정 했으므로 10개의 step이 계산된다. 

 

계산이 완료되면 Results - Temperature - Edit Definition... 을 선택한다.

 

Display - Units를 Celsius로 변경한다.

Plot Step에서 Time이나 Plot Step을 변경하면 다른 시간대의 계산 결과를 확인할 수 있다.

 

Chart Options탭에서 Number Format과 No. of Decimals 설정을 변경한다.

 

Legend가 보기 쉽게 변경 되었다. 하지만 파트의 표면은 아직 50℃ 정도인거 같다.

 

Study - Properties... 를 선택한다.

 

Total time과 Time increment를 더 크게 수정한다.

 

다시 Run This Study를 선택한다.

 

이번엔 30개의 스텝(30초 간격으로 총 900초)이 계산된다.

 

계산이 끝났지만 아무런 변화가 없어 보인다.

 

Definition - Plot Step 에서 Time이나 Plot Step을 변경하면 원하는 시간대의 계산 결과를 확인할 수 있다.

 

시간을 900초로 늘렸지만 내부 열선의 발열이 표면까지 충분히 전달되기엔 부족한 시간인거 같다.

 

Results - Temperature - Probe를 선택한다.

 

온도를 측정하고 싶은 포인트를 모두 클릭하고 Response를 선택한다.

 

선택한 모든 포인트에서 각 Plot Step별로 측정된 온도가 표시된다.

 

충분히 긴 시간을 지정하고 계산하면 Thermal Loads - Heat Power - Thermostat(Transient)에 지정한 온도에 따라 hunting되는 그래프도 얻을 수 있다.

 

Total time: 7,200 sec

Time increment: 60 sec

 

 

반응형
Posted by J-sean
:
반응형

Solidworks Simulation: Probe


Results - Temperature - Probe를 선택한다.


Probe화면이 나타나면 온도 측정을 원하는 포인트를 모두 클릭한다.


9 포인트가 선택 되었다. 각 포인트의 Node/Element Number, X/Y/Z Location, Value가 모두 표시된다.


별 의미 없는 Node/Element Number, X/Y/Z Location은 Annotations에서 선택 해제 한다.


Report Options - Plot을 클릭한다.


(그 외 센서 저장, 결과 저장(csv), 화면 캡쳐등도 할 수 있다)


Probe로 측정한 포인트의 기본 온도 그래프가 표시된다. 스타일을 바꿔보자.


Options - Properties를 선택한다.


ChartStyles - LineStyle - Width를 5로 바꾼다.


Axes탭에서 Axes - Y 선택, Scale탭 - Max/Min/Origin 값을 Data Max/Min 값에 따라 적당히 바꾼다.


적당한 온도 범위와 선두께의 그래프가 표시 된다.


반응형
Posted by J-sean
:
반응형

솔리드웍스 열/온도 해석 정적 시뮬레이션.

Solidworks Simulation Thermal Study.

 

SOLIDWORKS Add-Ins - SOLIDWORKS Simulation을 선택한다.

 

Simulation - New Study를 선택한다.

 

Thermal을 선택하고 원하는 이름을 지정한다.

 

Temperature와 Heat Power로 열원을 지정할 수 있다. Termperature...를 선택한다.

 

열원으로 사용할 파트(혹은 면)와 온도를(Celsius) 지정한다.

 

원하는 만큼 지정할 수 있다.

 

※ 주의 Temperature를 사용하는 경우 지정하는 온도에 따라 열원이 냉각원으로 작용할 수도 있다.

예) 가까이 붙어 있는 Inner 열선을 300℃, Outer 열선을 100℃로 지정하면 Outer 열선 근처는 온도가 300℃에서 100℃로 급격히 떨어지게 된다.

 

Convection, Heat Flux, Radiation으로 열손실원을 지정할 수 있다. Convection...을 선택한다.

 

모든 표면에서 대류가 진행되므로 Select all exposed faces를 선택한다. 적당한 Convection Coefficient, Bulk Ambient Temperature를 지정한다. (Convection Symbol 때문에 느려진다면 Show preview를 체크 해제한다)

 

Mesh - Create Mesh...를 선택하고 매쉬를 생성한다.

 

Standard mesh, Curvature-based mesh, Blended curvature-based mesh등 적절한 옵션을 사용해 매쉬를 생성한다.

 

파트 디자인에 따라 매쉬생성이 실패할 수 있다. 대부분 전체적인 요소 사이즈를 줄이거나 매쉬 컨트롤을 사용해 해결할 수 있다.

 

Apply Mesh Control...을 선택하고 매쉬 컨트롤을 적용한다.

 

매쉬 컨트롤을 적용할 파트나 면등을 선택한다. 적당한 Mesh Density를 선택하고 Create Mesh를 클릭한다.

 

매쉬 생성이 완료 되었다.

 

생성된 매쉬에 (보라색)점들이 표시되는데 Hide로 감출 수 있다.

 

Run This Study를 선택한다.

 

계산(Solving)이 진행된다.

 

Thermal Study가 완료되었다. Legend를 보기쉽게 변경해 보자.

 

Edit Definition...을 선택한다.

 

Definition에서 원하는 옵션을 수정한다.

Units: Celsius

 

Chart Options에서 원하는 옵션을 수정한다.

Number Format: floating

No. of Decimals: 1

 

Legend가 보기 쉽게 변경 되었다.

 

아래 예는 열선을 사각형 모양으로 근사화 하지 않고 원형으로 만들었을때의 문제점이다.

 

테스트 해 본 과정은 다음과 같다.

 

1. 바디, 열선, 커버를 따로 만들지 않고, 바디와 열선만 만들었다.

 

2. 바디를 만들고 열선 그루브는 바디 중앙에 Plane을 하나 생성하고 스케치에서 열선 도면을 이용해 Swept Cut으로 만들었다. 그리고 열선을 Swept Boss/Base로 만들어 어셈블리에서 메이트 시키고 Interference Detection을 실행해 보면 전체적으로 간섭이 발생한다. 사각형으로 근사화 한 열선은 그루브와 사이즈가 동일해도(예를 들어 그루브 너비 6.4, 열선 너비 6.4) 문제가 없었는데 이 방법은 간섭이 발생한다. 하지만 간섭은 그루브를 6.41로 0.01만 늘려줘도 해결된다.

 

3. 시뮬레이션에서 Thermal Loads 를 Temperature가 아닌 Heat Power로 주는 경우, 낮은 파워를 줘도 Min-Max 차가 어마어마하게 벌어진다. 뭐가 잘못 된거 같은데 왜 그런지 모르겠다.

 

아래 그림들을 참고하자.

 

※ 추가

원인을 찾았다. Connections - Contact Sets 를 설정하지 않았기 때문이었다.

아래 내용 중 마지막을 참고하자.

 

원형 열선은 어셈블리가 쉽지 않다. Mate를 지정할 때 단면이 존재하는 면의 (면이 아닌) 모서리를 동심원 조건으로 지정하면 된다.

 

위 그림은 Section View를 이용해 열선은 Exclude 시키고 바디만 반 정도 잘라서 보이는 단면을 이용하여 메이트를 진행한 것이다.

아니면 '바디 우클릭 - Change Transparency 클릭' 해서 바디를 반투명하게 바꾸고, 아래 그림 처럼 메이트를 지정할 '모서리를 우클릭 - Select Other 클릭' 해서 메이트 할 모서리들을 선택한다.

 

이 경우 Body에서 Cut-Sweep으로 만든 Edge와 Heater에서 Sweep으로 만든 Edge를 하나씩 차례대로 선택해 주면 된다.

 

Concentric 조건으로 두 모서리를 메이트 한다.

 

그리고 시뮬레이션을 진행해 보면 낮은 Heat Power(약 273W)를 줘도 Min-Max 값이 어마 어마하게 벌어진다.

 

※ 추가

Min-Max 값이 크게 벌어지는 이유는 바디 그루브와 열선이 아주 작은 간격(0.01mm)이지만 떨어져 있는 상태에서 그대로 시뮬레이션을 진행했기 때문이다. 열선의 열은 그 작은 간격 때문에 바디로 전도 되지 않고  대류(Convection)만으로 전달되었던 것이며, 그래서 열선 온도는 열이 방출되지 않아 크게 증가하고 바디는 조금밖에 증가하지 않았던 것이다. 열선과 바디가 붙어 있는 것으로 계산되게 만들어야 한다. 아래 내용을 참고하자.

 

Connections에 열선과 바디의 접촉(Contact) 조건을 만들어 줘야한다.

 

우클릭 - Contact Set... 클릭

 

Type을 Bonded로 바꾼다.

 

우선 파란 상자에 바디와 닿는 열선의 접촉면을 선택하기 위해 Body를 보이지 않게 한다. (Body 우클릭 - Hide 클릭)

 

열선의 모든 면을 선택한다.

 

이번엔 빨간 상자에 열선과 닿는 바디의 모든 면(그루브)을 선택하기 위해 바디는 보이게 하고 열선을 보이지 않게 한다. (Heater 우클릭 - Hide)

 

하지만 그루브는 바디 내부에 있기 때문에 보이지 않는다. 바디의 투명도를 바꾼다. (Body 우클릭 - Change Transparency)

 

그루브가 보이지만 그냥 클릭하면 바디의 겉면이 선택되어 버린다. 그루브 포인트에서 우클릭 - Select Other 클릭.

 

그루브는 생성시 사용한 피처인 Cut-Sweep으로 표시된다. 선택한다.

 

선택된 그루브가 표시된다.

 

나머지 그루브 영역도 모두 선택하고 체크표시를 클릭한다.

 

열선과 바디의 Contact Set 생성이 완료 되었다. 이제 Mesh를 다시 생성하고 시뮬레이션을 진행한다.

 

제대로 된 결과가 나온다.

 

반응형
Posted by J-sean
:
반응형

열 관련 시뮬레이션을 진행할때는 온도 측정 센서의 위치에 따라 결과가 크게 바뀔 수 있다.


시뮬레이션의 효율을 고려해 단순한 모양의 히터와 발열체 그리고 커버를 준비한다. (100X100X25mm)


Solution type - Transient, Total time: 3600 sec, Time increment: 30 sec

Thermostat cut off lower bound: 98°C, upper bound: 102°C

Thermostat position: 파란점(히터 외부)


히터 표면 9 포인트의 승온 그래프.


이번엔 Thermostat position을 히터 내부 발열체와 커버 사이로(붉은점) 지정한다.



히터 표면 9 포인트의 승온 그래프.


744초를 기준으로 목표 온도에 대해 더 낮은 overshooting 및 hunting을 보인다. 효율을 위해 작고 단순한 히터로 시뮬레이션 했기 때문에 차이가 극명하게 보이지 않지만 크고 복잡한 구조에서는 확실한 차이가 발생 한다.


반응형
Posted by J-sean
:
반응형

시뮬레이션을 진행하기 위해 mesh를 생성해야 하는데 아래와 같은 메세지가 뜨면서 실패하는 경우가 있다.


 Main Body-1의 mesh 생성이 실패 했다. element 사이즈를 조정하거나 mesh control을 추가하는 등의 해결 방법이 있는데 mesh control을 추가해 보자. OK를 클릭 한다.


화면 오른쪽에 위와 같이 Simulation Advisor가 나타난다. Mesh Control을 클릭하고 mesh 작성을 실패한 바디(Main Body-1)를 선택해 준다.


Create Mesh를 선택 한다.


선택한 바디(Main Body-1)는 Curvature based mesh로 작성된다. 예를 클릭 한다.



mesh 작성이 완료 된다.



반응형
Posted by J-sean
:
반응형

솔리드웍스로 시뮬레이션을 진행하다 보면 non-manifold나 유효하지 않은 바디가 있어 면을 선택 할 수 없다는 메세지가 뜰때가 있다.

 

복사열을 방출하는 면을 선택하기 위해 Select all exposed faces 버튼을 클릭하면 이렇게 에러 메세지가 뜬다. (필요한 면을 개별적으로 선택해서 넘어갈 수도 있다)

 

개별적으로 면을 선택해서 non-manifold나 유효하지 않은 면이 있다는 에러를 넘어 가더라도 시뮬레이션이 제대로 되지 않는다. (시뮬레이션이 될 수도 있다)

 

그렇다면 non-manifold 바디가 대체 무엇일까?

non-manifold 바디란 간단히 말해서 그림으로 표현할 수는 있지만 실제 존재 할 수 없는 바디를 말한다. 아래 그림을 보자.

 

※ 참고: What is a non-manifold mesh and how to fix it

 

육면체 2개가 붙어 있다. 하지만 1개의 모서리만을 2개의 육면체가 공유하고 있는데 이런 오브젝트는 존재 할 수 없다.

 

2개의 육면체가 1개의 점만을 공유하고 있다. 현실에서는 존재 할 수 없다.

 

 

 

부피 없이 면 4개로 구성된 육면체이다. 마찬가지로 현실에서는 존재 할 수 없는 non-manifold body다.
(솔리드웍스에서는 이런 오브젝트를 만들 수 없지만 다른 3D Rendering 프로그램에서는 가능하다)

 

이런 오브젝트도 메시 생성은 가능하지만 항상 시뮬레이션 결과가 나올거라 기대 할 수는 없다. 최대한 non-manifold 바디가 없게 시뮬레이션을 디자인하는게 좋다.

 

반응형
Posted by J-sean
: