问题标签 [pyfmi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
46 浏览

python - 不同 FMU 的不同步长

我想用 pyFMI 模拟 3 个 FMU Master。他们两个以秒为分辨率工作,但第三个以小时为分辨率工作。具体来说,如果我想模拟一天,即86400秒,步长为15分钟,即15*60秒,则无法正确模拟小时分辨率的FMU。有没有办法为第三个 FMU 定义不同的步长?

0 投票
1 回答
130 浏览

python - 主仿真中的 PyFMI 多个输入

我正在尝试通过使用Master. 我尝试过的是以下内容:

我收到以下错误:

显然,我没有为输入提供正确的格式,但是我没有找到一个示例来演示使用Master.

有谁知道在这种情况下如何使用输入?

0 投票
0 回答
43 浏览

simulink - pyfmi 失败,Stepsize 必须是非负数且可被 0.2' 整除

我做了世界上最简单的 simulink 模型,它将两个常数相加并将结果发送到输出端口。我将它导出到 fmu 模型并尝试在 pyfmi 中运行它。

我收到 FMUException 错误:模拟失败。有关更多信息,请参阅日志。返回标志 3

日志显示 ['FMIL: module = FMILIB, log level = 5: Allocating FMIL context', 'FMIL: module = FMILIB, log level = 5: Parsing model description XML', 'FMIL: module = FMI2XML, log level = 5 : 解析 XML 元素 fmiModelDescription', 'FMIL: module = FMI2XML, log level = 5: Parsing XML element CoSimulation', 'FMIL: module = FMI2XML, log level = 5: Parsing XML element VendorAnnotations', 'FMIL: module = FMI2XML, log level = 5: Parsing XML element ModelVariables', 'FMIL: module = FMI2XML, log level = 4: [Line:31] Detected during parsing:', 'FMIL: module = FMI2XML, log level = 2: start attribute is required对于这种因果关系、可变性和初始组合','FMIL:模块 = FMI2XML,日志级别 = 5:建筑别名索引','FMIL:模块 = FMI2XML,日志级别 = 5:解析 XML 元素 ModelStructure', 'FMIL: module = FMI2XML, log level = 5: Parsing XML element Outputs', 'FMIL: module = FMI2XML, log level = 5: Parsing XML element InitialUnknowns', 'FMIL: module = FMILIB, log level = 5: 解析成功完成', "FMIL: module = FMILIB, log level = 4: Loading 'linux64' binary with 'default' platform types", 'FMIL: module = FMICAPI, log level = 5: Loaded FMU binary from /tmp/bruce/JModelica.org/jm_tmp9uvk5t3l/binaries/linux64/simple_sum2const.so', 'FMIL: module = FMICAPI, log level = 5: Loading functions for the co-simulation interface', 'FMIL: module = FMILIB, log level = 5: 成功加载所有接口函数', 'FMIL: module = FMI2XML, log level = 3: fmi2_xml_get_default_experiment_tolerance:返回默认值,因为在 modelDescription 中未定义任何属性', 'FMIL: module = FMICAPI, log level = 5: Calling fmi2SetupExperiment', 'FMIL: module = FMICAPI, log level = 5: Calling fmi2EnterInitializationMode', 'FMIL: module = FMICAPI, 日志级别 = 5: 调用 fmi2ExitInitializationMode', 'FMIL: module = Model, log level = 4: [info][FMU status:OK] getReal vr:0, value:5.000000', 'FMIL: module = Model, log level = 4: [info][FMU status:OK] getReal vr:1, value:0.000000', 'FMIL: module = Model, log level = 4: [info][FMU status:OK] CommunicationStepSize=0.02, LocalSolverStepSize= 0.2', 'FMIL: module = Model, log level = 2: [error][FMU status:Error] Stepsize 必须是非负数并且可以被 0.2 整除', 'FMIL: module = Model, log level = 4: [info ][FMU状态:OK] CommunicationStepSize=1, LocalSolverStepSize=0.2', 'FMIL: module = Model, log level = 4: [info][FMU status:OK] Local Solver will do 5 step from t = 0.', 'FMIL: module = FMI2XML,日志级别 = 3:fmi2_xml_get_default_experiment_tolerance:返回默认值,因为没有在 modelDescription 中定义属性','FMIL:模块 = FMICAPI,日志级别 = 5:调用 fmi2SetupExperiment','FMIL:模块 = FMICAPI,日志级别 = 5:调用 fmi2EnterInitializationMode', 'FMIL: module = FMICAPI, log level = 5: Calling fmi2ExitInitializationMode', 'FMIL: module = Model, log level = 4: [info][FMU status:OK] getReal vr:0, value:5.000000' , 'FMIL: module = Model, log level = 4: [info][FMU status:OK] getReal vr:1, value:0.000000', 'FMIL: module = Model, log level = 4: [info][FMU status :OK] CommunicationStepSize=0.02, LocalSolverStepSize=0.2', 'FMIL: module = Model, log level = 2: [error][FMU status:Error] Stepsize 必须是非负数且可被 0.2 整除', 'FMIL: module = FMICAPI , 日志级别 = 5: 调用 fmi2SetupExperiment', 'FMIL: 模块 = FMI2XML, 日志级别 = 3: fmi2_xml_get_default_experiment_tolerance: 返回默认值,因为模型描述中没有定义属性', 'FMIL: 模块 = FMICAPI, 日志级别 = 5: 调用fmi2SetupExperiment', 'FMIL: module = FMICAPI, log level = 5: Calling fmi2EnterInitializationMode', 'FMIL: module = FMICAPI, log level = 5: Calling fmi2ExitInitializationMode', 'FMIL: module = Model, log level = 4: [info] [FMU status:OK] getReal vr:0, value:5.000000', 'FMIL: module = Model, log level = 4: [info][FMU status:OK] getReal vr:1,value:0.000000', 'FMIL: module = Model, log level = 4: [info][FMU status:OK] CommunicationStepSize=0.02, LocalSolverStepSize=0.2', 'FMIL: module = Model, log level = 2: [error] [FMU 状态:错误] 步长必须为非负且可被 0.2 整除','FMIL:模块 = FMICAPI,日志级别 = 5:调用 fmi2EnterInitializationMode','FMIL:模块 = FMICAPI,日志级别 = 5:调用 fmi2ExitInitializationMode', 'FMIL:模块 = FMICAPI,日志级别 = 5:调用 fmi2EnterInitializationMode','FMIL:模块 = FMICAPI,日志级别 = 5:调用 fmi2ExitInitializationMode','FMIL:模块 = FMI2XML,日志级别 = 3:fmi2_xml_get_default_experiment_tolerance:返回默认值,因为没有在 modelDescription 中定义属性','FMIL:模块 = FMICAPI,日志级别 = 5:调用 fmi2SetupExperiment','FMIL:模块 = FMICAPI,日志级别 = 5:调用 fmi2EnterInitializationMode','FMIL:模块 = FMICAPI,日志级别 = 5:调用 fmi2ExitInitializationMode','FMIL:模块 = 模型,日志级别 = 4:[信息][FMU 状态:OK] getReal vr:0, value:5.000000', 'FMIL: module = Model, log level = 4: [info][FMU status:OK] getReal vr:1, value:0.000000', 'FMIL: module = Model , 日志级别 = 4: [info][FMU status:OK] CommunicationStepSize=0.02, LocalSolverStepSize=0.2', 'FMIL: module = Model, log level = 2: [error][FMU status:Error] Stepsize 必须是非负数且可被 0.2 整除','FMIL:模块 = FMI2XML,日志级别 = 3:fmi2_xml_get_default_experiment_tolerance:返回默认值,因为模型描述中没有定义属性','FMIL:模块 = FMICAPI,日志级别 = 5:调用 fmi2SetupExperiment', 'FMIL: module = FMICAPI, log level = 5: Calling fmi2EnterInitializationMode', 'FMIL: module = FMICAPI, log level = 5: Calling fmi2ExitInitializationMode', 'FMIL: module = Model, log level = 4: [info ][FMU status:OK] getReal vr:0, value:5.000000', 'FMIL: module = Model, log level = 4: [info][FMU status:OK] getReal vr:1, value:0.000000', 'FMIL :模块 = 模型,日志级别 = 4:[信息][FMU 状态:OK] CommunicationStepSize=0.004,LocalSolverStepSize=0.2','FMIL:模块 = 模型,日志级别 = 2:[错误][FMU 状态:错误]步长必须是非负数且可被 0.2' 整除]日志级别 = 4:[信息][FMU 状态:OK] getReal vr:0,值:5.000000','FMIL:模块 = 型号,日志级别 = 4:[信息][FMU 状态:OK] getReal vr:1, value:0.000000', 'FMIL: module = Model, log level = 4: [info][FMU status:OK] CommunicationStepSize=0.004, LocalSolverStepSize=0.2', 'FMIL: module = Model, log level = 2: [error] [FMU status:Error] Stepsize 必须是非负数且可被 0.2' 整除]日志级别 = 4:[信息][FMU 状态:OK] getReal vr:0,值:5.000000','FMIL:模块 = 型号,日志级别 = 4:[信息][FMU 状态:OK] getReal vr:1, value:0.000000', 'FMIL: module = Model, log level = 4: [info][FMU status:OK] CommunicationStepSize=0.004, LocalSolverStepSize=0.2', 'FMIL: module = Model, log level = 2: [error] [FMU status:Error] Stepsize 必须是非负数且可被 0.2' 整除]

我找不到有关如何设置步长或应该是什么的任何信息。我试过 model.do_step(0, 1.0) model.initialize(0, 0.1, True)

model.simulate_options() 显示 {'ncp': 500, 'initialize': True, 'stop_time_defined': False, 'write_scaled_result': False, 'result_file_name': '', 'result_handling': 'binary', 'result_handler':无,'result_store_variable_description':真,'return_result':真,'time_limit':无,'过滤器':无,'silent_mode':假}

我怎样才能让这个简单的演示工作?

0 投票
1 回答
34 浏览

python - Python错误地将文件扩展名添加到路径字符串

我目前正在努力解决以下问题:

我的文件夹结构看起来像:

在执行fileCallingFMU.py 时,我传递了一个路径字符串,例如

我的脚本包含一个超级函数,我在其中传递路径变量。但是每次我执行脚本时都会出现异常:

我现在迫切的问题如下:

python为什么以及如何使用日期前缀和.txt作为文件扩展名来操作路径变量?!

希望有人能在这方面启发我...

编辑

我正在尝试运行ModelicaGym的示例。

我的 fileCallingFMU.py 包含以下代码:

entryPoint 的完整代码可以在这里找到。

0 投票
0 回答
13 浏览

fmi - 用于 FMI/FMU 的 Restclient API

我正在开发一个用于虚拟调试的 FMU,并且需要一个 REST 客户端 API 来与 Web 前端交互以接受用户按下的信号。任何人都可以建议这是否可能,如果可能的话,如何使用 c/c++ 开发其余客户端 API,因为我正在使用 c 进行 FMU 开发。