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

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(使用前将#替换为@)

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

  • 从平面 Modelica 代码中提取类型/类名

    我想知道是否已经存在从平面 Modelica 代码中提取所有变量及其相应类型 分别为类名 的可能性 例如 给定扁平 Modelica 模型的摘录 constant Integer nSurfaces 8 constant Integer c
  • 具有不同采样范围的采样函数的替代方案

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

    我有一个用于运行多个模拟的 mos 脚本 在运行模拟之前 我想cd to a new目录 以便保存所有结果和日志文件并且永远不会被覆盖 目前只能cd据我所知 到现有目录 任何人都建议如何创建名为例如的目录temp modelname and
  • matlab dymola 连接在一段时间后失败

    我有 mat 文件中的实验数据和用 dymola 编写的模型 我使用 dymolaM m 文件将命令从 matlab 发送到 dymola 这样我就可以使用 matlab 来优化模型的参数 Matlab从 mat文件中读取数据 以正确的方式
  • Modelica 仿真和方程初始化总时间计算

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

    Dymola 中的一些设置可以通过在 命令 窗口中设置标志来更改 标志的一些示例是 Advanced AutoFormatting Advanced PedanticModelica Advanced LogStartValuesForIt
  • 使用 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 中进行局部敏感性分析 以评估影响建筑物 多户住宅 能耗的不同参数 谁能给我一些建议 如何在 Dymola Modelica 软件中做到这一点 您可以将模型导出为 FMU 然后按照多种不同路径之一使用 FMU 进行敏感性
  • 是否可以在 Windows 机器上从 Dymola 编译 Linux 可运行的 fmus?

    我正在尝试使用 Dymola 从 Windows 计算机导出 FMU 以便在 Linux 和 Windows 操作系统上使用 我猜这样的 fmu 将有 linux64 和 linux32 二进制文件以及 win32 和 win64 二进制文
  • 单元测试 Modelica 组件库?

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

    有不同的 Modelica 仿真环境 包括 Dymola Wolfram SystemModeler OpenModelica 和 Jmodelica 所以 我尝试加载热流体库 ThermoSysProhttps github com Dw
  • 使用“在模型中保存起始值”选项来帮助 Dymola 中的收敛

    I build a model in dymola Even though there are some errors during the initialization process but the calculation succee
  • 如何将一个向量的参数插入另一个向量?

    我有一个大小为 5 的 重心 向量 parameter Length barycenters 5 1 2 3 4 5 我想将此向量的参数添加到另一个大小为 7 的向量 b prime 中 这意味着打算让 b prime 0 1 2 3 4
  • 使用内部/外部传播包

    我想在我的模拟中放置一个 系统 组件 类似于Modelica Fluid System and Modelica Mechanics MultiBody World 所有其他组件都可以从中访问Medium包 以便在整个流程图中仅设置一次工作
  • DYMOLA:opc 服务器如何使用 MATLAB 使用 dsin.txt 或 mat 文件进行初始化

    我在 DYMOLA 中创建了一个 OPC 服务器 现在我在 DYMOSIM 中有这个可以单击并初始化 使用 dsin txt 的 MAT 文件 现在我在 MATLAB 中创建了一个 GUI 文件 并获取变量的输入并创建了一个 mat 文件
  • Dymola、空白和版本控制

    我在 Dymola 中打开了一个 Modelica 库 更改了一行 关闭 Dymola 并单击 全部保存 现在 TortoiseSVN 显示了数百个已更改的文件 而不是仅显示一个文件 其中更改了我想要执行的一行 所有这些变化要么是空格 要么
  • 如何在自定义 Fluid.System 中定义通用介质?

    我正在设计一组用于流体系统建模的自定义组件 由于整个模型中只有一种介质 因此我希望能够在一个地方定义该介质 这system大多数 Modelica Fluid 系统所需的组件无论如何看起来都是一个好地方 我已经尝试了以下 MWE 但我遇到了
  • 如何覆盖默认方程?

    所有派生类都应该从其基类继承一些默认方程 当默认方程对于派生类无效时 应该重新声明它 下面这个简单的例子有点愚蠢 我是否走在实现上述目标的正确轨道上 或者有没有更好的方法用 Modelica 语言来表达这一点 package Pkg par
  • Modelica 中的 PI 控制器无法使用逆变器和 PMSM 达到参考值

    我正在尝试调查 Modelica 示例Modelica Electrical Machines Examples SynchronousInductionMachines SMPM VoltageSource但我更换了signalVolta

随机推荐

  • 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