본문 바로가기

matlab

(91)
MATLAB/Simulink Scope 창에서 데이터 축출하기 2009. 7. 11. 18:04 오늘도 그냥 허덥한 MATLAB 팁하나 끄적거려 볼까합니다^^. 보통 MATLAB의 Simulink를 사용한다면 당연히 Scope는 필수로 사용하게 되겠죠. 아마 가장 사용빈도가 높은 블럭중 하나일텐데요. 예네가 까망 바탕화면이라 이런 프리젠테이션이나 프린터로 출력할때 난감한 상황이 가끔생기지요. 물론 어떤분들은 간단히 그래픽툴로 간단히 반전시키기도 하시고, 또 Workspace 블럭으로 데이터를 저장하기도 하는데요. Workspace블럭을 사용하지 않아도 Scope에서 간단히 Workspace로 저장할 수 있습니다. 아... 미리 말씀드리지만.. 뭐 월래 팁들이라는게 그런거지만 꼭 사용해야한다 뭐 그런건 아닙니다. 그저 좀 편하다는거... 사실 가장 편한건 자기 손에 익은 방법이겠지만요...^^ 위의 ..
가속도센서를 이용한 각도 측정과 그 한계 2009. 6. 9. 21:04 한 일년도 훨씬 전쯤에 가속도센서를 이용한 각도 측정에 대한 글을 올렸었습니다만, 당시엔 실험자체를 제가 수행했던 것이 아니었고, 또 그 당시 홈페이지 자료도 다 잃어서 다시 실험하고 정리했습니다. 그러다보니 좀 늦었네요. 많은 분들(3명?^ㅠ^)이 메일과 제 방명록에 요청하셨었는데 참 죄송스럽다는.... 이번 테스트에는 당시의 DSP2812에서 Cortex M3 LM8962로 프로세서를 교체하고 가속도센서도 바꾸었습니다. 당시 가속도센서 여분이 없더라는..ㅜ.ㅜ 그래서 주위를 둘러보니 withrobot사의 myAccel3LV02라는 보드가 있더군요. 판매처는 모릅니다. 알아서 찾아주세요... 꽤 소형입니다. 판매자의 소개를 잠시 빌리면 이렇게 SPI, I2C 통신을 모두 지원한다는군요. 음... 이번에..
[Cortex M3] 엔코더해석 결과를 일정시간간격으로 시리얼통신으로 전송하기 2009. 6. 4. 10:03 Cortex-M3 LM8962의 경우 적절한 가이드북이 아직 없더군요. 그런 경우 뭐 예제를 분석해보는 수 밖에요. 일단 복적은 제목에도 나와있지만, 일정시간간격(Timer Interrupt)을 가지고 엔코더를 해석해서 그 결과를 시리얼통신으로 전송하는 걸로 하겠습니다. 이미 myCortexM3 LM8962보드를 설치해서 사용하신 분들이라면 딱 예제3개를 한 덩어리로 묶었구만뭐~~ 하시겠지만, 사실 예제를 그대로 파는건 별로 재미없으니까 그냥 한번 합쳐본것도 있구요. 또 제가 수행할려고하는 목표가 딱 위 예제 3개에를 합쳐서 출발해야하기도 하거든요... 그런데, 물론 제가 다뤄봤다던지 공부했다는 프로세서가 얼마안되지만, (80c196, AVR, DSP2812) 이 CortexM3의 예제는 뭐라할까 좀 어..
쿼드콥터의 궤환선형화기법을 이용한 제어기 설계 2009. 5. 19. 21:51 궤환선형화기법을 이요해서 투로터를 제어(궤환선형화 기법을 사용한 Two-Rotor 안정화 제어기 설계)했었습니다. 그걸 쿼드콥터(쿼드콥터(Quadcopter)의 동역학 방정식)에 적용해 보겠습니다. 위 동역학을 한번 더 미분하고 식이 기니까 A, B, C, T로 치환하면 한번 더 미분한 식은 와 같이 나타납니다. 위 4차계시스템을 안정화하는 a, b, c, d를 설정하고나면 최종적으로 제어입력을 위와 같이 구성할 수 있습니다. Controller의 전체 블럭입니다. 이전에 공개한 쿼드콥터의 블럭과 같이 연결해서 사용하면 됩니다. 제어 결과 입니다...^^
쿼드콥터(Quadcopter)의 동역학 방정식 2009. 5. 19. 21:38 쿼드콥터의 필요성에 대해서는 이전(쿼드콥터 소개...)에 이야기 했었습니다. 이번에는 그 쿼드콥터의 동역학 방정식에 대해서 이야기하겠습니다. 네 개의 로터(f1, f2, f3, f4)를 가진 쿼드콥터는 위와 같이 간략화 시킬 수 있습니다. 이 상태에서 전체적으로 작용하는 위치, 병진운동, 회전운동의 에너지 관계식을 위와 같이 만들 수 있는데 이때, ksi는 병진운동 상태를 eta는 회전운동 상태를 의미하고, q는 그걸 합친 거라고 해 두고 아래의 오일러-라그랑지안 방식으로 유도 하겠습니다. 위 식에 각 에너지를 대입하면 와 같이 전개 됩니다. 여기서 각 축 중심의 회전행렬로 x-y-z의 3축 회전행렬을 적용하면 와 같이 제어입력을 정리할 수 있습니다. 여기에 몇몇 인자를 정리하고 투로터때처럼 시뮬레이션을..
궤환선형화 기법을 사용한 Two-Rotor 안정화 제어기 설계 2009. 5. 19. 21:12 아래의 Two-Rotor 시스템(Two-Rotor (VTOL) 시스템의 동역학 모델)은 제어입력 u1이 x, y라는 두 개의 상태에 동시에 인가가 되면서 x, y, theta를 모두 제어하는데 어려움이 있습니다. 단적인 예로 만약 u2가 잘 동작해서 theta를 '0'으로 안정화 시키는 순간 sin(theta)가 '0'이 되어서 x를 제어하기 어려워지게 되는 겁니다. 그래서 각 상태에 들어가는 제어입력을 분리시킬 필요가 생깁니다. 그래서 위에서처럼 두 번 더 미분하게 됩니다. 여기서 theta는 시간에 관한 함수기 때문에 theta에 관해 미분할때 조심하셔야합니다. 그러면 위와 같이 x_(4), y_(4)에 인가되는 제어입력을 분리시킬 수 있게 됩니다. 이때 궤환선형과기법을 사용해서 아래의 a, b, c..
Two-Rotor (VTOL) 시스템의 동역학 모델 2009. 5. 19. 20:57 Two-Rotor 시스템은 양익 비행체의 수직이착륙 동작(Vertical Take Off and Landing)을 동역학으로 모델링 한 것을 양익의 장착각도를 0로-즉, 양 날개가 동체에 수직으로 연결되어있다고 가정한 모델입니다. 위 그림에서 F1, F2가 두 로터가 내는 양력이 되고, theta는 기울어진 각도가 됩니다. 인가되는 힘은 총 3가지로서 위에 제시된것과 같습니다. 그 힘을을 수평방향, 기울어지는 각도, 동체 중심의 운동성분으로 각기 위와 같이 정리해볼 수 있습니다. 이를 x, y, theta에 관해 정리하면 위와같은 형태를 얻게 됩니다. 일반적인 시뮬레이션이라면, 다시 몇몇 파라미터를 간단히 두고 위와같이 표현할 수 있습니다. 실제 Two-Rotor는 딱 위의 동역학에 맞는 시스템을 실제로..
Balancing Robot 밸런싱 로봇 2009. 4. 18. 20:59 본 내용은 현재 너무 오래되고 포스팅의 내용이 자세하지 않아 다시 포스팅을 했습니다. 연재를 수행했지만, 최종글인 http://pinkwink.kr/344 을 읽으시면서 링크를 따라가시면 됩니다. 2005년인가 2006년에 일인승 스쿠터로 많은 사람들의 관심을 끌었던 Segway라는 제품(회사?)가 있었습니다. 얼마전에 읽은 블로그에서는 이제 2인승도 나올거라고 하더군요. 여하튼 당시 그 모델을 보고 제어나 전자를 전공한 학생들이 한번쯤 만들어 보고 싶어 했었거든요. 우리 실험실도 그래서 당시(2007년) 학부논문조와 함께 작업을 했었습니다. I. 시작하기 전에 밸런싱로봇은 그 구동방법이나 원리등이 역진자 시스템과 아주 흠사합니다. 뭐 딱 봐도 카트형 펜들럼이죠. 일단, 실제 제작전에 카티아(Catia)..

반응형