在 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 中模拟闭式液压循环 的相关文章

  • 在 Dymola 中编译大型数组

    请考虑以下小型 Modelica 模型和功能 model VectorizeDemo parameter Integer na 5 final parameter Integer nb 2 na final parameter Real a
  • 从平面 Modelica 代码中提取类型/类名

    我想知道是否已经存在从平面 Modelica 代码中提取所有变量及其相应类型 分别为类名 的可能性 例如 给定扁平 Modelica 模型的摘录 constant Integer nSurfaces 8 constant Integer c
  • OpenModelica 建模库仑摩擦:翻译错误,优化后模块 findZeroCrossings(模拟)失败

    我正在尝试在 Modelica 中模拟库仑摩擦力 基本概念是检查表面之间的相对速度是否小于常数 并且试图使表面相互滑动的外力是否小于最大静摩擦力 法线力 静摩擦系数 则摩擦力等于负值的外部剪切力 否则 摩擦力等于滑动方向相反方向的动摩擦力
  • 两相 Modelica Media 示例

    我正在尝试在 OpenModelica 中开发具有单一物质 液体或蒸汽 的流动模拟 Modelica Media Water 模型确实有两个阶段 但极其复杂 并且很难用完全不同的物质来重现 我想找到一个我可以使用的两相介质的简单示例 有一个
  • modelica 中的功能集成

    我想在 Modelica 中对时间以外的变量函数进行积分 但我不知道该怎么做 例如 如何计算上限为 5 下限为 2 的 x dx 的积分 x dx x 2 2 Modelica 并不是像 Maple Mathematica 或 Matlab
  • 具有不同采样范围的采样函数的替代方案

    有没有替代方案样本函数在 Openmodelica 中 它接受不属于的参数type parameter 也就是说 替代方案应该允许在模拟期间对可变范围的值进行采样 最终目标是创建一个类 我可以用它来测量模拟过程中真实信号的 RMS 值 RM
  • Modelica 类图

    我正在寻找一种可以 自动 从 Modelica 代码创建类图的工具 https trac modelica org Modelica attachment ticket 85 classDiagramModelicaMedia png我需要
  • 非线性代数方程的初步猜测

    我有一个非线性代数方程组需要求解 如何使用计算值 具有连续时间变化 作为解变量的初始猜测 而不是使用参数作为起始值 初始方程部分可以用于此目的吗 我创建了一个测试模型来解释这个问题 model Teststartvalue Real val
  • Modelica 仿真和方程初始化总时间计算

    我想测量 DAE 系统的总模拟和初始化时间 我对挂钟时间感兴趣 就像 Matlab 中函数 tic toc 给出的时间 我注意到在 Modelica 中 模拟时间有不同的标志 但实际上 与我按下模拟按钮到模拟结束所经过的时间 大约用手机时钟
  • 使用 python 进行 Modelica 参数研究

    我想使用 python 在不同的 modelica 建筑库 建筑物 IDEAS 中运行参数研究 例如 更改渗透率 我尝试过 simulateModel和simulateExtendedModel zone n50 value 我的问题 为什
  • 仿真期间的 Modelica 输出文件

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

    模拟模型后是否可以隐藏对象或输出 我有很多东西 我觉得我在浪费时间筛选它们试图找到我的正确答案 如果没有 有没有办法组织我的输出在模拟选项卡中的显示方式 Thanks Dymola 的主要可能性是 使组件受到保护 默认情况下 受保护的组件不
  • 不同 Modelica 仿真环境之间有什么区别?

    有不同的 Modelica 仿真环境 包括 Dymola Wolfram SystemModeler OpenModelica 和 Jmodelica 所以 我尝试加载热流体库 ThermoSysProhttps github com Dw
  • 在 Modelica 模拟中包含因果关系会导致模型扁平化时出现平移错误

    我想模拟基于能量工作的质量弹簧模型的控制器 model model parameters parameter Real m 1 parameter Real k 1 parameter Real Fmax 3 parameter Real
  • 后续问题:Modelica仿真和方程初始化总时间计算

    我正在写这个相关问题this https stackoverflow com questions 61375492 modelica total time calculation of simulation and equation ini
  • 如何在 Modelica 中构建液体平衡连接器?

    帖子状态 200313 得到了代码 DEMO v42 的答案 我接受了赏金 200310 我评论了昨天建议的两篇关键论文 还是不明白如何更新DEMO v41 200309 我想强调的是 关键问题是如何在代码DEMO v41 如果可能的话 中
  • 如何将自定义包添加到 Dymola/Modelica 的启动路径中?

    我有一个自定义包 我发现自己在 Dymola 模型中重复使用该包 并且我想将此包放在一个公共目录中 每当我启动 Dymola 时都会自动加载该目录 我当前的策略是在加载我正在处理的模型时加载自定义包 然后保存总计 这并不优雅 因为自定义包的
  • 使用内部/外部传播包

    我想在我的模拟中放置一个 系统 组件 类似于Modelica Fluid System and Modelica Mechanics MultiBody World 所有其他组件都可以从中访问Medium包 以便在整个流程图中仅设置一次工作
  • 在 Modelica (SystemModeler) 中生成白噪声

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

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

随机推荐

  • 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 标准库 流体 示例 加热系统中找到的那样 对于供暖系统以及我的 简约 示例 我遇到了同样的问题 系统是超定的 在接下来的讲座中 您可以发现加热系统是一个 坏例子 所以我想这