검색결과 리스트
글
이미 예전에 다루었던 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공대에서 발표한 논문에서 필요부분을 발췌 정리한 것입니다. |
'The Robot > ControlTheory' 카테고리의 다른 글
T-S 퍼지를 기본으로 한 선택적 선형화를 이용한 Two-Rotor (VTOL) 시스템 제어 (4) | 2010/04/19 |
---|---|
밸런싱 로봇의 동역학 유도 (16) | 2010/01/03 |
제어입력의 크기를 가늠하기 위한 단순 진자 시뮬레이션 실험 (0) | 2009/11/30 |
Cart Pendulum의 동역학 유도 (20) | 2009/11/06 |
내부모델설계기법 Internal Model Design (2) | 2009/10/07 |
T-S 퍼지를 이용한 쿼드콥터 제어 (14) | 2009/07/23 |
T-S 퍼지 모델을 이용한 Two-Rotor 시스템의 제어기 설계 (0) | 2009/07/20 |
T-S 퍼지 모델을 이용한 로터리 펜들럼 제어기 설계 (4) | 2009/07/20 |
열심히 공부할게요^^
추운 날씨 감기 조심하시고 늘 건강하세요.
헉... 여..여기다.. 댓글이... 달릴줄은 몰랐네요^^
운동에너지를 얻는게 쉬운게 아니군요^^
즐거운 시간되세요~~
네!!
감사합니다... 엘고님도 즐거운 시간 되세요...^^
흐흐. 정말이지 핑크윙크님이 아니면 제가 어찌 이런 프로페셔널 인텔리전트 컴플리케이티드 아카데믹한 곳에 댓글을 남겨보겠습니까. 기분이 좋네요. ㅎㅎ 미국도 감기/플루 유행입니다. 건강조심하세요 ~
히히... 제가 아고라님이 아니라면
어찌 이리 심심한 글에...
댓글 구경을 하겠습니까...ㅋㅋㅋ^^
외계어 같아요.......ㅠㅠㅠㅠㅠ
그럼요.... 또 다른 언어가 맞긴 하죠...^^
정리해서 올리시기 정말 힘드실텐데 대단하세요!
^^ 감사합니다....^^
감탄을 하면서 보고있는 한 공대생입니다.
보다가 여쭤볼게 있는데요.
너무 초보적인 거 같지만 용기내서 물어봅니다.
f(x) - fx * dot_x + dx 중간에 보면 이 식이 나오는데요.
이 식이 왜 나왔는지도 모르겠고, f(x), fx * dot_x, dx
각각이 뭘 의미하는지도 잘 모르겠네요.
f(x) - fx * dot_x + dx 에서
f(x)는 카트의 바퀴(모터)에 의해 발생하는 힘이고
-f_x*dot_x는 마찰력입니다.
마지막으로 d_x는 알 수 없는 이유로 발생하는 외란입니다.
아..저도 윗분님같은 질문을 해보고 싶습니다. ^^
음.. 저는... 어디어디 여행간 이야기들을 왕창올리고 싶어요^^
matlab과 dspace를 연계한 pendulum simulation을 구현해 보고 싶은 공학도입니다. 사실 matlab 프로그램을 접한지 얼마 되지 않아 비슷한 내용의 글들을 찾아보며 공부하던 중 님의 블로그를 찾아오게 되었습니다.
제가 알고자 하는 부분 역시 cart pendulum 이거든요ㅋㅋㅋ
하지만 저는 input을 voltage를 이용해서 pendulum을 구현해보고 싶습니다. 시간이 가능하시면 지식을 좀 나워 주실 수 있는지요^ ^ ;
저의 보잘것없는 지삭을 나누는 것은 아무 문제가 없습니다.^^
(나눠드릴 수 있다면..)
그러나 지금은 시간이 허락하지 않습니다.
현재 학위심사중이거든요...^^
카트형 펜들럼의 역학방정식의 입력을 전압으로 둔것은
http://pinkwink.kr/36
에 있습니다.
그런데.. dSpace를 사용해볼려는 목적에 펜들럼이 수단인가요?? 그게 아니라면... 펜들럼을 제어하는데 꼭 MATLAB이 실시간으로 들어갈 필욘 없는데요. MATLAB으로 구한 게인을 LabVIEW로 구현하는 분들도 많거든요.
theta가 3에서 선형화 시키면 어떻게 되나요?
그럴때는 테일러급수전개를 직접 수행하면 될 것 같습니다.
안녕하세요 블로그에서 많은걸 배워가는 학생입니다.
위의 선형화과정에서 ml*sin(theta)(dot_theta)^2이 사라지는 이유가 궁금합니다.
sin(theta) = theta가 되니
다시 적으면
ml theta (dot_theta)^2 이겠네요.
theta와 dot_theta 이렇게 상태 두개가 곱해져있는경우 테일러 급수전개로 확인해보시면 아시겠지만, '0'이 됩니다.