2014-01-07 1 views
6

OMEdit으로 만든 OpenModelica 모델이 있습니다.OMPython으로 Python에서 OpenModelica 모델을 호출하려면 어떻게해야합니까?

OpenModelica Model from OMEdit called myGain

지금 내가 파이썬에서 모델을 실행하고 싶습니다 : 구체적인 예를 얻기 위하여 나는 다음과 같은 설계. OMPython을 사용하여이 작업을 수행 할 수 있습니다. 내가 시뮬레이션을 실행하려면 다음 명령을 사용하여 파일 OMPython을 가져오고 로딩 후 :

결과를 = OMPython.execute (매트 \ ")" "(myGain, numberOfIntervals = 2, outputFormat = \ 시뮬레이션")

이제 시뮬레이션이 실행되고 결과가 파일에 기록됩니다.

이제 동일한 모델을 실행하고 상수 블록에 대해 다른 매개 변수를 사용하고 싶습니다.

어떻게하면됩니까?

매개 변수가 모델에 컴파일되므로 매개 변수를 변경하면 안됩니다.

myGain with a variable as parameter

가 특정 값을 "은"변수 파이썬에서 모델을 호출하고 설정할 수 있습니다 : 그래서 내가 필요한 것은 그런 모델은 무엇입니까?

OMPython.execute ("simulate (...)") "numberOfIntervals"또는 "outputFormat"과 같은 환경 변수를 지정할 수 있지만 그 이상은 지정할 수 없습니다.

답변

2

simulate 명령에 더 많은 플래그를 보낼 수 있습니다. 매개 변수를 무시하는 예를 들어 simflags. 자세한 내용은 https://openmodelica.org/index.php/forum/topic?id=1011을 참조하십시오.

buildModel(...) 명령 다음에 system("./ModelName -overrideFile ...") 명령을 사용하여 재 번역 및 재 컴파일 또는 일부 스크립트 매개 변수 병렬 스윕을 피할 수도 있습니다. Linux 또는 OSX를 사용하는 경우 OMPython을 호출하여 실행 파일을 만든 다음 직접 호출해야합니다. Windows에서는 예상대로 작동하도록 일부 환경 변수를 설정해야합니다.

0

나는 setParameterValue 명령을 찾고 있다고 생각합니다. 당신은 여기에 대해 읽을 수 있습니다 :

https://openmodelica.org/download/OMC_API-HowTo.pdf은 기본적으로 당신이 너무 오래 a이 모델의 매개 변수이기 때문에, 당신은 시뮬레이션을 실행 라인 전에 파이썬 스크립트에 OMPython.execute("setParameterValue(myGain, a, 20)")과 같은 행을 추가합니다.

0
  • 이 개 새 파일 file1.pyfile2.bat를 생성/창문이 폴더에 넣어에서

  • 에서 하나 개의 새로운 폴더를 생성

  • file1.py 내용은 다음과 같습니다


import os 
import sys 
sys.path.insert(0, "C:\OpenModelica1.11.0-32bit\share\omc\scripts\PythonInterface") 
from OMPython import OMCSession 
sys.path.insert(0, "C:\OpenModelica1.11.0-32bit\lib\python") 
os.environ['USER'] = 'stefanache' 
omc = OMCSession() 
omc.sendExpression("loadModel(Modelica)") 
omc.sendExpression("loadFile(getInstallationDirectoryPath() + \"/share/doc/omc/testmodels/BouncingBall.mo\")") 
omc.sendExpression("instantiateModel(BouncingBall)") 
omc.sendExpression("simulate(BouncingBall)") 
omc.sendExpression("plot(h)")` 
  • file2.박쥐의 내용은 다음과 같습니다

@echo off 
python file1.py 
pause 
  • 다음 file2.bat 클릭 ... 그리고 기다려주십시오!

플롯 된 결과 창이 나타납니다.

관련 문제