Found an issue with the book? Report it on Github.

모델의 정의(Model Definition)

모델의 정의(Model Definition)

model 에 대한 정의는 모델리카에서 가장 일반적인 유형의 정의입니다. 이 책의 뒷부분에서(심지어 이 장에서도) model 정의와 동일한 구문을 사용하지만 정의에 포함될 수 있는 항목이 제한되는 다른 유형의 정의(예: record 정의)를 소개할 것입니다.

모델 정의의 문법(Syntax of a Model Definition)

이 장에서 보았듯이 모델 정의는 model 키워드로 시작하고 모델 이름(및 선택적으로 모델에 대한 설명)이 뒤따릅니다. 모델 이름은 문자로 시작해야 하며 그 뒤에 문자, 숫자 또는 밑줄(_) 모음이 올 수 있습니다.

모델 정의에는 변수와 방정식이 포함될 수 있습니다(곧 논의하겠음). 모델의 끝은 end 키워드와 모델 이름의 반복으로 표시됩니다. 각각의 구문 뒤에 나타나는 // 뒤와 줄 끝까지 또는 구분 기호 /**/ 사이에 나타나는 모든 텍스트는 주석으로 간주됩니다.

요약하면 모델 정의의 일반적인 형식은 다음과 같습니다.

model SomeModelName "An optional description"
  // By convention, variables are listed at the start
equation
  /* And equations are listed at the end */
end SomeModelName;

상속(Inheritance)

반복 피하기(Avoiding Repetition) 섹션에서 본 것처럼 모델에 extends 절을 추가하여 다른 모델의 코드를 재사용할 수 있습니다. 모델 정의에 여러 extends 절이 포함될 수 있다는 점은 주목할 필요가 있습니다.

extends 절은 확장되는 모델의 이름을 포함해야 하며 선택적으로 확장되는 모델의 내용에 적용되는 수정이 뒤따를 수 있습니다. 다른 모델 정의에서 상속되는 모델에 대한 정의는 일반적으로 구문을 다음과 같이 생각할 수 있습니다.

 model SpecializedModelName "An optional description"
   extends Model1; // No modifications
   extends Model2(n=5); // Including modification
   // By convention, variables are listed at the start
 equation
   /* And equations are listed at the end */
end SpecializedModelName;

관례에 따라 extends 절은 일반적으로 모델 정의의 맨 위에, 변수보다 먼저 나열됩니다.

이후 장에서는 동일한 구문을 사용하여, 모델 외에 다른 엔터티를 정의하는 방법을 보여줍니다. 그러나, 지금은 주로 모델에 초점을 맞추었습니다.