1 minute read



1.2.1 Solid Bar

4-bar mechanism을 구현해 보자. 먼저 bar가 필요하다. 길이 $\textrm{1 m}$, 너비 $\textrm{0.2 m}$, 두께 $\textrm{0.1 m}$라고 하자.

Simscape > Multibody > Body Elements > Brick Solid

Simscape5


Dimension은 reference frame을 기준으로 한 벡터 정보. 치수를 설정하고 F5를 누르면 업데이트된다. Inertia 항목에서 inertial parameter도 설정 가능.

Simscape6


이렇게 생성한 bar 이름을 Link1으로 변경. 기존의 파라미터 블록들과 연결해 준다. Run을 누르면 mechanics explorer 창에 움직이지 않는 Link1이 생성된다.

Simscape7



1.2.2 Frame Transformation - Rigid Frame

Transformation = Translation + Rotation


Simscape에서 좌표 변환을 구현하기 위해서는 Rigid Transform 블록이 필요.

Simscape > Multibody > Frames and Transforms > Rigid Frame

Simscape8

Simscape9



Link1의 reference frame은 world frame에서 $\textrm{0.5 m}$ 만큼 translation되어 있다. 따라서,

Simscape10



Simulink 상에서 Link1의 frame들을 나타내면 다음과 같다.


즉 $x$-축 방향으로 $\textrm{0.5 m}$씩 translation되고, 그 중앙에 link의 reference frame이 존재하는 모습.



1.2.4 Cylindrical Joint

Simscape > Multibody > Body Elements > Cylindrical Solid

반지름을 $\textrm{0.1 m}$, 높이를 $\textrm{0.1 m}$로 설정하자. 또, 이 부분은 링크의 운동에 영향을 주지 않도록 density를 0으로 설정.



Joint에 의해 회전하는 중심축의 방향을 $z$-축으로 하고자 한다. 그러려면 Link1의 양쪽 Rigid Transform 블록을 변경.


부호가 다른 이유는 Joint1에서 $\{R\}$로, $\{R\}$에서 Joint2로 바뀌기 때문.

물론, Joint1은 world frame과 연결되어야 하므로,




1.2.5 Subsystem과 Connection 블록

다수의 블록들을 드래그하고 우클릭. Subsystem으로 만들고 connection 블록의 이름을 바꿀 수 있다. Ctrl 키를 누르면서 드래그하면 블록이 복사된다.



Connection 블록의 파라미터 창에서 포트 위치를 바꿀 수 있다.





1.2.6 Revolute Joint


그러나 이 상태에서는 Run을 눌러도 link가 움직이지 않는다. Fixed 상태이기 때문. Joint에 자유도를 부여하기 위해 Revolute Joint를 연결한다.

Simscape > Multibody > Joints > Revolute Joint



Revolute Joint는 $z$-축 방향으로 joint를 회전시킨다. 이제 Run을 누르면 link가 잘 회전하는 것을 볼 수 있다.



1.2.7 Four-bar System

이제 네 개의 Link를 제작.

\[\textrm{Link1 : 1 m} \\ \textrm{Link2 : 0.4 m} \\ \textrm{Link3 : 0.8 m} \\ \textrm{Link4 : 0.8 m} \\\]

1-2-3-4 순으로 연결하고, 각 joint에는 Revolute Joint를 연결한다.



알아보기 쉽도록 Brick SolidGraphic 파라미터에서 색상을 바꿔도 좋다.

Link의 길이가 변경되었으므로, Rigid Transform의 Translation 길이도 바뀐 길이의 절반으로 줄여야 한다.