在 OpenModelica 中模拟闭式液压循环

2023-12-14

我想对一个封闭的液压循环进行建模,正如人们可以在 Modelica 标准库/流体/示例/加热系统中找到的那样。对于供暖系统以及我的(简约)示例,我遇到了同样的问题:系统是超定的。 在接下来的讲座中,您可以发现加热系统是一个“坏例子”,所以我想这是一个众所周知的问题,但我并没有真正明白这一点。http://www.modprod.liu.se/MODPROD2011/1.252944/modprod2011-day2-talk3-Keynote-Francesco-Casella-Control-and-Modelica.pdf(第 20 页)

我的例子是:

a pump

model producer
  pipe_flange w,k;
  parameter Real a,b,c;
equation
  w.p = k.p + a * k.Vp ^ 2 + b * k.Vp + c;
end producer;

一个阻力

model consumer
  pipe_flange w,k;
  parameter Real rho;
  parameter Real d_i;
  parameter Real zeta;
equation
  k.p = w.p - rho / 2 * ((w.Vp * 4) / 3.14 * d_i ^ 2) ^ 2 * zeta;
end consumer;

它们与一个连接

connector pipe_flange
  Real p;
  flow Real Vp;
end pipe_flange;

整个系统是:

model System
  consumer consumer1(rho = 1000, d_i = 0.06, zeta = 0.5);
  producer producer1(a = -740741, b = -19630, c = 1070);
equation
  connect(consumer1.w,producer1.w);
  connect(consumer1.k,producer1.k);
end System;

有人能给我提示一下问题出在哪里吗?


您确定您的系统是过度决定的?我是;不知道这是怎么回事,因为你的producer and consumer模型未确定。

作为一般规则,组件中所需的方程数量将等于其所有连接器上的流变量数量 + 内部变量数量(参数不计算在内)+ 输出数量。

通过这种方法,您的producer模型应该有 2 个方程(因为它在所有连接器上有 2 个流量变量)。同样,你的consumer模型应该有 2 个方程(因为它的所有连接器都有两个流量变量)。所以我不明白如何生成太多方程。

您的模型也很棘手,因为您正在对通过系统的动量流进行建模(通过连接器上存在的速度作为流量变量来表示)。但你的潜在变量是压力。您的问题中没有跟踪质量(通常是这样)。

因此,总而言之,您的组件模型肯定存在问题,因为它们“不平衡”(根据 Modelica 规范),因为它们没有正确数量的方程。但即使在“物理”层面上,根据我的经验,你的公式(压力和速度)也是不寻常的,在我看来,一旦方程平衡问题得到克服,它也可能会导致问题。

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

在 OpenModelica 中模拟闭式液压循环 的相关文章

  • 第四讲 系统建模方法

    系统建模一般流程 实际系统的分析方法大致类似 但对于实际系统的模型实现方式则有多种 1 面向方程 图框 的因果建模 基于图框进行系统模型实现 的软件很多 如Simulink AMESim 应用于控制领域 等 2 面向对象 非因果 的物理建模
  • modelica 中的功能集成

    我想在 Modelica 中对时间以外的变量函数进行积分 但我不知道该怎么做 例如 如何计算上限为 5 下限为 2 的 x dx 的积分 x dx x 2 2 Modelica 并不是像 Maple Mathematica 或 Matlab
  • Modelica 类图

    我正在寻找一种可以 自动 从 Modelica 代码创建类图的工具 https trac modelica org Modelica attachment ticket 85 classDiagramModelicaMedia png我需要
  • 如何在 Dymola (Modelica) 中使用 /bigobj 进行编译

    我正在将一个相对较小的有限元 FE 模型集成到 Modelica 中 为此 我创建了一个模型 Modelica 类 它可以读取 Matlab 二进制文件格式的质量 M 和刚度 K 矩阵 我将 FE 模型与 Modelica 标准库 Mode
  • 何时在 Modelica 语言中使用 noEvent 运算符?

    Modelica 中的 noEvent 运算符不使用迭代来查找触发事件的精确时刻 看来这会导致计算错误 这是我在以下网站上找到的示例https mbe modelica university behavior discrete decay
  • Ubuntu 18.04 中 Python 3 环境中的 PyFMI

    我的目标是能够在 Ubuntu 18 04 中运行 OpenModelica 生成的 FMU 然后在 Python 3 环境中使用 PyFMI 运行它们 我按照此处的 PyFMI 安装大纲进行操作https jmodelica org py
  • modelica:计算随时间变化的连续变量的最小值/最大值

    如上所述 我希望计算连续变量随时间变化的最小值 和 或最大值 这是一个演示的最小示例 model MinMaxTest Real u Real u min start 10 Real u max start 10 equation u si
  • 使用 python 进行 Modelica 参数研究

    我想使用 python 在不同的 modelica 建筑库 建筑物 IDEAS 中运行参数研究 例如 更改渗透率 我尝试过 simulateModel和simulateExtendedModel zone n50 value 我的问题 为什
  • 外部函数:在 C 脚本中引用头文件来编译 dll

    使用 Dymola 2017 情况 A 调用外部 c 脚本 我已经成功实现了没有 include 语句的简单外部 c 函数 模型功能 function chirp input Modelica SIunits AngularVelocity
  • Modelica - Dymola Python 界面:将输出格式设置为文本

    我通过 Dymola Python 界面使用 Dymola 运行 Modelica 模拟 我的目标是将结果文件写入文本输出 即写入 txt文件 即使我的模型包含注释 Dymola experimentSetupOutput textual
  • 仿真期间的 Modelica 输出文件

    我进行了很长时间的模拟 并且需要在模拟继续时检查输出 另一个原因是我正在进行实时模拟 所以我也想实时查看输出 如果 OpenModelica 在模拟过程中创建一个输出文件 以便我可以使用第 3 方工具 也许是 Python 读取并绘制它 那
  • 如何在 modelica 中进行局部敏感性分析

    我想在 Dymola 中进行局部敏感性分析 以评估影响建筑物 多户住宅 能耗的不同参数 谁能给我一些建议 如何在 Dymola Modelica 软件中做到这一点 您可以将模型导出为 FMU 然后按照多种不同路径之一使用 FMU 进行敏感性
  • 如何在 Dymola 中隐藏模拟变量

    模拟模型后是否可以隐藏对象或输出 我有很多东西 我觉得我在浪费时间筛选它们试图找到我的正确答案 如果没有 有没有办法组织我的输出在模拟选项卡中的显示方式 Thanks Dymola 的主要可能性是 使组件受到保护 默认情况下 受保护的组件不
  • FMU FMI模拟,设置某类参数时不修改结果

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

    我想在我的模拟中放置一个 系统 组件 类似于Modelica Fluid System and Modelica Mechanics MultiBody World 所有其他组件都可以从中访问Medium包 以便在整个流程图中仅设置一次工作
  • 理解 Dymola 错误消息时遇到问题

    谁能告诉我 代数环 的含义 以及我应该如何通过添加 预 运算符来应对这种情况 我真的没看懂 Error Failed to generate code for an algebraic loop involving when equatio
  • 在 Modelica (SystemModeler) 中生成白噪声

    我正在尝试将测量噪声添加到模拟中 这可以在 Simulink 等中完成 但在 Modelica 和 SystemModeler 中似乎更困难 关于如何做到这一点有什么想法吗 您可以通过外部 C 代码在 Wolfram SystemModel
  • Dymola、空白和版本控制

    我在 Dymola 中打开了一个 Modelica 库 更改了一行 关闭 Dymola 并单击 全部保存 现在 TortoiseSVN 显示了数百个已更改的文件 而不是仅显示一个文件 其中更改了我想要执行的一行 所有这些变化要么是空格 要么
  • 如何覆盖默认方程?

    所有派生类都应该从其基类继承一些默认方程 当默认方程对于派生类无效时 应该重新声明它 下面这个简单的例子有点愚蠢 我是否走在实现上述目标的正确轨道上 或者有没有更好的方法用 Modelica 语言来表达这一点 package Pkg par
  • 带平方根的 Modelica 测量单位

    在 Modelica 中我试图定义一个专用的数据类型OrifSizingCoeff用于液压孔板的尺寸系数 相应的物理量是体积流量除以压力的平方根 因此 a SI 单位 m3 s除以sqrt Pa b 以 实际 单位 l min除以sqrt

随机推荐

  • onFormSubmit 触发器大约每隔几周随机发生两次

    首先 我想说这个问题与之前所有 Google Apps 脚本的表单提交触发器错误不同 这个触发两次 同时仍然可以访问前一个表单提交的所有表单提交信息 并再次触发程序 此外 额外的表单提交触发故障不会在电子表格表单响应中添加一行 这是因为用户
  • 在 Visual Studio 中安装/连接后,实体框架连接到 SQL Server Express 时出错

    为了以防万一我做错了什么 我上传了一个视频 这样你就可以看到我所做的每一步 我能够重现这个错误 视频链接 基本上 启动一个新的 MVC 3 项目并在一个简单的类上以正常方式使用 EF 我使用了以下连接字符串
  • mysql事务(提交和回滚)

    下面是我用于 MySqlTransaction 的代码 它运行完美 但问题是 因为我使用的是 mysqlcommand 的单个实例 所以我必须在其中使用唯一的参数 这毁了我的查询 有没有其他办法可以做 我尝试在每次查询后处理 cmd 但没有
  • 在 C# 中将参数传递给水晶报表的步骤

    你能告诉我在 C win 形式中向水晶报表 13 传递参数的步骤是什么吗 my code getting and set dataset to report string sql select from dbo Trading Order
  • Javascript:四舍五入 100 [重复]

    这个问题在这里已经有答案了 我正在尝试将数字四舍五入到 100 Example 1340 should become 1400 1301 should become 1400 and 298 should become 300 200 sh
  • 使用 Scope_Identity() 的正确方法/位置

    我的一个字段中有一个名为 deviceID 的自动递增 ID 我想将其传递给 php 中的会话以供稍后使用 并计划使用scope identity 据我了解 这是获取当前主键 ID 的最佳方法 然而 每当我尝试使用它时 我都会收到一条错误消
  • 在键上加入 Spark 数据帧

    我构建了两个数据框 我们如何连接多个 Spark 数据帧 例如 PersonDf ProfileDf与一个共同的列personId作为 键 现在我们如何才能将一个 Dataframe 组合起来PersonDf and ProfileDf 使
  • Chrome 全屏 API

    根据本文Google Chrome 15 具有全屏 JavaScript API 我试图让它发挥作用但失败了 我也找过官方文档无果 全屏 JavaScript API 是什么样的 该API仅在用户交互期间起作用 因此不能被恶意使用 尝试以下
  • 如何编写 C# 函数以接受可变数量的参数?

    我有一个 C 方法 我想用它来更新一些数据 该方法可以传递一个字符串 一个双精度数 一个整数 public void Update string ac string pr string fld Int32 intVal null doubl
  • 如何从方法内显示 UIActivityIndi​​catorView 并开始为其设置动画

    我有一个执行耗时操作的方法 例如连续十次调用 NSString alloc initWithContentsOfURL u 我想要一个在方法调用之前处于隐藏状态的 UIActivityIndi catorView 来显示和动画 所以我写 a
  • 刷新 dat.gui 变量

    这是 dat gui 界面中的下拉列表 一旦您单击任何数字 跳转切换器将是您选择的任何数字 我正在尝试根据用户选择的内容替换与其特定号码相关的每个列表Starsystem So solPlanets Ilos Tuchanka Illium
  • SQLException:结果集开始之前

    ResultSet rs rs this orderedProduct select sum unitstoproduce soNo soNo int sum Integer parseInt rs getString 1 当我尝试在 ja
  • Azure webjob 功能有单独的计划吗?

    是否可以为 Azure Web 作业中的各个非触发功能设置单独的计划 我之所以这么问 是因为我有六个单独的任务 我想在一天中的不同时间以不同的时间间隔运行 并且不想为每个任务创建单独的项目 是的 您可以使用TimerTriggerAttri
  • 如果 findFirst() 找到的第一个元素为 null,为什么会抛出 NullPointerException?

    为什么这会抛出一个java lang NullPointerException List
  • 运行时错误和编译器错误有什么区别? [复制]

    这个问题在这里已经有答案了 在我的一张关于多态性的教授幻灯片中 我看到这段代码带有一些注释 discountVariable will produce DiscountSale saleVariable run time error dis
  • 从 pandas 的日期时间列中减去年份

    我有一个日期时间列如下 gt gt gt df ACC DATE head 2 538 2006 04 07 550 2006 04 12 Name ACC DATE dtype datetime64 ns 现在 我想从此列的每一行中减去一
  • 凯拉斯 TPU。编译失败:检测到不支持的操作

    我尝试使用 Google Colab TPU 运行我的 keras UNet 模型 但遇到了这个问题UpSampling2D 有什么解决方案或解决方法吗 要运行的代码 import os import numpy as np import
  • 通知未被忽略 (Android)

    如果单击操作 通知 setAutoCancel true 不起作用 我有一个通知 其中包含一个操作 当我点击通知时 它将从列表中删除 但是 当我单击 操作 时 它成功完成了 操作 即进行呼叫 但当我返回到通知列表时 它仍保留在那里 Alar
  • 如何在 HTTP 重定向上转发标头

    我正在编写一个响应 HTTP 重定向的 Web 应用程序 有没有办法强制客户端将我在响应中包含的标头转发到新网址 请求示例 POST insertion HTTP 1 1 Content Length 9 content 网络应用响应 HT
  • 在 OpenModelica 中模拟闭式液压循环

    我想对一个封闭的液压循环进行建模 正如人们可以在 Modelica 标准库 流体 示例 加热系统中找到的那样 对于供暖系统以及我的 简约 示例 我遇到了同样的问题 系统是超定的 在接下来的讲座中 您可以发现加热系统是一个 坏例子 所以我想这