问题标签 [s-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
448 浏览

matlab - S-Function 将系统时间存储在变量中

我想要做的是将系统时间保存在一个变量(全局或常量)中。我在 Simulink 中使用 S-Function。问题是,当我将系统时间的值存储在一个变量中时,它会不断增加,所以当我执行当前系统时间和存储在我的变量中的时间之间的差异时,它始终为 0。你认为存储的解决方案是什么变量中的系统时间以及我应该使用全局变量还是常量。如果您有任何答案,请给我一个例子,因为我是 Matlab 的新手。PS 我正在使用 C 语言作为 S-function。

0 投票
2 回答
258 浏览

matlab - S-Function 中的等待时间

我正在尝试使用 S-Function(C 语言)在 Simulink 中创建一个闪烁过程,我需要发送一些帧,两个连续帧之间的时间应该是 200 毫秒。我怎样才能实现这个等待时间?有没有实施的可能?

0 投票
1 回答
1778 浏览

simulink - 将 Simulink.Parameter 传递给 C S-Function

如何将Simulink.Parameter结构(在我的情况下是结构的结构)传递给 a C S-function

编辑:

有关Simulink.Parameter的信息

您可以通过以下方式创建 Simulink.Parameter 对象:

myStruct值是结构的常规 matlab 结构。这就是我的情况: 在此处输入图像描述

这是一种用于将参数传递给 Simulink 的特殊对象类型,我正在寻找一种机制来从C S-function.

MnWE这里下载一个。

编辑2: 我以这种方式读取参数:

但我明白为什么这种方法不起作用——Matlab 中的结构对象与 C 结构不同,即在内存中不连续并且也包含其他属性。我想我会将 Matlab 结构转换为一个数组,然后将 C 中的数组转换为我的结构定义。

0 投票
1 回答
624 浏览

matlab - 如何在 Matlab S-Function 中使用全局对象

我需要在 Matlab S-Function 的几个函数中使用一个对象。该对象用作库,需要设置与服务器的连接,在每个循环中从中获取数据并在模拟结束时关闭它。对象的使用是这样的:

在每个循环中实例化和关闭通信并不方便。所以我想创建对象并在“ function setup(block)”上设置连接,更新“”上的数据function Update(block)并关闭“”上的连接,function Terminate(block)但要做到这一点,我需要在函数之间共享“ObjectX”和“clientID”。

我希望你能帮助我。

0 投票
1 回答
797 浏览

matlab - 使用 s 函数等待

我正在使用 Simulink 中内置的 s-function,我需要实现等待时间。例如我需要这样做:

我怎么能在 2 帧之间建立这个等待时间。我正在使用 C 语言和 Level-1 Matlab S-Function。

0 投票
1 回答
415 浏览

matlab - 单个块的时间步长与系统的时间步长有什么关系?

众所周知,2 级 Matlab S 函数有一个命令来获取其块的下一次命中时间,例如:

单个块的时间步长与系统的时间步长有什么关系。我的意思是,如果系统的采样时间步长大于块的采样时间步长,会发生什么?在我看来,求解器永远不会让它发生,因为求解器可能会在每次迭代的每个块中检测到 block.NextTimeHit,并确保当前 system.NextTimeHit 小于每个 block.NextTimeHit。所以没有丢失块的样本。

0 投票
1 回答
143 浏览

simulink - 从 Simulink S-Function 清除所有

我正在尝试从 simulink Level 1 S-function 调用 clear all。我看了一下, doc mexCallMATLAB但我不知道如何使用它。我想在调用我的函数后清除工作空间。

0 投票
1 回答
2345 浏览

matlab - Matlab Simulink:如何为每次迭代指定明确的求解器步长?

我想通过使用 S-Function 中的命令为每个求解器步骤设置可变步长,例如:

但是,Matlab 没有为我们提供像“Step”这样的可分配参数,用于通过使用上面的命令“set_param()”来指定求解器步长。求解器步长的 callable 和 assignalbe 参数只有“MaxStep”和“MinStep”。因此,以下两个命令在 Simulink 中是可接受和可执行的:

因此,我试图将相同的值分配给 dT1 和 dT2 以获得特定的步长,但立即出现错误报告,指示最大值。步和分钟。步骤不能相同。

所以我的问题是如何在 S-Function 的脚本中为求解器指定步长?

0 投票
1 回答
1119 浏览

matlab - Matlab Simulink S-Function:如何在块之间传输数据,除了使用全局变量

在我的 Simulink 模型中,我有许多 Block S-Function 共享一个全局变量。正如我们所知,全局变量的值将被传输并可能从块到块改变。我想知道是否有另一种方法可以将数据从一个块传输到另一个块。

0 投票
0 回答
107 浏览

matlab - 如何向量化 2 级 S 函数的一部分

我正在使用 Simulink 框图中的 Matlab 的 2 级函数,将串行数据发送到 Arduino 板,该板必须移动机器人的 11 个伺服系统。我试图通过将输入和输出端口的分配矢量化到相应的数据来提高模拟的速度,但我没有成功。这是我要矢量化的代码:

所以,基本上,我想消除那些 for 循环并用矢量化操作替换它们。我尝试使用:运算符来获取所有输入/输出端口,但我总是收到此错误:

简而言之,有没有办法矢量化 for 循环?

提前致谢!查理