본문 바로가기

Software/MATLAB

SimMechanics를 통해 동역학 분석을 쉽게하자.

동역학을 해석하는 대표적인 방법은 뉴턴역학을 이용한 방법과 라그랑지 방법이 있습니다. 이 두 방법모두 개념을 잘 정립한다음 수학과의 싸움을 벌려야합니다. 그렇게 만들어진 모델을 MATLAB 같은 툴을 이용해서 시뮬레이션을 하기 위해서는 또 수식을 해당 언어에 맞게 변환을 해 주어야합니다. 이런 과정들 중에 실수가 있을 수 있고, 그 실수는 간혹 발견하기 어려울때가 있습니다.

오늘 소개해드릴 MATLAB의 한 기능인 SimMechanics는 역학적 해석을 수행할때, 좀 더 직관적으로 접근할 수 있으며, 간단한 조작으로 애니메이션도 수행할 수 있습니다.


항상 그렇듯 간단한 예제를 통해 소개해보도록 하지요. 위의 그림과 같은 단순 진자를 대상으로 하겠습니다. Rigid Body 하나와 조인트하나면 되겠죠?


먼저 simulink 라이브러리를 열어서 Simscape 안에 SimMechanics를 찾습니다.


그리고 그 안에 Bodies에 있는 Body, Ground, Env라는 블럭과


Joints라는 폴더의 Revolute라는 블럭,


Sensors & Actuators에 있는 Joint Sensor라는 블럭을


가져다 놓습니다. 아... 시뮬링크 기본 폴더에서 Scope도 하나 가져다 놓죠. 걔네들을


위에 보이듯인 적절히 돌려서(Ctrl+R) 위 그림처럼 배치를 합니다. 이러면 애초 계획과 비슷해 보입니다. 먼저 고정점(ground)을 하나 두고, 조인드(revolute)로 강체(rigid body)를 연결하겠다는 뜻이죠. 먼저 디폴트로 설정해서 보면 좌표계가


-y방향이 중력방향으로 설정됩니다. 어느 절대좌표계가 있고, 진자가 고정될 고정점을 (3,4,5)에 위치시키도록 하겠습니다.

Ground를 더블클릭하고


위 두군데를 설정합니다. Show Machine Environment Port는 ENV 블럭과 연결을 위해 port를 빼두는 것입니다.


그리고, Revolute 블럭을 더블클릭해서


센서를 달기 위해 Number of sensors에 1로 설정하시고, 회전을 허가하는 것은 z축중심의 회전이라고 알려줍니다.


그러면 위 그림까지 변경되었을 거구요

이제 Body라는 블럭을 더블클릭해서


디폴트로 CG, CS1, CS2가 있는데, 이중 CS2를 선택해서 지웁니다.


그리고, 질량과 이너셔를 입력합니다. 이 부분은 강체의 모양과 길이에 따라 결정되는 것인데, 대부분의 계산과정은 동역학책 제일 뒤쪽에 표로 나와있습니다. 그리고, CG와 CS1의 기본 좌표를 입력합니다. CS1은 위에서 설정했던 Ground에 조인트로 연결되어야하니 당연히 3,4,5의 좌표를 가져야겠지요.


그러면, 위 그림처럼 CG와 CS1의 좌표가 설정되었습니다. 무게 중심이 CG입니다. 강체의 길이는 이상적인 경우라면 두배가 되겠지요.


그리고, 위에 보이듯이 선을 연결하고, Joint Sensor를 더블클릭합니다. 선을 연결하지 않으면 Joint Sensor에서 아무것도 변경할 수 없습니다.


보고싶은 항목을 선택해주면 됩니다.


그리고, 시뮬레이션을 해서 scope를 확인해보면 나타난 결과입니다. 아 그리고, 90도가 수직방향입니다. 여기까지만 해도 사실 대단한 겁니다. 복잡한 수식의 전개없이 시뮬레이션이 가능해지니까 말이죠.

이번에는 이상태에서 애니메이션을 한번 구경해야죠^^


Simulation 메뉴의 Configuration Parameters를 선택하고 나타난 창에


좌측 하단에 보면 SimMechanics를 선택하면


나타나는 위 항목 두개를 선택해줍니다. 그리고, 시뮬레이션을 다시 하면


위의 창이 뜨기는 하기는 하는데, 뭔가 이상할 겁니다. 그건, CG와 CS1을 점으로 표현하기 때문인데요. 위에 표시된 동그란 모양에 줄무늬가 있는 아이콘을 누르고, 그 위의 FIT아이콘을 눌러서 다시 시뮬레이션을 해보시면


위와 같이 진자로 나타납니다. y축이 위로 향하게 두셔야 흔들리는듯이 보입니다. 위에 표시된 아이콘을 누르면 전체 움직임을 관찰하기 쉽도록 화면을 정절히 잡아줍니다.


아마 대체로 너무빨리 시뮬레이션이 수행되어서 난감하실텐데요. 그럴때는 Simulation 메뉴의 Control Animation Speed를 눌러서


저부분의 수치를 크게 잡아주면 시뮬레이션 속도가 떨어집니다. 그리고, 카메라 모양의 아이콘을 누르시면, AVI로 녹화도 됩니다.


반응형