이미 예전에 다루었던 Inverted Pendulum과 그냥 Pendulum은 같은 기구 구성을 가지고, 그래서 동역학도 거의 같습니다. 사실 비선형을 유도한다음 선형화 동작구간만 달리해주면 선형방정식은 그냥 만들어 집니다. 이전에 Inverted Pendulum을 다루면서 동역학 유도부분이 좀 약하지 않았나 하는 생각에 Cart형 Pendulum의 동역학 유도를 다뤄보겠습니다.


   Cart Pendulum (카트형 역진자) 개요 !  
 



위와 같은 카트형 펜들럼을 보겠습니다. 카트와 바닥사이의 마찰과 진자의 고정축사이의 마찰까지 고려되어있습니다. 이번엔 라그랑지방법으로 동역학을 유도해 보기로 하죠. 그럴려면 시스템의 운동에너지와 위치에너지를 고려해 주어야합니다.




   시스템의 운동에너지와 위치에너지 !  
 

 
카트는 수직방향으로는 기구적으로 막혀있어서 움직일 수가 없고, 수평방향 즉 x방향의 운동만을 하니까 위처럼 운동에너지를 잡아줄 수 있을 것입니다.

 
이제 폴의 운동에너지인데요. 좀 복잡해요.^^. 폴은 카트의 고정점에서 움직인 각도를 theta라고 할때, 무게 중심점의 x축 y축 성분을 위에 구해두었습니다.일단 그건 그렇다 치고 폴의 운동에너지는

 
위 처럼 무게중심점의 속도벡터를 이용해서 병진운동성분이 있구요. 회전하는 운동을 하기 때문에 회전모멘텀이 있다는 것을 알아두어야합니다. 각속도 omega를 이용에서 표현할 수 있습니다.

 
속도 벡터를 구하고 싶다면, 먼저 위치벡터를 구해서 시간에 관해 미분해주면 되겠지요.


위 그림에서 보면 폴의 무게중심점의 x축 방향과 y축방향의 거리 성분을 위치벡터로 각각 표현할 수 있게 될것입니다. (삼각함수라는 것의 소중함이죠^^)

 
그러면, 위와 같이 속도벡터를 구할 수 있게 됩니다. 이제 폴의 운동에너지를 구할 수 있겠군요.

 
속도 벡터를 대입하여 좀 복잡하지만 위와 같이 구할 수 있습니다. 


그러면 위처럼 시스템 전체의 운동에너지를 도출할 수 있습니다. 


운동에너지에 비하면 위치에너지를 정말 쉽습니다. 카트는 위치에너지가 없거든요. (기구적 차원에서) 그러니, 위 식처럼 폴의 y측 성분에 중력만 고려해주면 되겠습니다. 




   라그랑지 방정식 !  
 


위 처럼 라그랑지 방정식을 구할 수 있네요. 운동에너지와 위치에너지를 모두 구했으니 대입만 해주면 되겠습니다.^^

 
유명한 라그랑지....^^. 좌변의 ksi는 generalized force입니다. 우리가 고려하는 것은 x와 theta이므로

 
위와 같이 되겠습니다. 분명 마찰력과 알수없는 어떤 외란이 있겠지요.

 
위는 x축을 고려하는 것입니다. 위치에너지는 없었으니 뭐 신경쓸것이 없고, 편미분과 미분을 연달아 계산하는 것만 조심하면 됩니다.

 
다음은 theta를 고려하는 부분이지요.

 
이제 비선형 방정식이 도출되었습니다. 여기서 ddot_x와 ddot_theta에 대해 다시 정리해야합니다만... 전 귀찮아서 여기까지....ㅜ.ㅜ 대신 추가로 선형화까지는 한번 가보도록 하지요.... 




   선형화 !  
 

선형화를 할 때는 동작구간에 대한 설정이 필요합니다. 여기서 theta=0로 선형화하면 pendulum이 되고, theta = pi로 선형화하면, 바로 inverted pendulum이 됩니다.


위와 같이 동작구간을 잡고 테일러급수전개를 수행하면 되지요. 일차항이 나올때까지만 하면 됩니다. 왜냐구요? 선형(linear)이니까요....^^ 


끝났네요. 물론 다시 말씀드리지만, 두 번 미분한 항만 우변에 둬야하는데... 귀찮아서 안하는겁니다. 어디 발표하시거나 할때는 꼭 정리하셔야합니다. 혹시 이 자료를 리포트로 그대로 긁어서 제출할까바 걱정되서 하는 말은 절대 아닙니다^^.

 
초기치가 0라고 하고, 라플라스변환을 수행합니다. 뭐 다 상수들이니 어려울 것은 업지요.

 
그리고 정리하면 드디어 위와같은 아름다운 특성방정식이 나오네요...



이 자료는 Andrew K. Stimac이라는 분의 "Standup and Stabilization of the Inverted Pendulum"이라는 1999년 MIT공대에서 발표한 논문에서 필요부분을 발췌 정리한 것입니다.





http://pinkwink.kr/trackback/212 관련글 쓰기
  • White Rain 2009/11/06 18:58

    열심히 공부할게요^^
    추운 날씨 감기 조심하시고 늘 건강하세요.

    • PinkWink 2009/11/07 02:57

      헉... 여..여기다.. 댓글이... 달릴줄은 몰랐네요^^

  • 엘고 2009/11/06 20:01

    운동에너지를 얻는게 쉬운게 아니군요^^
    즐거운 시간되세요~~

    • PinkWink 2009/11/07 02:58

      네!!
      감사합니다... 엘고님도 즐거운 시간 되세요...^^

  • 아고라 2009/11/07 09:01

    흐흐. 정말이지 핑크윙크님이 아니면 제가 어찌 이런 프로페셔널 인텔리전트 컴플리케이티드 아카데믹한 곳에 댓글을 남겨보겠습니까. 기분이 좋네요. ㅎㅎ 미국도 감기/플루 유행입니다. 건강조심하세요 ~

    • PinkWink 2009/11/07 15:01

      히히... 제가 아고라님이 아니라면
      어찌 이리 심심한 글에...
      댓글 구경을 하겠습니까...ㅋㅋㅋ^^

  • gk 2009/11/07 09:11

    외계어 같아요.......ㅠㅠㅠㅠㅠ

    • PinkWink 2009/11/07 15:01

      그럼요.... 또 다른 언어가 맞긴 하죠...^^

  • 바람처럼~ 2009/11/09 00:26

    정리해서 올리시기 정말 힘드실텐데 대단하세요!

  • 공상 2010/08/19 02:50

    감탄을 하면서 보고있는 한 공대생입니다.
    보다가 여쭤볼게 있는데요.
    너무 초보적인 거 같지만 용기내서 물어봅니다.
    f(x) - fx * dot_x + dx 중간에 보면 이 식이 나오는데요.
    이 식이 왜 나왔는지도 모르겠고, f(x), fx * dot_x, dx
    각각이 뭘 의미하는지도 잘 모르겠네요.

    • PinkWink 2010/08/19 14:31

      f(x) - fx * dot_x + dx 에서
      f(x)는 카트의 바퀴(모터)에 의해 발생하는 힘이고
      -f_x*dot_x는 마찰력입니다.
      마지막으로 d_x는 알 수 없는 이유로 발생하는 외란입니다.

  • 아고라 2010/08/19 13:48

    아..저도 윗분님같은 질문을 해보고 싶습니다. ^^

    • PinkWink 2010/08/19 14:31

      음.. 저는... 어디어디 여행간 이야기들을 왕창올리고 싶어요^^

  • 김인식 2010/12/03 00:52

    matlab과 dspace를 연계한 pendulum simulation을 구현해 보고 싶은 공학도입니다. 사실 matlab 프로그램을 접한지 얼마 되지 않아 비슷한 내용의 글들을 찾아보며 공부하던 중 님의 블로그를 찾아오게 되었습니다.
    제가 알고자 하는 부분 역시 cart pendulum 이거든요ㅋㅋㅋ
    하지만 저는 input을 voltage를 이용해서 pendulum을 구현해보고 싶습니다. 시간이 가능하시면 지식을 좀 나워 주실 수 있는지요^ ^ ;

    • PinkWink 2010/12/03 01:35

      저의 보잘것없는 지삭을 나누는 것은 아무 문제가 없습니다.^^
      (나눠드릴 수 있다면..)
      그러나 지금은 시간이 허락하지 않습니다.
      현재 학위심사중이거든요...^^
      카트형 펜들럼의 역학방정식의 입력을 전압으로 둔것은
      http://pinkwink.kr/36
      에 있습니다.
      그런데.. dSpace를 사용해볼려는 목적에 펜들럼이 수단인가요?? 그게 아니라면... 펜들럼을 제어하는데 꼭 MATLAB이 실시간으로 들어갈 필욘 없는데요. MATLAB으로 구한 게인을 LabVIEW로 구현하는 분들도 많거든요.

  • dd 2011/06/17 16:45

    theta가 3에서 선형화 시키면 어떻게 되나요?

    • PinkWink 2011/06/17 16:46

      그럴때는 테일러급수전개를 직접 수행하면 될 것 같습니다.

  • 공돌 2011/06/18 13:26

    안녕하세요 블로그에서 많은걸 배워가는 학생입니다.
    위의 선형화과정에서 ml*sin(theta)(dot_theta)^2이 사라지는 이유가 궁금합니다.

    • PinkWink 2011/06/19 08:40

      sin(theta) = theta가 되니

      다시 적으면

      ml theta (dot_theta)^2 이겠네요.

      theta와 dot_theta 이렇게 상태 두개가 곱해져있는경우 테일러 급수전개로 확인해보시면 아시겠지만, '0'이 됩니다.

1 ... 11 12 13 14 15 16 17 18 19 ... 25