본문 바로가기

Software/MATLAB

SimMechanics에서 마찰(friction)력을 구현하기

요즘 MATLAB의 SimMechanics 기능을 테스트하는 것에 솔솔한 재미를 느끼는 중입니다. 어쩜 이리도 잘 만들었지??? 하는 뭐 그런 생각도 들고, 이건 이렇게 구현하는게 더 직관적일 텐데... 하는 아쉬움도 들고 ... 하여간 뭐 그렇습니다.^^

지난번에 간단히 진자(pendulum)의 움직임을 SimMechanics로 구현하는 것을 해 보았는데요. [관련글]. 여기서 조금 더 확장해 보도록 하겠습니다. 바로 마찰력의 문제인데요. 이 걸 고려하지 않았을때, 자유운동(초기각도를 준 상태에서)을 시켜보면 그 각도를 계속 움직인다는 것을 당연히 관찰 할 수 있습니다. 그러나 항상 그렇듯 이 마찰을 고려해야 하는데요.

문제는 SimMechanics를 처음 다루는 저로서는 마찰을 고려하는게 쉽지 않더군요.(응? 저만 그런걸까요??? ㅠㅠ) 아무리 애를써도, 그냥 Joint에 마찰?? 뭐 이런 옵션이 있었으면 참 좋았을텐데 말이죠.

그래서, 이것저것 해보다가 결국 더욱 아름다운 방법을 찾기 전까지는 오늘 소개할 방법으로 마찰을 구현할려고 합니다.


위 그림은 이전에 소개한 진자의 자유운동부분입니다. 그때와 달라진 것은 

Joint Initial Condition 블럭과 Normal Friction Actuator 블럭이 추가 되었습니다. Joint Initial Condition 블럭은 위 경우에는 초기 각도를 넣어주기 위해서입니다. 사용법은 워낙 간단해서 생략하구요.

Normal Friction Actuator를 보죠. 저 블럭은 Simulink Library에서 찾으면 나타나지 않습니다. 아니.. 저는 안나타나더군요...ㅠㅠ 저 블럭은 MATLAB Document에서 찾으셔야합니다.


소위 말하는 Help에서 Normal Friction Actuator라고 치면, 나타나는데요. 이 타이밍에 변명하나 해야겠네요. SimMechanics는 저도 처음 사용해보는거라 사실 많이 버벅거리고 있습니다. 실제 Joint Stiction Actuator를 사용하면 될 것 같은데, 희한하게도 계속 몹쓸 에러가...ㅠㅠ 그래서, 위에서도 말했지만, 좀 더 아름다운 방법을 찾을때까지(분명히 있을테니 말이죠..^^)는 그냥 Normal Friction Actuator를 사용할려고 합니다.^^

위의 Help에서 Static and Kenetic Friction Library를 열고 나타나는 문서의 오른쪽 상단에 있는 Open Model을 


을 눌러주면 됩니다. 혹은 command window에서 mech_friction이라고 입력해도 됩니다.


그러면 위의 창이 뜨는데요. 저기서 Normal Friction Actuator를 편집창에 가져와서 열어보면


위의 Show external actuation port을 체크하시면, 외부에 Force를 인가할 수 있습니다. 그리고, 정지마찰(Static friction coefficient)계수나 운동마찰(Kinetic friction coefficient)계수를 인가해주면 됩니다.


초기치 60도를 주고 자유운동을 했을때 그래프입니다. 일반적인 자유운동의 형태를 보여주고 있네요. 

걱정되는 것은 제대로 한 것일까요??? 사실 원래 동역학 모델과 비교하는 과정도 하고 싶었지만, 뭐~~ 게으름을 핑계로 넘어가겠습니다.



뭐 이렇게 되었습니다^^


반응형