맨위로가기

모델리카

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

모델리카는 객체 지향 모델링 언어로서 C++ 또는 자바와 유사하지만, 프로그래밍 언어가 아닌 모델링 언어라는 점과 방정식 기반으로 구성된다는 특징을 갖는다. 모델리카는 시뮬레이션 엔진에 의해 실행되는 객체로 변환되며, 알고리즘 구성 요소와 함께 주요 내용은 일련의 방정식으로 표현된다. 1996년 힐딩 엘름크비스트에 의해 설계가 시작되었으며, 표준화된 형식으로 동적 시스템 모델을 재사용하고 교환하는 것을 목표로 한다. 모델리카 협회를 통해 언어와 표준 라이브러리가 지속적으로 개발되었으며, 다양한 상용 및 오픈 소스 구현 환경에서 활용되고 있다. 모델리카는 유체 시스템, 자동차 응용 분야, 기계 시스템 등 다양한 분야에서 사용되며, 모델리카 표준 라이브러리를 포함한 무료 라이브러리를 제공한다.

더 읽어볼만한 페이지

  • 선언형 프로그래밍 언어 - XAML
    XAML은 마이크로소프트에서 개발한 XML 기반의 마크업 언어로, 사용자 인터페이스, 데이터 바인딩, 이벤트 처리 등을 정의하며 WPF, Silverlight, WF, WinRT API 앱, Xamarin.Forms 등에서 UI 개발에 널리 사용된다.
  • 선언형 프로그래밍 언어 - 임베디드 SQL
    임베디드 SQL은 호스트 프로그래밍 언어 내에 SQL 문을 삽입하여 데이터베이스와 상호 작용하는 기술로, 데이터베이스 액세스를 표준화하지만 보안 취약점과 이식성 저하의 단점도 가진다.
  • 객체 지향 프로그래밍 - Is-a
    Is-a 관계는 객체 지향 프로그래밍에서 한 유형이 다른 유형의 하위 유형임을 나타내는 관계로, 상속, 서브타이핑, 리스코프 치환 원칙과 관련되며, C++, Python, Java 등에서 표현된다.
  • 객체 지향 프로그래밍 - 객체 (컴퓨터 과학)
    객체는 객체 지향 프로그래밍에서 데이터와 조작을 묶어 메시지를 수신하고, 프로그램의 개념을 표현하며 가시성과 재사용성을 높이는 실체이다.
모델리카 - [IT 관련 정보]에 관한 문서
기본 정보
Modelica Language
Modelica 언어 로고
개발자Modelica Association Project (MAP)
발표 연도1997년
최신 안정화 버전3.6
최신 안정화 버전 날짜2023년 3월 9일
종류선언형 프로그래밍 언어
구현체AMESim
CATIA Systems
Dymola
JModelica.org
MapleSim
Wolfram SystemModeler
OpenModelica
Scicos
SimulationX
Xcos
운영 체제크로스 플랫폼
라이선스CC-BY-SA
파일 확장자.mo
웹사이트www.modelica.org

2. 특징

모델리카는 객체 지향 프로그래밍 언어인 C++ 또는 자바와 유사하지만, 두 가지 중요한 측면에서 차이가 있다. 첫째, 모델리카는 일반적인 ''프로그래밍'' 언어가 아닌 모델링 언어이다. 모델리카 클래스는 일반적인 의미로 컴파일되지 않고, 시뮬레이션 엔진에 의해 실행되는 객체로 변환된다. 시뮬레이션 엔진은 언어에 의해 지정되지는 않지만, 특정 필수 기능이 개략적으로 설명되어 있다.

둘째, 클래스는 프로그래밍 언어의 문장이나 블록과 유사한 알고리즘 구성 요소를 포함할 수 있지만, 주요 내용은 일련의 ''방정식''이다. 다음은 전형적인 할당 문장과 대조적이다.

: x := 2 + y;

여기서 문장의 왼쪽에 있는 변수는 오른쪽에 있는 식에서 계산된 값을 할당받는 반면, 방정식은 양변에 식이 있을 수 있다. 예를 들어,

: x + y = 3 * z;

방정식은 할당이 아닌 ''동등성''을 설명한다. 모델리카 용어에서 방정식은 미리 정의된 ''인과 관계''가 없다. 시뮬레이션 엔진은 (일반적으로 반드시) 방정식의 실행 순서를 결정하고 방정식의 어떤 구성 요소가 입력이고 어떤 구성 요소가 출력인지 결정하기 위해 방정식을 기호적으로 조작할 수 있다.

전형적인 대입문은 다음과 같이 표현한다.

: x := 2+y;

위 식에서는, 좌변(x)에 우변의 식(2+y)에서 산출된 값이 대입된다.

방정식을 표현하려면 다음과 같이 표현한다.

: f = m * a;

위 식에서는, 좌변과 우변의 식이 같다는 것을 표현한다.

2. 1. 모델링 언어

모델리카는 객체 지향 프로그래밍 언어인 C++ 또는 자바와 유사하지만, 두 가지 중요한 측면에서 차이가 있다. 첫째, 모델리카는 일반적인 ''프로그래밍'' 언어가 아닌 모델링 언어이다. 모델리카 클래스는 일반적인 의미로 컴파일되지 않고, 시뮬레이션 엔진에 의해 실행되는 객체로 변환된다. 시뮬레이션 엔진은 언어에 의해 지정되지는 않지만, 특정 필수 기능이 개략적으로 설명되어 있다.

둘째, 클래스는 프로그래밍 언어의 문장이나 블록과 유사한 알고리즘 구성 요소를 포함할 수 있지만, 주요 내용은 일련의 ''방정식''이다. 다음은 전형적인 할당 문장과 대조적이다.

: x := 2 + y;

여기서 문장의 왼쪽에 있는 변수는 오른쪽에 있는 식에서 계산된 값을 할당받는 반면, 방정식은 양변에 식이 있을 수 있다. 예를 들어,

: x + y = 3 * z;

방정식은 할당이 아닌 ''동등성''을 설명한다. 모델리카 용어에서 방정식은 미리 정의된 ''인과 관계''가 없다. 시뮬레이션 엔진은 (일반적으로 반드시) 방정식의 실행 순서를 결정하고 방정식의 어떤 구성 요소가 입력이고 어떤 구성 요소가 출력인지 결정하기 위해 방정식을 기호적으로 조작할 수 있다.

2. 2. 방정식 기반 프로그래밍

모델리카는 객체 지향 프로그래밍 언어C++ 또는 자바와 유사하지만, 일반적인 ''프로그래밍'' 언어가 아닌 모델링 언어라는 점에서 차이가 있다. 모델리카 클래스는 일반적인 의미로 컴파일되지 않고, 시뮬레이션 엔진에 의해 실행되는 객체로 변환된다. 시뮬레이션 엔진은 언어에 의해 지정되지는 않지만, 특정 필수 기능이 개략적으로 설명되어 있다.

클래스는 프로그래밍 언어의 문장이나 블록과 유사한 알고리즘 구성 요소를 포함할 수 있지만, 주요 내용은 일련의 ''방정식''이다. 방정식은 할당이 아닌 ''동등성''을 설명하며, 모델리카 용어에서 방정식은 미리 정의된 ''인과 관계''가 없다. 시뮬레이션 엔진은 (일반적으로 반드시) 방정식의 실행 순서를 결정하고 방정식의 어떤 구성 요소가 입력이고 어떤 구성 요소가 출력인지 결정하기 위해 방정식을 기호적으로 조작할 수 있다.

전형적인 대입문은 다음과 같이 표현한다.

```

x := 2+y;

```

위 식에서는, 좌변(x)에 우변의 식(2+y)에서 산출된 값이 대입된다.

방정식을 표현하려면 다음과 같이 표현한다.

```

f = m * a;

```

위 식에서는, 좌변과 우변의 식이 같다는 것을 표현한다.

3. 역사

모델리카(Modelica) 설계는 1996년 9월 힐딩 엘름크비스트(Hilding Elmqvist)에 의해 시작되었다.[5] 그 목표는 기술 시스템의 모델링을 위한 객체 지향 언어를 개발하여 표준화된 형식으로 동적 시스템 모델을 재사용하고 교환하는 것이었다. Modelica 1.0은 힐딩 엘름크비스트의 박사 학위 논문[5]과 Allan,[6] Dymola, NMF,[7] ObjectMath,[8] Omola,[9] SIDOPS+,[10] 및 Smile[11] 등 여러 모델링 언어에 대한 경험을 바탕으로 한다.[2]

1997년 9월, 모델리카 사양 버전 1.0이 출시되었으며, 이는 상업용 Dymola 소프트웨어 시스템 내의 프로토타입 구현의 기반이 되었다. 2000년에는 비영리 모델리카 협회가 설립되어 지속적으로 진화하는 모델리카 언어와 무료 모델리카 표준 라이브러리의 개발을 관리했다. 같은 해에 모델리카는 산업 응용 분야에서 사용되기 시작했다.[12]

모델리카 사양 역사의 타임라인은 다음과 같다:[12]

릴리스릴리스 날짜주요 특징
1.01997년 9월연속 동적 시스템을 모델링하는 첫 번째 버전.
1.11998년 12월이산 시스템을 모델링하기 위한 언어 요소(pre, when)
1.21999년 6월C 및 Fortran 인터페이스, 전역 변수를 위한 inner/outer, 이벤트 처리의 세분화된 의미
1.31999년 12월inner/outer 연결에 대한 향상된 의미, 보호된 요소, 배열 표현식.
1.42000년 12월declare-before-use 규칙 제거, 패키지 개념 개선, when-절 개선
2.02002년 7월모델 초기화, 그래픽 모양 표준화, 혼합 위치 및 명명된 인수를 가진 함수, 레코드 생성자, 열거형
2.12004년 3월3차원 기계 시스템을 모델링하기 위한 과결정 커넥터, 하위 모델의 향상된 재선언, 열거형의 배열 및 배열 인덱스
2.22005년 2월신호 버스를 모델링하기 위한 확장 가능한 커넥터, 조건부 구성 요소 선언, 함수에서 동적 크기 변경이 가능한 배열
3.02007년 9월정리 버전: 사양 새로 작성, 유형 시스템 및 그래픽 모양 개선, 언어 결함 수정, 모델 오류를 훨씬 더 잘 감지하기 위한 균형 잡힌 모델 개념
3.12009년 5월유체의 양방향 흐름을 처리하기 위한 스트림 커넥터, 연산자 오버로딩, 실행 환경에 모델 부분 매핑(임베디드 시스템에서 사용하기 위해)
3.22010년 3월호모토피 방법을 사용한 초기화 개선, 함수를 함수에 대한 형식적 입력으로, 유니코드 지원, IP 보호를 위한 접근 제어, 객체 라이브러리 지원 개선
3.32012년 5월클록된 방정식 기반의 주기적 및 비주기적 동기식 컨트롤러, 동기식 상태 머신을 설명하는 언어 요소 추가.
3.42017년 4월모델 자동 변환. 많은 사소한 개선 사항
3.52021년 2월미리 정의된 플롯에 대한 주석. 사양 형식 변경, 많은 편집 변경 사항 포함. 동기식 언어 요소 및 상태 머신에 대한 설명. 함수, 모델 변환 및 사양의 여러 다른 부분에 대한 많은 사소한 설명.
3.62023년 3월break를 사용한 수정자 제거 및 선택적 모델 확장. 여러 언어로 모델리카 라이브러리를 제공하기 위한 다국어 지원.


4. 구현

모델리카를 위한 상업용 프런트 엔드와 오픈 소스 프런트엔드가 존재한다.

지멘스 디지털 인더스트리 소프트웨어의 AMESim, 다쏘 시스템의 Dymola, 볼프럼 리서치의 Wolfram SystemModeler, ESI ITI GmbH의 SimulationX, Maplesoft의 MapleSim,[13] Modelon AB의 Modelon Impact,[14] 다쏘 시스템의 CATIA Systems[15][16] (CATIA는 주요 CAD 시스템 중 하나임) 등이 모델리카를 위한 상용 프런트 엔드로 사용된다. JModelica.org (오픈 소스, 단종) 및 스웨덴 회사 Modelon AB의 Modelon Impact,[14] 그리고

다쏘 시스템의 CATIA Systems[15][16] (CATIA는 주요 CAD 시스템 중 하나임)가 있다.

Openmodelica[17]는 산업 및 학술적 사용을 위한 오픈 소스 모델리카 기반 모델링 및 시뮬레이션 환경이다. 장기적인 개발은 비영리 단체인 오픈 소스 모델리카 컨소시엄(OSMC)에서 지원한다. OpenModelica의 목표는 연구,[19][20] 교육,[21] 및 산업적 사용을 위해 바이너리 및 소스 코드 형태로 배포되는 자유 소프트웨어를 기반으로 한 포괄적인 오픈 소스 모델리카 모델링,[18] 컴파일 및 시뮬레이션 환경을 만드는 것이다.

무료 시뮬레이션 환경인 Scicos는 컴포넌트 모델링에 모델리카의 하위 집합을 사용한다. 모델리카 언어의 더 큰 부분을 지원하는 기능이 현재 개발 중이다.

그럼에도 불구하고, 모델리카 언어와 관련하여 모든 서로 다른 도구 간에 여전히 일부 호환성 문제가 있으며 해석이 다소 상이하다.[22]

모델리카(Modelica)를 시뮬레이션하는 환경 도구(상용/프리)로는 CATIA Systems, Dymola, LMS AMESim, JModelica, MapleSim(MapleSim), MathModelica, OpenModelica(OpenModelica), SCICOS(Scicos), SimulationX(SimulationX)가 있다.

4. 1. 상용 소프트웨어

지멘스 디지털 인더스트리 소프트웨어의 AMESim, 다쏘 시스템의 Dymola, 볼프럼 리서치의 Wolfram SystemModeler, ESI ITI GmbH의 SimulationX, Maplesoft의 MapleSim,[13] Modelon AB의 Modelon Impact,[14] 다쏘 시스템의 CATIA Systems[15][16] (CATIA는 주요 CAD 시스템 중 하나임) 등이 모델리카를 위한 상용 프런트 엔드로 사용된다. 모델리카(Modelica)를 시뮬레이션하는 상용 환경 도구로는 CATIA Systems, Dymola, LMS AMESim, MapleSim, MathModelica, SimulationX가 있다.[22]

4. 2. 오픈 소스 소프트웨어

Openmodelica[17]는 산업 및 학술적 사용을 위한 오픈 소스 모델리카 기반 모델링 및 시뮬레이션 환경이다. 장기적인 개발은 비영리 단체인 오픈 소스 모델리카 컨소시엄(OSMC)에서 지원한다. OpenModelica의 목표는 연구,[19][20] 교육,[21] 및 산업적 사용을 위해 바이너리 및 소스 코드 형태로 배포되는 자유 소프트웨어를 기반으로 한 포괄적인 오픈 소스 모델리카 모델링,[18] 컴파일 및 시뮬레이션 환경을 만드는 것이다.

무료 시뮬레이션 환경인 Scicos는 컴포넌트 모델링에 모델리카의 하위 집합을 사용한다.[22]

5. 라이브러리

모델리카 협회는 모델리카 표준 라이브러리(MSL: Modelica Standard Library)를 비롯한 무료 라이브러리를 공개하고 있다. 표준 라이브러리 및 무료 라이브러리의 대부분은 모델리카 라이선스에 따라 상업적 제품에 사용할 수 있다.

MSL 버전 목록
버전출시일모델 수함수 수
3.22010년 10월1280910
3.12009년 8월922615
3.0.12009년 1월781553
3.02008년 2월777549
2.2.22007년 8월740540
2.2.12006년 3월690510
2.22005년 4월640470
2.12004년 11월580200
1.62004년 6월29040


6. 응용 분야

모델리카는 도메인 중립적으로 설계되어 다양한 분야에서 활용된다.[24] 유체 시스템 (증기 발전, 유압 등), 자동차 응용 분야 (특히 파워트레인),[24] 기계 시스템 (다물체 시스템, 메카트로닉스 등)과 같은 광범위한 응용 분야에서 사용된다. 포드,[25][26][27] 제너럴 모터스,[28] 토요타,[29] BMW,[30] 다임러[31]를 포함한 주요 자동차 OEM들이 모델리카를 사용하고 있다. 또한, 모델리카는 열유체 및 에너지 시스템의 시뮬레이션에도 점점 더 많이 사용되고 있다.[32] 모델리카의 비인과적, 객체 지향적, 도메인 중립적 특성은 시스템 레벨 시뮬레이션에 적합하며, 모델리카는 현재 이 분야에서 잘 자리 잡고 있다.[33]

7. 예제

1차 시스템의 예시는 다음과 같다.[23]

```modelica

model FirstOrder

parameter Real c=1 "시간 상수";

Real x (start=10) "알 수 없는 변수";

equation

der(x) = -c*x "1차 미분 방정식";

end FirstOrder;

```

위 코드는 \dot x = - c \cdot x, x(0)=10 를 나타낸다.[23]

삼각 함수의 2차 미분을 계산하는 예시는 다음과 같다.[23]

```modelica

model second_derivative

Real l;

Real z=sin(w*time);

Real m;

parameter Real w = 1;

equation

l=der(z);

m=der(l);

end second_derivative;

```

삼각 함수의 2차 미분 계산 예제


이 예제에서는 'parameter' 한정자가 주어진 변수가 시간에 불변임을 나타내고, 'der' 연산자는 변수의 시간에 대한 미분을 (기호적으로) 나타낸다.[23]

모델리카는 물리 시스템 모델링에 주로 사용된다. 전기 회로 모델링 예제를 통해 기본 구조 개념을 확인할 수 있다.

8. 기본 구성 개념

8. 1. 내장 및 사용자 정의 자료형

모델리카는 실수형(Real), 정수형(Integer), 부울형(Boolean), 문자열형(String)의 네 가지 내장 형식을 가지고 있다. 일반적으로, 사용자 정의 형식은 물리적 양, 단위, 공칭 값 및 기타 속성을 연결하기 위해 파생된다.

```modelica

type Voltage = Real(quantity="ElectricalPotential", unit="V");

type Current = Real(quantity="ElectricalCurrent", unit="A");

...

8. 2. 물리적 상호 작용을 설명하는 커넥터

구성 요소 간의 상호 작용은 물리적 포트, 즉 '''커넥터'''에 의해 정의된다. 예를 들어, 전기 핀은 다음과 같이 정의된다.

```modelica

connector Pin "전기 핀"

Voltage v "핀에서의 전위";

flow Current i "구성 요소로 흘러 들어가는 전류";

end Pin;

```

포트 간에 연결선을 그릴 때, "flow" 접두사가 없는 해당 커넥터 변수(여기서는 "v")는 동일하고, "flow" 접두사가 있는 해당 커넥터 변수(여기서는 "i")는 합이 0인 방정식으로 정의된다. 이는 무한히 작은 연결 지점에서 관련 평형 방정식을 자동으로 충족시키기 위한 것이다.

8. 3. 기본 모델 구성 요소

기본 모델 구성 요소는 '''모델'''에 의해 정의되며, 커넥터 변수 간의 관계를 설명하는 방정식을 포함한다.[2] 방정식은 선언적 형식으로 작성되어 계산 순서를 지정하지 않는다. 예를 들어, 커패시터 모델은 다음과 같이 정의된다.[2]

```modelica

model Capacitor

parameter Capacitance C;

Voltage u "pin_p와 pin_n 사이의 전압 강하";

Pin pin_p, pin_n;

equation

0 = pin_p.i + pin_n.i;

u = pin_p.v - pin_n.v;

C * der(u) = pin_p.i;

end Capacitor;

```

연결된 모델 구성 요소 집합이 미분, 대수 및 이산 방정식 집합으로 이어져 미지수의 수와 방정식의 수가 동일하도록 하는 것을 목표로 한다. Modelica에서는 이를 '''균형 잡힌 모델'''이라고 부른다.[2]

대부분의 경우, 변수와 방정식을 계산하는 간단한 규칙은 다음과 같다.[2]

  • 모델 방정식의 수 = 모델에 정의된 방정식 수 + 외부 커넥터의 흐름 변수 수
  • 모델 변수 수 = 모델에 정의된 변수 수 (물리적 커넥터의 변수 포함)


표준 입력 커넥터(RealInput 또는 IntegerInput 등)는 내부에 새 변수가 정의되지 않으므로 변수 수에 기여하지 않는다.[2]

위의 커패시터 모델은 방정식 수 = 3+2=5 (흐름 변수: pin_p.i, pin_n.i, u), 변수 수 = 5 (u, pin_p.u, pin_p.i, pin_n.u, pi_n.i)로 균형을 이룬다.[2] OpenModelica[17]를 사용하여 확인하면 "Class Capacitor has 5 equation(s) and 5 variable(s)."라는 결과를 얻을 수 있다.

Modelica Standard Library의 SignalVoltage 구성 요소는 입력 신호를 소스 전압으로 사용하는 일반 전압 소스이다. 이 구성 요소는 방정식 수 = 3+2=5 (흐름 변수: pin_p.i, pin_n.i, u), 변수 수 = 5 (i, pin_p.u, pin_p.i, pin_n.u, pi_n.i)로 균형을 이룬다. OpenModelica[17]로 확인하면 "Class Modelica.Electrical.Analog.Sources.SignalVoltage has 5 equation(s) and 5 variable(s)."라는 결과를 얻을 수 있다.

8. 4. 균형 잡힌 모델

연결된 모델 구성 요소 집합이 미분, 대수 및 이산 방정식 집합으로 이어져 미지수의 수와 방정식의 수가 동일하도록 하는 것을 목표로 한다.[2] Modelica에서는 이를 위해 '''균형 잡힌 모델'''을 요구한다.

균형 잡힌 모델을 정의하기 위한 규칙은 섹션 4.7에 나와있다.[2]

대부분의 경우, 시뮬레이션 도구에서 사용하는 간단한 규칙을 통해 변수와 방정식을 계산할 수 있다.

모델 방정식의 수가 변수의 수와 같을 때 모델은 균형을 이룬다. 변수와 방정식은 다음 규칙에 따라 계산한다.

  • 모델 방정식 수 = 모델에 정의된 방정식 수 + 외부 커넥터의 흐름 변수 수
  • 모델 변수 수 = 모델에 정의된 변수 수 (물리적 커넥터의 변수 포함)


표준 입력 커넥터(RealInput 또는 IntegerInput 등)는 내부에 새 변수가 정의되지 않으므로 변수 수에 포함되지 않는다.

이 규칙은 커패시터 모델을 예로 들어 설명할 수 있다. 각 핀에는 전류와 같은 흐름 변수가 포함되어 있다. 핀이 아무것에도 연결되어 있지 않은 경우, 각 핀에 대해 방정식 pin.i=0을 설정하는 것과 같다. 따라서 각 흐름 변수에 대한 방정식을 추가해야 한다.

다른 종류의 흐름 변수(예: 힘, 토크 등)가 포함된 다른 경우에도 이 규칙은 동일하게 적용된다.

커패시터가 핀 중 하나를 통해 다른 (균형 잡힌) 모델에 연결되면, 연결되는 두 개의 i=0 방정식을 대체하는 연결 방정식이 생성된다. 연결 방정식은 두 개의 스칼라 방정식에 해당하므로 연결 연산은 균형 잡힌 더 큰 모델(커패시터와 연결된 모델로 구성)을 유지한다.

커패시터 모델은 방정식 수(3+2=5, 흐름 변수: pin_p.i, pin_n.i, u)와 변수 수(5, (u, pin_p.u, pin_p.i, pin_n.u, pi_n.i))가 같으므로 균형을 이룬다. OpenModelica[17]를 사용하여 확인하면, "Class Capacitor has 5 equation(s) and 5 variable(s)."라는 결과를 얻을 수 있다.

Modelica Standard Library의 SignalVoltage 구성 요소도 균형을 이룬다. 방정식 수(3+2=5, 흐름 변수: pin_p.i, pin_n.i, u)와 변수 수(5, (i, pin_p.u, pin_p.i, pin_n.u, pi_n.i))가 같다. OpenModelica[17]로 확인하면, "Class Modelica.Electrical.Analog.Sources.SignalVoltage has 5 equation(s) and 5 variable(s)."라는 결과를 얻을 수 있다.

8. 5. 계층적 모델

계층적 모델은 기본 모델을 인스턴스화하고, 모델 매개변수에 적절한 값을 제공하고, 모델 커넥터를 연결하여 구성된다. 예를 들어, 전기 회로는 다음과 같이 구성할 수 있다.

```modelica

model Circuit

Capacitor C1(C=1e-4) "위 모델의 Capacitor 인스턴스";

Capacitor C2(C=1e-5) "위 모델의 Capacitor 인스턴스";

...

equation

connect(C1.pin_p, C2.pin_n);

...

end Circuit;

```

`annotation(...)`를 통해 시뮬레이션에 영향을 미치지 않는 정의를 모델에 추가할 수 있다. 주석은 그래픽 레이아웃, 문서화 및 버전 정보를 정의하는 데 사용된다. 서로 다른 Modelica 도구에서 모델의 그래픽 모양과 레이아웃이 동일하도록 하기 위해 기본적인 그래픽 주석 세트가 표준화되었다.

기본 모델 컴포넌트는 모델에 의해 정의되며, 커넥터 변수와 관계를 정의한 방정식으로 구성되어 있다. 중간 계산식을 기술할 필요는 없다.

```modelica

model Capacitor

parameter Capacitance C;

Voltage u "pin_p와 pin_n 사이의 전압 강하";

Pin pin_p, pin_n;

equation

0 = pin_p.i + pin_n.i;

u = pin_p.v - pin_n.v;

C * der(u) = pin_p.i;

end Capacitor;

참조

[1] 웹사이트 Modelica Language Specification, Version 3.6 https://specificatio[...] Modelica Association 2023-03-09
[2] 웹사이트 Modelica Language Specification, Version 3.5 https://modelica.org[...] Modelica Association 2021-02-18
[3] 웹사이트 Modelica and the Modelica Association http://www.modelica.[...]
[4] 웹사이트 The Modelica Standard Library is https://www.modelica[...]
[5] 웹사이트 A Structured Model Language for Large Continuous Systems. https://lup.lub.lu.s[...]
[6] 논문 "Physical System Modelling Languages: from ALLAN to Modelica" https://www.modelica[...] Jeandel A., Boudaud F. 1997-09-08
[7] 웹사이트 NMF HANDBOOK. An Introduction to the Neutral Model Format. NMF version 3.02. http://www.equa.se/d[...] 1996-11
[8] 웹사이트 ObjectMath Home Page http://www.ida.liu.s[...]
[9] 서적 Object-oriented modeling and simulation S.E. Mattsson, M. Andersson and K.J..Aström
[10] 간행물 CiteSeerX — Modeling Mechatronic Systems Using The Sidops+ Language
[11] 논문 "Object-Oriented Physical Systems Modeling, Modelica, and the Smile/M Simulation Environment" https://www.modelica[...] Ernst T., Jähnichen S., Klose M. 1997-08-24
[12] 웹사이트 Documents http://www.modelica.[...] Modelica Association 2009-10-11
[13] 웹사이트 Supports Modelica standard http://www.maplesoft[...] Waterloo Maple 2009-10-11
[14] 웹사이트 Modelon Impact http://www.modelon.c[...] Modelon 2021-04-01
[15] 웹사이트 Modelica in CATIA (module: CATIA Systems Dynamic Behavior) http://www.3ds.com/p[...] Dassault Systèmes 2009-12-30
[16] 뉴스 Announcement of DS' acquisition of Dynasim http://www.3ds.com/c[...]
[17] 웹사이트 Welcome to Open Modelica - OpenModelica http://www.openmodel[...]
[18] 논문 Integrated UML and Modelica System Modeling with ModelicaML in Eclipse http://www.actapress[...] Adrian Pop, David Akhvlediani, Peter Fritzson
[19] 논문 "Automatic Parallelization of Object Oriented Models Executed with Inline Solvers" https://dx.doi.org/1[...] Håkan Lundvall and Peter Fritzson
[20] 웹사이트 EuroPVM/MPI 2007 - PARSIM 2007 - Current Trends in Numerical Simulation for Parallel Engineering Environments New Directions and Work-in-Progress http://pvmmpi07.lri.[...]
[21] 논문 "OMNotebook - Interactive WYSIWYG Book Software for Teaching Programming" http://www.modelica.[...] Anders Fernström, Ingemar Axelsson, Peter Fritzson, Anders Sandholm, Adrian Pop 2006
[22] 논문 "Modelica Simulator Compatibility - Today and in Future" https://dx.doi.org/1[...] Jörg Frochte 2011-03-20
[23] 문서 Introduction to Physical Modeling with Modelica Michael Tiller
[24] 간행물 A review of computer tools for modeling electric vehicle energy requirements and their impact on power distribution networks 2016-06-15
[25] 논문 Development of a Vehicle Modeling Architecture in Modelica http://www.modelica.[...] Michael Tiller, Paul Bowles, Mike Dempsey
[26] 논문 Advanced Electric Storage System Modeling in Modelica http://www.modelica.[...] Erik Surewaard, Eckhard Karden, Michael Tiller
[27] 논문 "Spark-Ignited Engine Cycle Simulation in Modelica" http://www.modelica.[...] Charles Newman, John Batteh, Michael Tiller 2003-10-02
[28] 논문 "Model Embedded Control: A Method to Rapidly Synthesize Controllers in a Modeling Environment" http://www.modelica.[...] E. D. Tate, Michael Sasena, Jesse Gohl, Michael Tiller
[29] 논문 "Application of mixed mode integration and implicit inline integration at Toyota" http://www.modelica.[...] S. Soejima, T. Matsuba
[30] 논문 "Implementation of a Modelica Online Optimization for an Operating Strategy of a Hybrid Powertrain" http://www.modelica.[...] Henrik Wigermo, Johannes von Grundherr, Thomas Christ
[31] 논문 "Model-based Development of a Dual-Clutch Transmission using Rapid Prototyping and SiL" http://www.qtronic.d[...] Brückmann, Strenkert, Keller, Wiesner, Junghanns 2015-03-22
[32] 논문 "Modelica versus TRNSYS - A Comparison Between An Equation-Based and a Procedural Modeling Language for Building Energy Simulation" http://simulationres[...] Michael Wetter, Christoph Haugstetter 2006-08
[33] 서적 Linköping University Electronic Press
[34] 웹인용 Modelica Language Specification, Version 3.5 https://modelica.org[...] Modelica Association 2021-02-18
[35] 웹인용 Modelica and the Modelica Association http://www.modelica.[...]
[36] 웹사이트 Modelica Standard Library https://www.modelica[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com