FMU FMI模拟,设置某类参数时不修改结果

2023-12-31

我为该示例开发了一个基于 MSL 流体库的简单 Modelica 模型。我将 MassFlowSource 与管道和 Boundary_PT 连接为接收器功能,如下图所示:

http://www.casimages.com/img.php?i=14061806120359130.png http://www.casimages.com/img.php?i=14061806120359130.png

我使用 OpenModelica 生成 FMU 包(在模型交换模式下)。 我使用 python 管理这个 FMU 包,代码如下:

import pyfmi, os
from pyfmi import load_fmu

myModel = load_fmu('PathToFolder\\test3.fmu')
res1 = myModel.simulate() # First simulation with m_flow in source set to [1] Kg/s
x = myModel.get('boundary1.m_flow') # Mass flow rate of the source
y = myModel.get('pipe.port_a.m_flow') # Mass flow rate in pipe
print x, y

myModel.set('boundary1.m_flow', 2)
option = myModel.simulate_options()
option['initialize'] = False # Need to initialize the simulation
res2 = myModel.simulate(options = option) # Second simulation with m_flow in source set to [2] Kg/s
x = myModel.get('boundary1.m_flow') # Mass flow rate of the source
y = myModel.get('pipe.port_a.m_flow') # Mass flow rate in pipe
print x, y

os.system('pause')

目的是在更改模型中的参数(此处为源组件中的“m_flow”变量)时显示问题。这个新设置为“2”应该会更改管道中的“m_flow”,但事实并非如此。 结果:在第一次模拟中,两个“m_flow”都变为“1”,这是正常的,因为模型是这样设置的。在第二次模拟中,我在源中将参数设置为“2”,但管道“m_flow”保持为“1”(应该是“2”)。http://www.casimages.com/img.php?i=140618060905759619.png http://www.casimages.com/img.php?i=140618060905759619.png

Modelica 中的流体源模型是这样的(只是我们感兴趣的部分):

equation
 if not use_m_flow_in then
  m_flow_in_internal = m_flow;
 end if;
 connect(m_flow_in, m_flow_in_internal);

我认为 FMU 在 if 条件下不考虑参数。对我来说这是一个问题,因为我需要管理 FMU 并确保如果我设置参数,模拟将使用这个新设置。如何确保 FMU/FMI 运行良好?我们无法在 FMU 中管理的参数类型的详尽列表在哪里?

我已经知道在 FMU 管理中不能考虑改变方程数量的参数(对于改变 DAE 索引的变量同上)。


请注意,OpenModelica 有一个结构参数的概念,Evaluate=true注解。例如,如果参数用作数组维度,则它可能会被计算为整数值。该参数的所有使用都将使用评估值,就好像它是一个常量一样。

Modelica 源代码不是包含图表图片,而是更容易查看,以便找出 OpenModelica 对系统做了什么。

我怀疑对参数进行了评估。如果生成非 FMU 代码,您可以检查 OpenModelica 生成的 modelName_init.xml 并找到参数的条目并查找属性isValueChangeable.

您还可以使用 OMEdit 调试系统并查看初始方程(生成包括调试信息的可执行文件)。文件 -> 打开转换文件,然后选择 modelName_info.xml 文件。搜索您尝试更改的变量并转到定义它的初始方程。起始值(由 PyFMI 设置)很可能被忽略,因为不需要它来生成解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FMU FMI模拟,设置某类参数时不修改结果 的相关文章

  • 适用于 Python 3.x 的 Hive 客户端

    是否可以使用 Python 3 x 连接到 hadoop 并运行 hive 查询 我正在使用Python 3 4 1 我发现可以按照这里写的方式完成 https cwiki apache org confluence display Hiv
  • Python CSV Writer 在文件末尾留下一个空行

    以下代码在 txt 文件末尾留下一个空白行 我怎样才能不让 writerows 不终止最后一行 with open fname wb as myFile Start the CSV Writer wr csv writer myFile d
  • 在 Python 中,部分函数应用(柯里化)与显式函数定义

    在 Python 中 以下方式是否被认为是更好的风格 根据更一般的 可能是内部使用的功能显式定义有用的功能 或者 使用偏函数应用来显式描述函数柯里化 我将通过一个人为的例子来解释我的问题 假设编写一个函数 sort by scoring 它
  • 生成 Flask 中使用的签名会话 cookie 值

    我正在用另一个需要将项目注入会话的 Flask 服务器代理 Flask 服务器 两台服务器具有相同的密钥 因此加密签名将相同 当使用 Flask 和会话时 http 响应包含一个 Set Cookie 标头session text 其中 t
  • Pytorch - 推断线性层 in_features

    我正在构建一个玩具模型来获取一些图像并进行分类 我的模型看起来像 conv2d gt pool gt conv2d gt linear gt linear 我的问题是 当我们创建模型时 我们必须计算第一个线性层的大小in features基
  • 如何使用playsound模块停止音频?

    如何在Python代码中通过playaudio模块停止音频播放 我播放过音乐 但我无法停止音乐 我怎样才能阻止它 playsound playsound name of file 您可以使用多处理模块将声音作为后台进程播放 然后随时终止它
  • 使用 glGetFloatv 检索 pyglet 中的模型视图矩阵

    我正在使用 pyglet 在 python 中进行 3D 可视化 并且需要检索模型视图和投影矩阵来进行一些选择 我使用以下方式定义我的窗口 from pyglet gl import from pyglet window import wi
  • Huggingface 变形金刚模块未被 anaconda 识别

    我正在使用 Anaconda python 3 7 Windows 10 我尝试通过安装变压器https huggingface co transformers https huggingface co transformers 在我的环境
  • 将 2D Panda 的 DataFrame 列表转换为 3D DataFrame

    我正在尝试创建一个将标签值保存到 2D DataFrame 的 Pandas DataFrame 这是我到目前为止所做的 我正在使用读取 csv 文件pd read csv并将它们附加到列表中 出于这个问题的目的 让我们考虑以下代码 imp
  • python:UnboundLocalError:赋值前引用的局部变量“open”[重复]

    这个问题在这里已经有答案了 def read lines readFileName readfile txt f open readFileName r contents f read and so on read lines 当我运行这个
  • 自适应支付 API 错误 580001

    我正在 python 中向 paypal 自适应支付 API 发出 PAY 请求 并收到通用错误 id 580001 没有其他信息 headers API credentials for the API caller business ac
  • 在 python 中使用 subprocess.call 时如何将 stdout 重定向到文件?

    我正在从另一个 python 脚本 A 调用一个 python 脚本 B 使用 subprocess call 如何将 B 的标准输出重定向到指定的文件 我正在使用 python 2 6 1 传递一个文件作为stdout参数为subproc
  • 使用 matplotlib 设置或固定二元分布值

    I ve animated a bivariate gaussian distribution using matplotlib 我已经计算过这个distribution通过调整COV matrix来考虑特定的变量 我可以提供有关此过程的更
  • 如何打印和显示子进程 stdout 和 stderr 输出而不失真?

    也许有人可以帮助我解决这个问题 我在 SO 上看到了许多与此类似的问题 但没有一个问题同时处理标准输出和标准错误 也没有处理像我这样的情况 因此出现了这个新问题 我有一个 python 函数 它打开一个子进程 等待它完成 然后输出返回代码以
  • 收到“/:未找到事件。”使用 PyCharm 远程调试器时

    当我使用 PyCharm 通过 ssh 进行远程调试时tcsh shell 服务器 很多时候它停止工作 并显示 未找到事件 更具体地说 我在 pycharm 调试控制台中遇到以下内容 ssh username hostserver 22 p
  • pandas-更改重采样时间序列的开始和结束日期

    我有一个时间序列 我将其重新采样到这个数据框中df 我的数据是从6月6日到6月28日 它希望将数据从6月1日延长到6月30日 计数列仅在较长时间内具有 0 值 而我的实际值是从 6 日到 28 日 Out 123 count Timesta
  • 枚举上的 random.choice

    我想用random choice on an Enum I tried class Foo Enum a 0 b 1 c 2 bar random choice Foo 但是这段代码失败了KeyError 我怎样才能随机选择一个成员Enum
  • 执行许多插入重复键更新错误:未使用所有参数

    所以我一直在尝试使用 python 2 7 15 使用 mysql connector 执行此查询 但由于某种原因 它似乎不起作用并且总是返回错误 并非所有参数都被使用 表更新有一个主键 即 ID 这是我尝试运行此 SQL 的查询 sql
  • 设置字符串中单词或字符数的限制

    假设我有一个字符串元素列表 wordlist hi what s up home diddle mc doo Oh wise master kakarot hello have a da 我希望列表中的每个元素最多包含 3 个单词或 20
  • Python Web 编程的不同方法的优缺点

    我想使用 Python 编写一些服务器端脚本 但我对这样做的方法有点迷失了 它从 DIY CGI 方法开始 似乎以一些相当强大的框架结束 这些框架基本上可以自己完成所有工作 中间有很多东西 比如web py http webpy org P

随机推荐

  • 具有私有 github 依赖项的 R 包

    我正在开发一个内部 R 包 它将从 github 存储和安装 但它依赖于另一个也在私人存储库中的 R 包 我知道如何使用开发工具指定远程依赖项Remotes tag vignette https github com hadley devt
  • 是否可以检查对象的键是否是泛型的键?

    我想创建一个返回一个对象的函数 该对象的索引是现有类型的键 type ResponseGeneric
  • JSONException: java.lang.String 类型的值无法转换为 JSONObject

    我有一个 JSON 文件 其中包含 2 个 JSON 数组 一组用于路线 一组用于景点 一条路线应该由用户导航到的几个景点组成 不幸的是我收到错误 JSONException java lang String 类型的值无法转换为 JSONO
  • Identity Server 4 未向控制器返回错误描述

    我有一个 Identity server 4 项目 它遵循有关如何显示错误的文档 家庭控制器 public class HomeController Controller private readonly IIdentityServerIn
  • 从 JS 中的构造函数返回 this

    如果我在 JavaScript 中有一个构造函数 我希望能够显式返回一些内容 以便在团队中工作时一切都清楚 我读到 如果你在 JS 中使用函数作为构造函数 如果你返回任何内容 那么使用 new 关键字将是浪费精力 但我想知道你是否可以回来t
  • 如何处理D3中多层嵌套的数据?

    我有以下数据结构 key a values key a0 values key a00 values key a01 values key a1 values key b values 我
  • 当一个值与其他值不同时,SQL Server

    我有这个表的表结构prices CREATE TABLE prices id int priceFrom int priceUp int INSERT INTO prices id priceFrom priceUp VALUES 1 23
  • Swift 枚举不等式

    我已经习惯了能够治疗enums 作为数值 因此使用像这样的运算符 gt lt 对于大多数枚举用途来说 这可能不是必需的 但有一种情况是这样的 objc public enum MyState Int case Loading 0 case
  • 没有 Angular-cli“localhost:4200”的 Access-Control-Allow-Origin

    我有一个与 CORS 和所需标头相关的问题 Setup我运行一个 Angular 项目和 Angular cli localhost 4200 我想通过 HTTP 请求从 WebService 访问 JSON 当我直接在浏览器中使用 URL
  • 在 Selenium 中测试后处理网络错误

    问题 我在 C 中搜索了很多解决方案 但没有一个适合我 我无法使用它们 因为缺少无法导入的对象或这些对象已被弃用 例如所需的能力 我想做的事 我想做的就是在执行测试后 检查测试过程中是否出现问题 当出现问题时 测试应该失败并显示消息 断言
  • Flash:同一页面上有许多相同的 SWF

    Summary 我正在尝试制作一个包含多个相同 SWF 的网页 我遇到的问题是加载速度太慢 不过下载时间还不错 我的每个单元格中有一个 4x4 表格 iframe 中嵌入了一个 swf 文件 注 4 X 4 表 gt 16 SWFS 我的
  • SparkR 作业 100 分钟超时

    我编写了一个有点复杂的sparkR脚本并使用spark submit运行它 脚本基本上做的是逐行读取基于 hive impala parquet 的大表 并生成具有相同行数的新 parquet 文件 但似乎工作在大约 100 分钟后停止 这
  • 在 Windows 上安装 SQLite3 for Ruby - 目前最简单的方法是什么?

    我是 Ruby 新手 希望让 Redmine 在 WinServer08 sp1 上运行 我在这里阅读了一些主题 详细介绍了让 Ruby 和 SQLite 相互兼容所需的步骤和解决方法 Ruby 将运行 sqlite3 的 dll 和 ap
  • 如何始终在 RowsFragment 中显示标题

    我正在尝试创建一个类似于 Youtube 应用程序的 Android 电视应用程序 我正在使用Sofa https github com dextorer Sofa库来做到这一点 现在 当我尝试显示中各个项目的标题时 问题就出现了RowsF
  • travis-lint:为什么它抱怨 java 语言字段

    我有这个非常简单的 travis yml https github com emeraldjava emeraldjava blob master travis yml对于一个java项目 当我对文件运行 travis lint 时会抱怨
  • 如何捕获 Observable.forkJoin(...) 中的错误?

    I use Observable forkJoin 在两个 HTTP 调用完成后处理响应 但如果其中任何一个返回错误 我该如何捕获该错误 Observable forkJoin this http post
  • 尽管 useTable = false,CakePHP 仍要求模型表

    我正在创建一个联系表单以将电子邮件发送到指定地址 我正在尝试利用 CakePHP 模型验证 并且由于我不需要联系人模型的表 因此我在联系人模型中将 useTable 设置为 false 然而 我在执行发送的控制器函数中遇到错误 错误是 缺少
  • Qucikblox 错误:[错误的身份验证数据] 在 Android 中登录 Twitter

    我已经集成了Quickblox SDK V2 2 5在我的 Android 应用程序中使用Social Integration Twitter但它会抛出错误 errors 错误的身份验证数据 以下是我的代码 If in the below
  • Oracle和PostgreSQL中的Write Skew异常不回滚事务

    我注意到 Oracle 和 PostgreSQL 中都发生了以下情况 考虑到我们有以下数据库架构 create table post id int8 not null title varchar 255 version int4 not n
  • FMU FMI模拟,设置某类参数时不修改结果

    我为该示例开发了一个基于 MSL 流体库的简单 Modelica 模型 我将 MassFlowSource 与管道和 Boundary PT 连接为接收器功能 如下图所示 http www casimages com img php i 1