본문으로 바로가기

서보제어 Servo Control

category Theory/ControlTheory 2011. 3. 14. 09:00
이 글은 Yorihisa Yamamoto의 29.Feb.2009에 MATLAB Central에 발표된[관련글]

NXTway-GS Model-Based Design Control of self-balancing two-wheeled robot built with LEGO Mindstorms NXT

라는 글의 Appendix A.3절. Servo Control의 내용을 발췌한 것입니다.

서보제어는 제어대상의 위치 기준값을 잘 추적하도록 디자인된 제어기법입니다. 그중 PID방식의 서보제어기법을 소개할려고 합니다.

위의 그림에 서보제어기법이 블록선도로 나타나 있습니다. K_f는 일반적인 제어기이고 서보제어를 위해 K_i가 추가된 것입니다. 위 블록선도가 어떻게 나타나게 되었는지를 보겠습니다.

먼저 위와 같은 시스템이 있다고 보고

dot_z를 정의해 두겠습니다.

또한 위와 같이 새로운 상태 bar_x를 정의하고

시스템을 다시 위와 같이 표현할 수 있습니다. 이때

시간이 많이 흘렇다고 보고 x_e, z_e, u_e를 정의해 둡니다.

또다른 식을 두고, 위의 식과 빼버리면

로 표현가능합니다.  

이렇게 일반적인 선형시스템으로 표현가능해진 상태에서 u_e는

이 됩니다. 애초 정의

를 이용해서 다시 표현해보면

이 됩니다. 이제 제일 위의 블록선도에서 제어입력 u를 찾으면

이 됩니다. 이와같은 서보제어기는 실제 밸런싱로봇과 같은 시스템에 적용해보면 조이스틱에 따른 움직임에 적용할 수 있을 정도로 성능이 괜찮습니다. 



댓글을 달아 주세요

  1. BlogIcon 핑구야 날자 2011.03.14 13:04

    오랜만에 어려운 상의 들어보네요,,활기찬 월요일 보내세요

  2. 재오리 2011.07.08 13:09

    안녕하세요 오랜만입니다.ㅋ

    서보 제어기를 밸런싱 로봇에 적용한다고 하셨는데

    이 경우에는 x의 값을 로봇의 기울기를 의미 하나요?

    아니면 바퀴의 회전각도를 의미 하나요?


    본문에서 보면 로봇의 조이스틱에 따른 움짐임에 적용한다고 하셨는데

    조이스틱으로 원하는 위치까지 이동하도록 바퀴의 회전각도를 조절해주는 것인가요? 아니면 로봇의 기울기를 변경시키는 것인가요?

    제가 부족한게 많아서 궁금합니다;;

  3. BlogIcon 공돌이 2015.05.31 22:36

    여기서 rx*ry*rz 를 전부 곱해서 나오는 회전변환 행렬은 뭔가요?? 이해가 안되네요

  4. 둥이공학 2020.12.09 23:26

    안녕하세요. 오래전 글이라 답을 남겨주실지 모르겠네요 ㅠㅠ ㅎㅎ

    혹시 처음에 에러를 정의하실때

    왜 x-xref 인가요? xref-x가 올바른 부호 아닌가요??

    무지한 저에게 한수 부탁드립니다. ㅠㅠ

    • BlogIcon PinkWink 2020.12.10 10:35 신고

      사실.. 그 부호는 의미가 없습니다. 이 후 전개를 어떻게 했느냐와 모델링을 어떻게 했느냐에 따라 바뀌는 것 뿐입니다. 두 항을 바꿔서 사용하고 싶다면 그렇게 전개해 가시면 됩니다.