본문 바로가기
정나우/기타

Recurdyn(리커다인)에서 Translate joint를 이용한 병진운동 동역학 해석하기

by 정_나우 2023. 2. 22.

테스트베드를 만들어 실험을 진행하기 전에 Recurdyn(리터다인) 동역학 해석 프로그램을 이용해 실험 결과를 미리 예측하고 실험의 당위성을 체크해보았습니다.

 

저는 공중에 매달린 로봇이 급정거를 했을 때 얼마나 흔들리는지 확인해보겠습니다.


1. 모델 구현하기

 

카티아(CATIA)프로그램을 이용해 부품 하나하나를 만들고 어셈블리를 이용해 하나의 모델을 만들어줍니다.

제가 사용하고 있는 리커다인은 학교용이라 일부 기능이 제한됩니다.

그래서 카티아 파일을 바로 import하지 못하고 step파일로 변환해줍니다.

 

2. 리커다인 실행

리커다인을 처음 실행하면 이런 화면이 나옵니다.

이름은 마음대로 설정해주고

Gravity를 -Z로 바꿔줍니다.

 

3. step파일 import

위 사진 왼쪽에 나와있는 import를 클릭하거나

step파일을 드래그 앤 드랍으로 import할 수 있습니다.

 

4. 부품 분리하기

화면 움직임은 R키를 누르고 좌클릭을 하면 됩니다.

import를 완료하고 나면 모델이 하나의 덩어리로 불러와집니다.

우리는 이를 부품 하나하나 분리해줘야합니다.

 

모델을 더블클릭하면 위 사진 오른쪽 처럼 Solids 밑에 PartBody가 생성된 것을 확인할 수 있습니다.

 

4-1. 여기서 Partbody 하나를 클릭해서 Ctrl+x로 잘라내줍니다.

그리고 위쪽 메뉴에 Exit를 눌러서 Solids 밖으로 나옵니다.

 

4-2. 밖으로 나왔으면 위쪽 화면 왼편에 General을 눌러 새로 PartBody를 만듭니다.

 

4-3. 새로 만든 PartBody에 Ctrl+v로 PartBody 하나를 복사해줍니다.

같은 방법으로 다른 부품들도 하나하나 General을 새로 만들어 옮겨줍니다.

이렇게 해야 부품 하나하나 사이의 관계를 정의해서 움직임을 만들 수 있습니다.

 

필요없는 부품은 del키로 삭제할 수 있습니다.

다 옮기고 나서 빈 PartBody파일은 꼭 삭제해줘야 합니다.

그렇지 않으면 나중에 해석을 할 수 없기 때문입니다.

 

부품을 성공적으로 분리했으면 부품 별로 좌표계가 만들어진 것을 확인할 수 있습니다.

중간에 하나는 Ground 좌표계입니다.

 

5. 부품 간 관계 정의하기

제일 먼저 고정해야 하는 부품과 Ground사이를 Fixed 정의해줍니다.

클릭 순서는 fixed를 누르고

Ground → 고정하고자 하는 부품 → 고정하고자 하는 부품의 좌표계

를 누르면 됩니다.

 

고정해야 하는 부품은 같은 방식으로 반복해주면 됩니다.

 

5-1. 병진운동

저는 Body3가 Body2를 따라 앞뒤로 왔다갔다하게 만들어야 하기 때문에

Translate joint를 사용했습니다.

클릭 순서는 Translate joint를 누르고 

기준이 되는 부품 → 움직이고자 하는 부품 → 움직이고자 하는 방향 좌표계 → 화살표 나오면 원하는 방향으로 조절 후 클릭

 

5-2. 회전운동

회전운동도 마찬가지로

Revolute joint를 누르고

기준이 되는 부품 → 회전하고자 하는 부품 → 회전하고자 하는 부품의 좌표계

를 눌러줍니다.

 

그러고 나면 위 화면과 같이 회전 방향을 알려주는 원통 모양이 나오게 되는데

이는  제가 원하는 방향이 아닙니다.

z방향으로 회전하는 원통을 x축 방향으로 바꿔주기 위해

y축을 기준으로 90도 돌려주겠습니다.

 

원통 혹은 오른쪽 Databas에서 RevJoint를 우클릭해서 Properties로 들어갑니다

Connector → Euler → Angle321로 변경 → 0, 90, 0으로 설정 (Base Marker, Action Marker 둘 다)

 

그럼 아래 사진과 같이 원하는 방향대로 Revolute Joint가 바뀐 것을 확인할 수 있습니다.

 

6. Traslate Joint 설정

부품 간 joint설정을 마쳤으면 동역학 해석을 위해 joint 설정을 해줍니다.

 

먼저 병진 운동 설정을 해주겠습니다.

 

6-1. Trajoint Properties → Motion에서 Include Motion 체크 → Motion 버튼 클릭

 

6-2. 속도 제어를 할 거기 때문에 Velocirt (time) 선택 → 화면 중간 오른쪽 EL 클릭

 

 

6-3. 화면 왼쪽 밑 Create 클릭

 

6-4. 여기서 명령어로 움직임을 정의해줍니다.

이렇게 500만 입력하면 앞서 설정했던 방향으로 500mm/s로 등속운동을 하게 됩니다.

 

하지만 저는 등속 운동을 하다가 급정지하는 상황을 만들 것이기 때문에

STEP함수를 이용해서 속도 제어 명령을 내려줍니다.

 

리커다인에서 제공하는 Experssion Function Handbook을 보면

STEP 함수 사용 방법이 나와있습니다.

시간의 흐름대로 1초까지는 0이었다가 4초에 1이 되게 하는 방식입니다.

 

저는 500mm/s로 가다가 급정거하는 상황이므로

다음과 같이 명령어를 입력해주었습니다.

 

이곳에서는 숫자에 대해서만 다루는 곳이고

혹시 가속도나 시간에 대해 제어를 하고 싶으면 6-2에서 time이나 accelation으로 바꿔주면 됩니다.

 

그리고 OK를 계속 눌러주며 창을 닫아줍니다.

 

명령어 설정이 성공적으로 되었으면 아래 사진처럼 화살표 위에 MOTION이라는 그래픽이 생겼을 겁니다.

 

7. Revolute Joint 설정

두 부품 사이에 자유롭게 회전하도록 설정하고자 하면 아무 설정을 더 안 해도 되고

회전 조인트가 움직여야 한다면 6번에 했던 것처럼 해주면 됩니다.

저는 실제 테스트베드에 베어링이 들어가기 때문에 마찰계수를 입력해주었습니다.

 

그렇지 않으면 리커다인 안에서는 회전조인트가 급정지했을 때 멈추지 않고 영원히 진자운동을 할 것이기 때문입니다.

제가 사용하고 있는 베어링의 마찰계수(0.003)를 찾아서 입력해줍니다.

사용해본 결과 Dynamic Friction Coefficient에 입력해주면 됩니다.

Static은 어떨 때 영향을 주는지 아직 잘 모르겠네요..

 

8. 동역학 해석

모든 세팅을 마쳤으면 이제 해석을 합니다.

Dyn/Kin을 누릅니다.

 

8-1. End Time은 총 시간이고 (100초)

Step은 100초를 얼마나 잘게 나눠서 해석할 것인가 입니다. (100 스텝)

스텝을 많이 할수록 부드러운 해석 결과를 얻을 수 있지만 그만큼 해석하는 데에 시간이 많이 필요합니다.

 

8-2. 잠시 기다려주면 해석이 완료됐다는 알람이 옵니다.

화면 위쪽에 재생버튼으로 시뮬레이션 결과를 볼 수 있고,

재생 속도를 바꾸고 싶으면 밑에 Animation Control → Animation Delay에서 값을 조절하면 됩니다.

 

지금은 Time이 100, Step이 100이기 때문에 Animation Delay를 100으로 해주면 실제 시간과 같은 속도로 재생됩니다.

자신이 설정한 Time, Step의 비율을 보고 Animation Delay를 설정해주면 더 빠르게나 느리게 재생속도를 바꿀 수 있습니다.

 

아래 영상처럼 로봇이 예상대로 흔들리는 것을 확인할 수 있습니다.

 

9. 해석 결과 보기

화면 위쪽의 Result로 각 부품들의 위치, 속도, 가속도, 각도 같은 값들을 그래프로 확인할 수 있습니다.

 

저는 베어링의 회전 각도와 얼마나 오랫동안 흔들렸는지 시간이 궁금하기 때문에

Joint → RevJoint1 → POS1_Relative를 더블클릭해줍니다.

해석 그래프를 보면

흔들리는 최대각도는 12도 정도이고,

흔들림 지속 시간은 약93초인 것을 확인할 수 있습니다.

 

로봇의 움직임(Translate Joint)이나 마찰계수(Revolute Joint)를 바꿔가며 다른 해석 결과도 확인 해봅니다.

댓글