{{ post.title }}
글 편집
글 편집 (이전 에디터)
{{ post.author.name }}
작성일
Version | {{ post.target_version }} | Product |
{{ product.name }}
|
---|---|---|---|
Tutorial/Manual | {{ post.manual_title }} | Attached File | {{ post.file.upload_filename }} |
RecurDyn 접촉 요소 (Contact) 초보 탈출 4탄 - 접촉 알고리즘의 기본 원리 에 이어지는 글입니다.
이전 글에서 이야기한 내용은 아래와 같이 요약할 수 있습니다.
1. RecurDyn은 Penalty Method를 사용하여 접촉을 계산한다.
2. Penalty Method는 접촉하는 두 바디가 서로 겹쳐지는 것을 허용한다.
3. 서로 겹쳐진 정도를 penetration이라고 한다.
4. 접촉력은 (개념적으로) f = kδ 와 같이 계산된다. (마치 스프링처럼)
5. 적절한 크기의 K (Stiffness)를 사용하는 것이 중요
- K (Stiffness)가 너무 작으면, penetration이 커져서 정확도가 떨어짐
- K (Stiffness)가 너무 크면, 솔버의 해석 안정성이 떨어짐
이와 관련된 몇 가지 예외 상황을 다루어 보겠습니다.
상황 1)
아래의 경우, 파란 상자가 대단히 무겁다고 가정해 봅시다. (약 100Kg 짜리라서 1000N이 작용한다고 하지요)
K가 10N/mm일 경우, 1000N의 접촉력이 발생하려면 δ = 100mm이어야 합니다.
하지만 빨간 상자의 높이가 10mm일 경우, δ는 100mm가 될 수 없죠. 따라서 이 모델에서 파란 상자는 빨간 상자를 뚫고 아래로 떨어지게 됩니다.
해결방법 1)
시뮬레이션을 해보면, 두 바디 간의 penetration이 과도한 경우가 발견이 되는데, 이 때는 대부분 외력이 지나치게 크게 작용하거나, K가 너무 작게 설정되어 있기 때문이라는 점, 기억해 주시기 바랍니다.
Penetration의 양을 더 줄이고 싶다면, K를 키우면 됩니다.
따라서 접촉하는 두 바디에 가해지는 힘의 크기를 대략 예측할 수 있다면, 시뮬레이션에 필요한 최소한의 K를 짐작할 수 있습니다. 만일 K = 100,000N/mm로 설정하면 δ=0.01mm일 때, 평형이 이루어 지겠지요.
상황 2)
수치해석은 이산화된 시간(discrete time)을 사용하여 계산을 하게 됩니다. 따라서 time step이 클 경우, 아래와 같이 두 바디 간에 접촉이 발생하지 않았다가, 바로 그 다음 스텝에서 과도한 penetration이 발생할 수 있습니다.
아래의 모델에서 t0의 경우, δ = 0이기에 파란 윗 상자에는 중력만이 작용하며, 결과적으로 윗 상자는 아래로 내려가게 됩니다.
만일 t1에서 갑자기 δ = 15가 발생할 경우, 아래에서 위로 가해지는 힘(접촉력)이 150이 되면서, 상자에는 윗방향으로 120의 힘 (150 - 30)이 작용합니다. 이로 인해, 윗 상자가 마치 하늘로 튕겨 올라가는 듯한 현상이 발생할 수 있습니다. (갑자기 아래에서 위로 큰 힘이 작용했기 때문에)
해결방법 2)
이 때는 penetration이 갑작스레 커지지 않도록, time step을 충분히 작게 해주면 됩니다. 그렇게 하기 위해서는 솔버 파라미터 중 maxImum time step 을 작게 해주면 됩니다.
좀 더 숙련된 사용자를 위한 파라미터로는 Contact parameter 페이지에 있는 Maximum Stepsize Factor 가 있습니다. 이 파라미터는 접촉이 예상되는 경우, time step을 주어진 값만큼 더 쪼개서 사용하게 됩니다.
예를 들면, 아래 우측의 다이얼로그에서는 Maximum Stepsize Factor = 10 으로 설정되어 있습니다.
이 경우, 접촉이 발생할 것으로 예상되면, time step을 1/10만큼 더 잘게 사용함으로써, 갑작스러운 접촉으로 인해 순간적으로 과도한 penetration이 발생하는 것을 방지합니다.
상황3)
상황2와 거의 동일합니다. 다만 바디가 튕겨 나가지 않고, 아래로 빠져 버릴 수도 있습니다.
이는 RecurDyn에서 사용하는 Maximum Penetration이라는 파라미터 때문일 수 있습니다. 이 파라미터는 일정값 이상의 penetration이 발생할 경우, 접촉이 발생하지 않은 것으로 간주하게끔 하는 파라미터입니다.
즉, maximum penetration = 5 일 경우, t1에서 δ = 15이기에, 접촉이 발생하지 않은 것으로 처리되어 (15 > 5 이므로), 접촉력이 발생하지 않습니다.
결과적으로 아래 방향의 30이라는 힘만 박스에 작용하고, 박스는 아래로 떨어져 버릴 수 있습니다.
해결 방법 3)
이에 대한 해결방법은 상황2와 마찬가지로 step size를 작게 함으로써 갑자기 과도한 penetration이 발생하지 않도록 하면 됩니다.
* maximum penetration을 키워도 해결이 될 수 있겠지만, 대부분의 경우, 이 파라미터는 기본값을 그대로 쓰고, step size를 조절하는 것이 좋습니다. (penetration값은 작은 편이 더 정확한 결과라 할 수 있기때문이죠)
**Maximum penetration에 대해 더 알고 싶은 분은 이 글 을 참조해주세요.
접촉에 대해서 좀 더 자세히 알고 싶은 분은 아래의 팁들을 추가로 참고하시기 바랍니다.
- RecurDyn 접촉 요소 (Contact) 초보 탈출 1탄 - 2D / 3D Contact
-
RecurDyn 접촉 요소 (Contact) 초보 탈출 2탄 - Solid / Geo Contact
- RecurDyn 접촉 요소 (Contact) 초보 탈출 3탄 - Primitive 3D Contact
- RecurDyn 접촉 요소 (Contact) 초보 탈출 4탄 - 접촉 알고리즘의 기본 원리
-
RecurDyn 접촉 요소 (Contact) 초보 탈출 5탄 - 접촉 알고리즘의 기본 원리 - 응용편
- RecurDyn 접촉 요소 (Contact), 알고 쓰면 쉬워요! (최고 인기 동영상 강좌)