Found an issue with the book? Report it on Github.
model
에 대한 정의는 모델리카에서 가장 일반적인 유형의 정의입니다. 이 책의 뒷부분에서(심지어 이 장에서도) model
정의와 동일한 구문을 사용하지만 정의에 포함될 수 있는 항목이 제한되는 다른 유형의 정의(예: record
정의)를 소개할 것입니다.
이 장에서 보았듯이 모델 정의는 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;
반복 피하기(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
절은 일반적으로 모델 정의의 맨 위에, 변수보다 먼저 나열됩니다.
이후 장에서는 동일한 구문을 사용하여, 모델 외에 다른 엔터티를 정의하는 방법을 보여줍니다. 그러나, 지금은 주로 모델에 초점을 맞추었습니다.