2012-02-28 1 views
1

제 8.3.7 함수 assert을 설명하고 두 가지 예를 제공합니다,하지만 난 다음 명령 중 하나를 사용하려고 할 때마다, 그것은 예상대로 작동하지 않습니다모델명 assert (condition, message, level = AssertionLevel.warning); Modelica 사양의

assert(T > 250 and T < 400, 
    "Medium model outside full accuracy range", 
    AssertionLevel.warning); 

또는

assert(T > 250 and T < 400, 
    "Medium model outside full accuracy range", 
    level=AssertionLevel.warning); 

무엇이 잘못 되었나요? 나는 명백한 것을 놓쳤는가?

답변

3

그래서 Dymola (2012FD01)을 확인하고는 Dymola가 level 인수를 구현하지 않은 다음과 같습니다

> document("assert") 
function assert "assert that a condition is true" 
input Boolean _condition; 
input String _error; 

The given condition should be true. 
If it is false an error message will be given 
end assert; 

을 아니면 단순히 문서화 아니에요. 아마도 DS에 DS 지원을 요청해야합니다. OpenModelica에서는 사양에 설명 된대로 구현 한 것으로 보입니다 (http://build.openmodelica.org/Documentation/assert.html 참조).

+0

Dymola 지원팀이 응답을 보내고 레벨 인수가 지원되지 않았 음을 확인했습니다. – matth

+0

업데이트 : 새로운 버전의 Dymola가 수준 인수를 지원합니까? – matth

1

당신은 어떤 도구를 사용하고 있는지 설명하지는 않지만, 이것은 주로 주장을위한 비교적 새로운 구문임을 지적하고자합니다. '수준'표시기 (즉, 부울과 문자열이라는 두 개의 인수 만 사용)없이 시도해 볼 수 있습니다.

+0

공구는 Dymola 2012 FD01입니다. 내가 부울 + 문자열을 사용하는 경우에만 작동합니다. 그러나 AFAIK는 기본적으로 오류를 발생시켜 시뮬레이션을 중단합니다. – matth