검색결과 리스트
글
이제 연재는 좀 참을려고 했는데 우연한 기회에 세미나를 할 일이 생겨 자료를 만들어서 또 연재를 시작해 볼까 합니다.^^ 이번에는 간단한 시스템을 가지고 라그랑지 방법을 이용해서 동역학 모델을 만들고, 제어기도 설계해보고, 또 뭐 이것저것 건드리면서 놀아보는 연재입니다.
동역학 모델 구축 - 시스템 고려하기 ! |
여러가지 시스템이 있겠지만, 설명을 위해서는 역시 좀 간단한게 필요하겠죠...^^ 그래서 위와 같은 진자 시스템을 생각해보겠습니다. 회전하는 중심축에는 DC-모터도 하나 장착되어있는 걸로 하죠. 단지 라그랑지 방법에 대한 설명이기 때문에 상당히 간단하게 설정해 둡니다.^^
이제, 진자의 위치벡터(r)를 잡을 수 있겠죠. 기준 좌표축의 원점이 진자보다 위에 있기때문에 j-벡터쪽 성분이 '-'부호입니다.
에너지에 대해 고려하기 ! |
위에서 잡힌 위치벡터를 미분해서 속도벡터(v)를 구해둡니다.
여기서, theta도 시간에 관한 함수이기 때문에 미분해야할 함수라는 점만 유의하시면 됩니다.
이제 운동에너지를 구해야하는데요. 운동에너지도 두 종류가 있습니다. 그 중 하나가 병진운동에너지인데요. 병진운동은 직선방향의 운동을 말하는 것으로, 방금 구한 속도벡터를 이용합니다. 고등하교? 중학교? 때 배운 운동에너지 공식을 그대로 사용하죠. ^^
그리고, 회전운동에너지를 찾습니다. 위의 예제로 다룰 시스템에서는 회전운동을 하는 것이 진자 뿐입니다.
이제 위치에너지를 고려하면 되는데요.
위치벡터의 중력방향성분만 생각하면 됩니다. 위치에너지가 mgh라는 공식을 가지죠??^^
|
|
라그랑지 방정식 (Lagrange Equation) ! |
라그랑지 방정식을 구하기 위해서는 먼저 라그랑지안(lagrangian)을 찾아야합니다. 라그랑지안은 전체운동에너지에서 전체위치에너지를 뺀것입니다.
그 라그랑지안을 이용해서 위의 라그랑지 방정식에 대입해서 풀면됩니다. 라그랑지 방정식이 도출되는 과정은 헉.. 저도 잘 모릅니다. (블로그에서 누차 밝혔지만, 전 기계전공이 아니라 제어공학이 전공입니다.ㅠㅠ) 여기서, eta는 시스템의 상태로, 우리는 꼴랑 theta하나 있습니다.
이렇게 구할 수 있죠. 마지막 시간에 관한 미분마저 수행하면
이렇게 됩니다. 상태가 하나만 잡히다보니, 라그랑지 방정식으로 푼 결과가 바로 끝이네요. 그래도 외력부분에대해서 이야기해야죠. 다음번 글에는 DC모터를 외력으로 다뤄보겠습니다.^^
'The Robot > ControlTheory' 카테고리의 다른 글
[시스템 시뮬레이션 연재] 4. 시스템의 선형화 (2) | 2010/08/12 |
---|---|
[시스템 시뮬레이션 연재] 3. 동역학 MATLAB으로 시뮬레이션 하기 (18) | 2010/08/11 |
[시스템 시뮬레이션 연재] 2. 구동원으로 DC 모터 고려하기 (56) | 2010/08/11 |
[시스템 시뮬레이션 연재] 1. 라그랑지 방법을 이용한 동역학 모델 구축하기 (20) | 2010/08/09 |
Reaction Wheel Pendulum. 리액션 휠 펜들럼의 동역학 유도과정 (최종) (10) | 2010/07/14 |
Reaction Wheel Pendulum. 리액션 휠 펜들럼의 동역학 유도과정 수정 (6) | 2010/06/15 |
Reaction Wheel Pendulum. 리액션 휠 펜들럼의 동역학 및 시뮬레이션 (10) | 2010/05/14 |
T-S 퍼지를 기본으로 한 선택적 선형화를 이용한 Two-Rotor (VTOL) 시스템 제어 (4) | 2010/04/19 |
새롭게 연재하시는군요,... 잘 따라갈라나 모르겠네요..
이와같은 글은 관심있는 분만..
아니.. 수준이 좀 낮아서
관심있고싶은분만 보는 글이랍니다..
(사실.. 제가 지식을 정리하는 글이라는게 더 맞는 이야기지요...ㅠㅠ)
항상.. 댓글달기 어려운글만 골라 포스팅하는 죄스런 마음이 있답니다..^^
또 어려운거 하시는군요..ㅎㅎ
그저 구경만해야겠지요..
요즘.. 채소만 먹었더니 힘이 없어요... ㅠㅠ
이런 포스팅이...놀아보는 연재라는 거죠?ㅎㅎ
다른 분야의 것이니 어려워보이는 게 당연하지만 공학 전공하는 분들, 정말 대단한 것 같아요.
저는 boramina 님의 블로그를 보며 한숨을 짓는답니다...
나는 왜 여러 나라를 여행할 용기가 없었을까.. 하고 말이죠^^
이렇게 어려운 거 하시려면 에어컨을 쌩쌩 ~ 틀어놔야 하지 않을까요?
저같으면 머리에서 김이 모락모락 나다가 끝내 타버릴 것 같은. ^^;
안그래도.. 김이 모락모락나서.. 제 머리가 곱슬인가봅니다...^^
오옷 또다른 연재이군요ㅋ. 언제나 잘 배우고 갑니다. DC모터 모델링 부분도 잘 좀 알려주시면 좋겠어요ㅋ
올리긴 했는데.. 잘 되었는지는 잘 모르겠네요^^
정말 정리가 잘되어 있어서 그러는데요 ^^ PDF나, 저장가능한 파일로 만드실 의향은 없으신지;;;
포스팅내에서 별도의 PDF화일을 첨부하지 얺은경우는 지금은 저도 가지고 있지 않은것입니다.
F 라는 물리량에대한 정확한 설명도 있었으면 좋을것같네요.
구동힘에 대해서는 다음 연재에서 다루고 있습니다.
DC모터와 마찰력으로...
안녕하세요, 현재 관련과목을 수강하는 학생입니다. 보다가 질문이 있어 글남김니다. 위의 진자 운동의 경우 병진운동만 존재하는 것이 아닌지요. 진자가 x,y 각방향 속도를 가지고, 원점을 기준으로 회전운동 한다고는 볼수 있으나, 진자 자체가 회전하는것ㅡ 굴림운동과 같은.ㅡ은 아니므로 회전운동에너지가 필요없이 추가된것 처럼보입니다.
무슨 말인진는 잘 모르겠습니다만,
진자만 보죠...x-y축으로의 이동이 존재하죠?
그리고, 진자의 회전도 존재하지 않나요?
그러므로, 회전 및 병진운동을 모두 고려한 것입니다.
만약 회전이든 병진이든 고려하지 않아도 되는 것이었다면
고려해서 식을 유도하다보면 없어져 버리더라구요.
아무튼.. 전 그렇게 생각합니다.^^
저도 동역학을 전공한 사람은 아니니까요^^
matlab으로 라그랑지안 방정식을 구현해야 하는데요 어떻게 해야 하는지 설명해 주실 수 있으신가요?
라그랑지 방정식을 얻기 위한 과정을 손으로 직접 풀어보시면 꽤 정형화된 일종의 공식처럼 나타납니다. 그렇다면 프로그램으로 짤수 있다는거죠.
일단 MATLAB의 문자연산을 할 수 있어야합니다. 변수에 대해 문자연산을 통해 미분, 편미분을 수행해야하니까요.
그리고, 문자열을 핸들링할 수 있어야합니다. 각 연산을 통해 다수의 방정식을 합치고 치환하는 작업들이 수행되니까요.
그정도면 라그랑지 방정식을 충분히 풀수 있는 코드를 짤 수 있을듯합니다.
예전에 저도 제 블로그에 있는 대부분의 동역학 모델은 손으로 구했지만, 확인을 위해 MATLAB에서 코딩을 해서 확인했습니다.
이 경우에 이미 운동에너지가 고려되었는데 회전운동에너지가 추가로 고려되었군요.. 회전운동에너지 항을 빼줘야 합니다.
네 저도 뭐 그리 잘 아는건 아닙니다만
고려할 운동 에너지는 병진운동에너지와 회전운동에너지의 합산이라고 알고 있어요
http://www.pinkwink.kr/327
혹시 아니면 다시 알려주세요~~~^^