본문 바로가기

simulink

(34)
MATLAB/Simulink Scope 창에서 데이터 축출하기 2009. 7. 11. 18:04 오늘도 그냥 허덥한 MATLAB 팁하나 끄적거려 볼까합니다^^. 보통 MATLAB의 Simulink를 사용한다면 당연히 Scope는 필수로 사용하게 되겠죠. 아마 가장 사용빈도가 높은 블럭중 하나일텐데요. 예네가 까망 바탕화면이라 이런 프리젠테이션이나 프린터로 출력할때 난감한 상황이 가끔생기지요. 물론 어떤분들은 간단히 그래픽툴로 간단히 반전시키기도 하시고, 또 Workspace 블럭으로 데이터를 저장하기도 하는데요. Workspace블럭을 사용하지 않아도 Scope에서 간단히 Workspace로 저장할 수 있습니다. 아... 미리 말씀드리지만.. 뭐 월래 팁들이라는게 그런거지만 꼭 사용해야한다 뭐 그런건 아닙니다. 그저 좀 편하다는거... 사실 가장 편한건 자기 손에 익은 방법이겠지만요...^^ 위의 ..
쿼드콥터의 궤환선형화기법을 이용한 제어기 설계 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)..
Rotary type Inverted Pendulum (로터리 역진자) 시스템 2009. 4. 17. 20:57 로터리 역진자 시스템은 여러가지 펜들럼 시스템중에서 구동부인 모터를 적용하기에 가장 편한 시스템입니다. 이유는 모터가 회전(물론 리니어 모터도 있지만)하는 놈이니까 그에 맞춰서 적절히 기어만 달아주면 되기 때문입니다. 그러나 로터리역진자는 그 폴이 넘어지는 방향이 직선이기 때문에 암과의 조인트부분을 좀 튼튼히 만들어줄 필요가 있습니다. 그렇게 하더라도 방향전환시 카트형에 비하면 접선 방향으로 좀 많은 충격이 나타납니다. 또한 로터리 펜들럼은 카트형에 비하면 상대적으로 작은 크기로 만들어 낼수도 있습니다. 위의 그림을 보면 폴(Pole)이 있고 그 각도를 측정하는 엔코더가 있습니다. 쓰러지는 폴을 잡기 위해서 암(Arm)이 있고 암을 구동하는 엔코더 내장형 모터가 있습니다. 제어의 용이성을 위해 폴 반대편..
Embedded Block을 이용해보자. 2009. 4. 15. 22:35 MATLAB/Simulink로 각종 시뮬레이션을 하다보면, M-File을 직접 입력해야만 하는 상황이 꼭 오게 되는데요. 희한하게도 간혹 MATLAB 유저들중에는 Simulink 블럭만으로 이를 해결할려고 하는 경향을 가지고 있는걸 보게 됩니다. 전 잘 모르겠는데, 아주 실행시간이 많이 걸리는 코드의 경우 Simulink로 시뮬레이션을 해야하는 상황이라면, Simulink로만 블럭을 꾸밀수록 그 실행속도가 빨라진다고들 하더군요. 이건 미확인입니다. 말씀드렸듯이 전 잘 모르겠습니다. ^^. 그런데, 대부분은 그렇게 해결이 또한 가능하긴 하죠. 먼저 몇몇개의 Function 블럭을 보면, 위 function블럭은 fcn 블럭이라고 하는데요. MATLAB의 수학함수들을 가지고 위의 예시처럼 꾸밀 수 있습니다...

반응형