검색결과 리스트
글
실제 제작과 연재를 동시에 진행하다보니 약간 혼선이 있었습니다만, 이번에는 밸런싱로봇의 동역학 최종 결과를 보여드릴려고 합니다. 일부 레고문서(^^)를 참조했었지만, 실제 연제의 시작은
였구요. 여기서 라그랑지 방정식을 손으로 직접 풀어도 보고, MATLAB을 이용해서 유도하여 그 결과식이 맞다는 것을 알게 되었습니다. 그래서 라그랑지 방정식을
에서 검증했습니다.
밸런싱로봇을 위 그림처럼 볼 수 있게 되구요. 거기서 유도된 라그랑지 방정식이
였습니다. 거기에
모터의 특성을 고려하여 외부힘을 인가하게 되고 전개하여 각 double-dot에 대해 정리하면
이 됩니다. (클릭하셔서 크게보세요^^)
|
|
위의 결과식을
sin(angle) = anlge
cos(angle) = 1
두 상태의 곱은 = 0
로 보고 '0' 부근에서 선형화를 수행했습니다.
그리고, 상태별로 식을
정리했구요.
이제 상태방정식
과 같은 형태로 둘 것입니다. 여기서, u1 = v_l + v_r이고, u2 = v_l - v_r 입니다. 이는 phi 쪽 상태를 고려하는 것 자체가 이전에 제가 자주 다루던 two-rotor와 같은 형태입니다.[참조1, 참조2, 참조3, 참조4]. 두 모터에 인가되는 전압(v1,v2)로 제어입력을 표현하고자 하지만, 동역학을 해석해보면, 결국 theta와 psi는 두 모터의 합력, phi는 차에 의해서 결정되기 때문에 u1, u2로 표현한 것입니다.
위 상태방정식의 각 요소들 중 theta 쪽은
이고, phi 쪽은
이고, psi 쪽은
입니다. 여기서 Den, u1, u2, alpha, beta는
입니다.
동역학에 대해서는 이제 그만 만져야겠지요. 아직도 해야할 일이 많으니까요. 중간중간 또 틀리거나 오타가 있다면, 그때그때 수정하도록하겠습니다.
'The Robot > Robot by PinkWink' 카테고리의 다른 글
[밸런싱 로봇 만들기] 작은 로봇을 하나 완성해서 큰 기쁨을 얻다 (103) | 2010/07/18 |
---|---|
[밸런싱 로봇 만들기] 10. LQR 선형제어기 설계 및 MATLAB을 이용한 시뮬레이션 (50) | 2010/07/03 |
[밸런싱 로봇 만들기] 9. 기구부 재구성 및 모터 파라미터 수립 (56) | 2010/06/30 |
[밸런싱 로봇 만들기] 8. 동역학 모델 구축하기 (최종) (24) | 2010/06/22 |
[밸런싱 로봇 만들기] 7. Lego Mindstorm 동역학 따라하기 (32) | 2010/06/20 |
[밸런싱 로봇 만들기] 6. Yaw 움직임을 포함한 동역학 (2) (16) | 2010/06/14 |
[밸런싱 로봇 만들기] 5. Yaw 움직임을 포함한 동역학 (1) (16) | 2010/06/12 |
[밸런싱 로봇 만들기] 4. 기구적인 파라미터 찾기 (32) | 2010/06/01 |
이 포스팅을 나이지리아선수들에게 보여주면 그냥 16강 진출할겁니다.
히히.. 아쉽네요.. 우편으로 보내줄걸 그랬나봅니다.
리포트도 제출하라고 할걸 말이죠..ㅋㅋ
저는 아직 학부생이라서 많이 부족하지만, 이번 방학동안 밸런싱 로봇을 만들어 보려고 검색을 하던차에 우연히 오게 되었습니다.
수학이 많이 약해서 어렵기는 하지만 포스팅 해주신 것을 보면서 어떤식으로 접근해야할 지 감을 잡을 수 있었습니다.^^
정말 감사드립니다!!
(아, 그리고 혹시 기회가 되신다면 TMS320F2812에 대해서도.... 나중에 포스팅 해주셨으면 합니다.^^ 현재는 AVR을 사용하고 있는데, 엔코딩도 불편하고 느리고... 그래서 2812도 공부를 시작했는데, 아직 부족한게 많습니다. QEP 모듈 사용법 등등... 나중에 시간이 되신다면 부탁드리겠습니다-)
요즘... 의욕상실에 무책임증 등등 .. 각종 일하기 싫은 꾀병에 몹시 시달리고 있습니다..ㅠㅠ 그래도... 한번 시작해 보곘습니다.^^ 그러나 언제가 될지는 장담드리기가 어렵습니다.^^
아.. 그리고.. 잘 읽고계시다니 오히려 제가 감사드립니다.^^
저.. 학부 수학 전공이고, 석사 컴퓨터학 전공인데.. 오랫만에 만나니 웬 외계어인가 했습니다.
아이 수학문제나 제대로 풀어줄 수 있을런지... 끙!
수학을 몹시 잘하시는 분들도 직접.. 아이들을 가르치는건 힘들어하시던데요^^
자녀교육에서 가장 어려운 것은 엄마가 '화'를 낸다. 라네요.
자녀를 가르치기 전에 '도'부터 닦아야할듯합니다.
남의 아이 가르칠 땐 참아지는데, 내 아이는.. 잘 안되더라구요. ㅋㅋ
그렇겠죠?? 저도 예전에 동생을 가르칠때와 알바로 과외할때랑 저의 태도가 달라진다는 것을 알았거든요^^
밸런싱로봇 만들기 잘 보고있습니다. 그런데, 모터에 대한 수식에서 beta로 정의되는 식 내에 n값이 있는데, 제손으로 풀어보면, 이게 n^2으로 풀리네요...
토크와 각속도가 기어비 n을 거치면 아래와 같기때문에
T = n*T_m,
omega = (1/n)*omega_m
beta는 n^2*K_t*K_b/R_m + f_m 과 같은 식으로 되어야 하는게 아닌가요?
http://pinkwink.kr/333#comment2175754 에 이은 질문이지요?? 생각해보니... 바퀴의 속도를 고려하는 항에 일괄적으로 감속비를 고려하지 않았네요...ㅠㅠ 아마 제가 틀린듯한 예감이 드는데... 일단 이부분도 역시 다시 확인해보겠습니다. 일단 "야옹~"님 말씀이 맞습니다. 그리고 제가 참조한 마인드스톰 문서 역시 그렇게 유도되었길래 DC모터 부분을 아무생각없이 따라간게 아닐까하는 두려움이 다가오네요... "야옹~"님께서 지적해주시지 않았다면 아무 고민없이 진행했을 부분이네요. 확인후 다시 수정포스팅을 올리도록 하겠습니다.
저희가 지금 세그웨이를 만들고 있는데요..
밸런싱로봇과 거의 시스템이 비슷한듯 한데 몸체를 직육면체로 보기에는
손잡이의 무게가 꽤 나가서 직육면체로 일반화시킬 수가 없어서요.
질량관성모멘트가 바뀌는 듯 한데 직육면체에 막대봉이 붙은 듯한 이 형체에 대해서는 질량관성모멘트를 어떻게 구해야하나요?
그리고 운동에너지를 구할 때 바퀴의 운동에 의해 폴이 영향을 받는 식에서 기어비를 고려하는 부분이 잘 이해가 안 갑니다. 기어비가 크면 그 값이 너무 커져서 영향을 많이 주는 것 같아서요.
질량관성모멘트가 이너셔를 이야기 하는 것인가요? 제가 용어에 좀 약하답니다.ㅠㅠ 하여간 이너셔를 말씀하시는 거라면, 보통 선형제어기를 꾸미는 경우는 조금 간략하게 생각한답니다. 질량이 양쪽 끝에 모여있다고 가정한다던지.. 혹은 봉 끝에 질량이 모여있다던지.. 양쪽 끝에 있다든지 하는 것인데요. 만들고 계신 로봇의 형태와 무게를 고려해서 간략화해서 생각하시면 됩니다. 그리고, 기어비가 커지면 토크가 커지는 것으로 표현한 것입니다.
아 그러면 거기서의 이너셔는 모터의 이너셔를 말하는 거지요?
회전하는 모든 물체는 이너셔가 있습니다. 모터 축의 이너셔는 통상 모터의 데이터시트에 제시되어있습니다. 제가 방금 말씀드린것은 펜들럼에서 폴의 이너셔와 암의 이너셔를 말씀드린 것입니다.
또 여쭤볼 게 있는데요.
일반힘을 정의할 때 phi를 움직히는 힘 부분에서 두 바퀴가 내는 힘의 차이인 건 이해가 가는데요. 관계식부분에서 w/2R을 해주는 이유는 뭔가요?
http://pinkwink.kr/326 의 초반부에 phi를 정의하는 식을 만들때의 이유와 같습니다.혹은 http://pinkwink.kr/333 의 하단부에 약간의 언급을 조금 더 해두었습니다.
좋은 정보 정말 잘봤습니다. 그러나 제가 이쪽에 문외한이라서 질문을 드리네요. 봐도 이해가 안가요 ㅜ
gyro sensor의 값을 위 식에 이용하려면 어디에 들어가는거죠?
모터에 인가되는 값은 어느 것인지도요 ㅠㅠ
그냥 서있기만 할려면 유도를 어찌 해야 될지 감이 안잡힙니다..
완전 초보가 어이 없는 질문을 하는것같습니다. ㅠㅠ
이 글은 동역학을 유도하는 포스팅입니다.
실제 구현은 http://pinkwink.kr/344 에서 보여드리고 있습니다.
거기서 자이로에서 얻은 각속도는 psi의 미분값에
ARS에서 얻은 각도는 psi에 사용하고 있습니다.
B52에서 u2가 빠져야하는데 오타이신듯하네요.. ㅎ
ㅎㅎ 네 그렇네요^^ 감사합니다.
안녕하세요~
전 기계공학을 전공하고 있는학생인데
요즘 이블로그에서 정말 많이 배우고 있습니다 유익한자료 너무나 감사합니다(__)
전 매트랩을 기초적인것만 할줄알아서
동역학 방정식을 손으로 풀로 그 수식을 매트랩에 일일히 적어넣다보니 거의 매번 오류가 나고 수정하는데 너무너무 힘이듭니다 ㅠ
그래서 꼭좀 답변해주셨으면 하는 질문이 있는데요
예를들어서 시간이 t로 정의된다면
각도 Ø = 2*t
라그랑지안 L = 2*(Ø')^2 + 3*Ø +1 이라면요
라그랑지 운동방정식을 d(∂L/∂Ø')/dt - ∂L/∂Ø 로 구해야 하잖아요
이것을 위해서 매트랩으로 표현하면
syms t
Ø = 2t
L = 2*(Ø')^2 + 3*Ø +1
result = diff( diff(L,'diff(Ø)'), 't') - diff(L,'Ø')
원하는 결과는 4*Ø'-3인데
이렇게 하면 diff(L,'diff(Ø)') 이부분때문에 바로 오류가나서 항상 손으로 풀고있습니다. ㅠㅠ
잘못된 표현방법이라는건 아는데 바르게 표현하는 방법을 도무지 모르겠습니다.
저 운동방정식을 수식으로 유도하는 방법을
매트랩으로 바르게 표현하는 방법좀 알려주실수 있나요?
부탁드립니다 ㅠ 3링크가 넘어가니까 손으로는 도저히 못하겠어요 ㅠㅠ
http://pinkwink.kr/322 다변함수의 문자연산에대해 다룬글입니다
먼저 읽어보시면 도움이 되지 않을까합니다
아하~
그런글이 있었군요
감사합니다~
네 때마침 우연히도 그와같은 글을 적었네요^^