본문으로 바로가기

 로터리 역진자 시스템은 여러가지 펜들럼 시스템중에서 구동부인 모터를 적용하기에 가장 편한 시스템입니다. 이유는 모터가 회전(물론 리니어 모터도 있지만)하는 놈이니까 그에 맞춰서 적절히 기어만 달아주면 되기 때문입니다. 그러나 로터리역진자는 그 폴이 넘어지는 방향이 직선이기 때문에 암과의 조인트부분을 좀 튼튼히 만들어줄 필요가 있습니다. 그렇게 하더라도 방향전환시 카트형에 비하면 접선 방향으로 좀 많은 충격이 나타납니다. 또한 로터리 펜들럼은 카트형에 비하면 상대적으로 작은 크기로 만들어 낼수도 있습니다.


위의 그림을 보면 폴(Pole)이 있고 그 각도를 측정하는 엔코더가 있습니다. 쓰러지는 폴을 잡기 위해서 암(Arm)이 있고 암을 구동하는 엔코더 내장형 모터가 있습니다. 제어의 용이성을 위해 폴 반대편에 무게추를 설치했습니다. 뭐 전형적인 로터리 펜들럼 그 자체이지요.


위 그림은 실제 제작된 펜들럼입니다. 이 작품은 2005년에 제가 지도대학원생으로 참여한 실험실 학부논문조가 만든것입니다. 이제 이 모델에 대한 동역학 방정식을 구해야겠습니다.


전체 기구부에서 암을 고정 시키면 폴만 운동하게 될텐데 그걸 간략히 표현한 것이 위의 그림입니다. 이 운동은 단진자 운동으로 간단히 생각 할 수 있게 되는데요. 폴의 질량이 균일하게 분포해 있다면, 폴의 중심에 그 무게중심이 위치하게 될것입니다. 그걸 Newton Method로 표현하면


입니다. 물론 로터리 펜들럼은 폴과 암의 운동이 연관이 있으니 그 것도 간단히 다이어그램으로 표현하면


이 됩니다. 여기서 각 인자는


입니다. 폴과 암의 조인트에 가해지는 수평 방향의 합력은 폴의 무게중심의 수평방향으로의 이동거리의 힘과 등가로 볼 수 있습니다. (F=ma)


그것으로 위와 같은 수식을 또한 얻을 수 있습니다. 폴과 암의 조인트에 가해지는 수직방향의 힘도 같은 방법으로 찾게 되면


이 됩니다. 먼저 암의 회전운동에 대한 운동방정식은


이고, 폴의 회전운동에 대한 방정식은


이 됩니다. 위 두 식을 연립하여 풀면


을 구할 수 있게 됩니다. 위 식은 비선형방정식이고 동작점 부근에서


로 선형화하면


를 얻게 됩니다. 여기서


로 치환하면


좀 간단히 표현할 수 있습니다. 이제 상태변수 모델로 표현하기 위해


상태를 잡고,


의 형태로 표현하면


각 행렬들은 위와 같습니다.

 회전 이너셔(Inertia)를 찾아야하는데요. 일단 이론적으로 도출해도 될겁니다만, 그 과정을 한다하더라도 실제와의 일치 여부를 찾아야하니까요. 우리는 그냥 실험적으로 도출해 보도록 하겠습니다.

 위의 그림과 같이 암을 고정시키고, 간단히 포텐셔미터를 하나 연결해서 폴의 흔들리는 각도를 잡기로 합니다.


그렇게 데이터를 얻은다음 (실제론 DAQ보를 통해 LabView로 데이터를 얻었습니다. ) 간단한 단진자 운동의 경우, 자유운동을 시킨 그 결과에서 흔들리는 주기는 이너셔가 결정하고, 피크포인트의 감쇠는 마찰계수가 결정하게 됩니다.


46도에서 놨을때의 운동결과입니다. 이를 가지고 폴의 이너셔와 마찰계수를 맞춰낼수가 있지요. 측정값은 Jp=0.0364, =0.002, lmg=0.6724 입니다.


위 그림처럼 폴의 이너셔와 마찰계수를 알게 되었으니까 전체적으로 암까지 같이 흔들어서 그 데이터를 획득해서 암의 이너셔와 마찰계수를 잡습니다.


실험 블럭선도입니다.




위와같이 데이터들을 얻어서


라는 결론을 냈습니다. 이제 이번 로터리 펜들럼에서 모르는 계수는 없다고 보시면 됩니다.



이제 모터를 수식화 시켜야겠네요. 위의 수식입니다. 여기서 전기자 인덕턴스 La는 초기 과도 상태에서만 영향을 미치므로 생략하고


전류에 대해 전개한다음 발생토크의 식을 다시 대입하여 로드토크에 관해 정리하면


으로 표현됩니다. 여기서 우리가 필요한 토크, 즉 모터에서 발생시켜야할 토크는


으로 나타납니다.


위에서 사용된 계수들의 정의입니다. 이를 대입하여 다시 비선형함수를 정리하면


이 됩니다. 물론 또 선형화도 수행해보기 위해 모터쪽에서 기어의 이너셔와 마찰계수는 전체 기구에 비하면 너무 작기때문에 무시하고 다시 선형화를 수행하면



이 됩니다. 두 미분방정식을 상태변수모델로 표현하기 위해


로 두고 선형화된 방정식을 다시 간단히 하면


입니다.


위와 같은 형태의 상태변수모델을 만들수가 있구요


각 행렬은 위와 같습니다.


실측된 파라미터들입니다.


모터쪽 파라미터들이구요


이렇게 해서 상태행렬들을 모두 구했습니다.


이제 이전에 했던 카트형펜들럼에서 적용되었던 LQR방식을 사용하기 위해 Q,R행렬은 위와 같이 표현합니다.


그렇게 해서 도출된 제어 게인입니다.


MATLAB/Simulink에서 시뮬레이션 하기 위해 작성된 블럭입니다.




그 결과는 위 동영상에서 직접 확인하시면 되겠습니다.^^.


댓글을 달아 주세요

  1. 이전 댓글 더보기
  2. 키아 2009.11.13 21:47

    정말 멋지네요...

    렙뷰로 구현하고 싶은데 어떻게 해야할지 막막합니다..

    렙뷰로된 예제 소스를 공개해주실수 있나요??

    감이 안잡혀서... 도움 부탁드립니다.

    아니면 matlab simulink가 안보여서그러는데 소스좀 받을수 있을까요...

    hillsing@nate.com

    • BlogIcon PinkWink 2009.11.15 15:31 신고

      음... 이상하네요... 전 LabVIEW로 구현하질 않았답니다. 저 모델은 DSP2812를 사용해서 구동시킨거랍니다. 댓글중 저의 답변으로 있는 LabVIEW에 대해 언급한것은, 가능하다는 이야깁니다. 제가 했다는 것이 아니라^^ 그러니 소스가 없지요^^. 하지만, 가능하다는 것을 압니다. 왜냐면 필요한 기능들이 다 있기 때문이지요^^ 어려운 발걸음하셨는데 도움이 되질 못해 죄송합니다^^

  3. 키아 2009.11.16 22:57

    아 좋은정보 감사합니다.. 귀찬게 해서 죄송합니다matlab의 simullink 사진들이 잘 안보여서 그러는데.. 큰사진이나 자료를 좀 받아볼수있나요..? 혼자 공부하는데 너무 힘들어서..ㅠㅠ 부탁드립니다..hillsing@nate.com 부탁드립니다..^^*

    • BlogIcon PinkWink 2009.11.17 08:30 신고

      ㅎㅎ.. 이거 너무 오래되서 아마 Simulink화일로는 제가 안가지고 있지 않나 하는 생각이 드는데요^^ 사진이 그리 작진 않은데... 동역학을 그대로 옮겨놓은 것입니다...^^
      혹시 찾게되면 mdl화일을 올려놓겠습니다...^^

  4. 키아 2009.11.17 13:47

    부탁드립려요 꾸벅 ^^

  5. 소류 2010.04.06 17:22

    ^^ 방명록에 글남기신거 보고 이리로 후닥 달려와 댓글 남깁니다..ㅎㅎ

    현재 모터선정부터 다시 진행하게 되어서요..ㅠㅠ

    혹 저 펜듈렴을 구현하실때 사용한 모터 스펙을 좀 알수 없을까요? 모터의 토크가 필요한데.. 아담스로 구한 값이 좀 맞지 않는듯 해서요..ㅠ

    부탁드립니다..ㅠㅠ

    • BlogIcon PinkWink 2010.04.07 11:53 신고

      네.. 저희는 스펙이 상대적으로 정확하다는 맥슨 모터를 사용했습니다.
      자세한 사항은

      http://shop.maxonmotor.com/ishop/app?language=en&country=INT

      를 보시면, 각 사양별로 모터의 상세스펙이 나타나있습니다.

  6. netjin 2010.06.24 02:08

    안녕하세요!
    좋은 내용 잘 봤습니다. 감사드리구요. 동영상 깜놀입니다.^^
    한가지 질문은, 상당히 좋은 성능을 보이고 있지만 역진자 되었을 때, 좀 더 정밀하게 제어되는(덜 흔들리는) 시스템을 만들려면 어느부분에 개선여지가 있을지요?
    문득 세그웨이의 완벽한 제어가 생각이 나서 어설픈 질문을 올려봅니다.

    • BlogIcon PinkWink 2010.06.24 15:56 신고

      ㅎㅎ .. 현재 이 포스팅에서 보여주는 동영상은

      설계된 기구부의 동역학을 해석하고
      LQR 제어기를 구한다음

      그대로 적용한 것입니다.

      동역학이 실제와 좀 다를 수 있어서 (마찰 같은)
      실제 시스템과 동역학이 근접할 수록 제어성능은 더욱 좋아집니다.

      물론 약간의 튜닝을 할 수도 있습니다.
      또.. 기구적으로 좀 더 정교하게 만들어도 되겠지요. 기어를 구성하는 부분 같은 곳이 약간 덜컹거리거든요^^

  7. BlogIcon 재오리 2010.06.28 15:01

    LQR 제어기에서 Q,R행렬의 선정은 어떻게 하는건가요?
    임의로 선정하시는 건가요? 어떤 내용을 공부하면 알 수 있습니까?

    • BlogIcon PinkWink 2010.06.28 15:53 신고

      Q 행렬은 상태에 대한 가중치를 R은 제어입력의 크기정도를 설정하는 것으로 이는 제어기를 설계하는 사람이 상황에 맞게 설정하면 됩니다.^^

  8. BlogIcon 재오리 2010.06.28 16:03

    그렇군요. 그럼 Q,R행렬도 PID 튜닝처럼 trial & error 방식으로 찾아가야하나요. 핑크윙크님은 어떤 식으로 설정해 가시나요? 언제나 많이 배워 갑니다.

    • BlogIcon PinkWink 2010.06.28 16:45 신고

      일단 상태의 순서가 (x x_dot theta theta_dot) 이라고 하죠. x는 암의 각도, theta는 폴의 각도. 그러면 일단 뭐니뭐니해도 역진자는 폴을 잘 세워야죠. 그래서 theta의 가중치를 가장 높게 줘봅니다.
      Q의 주 대각선상에 (10 1 50 1)이런식으로 말이죠. 그리고 테스트했더니, 생각보다 큰 폭으로 움직인다는 것을 알았다면 미분쪽 가중치를 좀 더 주는거죠.
      (10 2 50 2) 이렇게...^^

  9. 2010.06.28 17:14

    비밀댓글입니다

    • BlogIcon PinkWink 2010.06.28 17:30 신고

      어이쿠... 고맙습니다.. ㅎㅎ
      (선배라고 밥사달라고 하시면 안됩니다... ㅋㅋ)

      그러나... 역시 문제는 우리의 실력인것 같습니다.
      주위환경은 그 다음에....^^
      오늘도 화이팅입니다^^

  10. yhlee 2010.08.30 15:47

    안녕하세요. 로터리 펜듈럼을 연구하고 있는 학생입니다.

    어려운 연구를 멋지게 성공하셨네요. ^^

    궁금한 점은 Arm의 극관성 모멘트와 마찰을 구할 때

    Pole을 장착한 상태에서 실험을 하셨느지, 아니면

    Pole을 분리하고 실험을 진행하셨는지 궁금합니다.

  11. yhlee 2010.08.30 21:27

    제가 위에 질문에 오타를 쳤네요..극관성모멘트가 아니라 질량관성모멘트인데...ㅠ.ㅠ
    답변 감사합니다. 한 가지 더 여쭤볼게요.
    Arm의 질량관성모멘트와 마찰을 구할 때
    Arm만을 따로 분리하여 실험을 하셨는지요.
    현재 엔코더와 연결이 되어 있어서요...ㅠ.ㅠ

    • BlogIcon PinkWink 2010.08.31 09:26 신고

      네.. 엔코더는 암에 장착되어있어서 그대로 두고, 진자는 제거하고, 흔들어서 진자와 동일한 실험을 수행했습니다. 아 눞혀서요^^

  12. yhlee 2010.10.26 10:28

    안녕하세요. 로터리 펜듈럼에 대해 공부하고 있는 학생입니다. 현재 PinkWink님께서 하신대로 따라서 제작하고 조립해서 Pendulum을 직접 만들었습니다. 그러나 control을 어떻게 해야할지 전혀 모르겠네요. 11월 말까지 완성을 해야하는데 큰일 입니다. 혹시 세미나 같은거 해주실 수 있나요? 사례비는 충분히 드리겠습니다. 감사합니다.

    • BlogIcon PinkWink 2010.10.26 10:50 신고

      제가 무엇을 도와드릴수있는지... 명확하게 잘 모르겠습니다.
      원하시는 것이 정확히 어떤부분인지
      (아니면 그냥 로터리펜들럼의 처음부터 끝인지...^^)
      그리고 외부세미나를 몇번 나갔었습니다.
      외부세미나를 해드리는건 큰 문제가 아닙니다만...
      제가 있는 곳부터 얼마나 멀리 있는가는 좀 중요하겠는데요...^^

  13. yhlee 2010.10.26 11:44

    답변 감사합니다. 저희가 원하는 것은 Control 부분입니다. 말씀드린대로 조립은 다 해놓았습니다. 물론 부족한 부분은 있겠지만요^^; 제가 있는 곳은 국민대학교 입니다. 평일이 어려우시면 주말에도 괜찮습니다. 많이 바쁘시더라도 부탁 드립니다. 제 메일 주소 가르쳐 드리겠습니다. 메일로 답변 주시면 앞으로 메일로 말씀드리겠습니다. 저희가 가지고 있는 장비에 대해서도 설명드리고 싶고요. 그래야만 부족한 부분을 보완하니까요. 감사합니다.
    yhlee@kookmin.ac.kr

  14. 공돌이 2011.01.04 18:33

    팬들럼의 부하관성 모멘트 관련 질문입니다.

    안녕하세요, 팬들럼의 부하관성 모멘트를 측정할려고 하는데요, flywheel 이나, hoisting application 중 어떤 것을 선택해서 가속토크를 구해야 할까요... 그리고, 부하관성 모멘트를 구하는 공식에 대해서도 조금 알수 있을까요?!

    • BlogIcon PinkWink 2011.01.05 12:23 신고

      제가 학부때 동역학을 배우긴했지만 당시엔 관심이 없었고(ㅠㅠ), 대학원에 들어와서 동역학은 거의 독학으로 한거나 마찬가지라... 말씀하신 flywheel이나 hoisting이 무엇인지 잘 모르겠습니다.ㅠㅠ 특히 부하관성모멘트라는 것은 무엇인가요? 이너셔를 말씀하시는 것인가요? 만약 이너셔를 말씀하시는 것이라면 대부분의 동역학책에 이너셔를 구하는 공식이 소개되어 있답니다. 형태에 따라 조금씩 다르지요. 제가 이 글에서 이너셔를 구하는 것은 공식이 아니라 본문 중간에 있듯이 펜들럼을 흔들어서 실제 측정을 통해 구했습니다.

  15. BlogIcon mark 2011.04.30 15:17

    ㅎㅎ 솔직히 저는 너무 어려워 모르겠네요. ㅜ.ㅜ

    • BlogIcon PinkWink 2011.05.01 07:18 신고

      헉.. 꼭.. 이런글에는 응답하시지 않아도... ㅎㅎㅎ^^
      오늘은 황사가 심하다고 하니...
      좋아하시는 산에는 오르실 수 없겠습니다.^^

  16. 2012.11.17 15:03

    비밀댓글입니다

    • BlogIcon PinkWink 2012.11.18 16:04 신고

      조금 독특한 상황을 제외하면 전 메일로는 답변을 드리지 않습니다. 처음부터 끝까지 모든것을 알고싶으시다는 말씀과는 달리 그저 처음부터 모든것을 어디선가 얻고싶다는 말로 들리네요. 역진자는 아주 오래된 주제로 조금만 구글링을 해보면 정말 많은 자료를 얻을수있답니다.

  17. BlogIcon Mechiz 2014.11.26 19:01

    암의 각도. 즉 모터에 달린 엔코더가 없으면 불가능한가요?

    • BlogIcon PinkWink 2014.11.27 08:31 신고

      꼭 엔코더일 필요는 없지만...
      암의 각도를 측정해서 암의 각도에 대한 제어기까지 설계하면 폴이 아주 잘 쉽게 제어됩니다.

  18. BlogIcon 김정우 2015.04.21 12:55

    안녕하세요 글에서 많은 도움 얻고 갑니다!

    혹시 사용하신 포텐시오미터 스펙(모델명 등)을 알수있을까요?

    • BlogIcon PinkWink 2015.04.21 21:57 신고

      네.. 오토닉스의 제품이었습니다. ^^

    • 김정우 2015.04.22 17:00

      오토닉스 제품을 살펴봤는데 엔코더 제품밖에 없습니다 ㅠㅠ

      포텐시오미터가 아니라 엔코더를 사용하신건가요?
      엔코더를 사용하셨다면 http://pinkwink.kr/70 에서 언급해주신 모델을 사용하신건지 한번더 문의드립니다.

    • BlogIcon PinkWink 2015.04.22 22:31 신고

      오래전입니다만.... 본 글에서도 엔코더로 이야기하고 있네요.
      뭐 아무튼.. 네 ~/70번 글에서 이야기하는 그 엔코더인듯합니다.ㅠㅠ. 오래전이라~ㅠㅠ 요즘은 좀 더 작고 노이즈에 강한 아이들이 더 많이 나왔을건데요^^

  19. 신승원 2015.07.27 14:56

    안녕하세요. 블로그 포스팅 보면서 많은 정보를 얻고 있습니다. 학부에서 학우들과 모여서 제어 졸업작품으로 도립진자 시스템을 만들려고 하는데요. 프로그래밍적인 부분은 여기 홈페이지에도 잘 정리되어 있고, 교수님께 도움을 구할 수도 있어서 어느 정도 해결이 될 것 같은데, 시스템 몸체부를 구성하기가 정말 막막하네요. 필요한 재료가
    (1. 엔코더 2. 프로세서 3. 모션 컨트롤러 4. 드라이버 5. 모터 6. 파워 7. 막대 8. 추 9. 지지대 ) 가 필요한 것으로 알고 있는데, 제품 세부적인 스펙과 어떤 것들이 호환 가능할지를 맞추기가 너무나도 어렵네요.
    직접 산업 전자 상가로 몇 번 돌아보면서 질문하고, 오토닉스 사에 전화로 문의도 해봤지만 모두 세부적인 스펙과 호환성을 결정해서 다시 연락 달라고 하시더군요. 부품 스펙을 결정할때 무엇을 고려해서 구입해야 할까요?
    또, 역진자 제어는 제어분야에서 가장 기본적으로 다루는 부분이라고 말씀하셨는데 이런 <부품과 기구부>를 자주 판매하는 상담가능한 회사 같은 곳이 없을까요? 알고 계시다면 연락처를 좀 공유해주셨으면 하는 바램입니다.

    긴글 읽어주셔서 감사합니다. 답변을 기다리겠습니다. ㅠㅠ

    • BlogIcon PinkWink 2015.07.30 13:08 신고

      직접 선정해야합니다.ㅠㅠ.
      원하는 형태의 기구부를 찾거나 만들고, 모터도 선정하고... 그리고 그에 맞춰 엔코더도 선정하구요^^. 그런데 여기저기 뒤지다 보면 지금은 모르겠는데 그때는 기구부를 판매하는 곳이 있더라구요.. 그것도 딱 맞지는 않아서 여기저기 뜯어 고쳤었습니다.^^

  20. 신승원 2015.09.09 11:08

    선형화한 상태변수 모델 A벡터에서 3행3열과 4행3열에 있는 Kv는 무슨 파라미터인가요?

  21. 한공대 2017.03.25 20:54

    pinkwink님... theta '는 각속도인 w를 말하는 건가요? theta''은 각가속도 a이구요? 잘 몰라서 질문드립니다