'2010/03'에 해당되는 글 2건

  1. 2010/03/30 게으른 엔지니어 매스웍스 제품군 (2) (2)
  2. 2010/03/25 게으른 엔지니어 매스웍스 제품군 (1)

매스웍스 제품군 (2)

프로그래밍/MathWorks Products 2010/03/30 19:31 게으른 엔지니어
앞에서 다 쓰지 못한 나머지 세 개의 플랫폼에 대해서 얘기해 보도록 하겠다.

5. 코드 생성 플랫폼
매스웍스 제품의 완결되는 플랫폼으로 Simulin로 만든 모델과 Embedded MATLAB 으로 만든 MATLAB 함수를 C/C++, HDL, PLC 형태의 코드로 만들어 주는 플랫폼이다. 매스웍스에서 얘기하는 모델 기반 설계(Model-Based Design)의 마지막을 장식하는 플랫폼으로 생성된 코드를 기존의 코드나 혹은 운영체제에 쉽게 접목 시킬 수 있도록 해주는 플랫폼이다. 초기 시작은 C 코드만을 생성하다가 C++로 확장되더니, HDL까지도 코드를 생성해 주며, 이번에 새로 나온 R2010a에는 Simulink PLC Coder가 포함되어서 훨씬 다양한 형태로 모델로부터 구현까지 지원을 하게 되었다. HDL Code와 함께 PLC Coder의 경우에도 아직 지원 안되는 블록셋이나 기능이 있긴 하지만 점차 버전 업이 되면서 이런 문제들도 해소될 거라고 보고 있다.

6. Verification 와 Validation을 위한 플랫폼
점차적으로 소프트웨어의 중요성이 커지고, 자동 생성 코드의 중요성이 커지면서 점점 중요해 지고 있는 분야가 테스팅 분야이다. 소프트웨어의 검증은 C/C++ 코드를 컴파일과 링크 과정을 통해서 오브젝트 코드를 만들어서 테스트를 하는 동적 테스팅과 소스 코드 자체를 검사하는 정적 테스팅이 있다.
동적 테스팅의 경우 코드가 완성되어서 직접 보드에 다운로드해서 테스팅해야 하는 번거로움과 함께, 테스팅이 거의 마지막 단계에서 완성되기 때문에 문제가 발생하게되면 많은 과정을 거쳐서 수정을 하게 된다. 매스웍스 제품은 컴파일러와 같이 오브젝트 코드를 만드는 제품이 없으며, 모델(Simulink로 만들어진 모델을 말한다.)을 만들어서 지속적으로 인풋을 만들어서 테스트를 하기 때문에 동적 테스팅과 같은 개념의 작업을 모델을 개발(알고리즘 개발) 하면서 하게 된다. 물론 오브젝트 코드로 바뀌고 나서 다시 테스트해봐야 하지만, 이미 모델을 테스트하면서 개발한 테스트 케이스가 있으므로 좀 더 편리하게 동적 테스팅을 할 수 있다. 이와 같이 모델 상에서 단순히 테스트 케이스로 테스트하는 것에서 더 나아가 모델 상에서의 커버리지를 보는 것과 같이 다양하게 Verification과 Validation을 하기 위한 제품을 제공한다.

7. 코드 검증 분야
정적 테스팅의 경우 C/C++과 ADA 의 소스 코드를 검증하기 위한 PolySpace라는 제품군을 제공한다. 일반적인 정적 테스팅의 경우 코드를 분석하여 오류가 발생할 만한 부분들을 표시해 주는 것이지만, PolySpace의 경우 Formal Method 중에서 Abstract Interpretation 이라는 기법을 사용하여 오류가 발생하지 않음을 검증하는 제품이다. 처음 들으면 기존의 정적 분석 툴과 다를게 없어 보이지만, 실제로는 개념상 완전히 다르게 봐야 한다. PolySpace의 경우 코드를 분석하여 현재 코드 상에서 발생할 수 있는 모든 경우의 수에 대해서 수학적으로 검증을 하게 되므로 동작중에 가장 많이 나타나는 배열 첨자가 지정된 범위 바깥을 나타낸다던지, 혹은 0으로 나누기 등과 같은 다양한 에러에 대해서 발생하지 않음을 검증하는 제품이다. 이 제품도 얘기하자면 무지 길므로 다음에 기회가 있으면 자세하게 설명을 하도록 하겠다.

이상과 같이 매스웍스의 제품군은 자세히 보면 엔지니어링 전반에 걸쳐서 사용할 수 있으며, 서로 잘 연결된 전체 제품군으로 동작하므로 간단한 시스템에서 부터 다양한 분야가 접목된 상태에서 같은 제품을 사용할 수 있는 큰 장점이 있다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
받은 트랙백이 없고, 댓글 2개가 달렸습니다.

댓글+트랙백 RSS :: http://www.cipher.pe.kr/tt/cipher/rss/response/210

댓글+트랙백 ATOM :: http://www.cipher.pe.kr/tt/cipher/atom/response/210

매스웍스 제품군 (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)
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.cipher.pe.kr/tt/cipher/rss/response/209

댓글+트랙백 ATOM :: http://www.cipher.pe.kr/tt/cipher/atom/response/209