问题标签 [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.
matlab - How to store arbitrary types in Simulink in block-scope?
Apparently Simulink supports only few datatypes.
So, how to keep something other? I want to produces images from a directory, how to keep directory list and current position?
The following code causes error
matlab - S-Function 宽度的输入/输出端口数量
给定一个C
S-function
(或.mexw
文件)中的进程模型,如何在不硬编码的情况下Matlab
(在.m
脚本文件中)以编程方式确定输入/输出端口的数量及其端口宽度?
s-function - s-function:连续状态空间
我在 s-function 中调用一个 m 文件,用于连续状态空间模型。在第 24 行使用带有开关的标志时出错。
错误是:
"??? 输入参数 "flag" 未定义。==> latitude at 24 switch flag 中的错误,"
主 m 文件的子函数是:
01:
02:
03:
子功能没有给出任何错误。
matlab - 如何在 simulink 中创建自定义 s-function?
我可以使用什么块在 simulink 中创建自定义 s-function?
我想通过 S-Function 使用 C 代码。我知道我必须定义一些函数,但我不知道如何访问它或确切地从哪个代码开始。
注意:我对 matlab 和 simulink 完全陌生。
matlab - Simulink 中动态大小的总线对象
我编写了一个 CS 函数,该函数根据传递给它的一个参数具有可变数量的状态(我正在使用计算流体动力学,参数是细胞数)。我想从我的 S 函数中输出一个包含温度曲线的总线对象。问题是当我在 Simulink(在 Bus Editor 中)创建总线对象时,我不知道输出的长度。有没有办法从 CS 函数动态设置总线对象的大小?
code-generation - SIMULINK中S-Functions(C代码)的多实例使用
我的 SIMULINK 模型中有一个旧版 C 函数,它在其函数中使用了一些静态变量。静态变量是全局可用的。当我引用我的模型的多个实例时,我收到错误,因为我的 S-Function 没有为此配置。我收到此错误消息,因为代码生成不允许这样做。
我收到的错误消息如下:
多实例正常模式不支持 S-Function 块“ECDCTRL/PULDESC/S-Function Builder”,因为它没有声明它支持多个执行实例。如果 S-Function 满足多个执行实例的要求,您可以使用“mdlSetWorkWidths”方法中的 SimStruct 函数“ssSupportsMultipleExecInstances”来声明它。
(MYSFUNC)_Outputs_Wrapper.c
当我使用自动生成的代码构建它时,我正在使用该文件。在使用模型的多个引用时,如何确保可以使用旧的 C 函数?SIMULINK 网站建议使用ssSupportsMultipleExecInstances(SimStruct *S, bool flag)
方法,但不正确,因为我没有使用SimStruct
头文件。周围的方法是什么?
matlab - 嵌入式功能块还是 S 功能块?
我的 C S-function 在 Matlab 环境中比我的嵌入式 Matlab 功能块快,但是当我在 RT-Lab 中使用它时,嵌入式更快!
有人知道为什么吗?我只是使用了必要的例程而不是可选的例程。
matlab - 在 mdlGetTimeOfNextVarHit 方法之外使用 ssSetTNext S-Function 宏
Simulink 文档ssSetTNext
说:“具有可变采样时间的离散 S-Function 应使用此宏mdlGetTimeOfNextVarHit
来指定下一个采样命中的时间”。
现在,我想在执行mdlOutputs
. 但是,根据Simulink Engine Interaction with C S-Functions,在之前mdlGetTimeOfNextVarHit
执行(参见描述模拟循环的图片)。 mdlOutputs
另一方面,mdlUpdate
(不幸的是,我不允许发布链接)的文档说:“该方法还可以执行 S-function 在每个主要时间步需要执行的任何其他任务”。
由于在之后mdlUpdate
执行,我想知道是否可以忽略该方法并将定义下一个示例命中(以及使用)的所有逻辑放在里面是否安全。 mdlOutputs
mdlGetTimeOfNextVarHit
ssSetTNext
mdlUpdate
先感谢您。
——马泰奥
matlab - 一些帮助编写一个 s-function 从串口读取数据
在这里遇到问题后,我需要一些帮助来使用 MATLAB Function 块编写函数。我在以下链接中看到有人用该块或 s-function 解决了它:http: //www.mathworks.co.uk/matlabcentral/newsreader/view_thread/317910
http://www.physicsforums.com/showthread.php?t=595813
http://www.mathworks.de/matlabcentral/newsreader/view_thread/250266
所以我尝试了这个:
only3
我创建的函数在哪里。它从字符串中获取前 3 个字符,我需要它来比较'status'
答案的三个字符:
我这样做是为了知道通信是否已经打开。但 simulink 以窗口形式返回错误:
我认为它会在第一次迭代中打开端口后尝试打开端口。
编辑:我用这个改变我的代码:
%%部分取自 Phil 的建议:
它作为错误返回:
突出y
表达。
更新编辑: 我用以下代码解决了它:
但是,正如我在下面评论的那样,每次我停止模拟时,我都必须重新启动 Matlab,因为它不会关闭通信。我这样说是因为如果我重新尝试开始模拟,它会返回“我的第一个错误”:
我不知道为什么。在 M 代码 Level-1 S-Function 中,运行fclose(s)
每个模拟都会停止类似mdlTerminate
功能的东西。一些建议?
simulink - 加速器模式下具有 C S-Function 的模型参考
我想Simulink
为实时目标准备一个文件。在主Simulink
文件中,我有一个Model
参考块,我将其设置为在Accelerator
模式下运行。该Model
块还包含几个S-functions
. 该Model
文件还配置为使用固定步长求解器。
但是,我收到此错误:
在为SIM
目标构建时。
Normal
如果我切换到块模式,一切都会很好Model
。
我应该如何解决这个问题?