1

我正在尝试遵循不同的论文和教程来学习如何解决模型模型的优化问题。在http://www.syscop.de/files/2015ss/events/opcon-thermal-systems/optimization_tool_chain_in_jmodelica.org_toivo_henningsson.pdf我找到了一个非常简单的教程。但是当我执行它时,我会收到一些非常开放的错误消息。我正在将 Python 2.7 与 jupyther 一起使用。这是我的记事本:

from pyjmi import transfer_optimization_problem
import matplotlib.pyplot as plt
import os.path

file_path = os.path.join("D:\Studies", "Integrator.mop")

op  = transfer_optimization_problem('optI', file_path)
res = op.optimize()

t = res['time']
x = res['x']
u = res['u']
plt.plot(t,x,t,u)

我的模型文件:

package Integrator
 model Integrator
  Real x(start=2, fixed = true);
  input Real u;
 equation
  der(x) = -u;
 end Integrator;

 optimization optI(objective = finalTime, objectiveIntegrand = x^2 + u^2, startTime = 0, finalTime(free = true, min = 0.5, max = 2, initialGuess = 1))
 Real x (start = 2, fixed = true);
  input Real u;
 equation
  der(x) = -u;
 constraint
  u <= 2;
  x(finalTime) = 0;
 end optI;
end Integrator;

当我执行代码时,我得到一个 RuntimeError,告诉我发生了一个 java 错误以及打印的详细信息。从 Traceback 我不知道注释是什么

该文件与经典类和新式类兼容

意思是。我知道我的设置工作正常,因为我执行了 modelon 提供的 CSTR 教程。但是现在,它尝试使用我自己的模型,它给了我这个错误。

运行时错误说明

4

1 回答 1

1

使用与 Modelica 中相同的语法,import 例如

import Modelica.SIunits.Temperature;

包结构是模型识别的一部分的地方应该可以解决这个问题。

op  = transfer_optimization_problem('Integrator.optI', file_path)
于 2018-08-22T10:05:28.987 回答