본문 바로가기

Software/MATLAB

(65)
MATLAB Current Folder 윈도우의 정렬기능을 사용하자 2010. 7. 21. 19:56 MATLAB은 메인화면에 몇개의 윈도우가 있는데요. 그 중 Current Folder는 현재 작업 경로에서 화일 목록을 보여줍니다. 아마 처음설치하면 위 화면이 디폴트일텐데요. 물론 이름순으로 적용되어 있어서 일견 화일 찾는데 무리가 없어보일 수도 있지만, 많은 데이터화일과 소스코드에 시뮬링크화일까지 변경해가며 작업하는 경우 작업 능률이 생각보다 떨어집니다. 위에 표시된 부분을 누르고 Group By에서 Type을 선정하시면 이렇게 종류별로 모아줍니다. 보기도 편하고 여러화일을 열어서 작업하는 경우 상당한 효율성을 보여줍니다. 음... 다 아는 기능이라고 생각하긴 했는데... 그래도 MATLAB을 잘 사용하는 분들도 혹가다가 모르시는경우가 있길래 한번 소개해봤습니다.^^
SimMechanics에서 마찰(friction)력을 구현하기 2010. 6. 9. 16:10 요즘 MATLAB의 SimMechanics 기능을 테스트하는 것에 솔솔한 재미를 느끼는 중입니다. 어쩜 이리도 잘 만들었지??? 하는 뭐 그런 생각도 들고, 이건 이렇게 구현하는게 더 직관적일 텐데... 하는 아쉬움도 들고 ... 하여간 뭐 그렇습니다.^^ 지난번에 간단히 진자(pendulum)의 움직임을 SimMechanics로 구현하는 것을 해 보았는데요. [관련글]. 여기서 조금 더 확장해 보도록 하겠습니다. 바로 마찰력의 문제인데요. 이 걸 고려하지 않았을때, 자유운동(초기각도를 준 상태에서)을 시켜보면 그 각도를 계속 움직인다는 것을 당연히 관찰 할 수 있습니다. 그러나 항상 그렇듯 이 마찰을 고려해야 하는데요. 문제는 SimMechanics를 처음 다루는 저로서는 마찰을 고려하는게 쉽지 않더군..
MATLAB에서 다변함수에 대한 문자연산을 이용한 미분 2010. 6. 6. 00:46 예전에 MATLAB에서 문자연산을 이용해서 미분하는 법에 대한 이야기[관련글]를 했었습니다. 그런데 만약 사용할 변수가 어떤 변수(대체로 시간 t)에 대해 종속이면서, 여러 함수를 사용 중 이라면, 문자연산을 이용한 미적분의 적용에 애를 먹게 됩니다. 물론 애초 syms로 선언할 당시 시간에 관한 함수라고 선언하면 되지만, 그렇게 하면 일반적 수식이 아니라 텍스트형태로 나오는 결과가 해당 식이 아주 복잡할 때는 더더욱 알아보기 힘들게 됩니다. 이것을 극복하는 많은 방법이 있습니다만, 간단히 MATLAB이 제공하는 문자치환(subs) 명령어를 이용해서 극복해 보겠습니다. 그리고, 마지막에는 이를 함수(function)로 만들어 두고두고 사용할 수 있도록 한번 해보죠. 간단한 예제를 통해 프로그램의 흐름을 ..
MATLAB 함수로 구현한 구간평균법(moving average) 2010. 6. 3. 16:43 예전에 구간평균법(moving average)에 대해 이야기를 한 적이 있습니다. 대부분의 프로세서들은 ADC를 수행할때, 사용자의 설정에 따라 수 샘플링 시간동안의 평균을 현재의 ADC값으로 표현하도록 되어있을텐데요. 자이로나 가속도센서 등등의 센서를 사용할 때 누구나 노이즈때문에 고생을 하게 됩니다. 사실 저는 필터에 대해 잘 모르지만, 구간평균법은 간단히 구현하기에 참 편리하고 좋더군요. 이걸 예전부터 MATLAB에서 함수로 구현해서 사용하고 있었는데요. 비록 허덥한 프로그램이지만, 오늘은 그걸 한번 포스팅할까 합니다. 먼저 함수의 형식은 원데이터를 받고, 평균을 취할 구간의 길이를 정해서 그 구간을 평균해서 현재의 값이라고 생각을 하게 됩니다. 즉, 현재의 값은 정해진 구간(n) 만큼 이전의 데이..
SimMechanics를 통해 동역학 분석을 쉽게하자. 2010. 5. 26. 11:54 동역학을 해석하는 대표적인 방법은 뉴턴역학을 이용한 방법과 라그랑지 방법이 있습니다. 이 두 방법모두 개념을 잘 정립한다음 수학과의 싸움을 벌려야합니다. 그렇게 만들어진 모델을 MATLAB 같은 툴을 이용해서 시뮬레이션을 하기 위해서는 또 수식을 해당 언어에 맞게 변환을 해 주어야합니다. 이런 과정들 중에 실수가 있을 수 있고, 그 실수는 간혹 발견하기 어려울때가 있습니다. 오늘 소개해드릴 MATLAB의 한 기능인 SimMechanics는 역학적 해석을 수행할때, 좀 더 직관적으로 접근할 수 있으며, 간단한 조작으로 애니메이션도 수행할 수 있습니다. 항상 그렇듯 간단한 예제를 통해 소개해보도록 하지요. 위의 그림과 같은 단순 진자를 대상으로 하겠습니다. Rigid Body 하나와 조인트하나면 되겠죠? 먼..
PID 제어기 튜닝? MATLAB으로 간단히 하자 !!! 2010. 5. 23. 03:15 사실 PID제어기 설계법을 배워도 치밀한 계산에 의해 적용하기는 참 힘들때가 있습니다. MATLAB에서는 PID 제어기 블럭이 강력한 튜닝(Tunning)기능을 가지고 있는데요. 이것을 이용하면 제어기 튜닝이 정말 간편합니다. 위의 블럭을 Simulink에서 꾸며보죠. 분모의 근이 1,5라서 불안정한 시스템입니다. 실행해서 결과를 보면 이렇게 발산해버리시거든요^^ 시뮬링크 라이브러리에 Continuous 폴더에 보시면 PID Controller가 있습니다. 이걸 가져다가 이렇게 붙여보도록 하죠. 그 PID 블럭을 더블클릭해서 보면, PID, PI, PD, P, D, I 제어기중 하나를 선택할 수 있는곳과 연속시간인지 이산시간인지 선택할 수 있도록 되어있습니다. 또한 PID Advanced탭에서는 출력 제..
파라미터 추정(Parameter Estimation)을 MATLAB으로 간단히 해보자 2010. 5. 21. 01:09 MATLAB Simulink는 간단한 사용방법을 가졌지만, 꽤 유용한 (하긴 그런 툴이 정말 많지만 말이죠...^^) Parameter Estimation Toolbox를 가지고 있습니다. 이걸 이용하면 구하고 싶은 파라미터를 추정해볼 수 있는데요. 이번에는 요걸 한번 소개해보도록 하겠습니다. 먼저 좋은 실험 환경이 있었으면 참 좋겠지만, 그런 환경이 없으니 말이죠. 이 파라미터추정 실습을 위해 먼저 데이터를 만들어야겠네요..ㅠㅠ 먼저 Simulink에서 위와 같이 꾸밉니다. Sine Wave에는 아무것도 안건드리고 디폴트로 두었어요. 빨간 표시가 있는 곳에 -2, -1을 넣어둡니다. 그리고 실행해서 Scope를 열어보면 이런 결과가 나는데요. 여기서 표시된 아이콘을 누르고 Data History를 선택..
[MATLAB 연재] 16. GUI - 종합예제 2010. 4. 29. 11:48 MATLAB1. MATLAB 각 Window 사용법 MATLAB2. M-File을 사용한 기초연산법 및 데이터의 그래픽 출력 MATLAB3. 데이터의 3D 출력 MATLAB4. 조건문 및 반복문의 사용. 에러대비 MATLAB5. Simulink의 기초 1 MATLAB6. Simulink의 기초 2 MATLAB7. Function 문의 사용 MATLAB8. 동역학 시뮬레이션하기 MATLAB9. 애니메이션 구현하기 MATLAB10. 애니메이션을 이용한 동역학 시뮬레이션하기 MATLAB11. LQR 툴박스를 사용하여 제어기 구현하기 MATLAB12. GUI 시작하기 - Static, Edit Text 및 Push Button MATLAB13. GUI - Slider 사용하기 MATLAB14. GUI - Lis..

반응형