Page 224 - 6734
P. 224

r"e:\OpenModelica\share\omc\scripts\PythonInterface")
           # шлях до модулів
           from OMPython import OMCSession, ModelicaSystem

           # перший спосіб - використання OMCSession:
           omc = OMCSession()
           omc.sendExpression('loadFile("Simple.mo")')
           omc.sendExpression('setParameterValue(Simple, a, 2)')
           omc.sendExpression('simulate(Simple)')
           omc.sendExpression('plot(x)')
           print omc.sendExpression('val(x , 1.0)') # результат
           x(time=1.0)

           # або більш зручний спосіб:
           mod=ModelicaSystem("Simple.mo","Simple")
           print mod.getParameters()
           mod.setParameters(a=2)
           mod.setSimulationOptions(stopTime=2.0)
           mod.simulate()
           print mod.getSolutions('time','x') # результати як
           масиви

           # або компілювати модель і симулювати без OMPython:
           omc.sendExpression('buildModel(Simple)') #
           компілювати
           os.environ["PATH"] += os.pathsep +
           r"e:\OpenModelica\bin" # шлях до dll
           param='''outputFormat=csv
           stopTime=2
           a={}
           ''' # значення параметрів
           for i,p in enumerate([1, 2, 3]): # для кожного
           значення
               with open('override%d.txt'%i, 'w') as f:
           f.write(param.format(p)) # створити файл зі
                                         223
   219   220   221   222   223   224   225   226   227   228   229