1D 시뮬레이션을 위한 카티아 다이몰라
이번호부터 산업 분야에서 버추얼 트윈(virtual twin)을 구축하고 활용하기 위한 다쏘시스템의 솔루션을 살펴본다. 첫 번째로 소개하는 다이몰라(CATIA Dymola)는 모델 기반 시스템 설계와 시뮬레이션을 위한 툴이다. 다이몰라는 다양한 산업 분야에서 사용되며, 기계, 전기, 열, 유체, 제어 시스템 등 다양한 시스템의 거동(behavior)을 모델링 및 시뮬레이션할 수 있다. 다이몰라를 알기 위해서는 우선 모델리카(Modelica)에 대해 알아야 한다.
1D 시뮬레이션이란 시간의 흐름에 따라 지배 방정식을 1차원으로 한정지어 계산하는 방법을 의미한다. 예를 들어, 스프링-댐퍼 시스템에서 길이 방향인 하나의 차원에서 수학적 모델링을 통해 빠른 시간 내에 결과를 도출해 검토할 수 있다. 장점으로는 모델 구성 및 검토의 시간이 빠르고, 표현의 제약이 적으며, 시스템간 상호 작용을 효율적으로 검토 가능하다. 단점으로는 시스템의 기능을 수식화하기 위해 도메인(domain)에 대한 높은 이해도가 필요하고, 인풋(input) 정보의 품질에 따라 아웃풋(output)이 민감하게 반응한다.
모델리카는 시스템 모델링을 위한 언어이다.
모델리카(Modelica)는 1996년 모델리카 어소시에이션(Modelica Association)에 의해 개발된 시스템 모델링을 위한 언어이다. 무료로 사용할 수 있고, 여러 개발자 및 전문가에 의해 개발되고 있다. 모델리카는 시스템 모델링을 지원하며, 다쏘시스템에서는 시스템 모델링의 원활한 시뮬레이션을 위한 솔버 알고리즘을 개발하 고 있다.
다이몰라에는 모델 시뮬레이션을 위한 다양한 솔버가 내장되어 있다. 사용자는 문제 해결을 위한 미분방정식에 대한 표현을 모델리카 문법에 맞게 표현함으로써 시뮬레이션을 위한 모델링은 끝났다고 볼 수 있으며, 이러한 이유 때문에 모델리카는 C, C++, 포트란(Fortran) 등 타 언어에 비해 코드량이 적다는 것을 알 수 있다. 모델리카의 모델링 방법에는 텍스트 타입으로 방정식을 정의할 수 있고, 또한 유저에게 친근한 GUI(그래픽 사용자 인터페이스)를 활용한 객체 모델링 기반으로 모델을 구성할 수 있다.
모델리카는 비인과적/인과적 해석을 모두 지원한다.
인과적(causal) 모델링과 비인과적(acausal) 모델링은 둘 다 시스템이나 현상을 설명하고 예측하기 위한 방법론이다.
비인과적 모델링은 원인과 결과 간의 인과 관계를 명확히 구분하지 않고 시스템의 구성요소 간의 관계를 모델링하는 방법이다. 이 방법은 일반적으로 동적 시스템의 거동을 설명하거나 예측할 때 사용하며, 시스템의 구성 요소와 그들 간의 관계를 수학적 방정식으로 표현하여 시스템의 동작을 설명한다. 각 요소가 다른 요소에 의해 어떻게 영향을 받는지를 보다 전체적으로 이해하는 데에 도움이 된다.
인과적 모델링은 원인과 결과 간의 인과관계를 중심으로 모델을 구성한다. 이 모델링 기법은 일반적으로 인과관계를 고려하여 시스템의 동작을 설명하고 예측한다. 예를 들면 A가 B에 어떻게 영향을 주는지, 또는 어떤 요인이 결과에 어떻게 기여하는지를 분석한다. 주로 원인과 결과 간의 관계를 나타내는 도표나 그래프를 사용해 시각화하며, 시간의 흐름을 고려하여 이전 사건이 이후 사건에 어떻게 영향을 미치는지를 이해한다.
비인과적 모델링은 물리적 시스템의 동작을 설명하는데 유용하다. 예를 들어, 열 전달, 유체 흐름, 전기 회로 등과 같은 시스템에서 원인과 결과 간의 명확한 인과관계를 파악하기 어려운 경우 가 있다. 이러한 시스템은 에너지, 질량 또는 정보의 흐름을 모델링하여 설명할 수 있다.
모델리카는 해석 솔버에 대한 개발이 필요 없다.
실제 모델링 후 유저는 소스코드를 볼 수 있고, 해석 결과를 확인할 수 있다. 그렇지만 솔버에 대한 구현 방식은 확인할 수 없다. 다이몰라에 솔버가 내장되어 있어 유저는 미분방정식에 대한 표현을 모델리카 문법에 맞게 표현하면, 유저가 모델링한 시스템에 대한 해석 결과를 확인할 수 있다.
이러한 이유로 인해 모델리카의 코드량은 타 언어에 비해 적다. 솔버가 해석 결과를 보여주기 위해 <그림 2>를 참조하면, 모델리카 file (*.mo)를 C 언어로 변환하고 참조할 라이브러리와 함께 컴파일을 수행하기 때문에 유저는 이 과정을 인식하지 못하는 경우가 많다.
모델리카는 커넥터라는 객체를 활용할 수 있다.
<그림 3>과 같은 Modelica Standard Library(MSL)의 소스코드를 참고하면 파란색으로 표시된 ‘Connector’라는 키워드를 확인할 수 있다. 커넥터는 구성요소(Component)간의 약속된 인터페이스라고 할 수 있다.
<그림 3>에서와 같이 ‘Flange’는 이동거리(s)와 힘(f)으로 구성된다. 구성요소간에 상호관계를 이동거리와 힘을 계산해서 결과를 보여준다. 이를 그대로 사용해도 되고 유저의 기호에 맞게 변형이 가능하다.
이러한 점이 모델리카의 강점이며, 사용자 정의에 따라 우리 회사만의 모델을 구성할 수 있게 된다. 열, 기계, 전기 등 여러 산업군에 대한 모델링이 가능하며, 이는 객체 지향 모델링을 가능하게 한다.
모델리카는 객체지향 모델링을 가능하게 한다.
객체 지향 모델링은 각각의 의미를 가진 객체들을 통해 모델링을 수행한다. <그림 4>는 연료 전지를 사용하는 항공기 모델이다.
모델을 자세히 보면 크게 3가지로 나눠서 볼 수 있다.
첫째, 아이콘은 하나의 물리적 의미를 갖고 있는 컴포넌트를 나타내는 객체이다. 대기와의 열전달 계산을 위한 캐빈(Cabin), 수소와 배터리의 효율적인 분배를 위한 수소저장탱크 용량 및 배터리 용량을 결정하는 에너지서플라이(energySupply), 추진력을 계산하는 프로펠러, 비행 제어, 현재의 비행 조건을 확인하기 위한 콕핏(cockpit)을 표현했다.
둘째, 커넥션은 실제의 물리적인 연결을 의미하며, <그림 4>에서는 아이콘에 있는 커넥터와 연결된 선이다. 예를 들면 전선, 도관, 기계적 커플링이라고 볼 수 있다. 셋째, 커넥터는 <그림 4>에서 빨간 원으로 표시된 객체이다. 다른 객체 간의 상호 관계를 의미하며, 인터페이스라고 볼 수 있다. 만약 커넥터의 포함되어 있는 정보가 서로 상이하다면 커넥션은 연결되지 않는다.
이와 같이 컴포넌트의 연결을 통해 상위 컴포넌트 및 시스템을 표현하고, 이를 활용해서 템플릿 기능을 사용할 수 있는 토대가 된다.
다이몰라는 FMI/FMU를 지원한다.
FMI(Functional Mockup Interface)는 다른 기종 시뮬레이션 툴에서 사용하기 위한 중립 포맷의 규약이다. FMI라는 표준을 준수해서 생성된 해석 모델은 *.fmu라는 확장자를 갖게 된다.
하나의 시뮬레이션 툴로 모든 해석 모델을 개발하는 것은 비효율적이라는 것이 FMI가 개발된 배경이다. 하나의 툴에서 다른 해석 툴의 모델을 사용하기 위해 상호 교환이 가능한 모델 표준의 필요성이 대두된 것이다. 이러한 요구를 갖고 ‘fmi-standard’라는 기관에서 FMI 1.0 버전을 시작으로 2.0 버전, 지금은 3.0 버전까지 개발되었으며, 170여 개 이상의 툴이 지원하고 있다.
FMI를 활용함으로써 상호 모델 교환이 가능해지고 해석의 활용성이 증가한다. 그리고 모든 해석 툴을 보유할 필요가 없어지게 되었다. 복잡한 해석 모델을 FMU로 변환하여 계산시 초기화 이슈가 발생할 수도 있다. FMU 생성 유저와 사용할 유저간의 상호 조건에 관해 심도 깊은 이해가 필요하다.
FMU에 대해 자세히 알아보면, 현재 많이 사용되는 FMI 2.0을 기준으로 Model Exchange(이하 ME) 타입과 Co-Simulation(이하 CS) 타입의 두 가지 방식을 취한다. <그림 5>와 같이 ME는 모델 정보만 갖고 있고, CS는 모델과 솔버 정보를 갖고 있다. 마스터(Master)는 현재 유저가 시뮬레이션을 하기 위한 툴 (소프트웨어)를 뜻하고, 슬레이브(Slave)는 FMU를 생성한 툴 (소프트웨어)를 뜻한다.
ME는 마스터 툴의 솔버를 사용해서 시뮬레이션을 수행한다. 마스터의 솔버를 사용하기 때문에, FMU 모델 시 솔버에 대해 고려해야 한다. CS는 슬레이브에서 익스포트(Export)한 솔버를 사용해서 시뮬레이션을 수행하며, 솔버가 FMU에 포함되어 있기 때문에 시뮬레이션에 대한 대응이 좋다. 해석 모델이 특정 솔버를 사용해야 하는 경우에 CS를 활용하는 것이 좋다.
다이몰라는 모델리카 언어를 기반으로 작동하며, 유저는 시스템의 구성 요소를 모델로 정의하고 이를 연결하여 단순한 시스템에서부터 복잡한 시스템을 구축할 수 있다. 모델은 시스템의 동작을 정확하게 표현하고, 다양한 경계조건에서의 시뮬레이션 결과를 생성할 수 있다. 그리고 시스템 설계의 초기 단계부터 모델링, 시뮬레이션, 최적화, 코드 생성까지 다양한 기능을 제공한다. 또한 다른 공학 도구와의 통합이 용이하며, 제조 업체 및 연구기관에서 시스템 설계 및 개발을 지원하기 위해 널리 사용된다.
[저자소개]
안치우
다쏘시스템코리아의 카티아 인더스트리 프로세스 컨설턴트로 CATIA Dymola를 활용한 1D 시뮬레이션을 담당하고 있다. 관심 분야는 Modelica, FMI, 1D~3D 코시뮬레이션, SysML 기반의 Modelica 모델 개발이며 LG전자, 삼성전자, SK하이닉스 등 다수의 프로젝트 및 제안을 수행하고 있다.
출처: 캐드앤그래픽스(https://go.3ds.com/2YW)
[기술 칼럼] 산업 디지털 전환을 위한 버추얼 트윈
- 1편 1D 시뮬레이션을 위한 카티아 다이몰라: https://go.3ds.com/fA2
- 2편 자동차 산업에서 3DEXPERIENCE CATIA의 활용: https://go.3ds.com/5Jn
- 3편 제조산업에서 AR 기술의 혁신적 도입 지원하는 디오타: https://go.3ds.com/Xw2
- 4편 델미아 오르템즈, 효율적이고 정확한 생산 계획 및 스케줄 관리: https://go.3ds.com/sUL