Modelica:我可以使用 IncludeDirectory 在 Windows 中指定绝对路径吗?

Modelica: Can I use IncludeDirectory to specify an absolute path in Windows?

抱歉这个菜鸟问题。我正在尝试学习如何在 Modelica 模型中集成 C 函数。我无法理解如何指定外部函数的路径。

我创建了一个外部 C 函数并保存在与我的模型目录或工作目录不同的目录中。我认为使用 IncludeDirectory 注释可以让我引用 C 函数所在的位置,但我无法让它工作。

impure function computeHeat "Modelica wrapper for an embedded C function controller"
input Real T;
input Real Tbar;
input Real Q;
output Real heat;
external "C"annotation(Include="#include<ComputeHeat.c>",IncludeDirectory="E:/temp/source_C");
end computeHeat;

当我尝试编译演示示例模型时,收到以下消息。

编译器消息:

编译和链接模型 (Visual C++)。

dsmodel.c dsmodel.c(10): 致命错误 C1083: 无法打开包含文件: 'ComputeHeat.c': 没有那个文件或目录

生成 Dymosim 时出错。

IncludeDirectory 应该是一个 URI,目前 Dymola 只支持 modelica-URI。

因此,将您的函数 computeHeat 存储在例如e:/temp/computeHeat.mo 并使用 IncludeDirectory="modelica://computeHeat/source_C"

一般来说,我假设 computeHeat 是包的一部分,MyPackage,存储为 e:/temp/MyPackage/package.mo(以及更多文件,例如 computeHeat.mo)。

在那种情况下创建e:/temp/MyPackage/Resources/source_C并使用IncludeDirectory="modelica://MyPackage/source_C" 后一种情况是推荐的,因为您可以将MyPackage复制为一个目录,源代码如下。