具有不同采样范围的采样函数的替代方案

2023-12-02

有没有替代方案样本函数在 Openmodelica 中,它接受不属于的参数type parameter?也就是说,替代方案应该允许在模拟期间对可变范围的值进行采样。

最终目标是创建一个类,我可以用它来测量模拟过程中真实信号的 RMS 值。 RMS 值用作控制变量。真实信号的频率不断变化,因此为了获得更好的测量结果,我希望能够在模拟过程中连续改变采样范围,或者在振荡的某些部分/周期中离散地改变采样范围。

是否也可以具有“运行RMS”功能,以便输出连续?

简而言之,我想计算可变采样范围内的 RMS 值,并且样本每次迭代应该只有一个新项或值,而不是一组全新的值。


一些可能的解决方案(您可能应该检查我的数学并只是使用它们来获取灵感;还要检查标准库中的 RootMeanSquare 块,由于某种原因,该块对 Mean 块进行采样):

从时间开始运行 RMS(无频率)。

model RMS
  Real signal = sin(time);
  Real rms = if time < 1e-10 then signal else sqrt(i_sq / time /* Assume start-time is 0; can also integrate the denominator using der(denom)=1 for a portable solution. Remember to guard the first period of time against division by zero */);
  Real i_sq(start=0, fixed=true) "Integrated square of the signal";
equation
  der(i_sq) = signal^2;
end RMS;

对于固定窗口,f:

model RMS
  constant Real f = 2*2*asin(1.0);
  Real signal = sin(time);
  Real rms = if time < f then (if time < 1e-10 then signal else sqrt(i_sq / time)) else sqrt(i_sq_f / f);
  Real i_sq(start=0, fixed=true);
  Real i_sq_f = i_sq - delay(i_sq, f);
equation
  der(i_sq) = signal^2;
end RMS;

对于可变窗口 f(受 f_max 限制):

model RMS
  constant Real f_max = 2*2*asin(1.0);
  constant Real f = 1+abs(2*asin(time));
  Real signal = sin(time);
  Real rms = if time < f then (if time < 1e-10 then signal else sqrt(i_sq / time)) else sqrt(i_sq_f / f);
  Real i_sq(start=0, fixed=true);
  Real i_sq_f = i_sq - delay(i_sq, f, f_max);
equation
  der(i_sq) = signal^2;
end RMS;

同步 Modelica 中采样的可变时间:https://trac.modelica.org/Modelica/ticket/2022

旧版 Modelica 中采样的可变时间:

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

具有不同采样范围的采样函数的替代方案 的相关文章

  • 第四讲 系统建模方法

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

    请考虑以下小型 Modelica 模型和功能 model VectorizeDemo parameter Integer na 5 final parameter Integer nb 2 na final parameter Real a
  • OpenModelica 建模库仑摩擦:翻译错误,优化后模块 findZeroCrossings(模拟)失败

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

    我正在尝试在 OpenModelica 中开发具有单一物质 液体或蒸汽 的流动模拟 Modelica Media Water 模型确实有两个阶段 但极其复杂 并且很难用完全不同的物质来重现 我想找到一个我可以使用的两相介质的简单示例 有一个
  • 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
  • Ubuntu 18.04 中 Python 3 环境中的 PyFMI

    我的目标是能够在 Ubuntu 18 04 中运行 OpenModelica 生成的 FMU 然后在 Python 3 环境中使用 PyFMI 运行它们 我按照此处的 PyFMI 安装大纲进行操作https jmodelica org py
  • matlab dymola 连接在一段时间后失败

    我有 mat 文件中的实验数据和用 dymola 编写的模型 我使用 dymolaM m 文件将命令从 matlab 发送到 dymola 这样我就可以使用 matlab 来优化模型的参数 Matlab从 mat文件中读取数据 以正确的方式
  • 使用 python 进行 Modelica 参数研究

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

    使用 Dymola 2017 情况 A 调用外部 c 脚本 我已经成功实现了没有 include 语句的简单外部 c 函数 模型功能 function chirp input Modelica SIunits AngularVelocity
  • 是否可以在 Windows 机器上从 Dymola 编译 Linux 可运行的 fmus?

    我正在尝试使用 Dymola 从 Windows 计算机导出 FMU 以便在 Linux 和 Windows 操作系统上使用 我猜这样的 fmu 将有 linux64 和 linux32 二进制文件以及 win32 和 win64 二进制文
  • FMU FMI模拟,设置某类参数时不修改结果

    我为该示例开发了一个基于 MSL 流体库的简单 Modelica 模型 我将 MassFlowSource 与管道和 Boundary PT 连接为接收器功能 如下图所示 http www casimages com img php i 1
  • 在仿真期间暂停 JModelica 并传递增量输入

    您好 Modelica 社区 我想在 JModelica 中并行运行两个模型 但我不确定如何在模型之间传递变量 一个模型是 python 模型 另一个是 EnergyPlusToFMU 模型 JModelica 文档中的示例具有在模型仿真之
  • 单元测试 Modelica 组件库?

    我正在 Modelica 中创建一个组件库 并且希望获得一些有关对包进行单元测试的技术的意见 到目前为止 我有一个测试包 由一组模型组成 每个组件一个模型 每个测试模型都会实例化一个组件 并将其连接到一些非常简单的帮助器类 这些类提供必要的
  • 不同 Modelica 仿真环境之间有什么区别?

    有不同的 Modelica 仿真环境 包括 Dymola Wolfram SystemModeler OpenModelica 和 Jmodelica 所以 我尝试加载热流体库 ThermoSysProhttps github com Dw
  • 如何将一个向量的参数插入另一个向量?

    我有一个大小为 5 的 重心 向量 parameter Length barycenters 5 1 2 3 4 5 我想将此向量的参数添加到另一个大小为 7 的向量 b prime 中 这意味着打算让 b prime 0 1 2 3 4
  • 如何将自定义包添加到 Dymola/Modelica 的启动路径中?

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

    我想在我的模拟中放置一个 系统 组件 类似于Modelica Fluid System and Modelica Mechanics MultiBody World 所有其他组件都可以从中访问Medium包 以便在整个流程图中仅设置一次工作
  • 从 dymola 模型获取高质量图片

    我需要从 dymola 的建模对象中获得相当好的图像 由于模型的尺寸 截取屏幕截图 使用截图工具会导致图片质量非常差 有没有办法导出我在dymola中画的 图片 您可以将模型导出为可扩展和可编辑的 SVG 图像 此致 雷内 贾斯特 尼尔森

随机推荐

  • Verilog HDL 循环语句错误:具有非常量循环条件的循环必须终止

    我对 Verilog 完全陌生 对于我在大学学习的课程 我必须很快了解它的很多内容 我正在摆弄我的 Altera DE2 板和 quartis2 并了解其细节 我正在尝试制作一个通过开关打开和关闭的计数器 到目前为止 计数器根据按键进行计数
  • 扩展 ANTLR3 AST

    使用 ANTLR2 您可以在语法定义文件中定义如下内容 options language CSharp namespace Extended Tokens tokens TOKEN
  • MongoDB Spring 数据 Criteria.all

    在 mongo 控制台中我有 gt db test find id ObjectId 515afcfedba6a529520becfa array key one value 1 key two value 2 id ObjectId 51
  • 将消息时间戳与颤动消息文本字段的尾随右侧右对齐

    正如我在上一篇关于该主题的文章中提到的 多行颤动文本字段占据了所有灵活空间 右填充丑陋 我是一个有点完美主义者 不幸的是 我的 flutter layout fu 并不像我的野心那么强烈 我正在创建一个消息应用程序 并且正在努力向消息框添加
  • 使用 R 加速循环和条件

    我想在 R 中加速这段代码 输入是一个包含整数的 3x3x3 数组 并且基于邻居 如果它们为零 则将它们替换为相应的数字 输出是包含新值的数组 mask roi Start here list neig array 0 dim c 3 3
  • 方向更改时导航到另一个页面

    我将在以下实例中解释我要做什么 我有两个页面 MainPage xaml 方向 Portrait 和 LandscapeLeft xaml 方向 LandscapeLeft 我想从MainPage xaml to LandscapeLeft
  • 无法继续 git rebase

    这是我尝试过的 希望有人能花点时间看看这个并提出一些建议 谢谢 编辑 我相信我已经回答了我自己的问题 https stackoverflow com a 12760672 906794 克隆我的存储库 git clone leoj3n ro
  • 如何在 apache HttpClient 上设置 TLS 版本

    如何更改 HttpClient 上支持的 TLS 版本 我正在做 SSLContext sslContext SSLContext getInstance TLSv1 1 sslContext init keymanagers toArra
  • Rails Devise - 使用关联模型注册用户

    我遇到了一些关于这个主题的问题 但似乎都过时的或者只是糟糕的编码实践 问题 我正在注册用户作为结账流程的一部分 我想在用户注册时收集他们的地址 我有一个用户模型和一个地址模型 我似乎无法弄清楚如何正确覆盖 Devise 的注册控制器以允许附
  • F# 中的 2D 数组上的 Foreach 使编译器认为迭代值是对象类型。为什么?

    我在这个看似简单的问题上遇到了麻烦 let xs Array2D init 3 3 fun j i gt j 3 i printfn O xs GetType prints System Int32 for v in xs do print
  • 使用 JQuery/JavaScript 表示 html 表中各种数组中的字符

    我在 Hangman 游戏中通过 J Query 以图形方式表示一些数据时遇到了一些问题 现在我正在研究 play space 函数的最后一部分 以考虑是否有多个正确猜测的数据单词中的字母并显示该字母的所有实例 我创建了一个函数来循环遍历由
  • fscanf 是否可以返回零并同时消耗输入?

    是否有可能fscanf消耗输入并同时返回零 例如 如果我写 int res int k fscanf f d res 并检查一下k 0 我可以确定下一次调用fscanf在同一个文件上f将在调用之前文件所在的同一位置继续fscanf 中概述的
  • 合并 UIImage 并将其包裹在杯子上

    我有两个图像 我想合并这两个图像 就像我有一个杯子的图像 第二个图像是任何图像 现在我想与它合并到杯子中 我怎样才能实现这一点 就像放置在杯子上的图像必须首先包裹起来 就像我从相机拍照然后将其粘贴到杯子中一样 但是我如何包裹该图像 Akhi
  • 如何使 Segue 传递数据并且仅在满足特定条件时执行

    我有一个带有按钮的登录页面 当我单击它时 当且仅当登录成功时 我想将数据传递给另一个类 使用属性 我尝试在按钮上使用 Segue 来传递数据 但问题是这个 Segue 总是转到下一个视图 即使登录不成功 在这种情况下也不应该 void pr
  • WPF依赖属性枚举集合

    我有一个枚举列出了所有可能的设置 public enum Settings Settings1 Settings2 Settings3 在我的用户控件中 我想实现一个新的依赖属性 它包含一个设置列表并能够像这样使用它
  • jquery Datepicker如何设置一些日期来突出显示?

    我使用 jquery Datepicker 链接 http docs jquery com UI Datepicker 现在 如果我想设置一些日期来突出显示 而不仅仅是现在突出显示日期 我该如何设置该选项 For example 我想重点强
  • UIActionSheet 中的键盘未键入任何内容

    我想知道为什么由 UITextField 打开的 iPhone 键盘除了文本字段本身内的删除键和清除按钮之外不输入任何内容 文本字段通过以下代码示例嵌入到 UIActionSheet 中 setup UITextField for the
  • 如何使用Require.js加载Q库?

    我的图书馆使用kriskowal Q 承诺库现在我正在尝试加载 使用 requirejs 使用我的库的应用程序 因此我将所有路径和垫片以及我的requirejs config部分如下所示 requirejs config baseUrl c
  • 根据值将 JavaScript 对象数组分组到自己的对象子数组中

    我有一个 Javascript 对象数组 如下所示 email email protected fn Alex sn McPherson phone 01233xxxxx hours 40 rate 20 amount 200 vat 60
  • 具有不同采样范围的采样函数的替代方案

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