매스웍스 제품군 (1)

프로그래밍/MathWorks Products | 2010/03/25 07:47 | 게으른 엔지니어

3월 첫주 금요일에 R2010a 버전이 새롭게 나왔다. 벌써 몇 년째 1년에 두번씩 업데이트된 버전을 내고 있는데, 이번 버전에서 가장 크게 추가된 기능은 System Object 라는 것이다.
조만간 이것에 대해서 자세하게 언급할 경우가 있겠지만, 실제 이쪽 분야 담당자와 얘기해 본 결과 상당히 좋아진 기능이라서 많은 사람들이 알았으면 하는 기능이라는 것이다.

지금 MathWorks 제품은 크게 보면 7개 정도의 큰 분야로 분리를 할 수 있다.

1. MATLAB 플랫폼
가장 기본적인 플랫폼으로 수학적인 알고리즘 계산등을 하기에 편리하며, 다른 프로그래밍 언어처럼 처리가 가능하다. MATLAB 플랫폼은 일종의 interpreter 언어로 볼 수 있으며, 기본적인 모든 연산은 행렬 연산을 기준으로 하고 있다. 덕분에 엔지니어링쪽에서 필요로 하는 계산을 사용자가 코딩할 때도 많이 생략되며, 또한 거의 최강이다 시피한 Data Visualization 을 손 쉽게 할 수 있다.

사용자 삽입 이미지


2. Distributed Computing 플랫폼
MATLAB 환경하에서 Parallel Computing을 하는 방법이 몇 년전부터 추가 되어서 다양하게 활용되고 있는 중이다. 한 컴퓨터 내에서 멀티 코어가 있을때 이를 직접적으로 활용하기 위해서는 Parallel Computing Toolbox를 사용할 수 있으며, 물리적으로 따로 떨어진 여러 대의 컴퓨터를 연결해서 알고리즘 전체를 여러번 반복해서 돌릴때 스케쥴러가 이런것을 이용해서 할때 사용하는 제품이 MATLAB Distributed Computing Server(MDCS)이다.

3. Simulink 플랫폼
또 다른 플랫폼처럼 얘기하긴 했지만, 더 바닥에는 MATLAB이 있어야만 실행이 가능하다. MATLAB과는 다르게 블록 다이어그램으로 필요한 프로그래밍을 하게 된다. MATLAB 플랫폼과 같이 일반적인 프로그래밍 언어로 알고리즘을 개발하던 엔지니어에게는 좀 생소할 수 있지만, 약간 익숙해 지면 대단히 편리하게 엔지니어링 일을 할 수 있다. 게다가 State Machine 알고리즘을 개발할 때는 Stateflow라는 제품을 활용해서 그래픽과 텍스트가 혼용된 형태로 모델링하여 훨씬 효과적으로 알고리즘을 개발할 수 있다. 또한 기존의 C코드가 있는 경우 Simulink에서 사용 가능한 형태의 블록으로 만들어서 Legacy Code와도 같이 사용하기 쉽게 되어 있으며, C로 블록을 만드는 방법 자체가 공개되어 있기 때문에 대부분 다른 툴과 연동이 쉽게 되어 있다.
사용자 삽입 이미지


사용자 삽입 이미지

4. Physical Modeling 플랫폼
Simulink를 이용해서 제어기 설계나 시물레이션을 하다보면 항상 문제가 될 수 있는 부분이 플랜트이다. 플랜트란 제어 하고자 하는 대상체를 통상적으로 지칭하는 말로서, 예전에는 수식을 특정 대상체에 대한 시간에 대한 특성을 수식으로 만들어서 Simulink로 수식을 구현하던가, Adams와 같은 Dynamic System의 모델링을 전문적으로 하는 툴에서 만들어서 Simulink로 가져 오는 방법등을 사용했었다. 하지만, 이런 경우 기계적인 시스템과 전기적인 시스템, 그리고 유압 시스템까지 같이 있는 플랜트의 경우는 한꺼번에 시물레이션을 하기가 매우 힘들다.

Physical Modeling 플랫폼의 경우 물론 Simulink 위에서 블록처럼 존재하지만, 실제로는 Simulink 에서 제공하는 다른 블록들과는 다르게 동작하며, 다양한 도메인을 위한 라이브러리가 존재한다. Physical Modeling 플랫폼의 경우 특정 시스템을 모델링할 때 시스템의 수식을 만들어서 이를 Simulink로 구현하는게 아니라 실제 존재하는 각 컴포넌트를 연결함으로써 시스템의 수식은 내부적으로 만들어 진다. 예를 들어 SimElectronics 라는 Physical Modeling 플랫폼의 제품중에 하나는 일반적으로 많이 사용하는 모터가 블록으로 존재해서 실제 모터의 스펙 값을 입력하는 것으로 모터에 대한 모델링을 끝낼 수가 있다.

R2010a를 기준으로 현재 제공하는 다양한 도메인을 제공하는데, 예를 들어 비행기의 랜딩 기어를 설계할 경우, 엑츄에이터로 유압 모터가 좋을지 일반적인 전기 모터가 좋은지를 비교해야 할 경우를 생각해 보자. Physical Modeling 플랫폼에는 SimHydraulics라는 라이브러리가 있어서 유압 모터가 블록으로 존재하며, SimElectronics에 있는 전기 모터를 Simulink 환경에서 쉽게 블록을 변경하면서 테스트 할 수 있다.

또한 Physical Modeling 플랫폼에서 제공하지 않는 컴포넌트는 Simscape Language를 활용하여 직접 손 쉽게 만들 수 있다.

이 부분은 얘기하자면 무지 길어 지니 다음 천천히 시간을 내서 설명을 하도록 하겠다. 지금은 매스웍스 홈페이지의 소개하는 http://www.mathworks.com/physical-modeling/ 를 참조 하자.

사용자 삽입 이미지


나머지 세 개의 플랫폼은 5. 코드 생성 플랫폼, 6. Verification과 Validation을 위한 플랫폼, 7. 코드 검증 분야 플랫폼 으로 나누어 지는데, 다음에 올리 도록 하겠다.

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)

트랙백을 보내세요

트랙백 주소 :: http://www.cipher.pe.kr/tt/cipher/trackback/209

댓글을 달아 주세요

[로그인][오픈아이디란?]
비밀글 (Serect)
댓글 달기 (Submit)