2016-07-20 6 views
2

PowerSystem 라이브러리를 사용하여 OpenModelica와 놀고 있었고 이상한 것을 발견했습니다.Openmodelica가 방정식에 결정된 시스템을 갖도록 보완합니까?

블록의 클래스에서 방정식 제약 조건이 무엇인지 완전히 이해하려면 항상 각 블록을 개별적으로 열고 인스턴스화하여 병합 된 모델의 변수 및 방정식 전체 목록을 갖도록합니다.

그러나 인스턴스화 된 모델에는 블록의 클래스 또는 부모 클래스와 관련된 코드에 정의되지 않은 추가 방정식이 있으며 다른 모델에서 블록을 사용할 때 존재하지 않는 것으로 나타났습니다.

R[1] * i[1] = v[1]; 
R[2] * i[2] = v[2]; 
v[1] = term_p.v[1] - term_n.v[1]; 
v[2] = term_p.v[2] - term_n.v[2]; 
i[1] = term_p.i[1]; 
i[2] = term_p.i[2]; 
(...) 
term_p.i[1] = 0.0; 
term_p.i[2] = 0.0; 
term_n.i[1] = 0.0; 
term_n.i[2] = 0.0; 

가 OpenModelica에 의해 자동으로 수행이하는 것입니다 : 간단한 저항 (AC1ph_DC)의 클래스를 인스턴스화 할 때

예를 들어

, 그것은 0으로 전류를 동일시 방정식 (마지막 네 개의 방정식을) 추가 해결할 수있는 시스템이 저항기를 인스턴스화 할 때? 사용할 수있는 문서가 있습니까?

또한 모든 블록의 병합 된 클래스 코드를 시각화하는 "더 정확한"방법이 있습니까?

+0

올바른 방법은 모델을 인스턴스화하여 전체 방정식 (평평한 Modelica 코드)을 확인하는 것입니다. –

+0

의견 감사합니다. 모델을 인스턴스화하는 것이 올바른 방법 일지 모르지만, 특정 변수/방정식과 관련된 클래스 (블록)가 무엇인지 추적 할 수 없으므로 그다지 재미 있지 않습니다. – SuperGeo

+0

그런 다음 OMEdit에서 정적 디버거를 사용하여 최종 방정식 시스템을 이해할 수 있습니다. 소스 코드에 대한 링크를 제공합니다. –

답변