2

我需要在 Modelica 中读取时间序列数据(例如 csv),特别是使用开放的 modelica 编译器 (omc)。我做了一些互联网搜索,并在网上找到了一个ncReader 库。它适用于 dymola,但不适用于开放的 modelica 编译器。我的测试代码是这样的:

  der(x) = t;  
  t = NcDataReader2.ncEasyGet1D("datafile.nc", "temperature", time);  
  der(y) = q;  
  q = NcDataReader2.ncEasyGet1D("datafile.nc", "flow", time); 

当我尝试在打开的 modelica 上运行它时,我收到以下错误:

翻译 09:21:41 0:0-0:0 构建模拟器时出错。构建日志:gcc -falign-functions -msse2 -mfpmath=sse -I"C:/OpenModelica1.9.0//include/omc" -I。-DOPENMODELICA_XML_FROM_FILE_AT_RUNTIME -c -o TimeSeries.NcTest.o TimeSeries.NcTest.c TimeSeries.NcTest.c:19:28: 错误: ncDataReaderEA.h: 没有这样的文件或目录 mingw32-make: *** [TimeSeries.NcTest.o ] 错误 1

我认为它在 dymola 上工作的原因是因为 dymola 使用 C 编译器,并且可能会即时编译库的 c 文件。不幸的是,我必须使用开放模型。

如果可以修复此错误以与开放式 modelica 编译器一起使用,或者如果在 modelica(开放式 modelica 编译器)中有任何其他替代读取时间序列数据文件的替代方法,任何人都可以提供帮助吗?

提前致谢

4

1 回答 1

0

我迟到了两年,但这是一个解决方案。使用模块 Modelica/Blocks/Sources/CombiTimeTable
你的txt文件应该遵循这个格式

#1
双表名(行、列)

0 0.1 32
1 0.2 35
2 0.3 38

其中第一列应该是按升序排列的时间,其他列是相应的数据。

于 2018-03-04T12:21:21.507 回答