분명 여름인데... 비가오면서 그런건지 요즘 덥지가 않네요. 지금 시간이 밤 10시가 넘었는데, 제가 있는 건물 1층에는 내일 국제생물올림피아드대회 준비로 많은 사람들이 분주하게 움직이고 있네요.
오늘은 리액션휠에 대한 이야기를 할려고 합니다. 사실 이 부분은 참 창피한 이야기인데요. 아주 예전에 리액션휠에 대해 이야기를 했었습니다.[관련글] 그런데 이 때 제가 동역학을 잘 못 유도한 것을 알고 다시 수정본을 포스팅[관련글] 했는데요. 큭... 그것 마저 잘못되었더군요. 그래서 다시 합니다. 두 번째 포스팅 당시 sdfzz님의 질문에서 시작된 의문 덕분에 잘못된 것을 알았지요. 그 후 차일피일 미루다가 이렇게 다시 공부한 결과를 올려놓네요...
먼저 의문점의 시작을 이야기해야겠습니다.^^
이 책은 "The reaction wheel pendulum"이라는 책(이하 참조A)에서는
여기서
위의 운동에너지 부분이 마치 단순히 theta와 theta_r 즉, 막대기와 휠의 운둥에너지를 다룬듯이 보이고,
라그랑지안 방정식에서 모터의 토크가 두 상태에 다른 방향으로 인가된다고 설명하고 있습니다.
이제 또다른 참조
"Non-linear control for Underactuated Mechanical Systems"와
"Nonlinear control of the Reaction Wheel Pendulum"
위 두 참조 문헌(이하 참조B)에서는
위에서
운동에너지를 고려할때, 참조A와 다른 모습을 보여주고 있는듯 보입니다.
그리고, 마지막 단계, 라그랑지방정식에서 외력을 한쪽에만 모터토크가 들어가는 듯 모이는데요.
마치 다르게 유도된듯이 보이는 것이 당시 가졌던 의문입니다.
정리하면,
참조A는 운동에너지를 직선운동에너지와 회전운동에너지로 두고 있는데, 이때, 회전운동에너지는 단순히 두 물체(막대기와 휠)의 회전력만을 고려했고
참조B는 회전운동에너지를 고려할때, 참조A와는 달리 뭔가 하나 더 들어간듯이 보인다는 겁니다.
또한,
참조A는 라그랑지 방정식의 결과식에서 외력을 두 상태 모두에 인가를 했고,
참조B는 휠을 구동하는 모터 토크는 휠의 상태 q_2를 유도한 식에만 인가되어있다는
것으로 보이는 겁니다.
이제, 달라보이는 두 동역학유도과정을 비교해보겠습니다. 방법은 참조A를 변형하는 것인데요. 참조A의 치환된 문자들을 대입해보겠습니다.
위 그림에서 참조A는 두 각 theta와 theta_r을 모두 절대좌표계의 각도로 보고있습니다.
그래서, 참조A의 라그랑지 방정식 결과식에 위와같이 대입합니다. theta는 phi로 theta_r은 막대가 움직인 phi에 휠이 돌아간 phi_r을 더한 것으로, 나머지는 참조A가 본문에서 밝힌대로 본래의 치환을 돌려놓는 것입니다.
일차적으로 위와 같이 정리가 됩니다. 이를 참조B처럼 만들기 위해 모터 토크 tau를 다시 대입해서
이렇게 만들어 볼 수 있습니다. 이 결과를 참조B와 비교하면
이렇습니다. 같네요. 즉, 참조A와 참조B의 동역학은 같은 식입니다. 여기서 위치에너지를 의미하는 부분 중력가속도 g가 있는 부분의 부호는 좌표원점을 어디로 보고, 초기상태를 어떻게 보았느냐의 차이라 달라도 다른게 아니라는...^^
즉, 단순히 눈으로보면 달라보이는 동역학이 사실 같은 동역학이라는 것이 중요합니다.
결국
참조A는 막대와 휠의 각도를 절대좌표에서 바라본것이고
참조B는 막대의 각도는 절대좌표에서 본 것이지만, 휠의 각도는 막대를 기준으로 본 상태좌표입니다.
결국 최초로 저에게 리액션휠의 동역학 분석을 질문하셨던, "정문님"님과 그 후 저에게 질문을 하셨던 "sdfzz"님 덕분에 제가 라그랑지 방법을 통한 동역학 유도에서 잘 못 알고 있던 부분, 혹은 고민하지 않았던 부분에 대한 고민을 하게 해 주신거라... 감사의 말씀을 전하고 싶습니다.^^.
하여간, 결론은
라그랑지 방법을 이용한 동역학 유도에서 각 상태를 절대좌표계에서 보는가 상대좌표계에서 보는가에 따라 조심스럽게 접근을 해야겠네요.
이제 다시, 저만의 것으로 만들기 위해 저도 따로 유도를 하겠습니다.
위 그림에서,
위치벡터와 그에 따른 속도벡터에서 운동에너지와 위치에너지는
와 같습니다. 여기서 theta_2는 막대에서 본 상대각도입니다. 그러므로 운동에너지는 직선운동성분과 회전운동성분인데, 이 중 회전운동에너지는 theta_1에 대해서는 일반적인 상황과 같지만, 휠의 회전운동은 theta_1의 속도와 theta_2의 속도의 합에 대해 기술해야하는 것입니다.
그럼 위의 라그랑지안이 나타나는데요
이 후 유도를 위해 좀 정리를 다시하고, theta_1에 대한 라그랑지 방정식은
이렇습니다. 여기서 외력은 '0'입니다. (마찰 무시) theta_2에 대한 라그랑지 방정식은
이렇습니다. 여기서는 모터의 토크가 외력으로 고려됩니다.
이렇게 해서, 리액션휠의 동역학의 라그랑지방정식을 얻었네요. 음... 이쯤이 결론이지 않을까하는데요^^
요즘 논문준비로 너무 바쁘게 보네는데, 큰일입니다. 밸런싱로봇 이야기도 해야하는데 말이죠.. ㅎㅎ
'Theory > ControlTheory' 카테고리의 다른 글
서보제어 Servo Control (8) | 2011.03.14 |
---|---|
정보를 담고 있는 좌표계에 회전행렬을 적용하는 방법 (20) | 2011.01.18 |
회전형 역진자 시스템의 동역학 Rotary Inverted Pendulum (14) | 2010.12.27 |
Reaction Wheel Pendulum. 리액션 휠 펜들럼의 동역학 유도과정 (최종) (42) | 2010.07.14 |
Reaction Wheel Pendulum. 리액션 휠 펜들럼의 동역학 유도과정 수정 (6) | 2010.06.15 |
Reaction Wheel Pendulum. 리액션 휠 펜들럼의 동역학 및 시뮬레이션 (26) | 2010.05.14 |
T-S 퍼지를 기본으로 한 선택적 선형화를 이용한 Two-Rotor (VTOL) 시스템 제어 (4) | 2010.04.19 |
부유체 위의 크레인 제어기 설계 - 2. 외란제거를 통한 선형화 (2) | 2010.03.02 |
어느새 최종인가요,, 잘모르는 불량한 학생으로 그동안 잘배웠어요,,ㅋㅋ
감사합니다.
-_-;; 저도 바빠서(믿거나 말거나) 한동안 못들어 와 봣는데 이렇게 정리해 주셔서 정말 감사합니다.
많이 배우고 가고요, 앞으로도 좋은 포스팅 부탁드립니다.
저도 여기 와서 가끔 글을 읽었는데, 이렇게 댓글 쓰는건 처음이네요^^
잘 읽었습니다. 여기 블로그가 많은 도움이 되요~
안녕하세요~ 질문이 있어서요 ㅎ
결론으로 나온 두 식에서 theta2에 대해서는 소거해버리고 theta1에 대한 식으로 나타낼 수 있다면,
두번째 식의 토크는 제어입력이 되는건가요?
그렇다고 한다면, 토크를 어떤식으로 제어해야 할까요?
보통 모터는 각속도를 측정하는거 같던데 말이죠..
제가 아직 라그랑지에 대한 지식이 전혀 없어서 질문 드립니다.
결론으로 나온 두식이 차이가 먼가요??
두번째식은 토크에 관한 식인건 알겠는데, 첫번째 식은 멀 의미하는지 정확하게 모르겠네요 ㅠㅠ
안녕하세요 ! reaciton wheel을 이용해서 자세제어 하는 로봇을 만들어 보려고 하는 학생입니다.
막연하게 Matlab을 이용해서 하고싶다 ! 라고 생각이 들어 Pinkwink님의 블로그를 정독하고 있는 중입니다..
reaciton wheel 관련된 내용은 이 글밖에 없고, 세그웨이 만드실 때 시뮬레이션 하셨던 것 처럼 하려고 해도
회전 중심점? 이 달라서 어떻게 적용해야 하는지 감이 안옵니다 ㅠㅠ
질문을 정리하자면...reaction wheel을 이용해 균형잡는 로봇을 만드려면 어떤 글을 참고해야 할까요 ?..
그리고 혹시 reaction wheel을 이용한 균형잡는 로봇을 만드실 계획은 없으신가요 ?ㅠㅠ
그러면 다른질문 드릴게요 ㅠㅠ
위의 식에서 토크가 모터의 토크라고 하셨는데, 모터의 토크를 DC모터 방정식을 통해 얻은 값을
바로 넣는건가요 ?? 그러면 안되지 않나요 ..?? 리액션 휠은 휠의 원심력의 힘을 받아 작용하게 되는건데
그렇다면 원심력까지 고려한 DC모터 방정식을 새로 구해야 하는건가요 ?? 답변 부탁드립니다 ㅠ 너무 어렵네요 ...
질문 1. 이 식을 선형화를 진행할 때, theta 2를 소거하여 theta 1에 대한 식으로 바꾸고
선형화를 진행시켜야 하나요 ...???
질문 2. inverted pendulum의 경우 선형화를 진행할 때 theta = phi로 두고 하던데, 그러면
theta_1을 phi로 두고 계산하면 되는건가요?? 감이 잘 안와서 모르겠네요ㅠ
답변해 주셔서 감사합니다 !
어렵고 모르는거 투성이지만 그래도 한발짝씩 나아가고 있는거 같네요 ㅎㅎ
하나더 질문드릴게요.. 선형화 할 때 위 식에서는 sin(theta_1)밖에 바꿀게 없으므로 sin(theta_1) => pi - theta_1 으로 바꾸면 되는건가요?
현재 몸체 관성모멘트는 진자운동 동역학을 사용하여 진자운동 실험을 통해 구하고,
휠의 관성 모멘트와 모터간 마찰계수는 직접 모터를 돌려 구할 예정입니다.
진자운동 동역학 식으로 몸체의 관성 모멘트를 구하면서 지면과의 마찰을 무시할 수 없더라구요....
만약 이 식에서 만약 지면과 몸체간의 마찰계수를 추가한다면, 어느 부분에 해아 할까요 ..?
http://pinkwink.kr/319 에 나와있는 진자운동 식을 이용해 몸체의 관성 모멘트를 구하려고
합니다. 여기에 나오는 마찰계수를 무시할 수 없을거라 생각되는데, 어찌해야 할까요 ??ㅜ
하나만 더 여쭤볼게요..
여기서 선형화를 한 상태방정식은, 어떤값에 의한 식 으로 나와야 할까요?
현재 theta_1, dot_theta_1 , theta_2, dot_theta_2 에 의한 값이 나왔는데
theta_2 라는 위치값은 휠이 돌아가야 하기 때문에 필요 없을거 같은데요...ㅠㅠ
안녕하세요 ! Pinkwink님 홈페이지를 보고 LQR제어를 하고 있는 사람입니다.
너무 모르는게 많다보니 질문을 너무 많이 드린거 같아 죄송하네요..
그래도 찾아보고 물어보고 하다보니 리액션 휠 제어 거의 끝부분에 왔다고 생각이 드네요..
다 했긴 했는데 가중치 값을 잘못 설정했는지, 제대로 서지 못하네요...
혹시 가중치를 더 알맞게 구하는 방법이 있을까요 ?? 아니면 계속 찾을때까지 테스트 해봐야 할까여 ?ㅠ
안녕하세요 ! 답변주셔서 감사합니다 ..
현재 시뮬레이션 하면 발산하지 않고 0 또는 0.001 정도로 수렴하게끔 값을 입력해 보았습니다.
모터쪽 동역학은
http://pinkwink.kr/357
참고하여 최종 동역학 방정식을 완료했습니다.
현재 문제점은 각도에 따라 휠이 제대로 돌긴 하지만 가만히 서질 못하고 계속 왔다갔다 하다가 결국
쓰러지네요 ....
시뮬레이션을 해서 그래프가 어떤식으로 나와야 제어가 잘되게 나올까요 ...??
그나마 잘 되는게 각도0도 근처에서 조금 파닥파닥 거리다가 쓰러지네요....ㅠ
질문좀 드리겠습니다. 역진자에서 운동에너지 항을 구하실때 직선운동에너지와 회전운동에너지를 다 구하셨는데 회전운종에 직선운동에 에너지가 포함된거 아닌가요..?
제 생각에는 T = 1/2 * J(휠) * (theta1_dot+theta2_dot)^2 + 1/2 * J(시스템) * theta1_dot ^2 라고 생각이 들어서요..
Theta1에 관해서 라그랑지안 함수 시 위치에너지 부분 cos 미분하면 -sin 되어 원래 식인 -에 의해 +부호가 되는 것 같은데 -부호로 쓰인부분이 위에서 말씀하신 좌표설정이나 초기상태에 따라 중력가속도 g의 부호에 의해서 -부호로 나온 것인가요?ㅠㅠ
비밀댓글입니다