问题标签 [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 - 是否有将 m-file-function 转换为 C(或 MEX) S-function 的程序?
我有一个用 MATLAB 代码编写的简单函数。例如:
matlabFunction
此函数使用符号表达式从命令应用程序派生。我想将其转换为 S-Function 以提高性能,例如转换为 C S-Function、MEX S-Function 等,而不是在 MATLAB S-Function 块或解释型 MATLAB 块中使用它。谢谢
matlab - 如何在simulink中使用变量作为s函数的参数
我想使用变量指定 s-functions 的一些参数,而不是使用手动插入的常量。
我试图在 matlab 中定义全局变量并将它们用作参数,它工作正常。
无论如何,我希望将在 simulink 中计算的变量用作其他 s-fuction 的参数。可能吗?如果是这样,我该怎么做?
一个想法是继续在 matlab e 中使用全局常量从 simulink 更新它们,但我无法做到这一点,因为“到工作区”块将它们转换为结构或数组,我需要一个值。
编辑: 在工作区中更新全局变量中的变量没有用,因为 simulink 似乎在一开始就读取了值
c++ - .cpp 文件中的字符串
我正在阅读一些用于编译它们的 .cpp 文件,并有一个 mex 文件可在 MATLAB 中用于 Level-2 S-Function。
我想知道这个指令在实践中的用途是什么:
谢谢你的帮助。
matlab - S-Function .cpp 中的 void** 是什么
我正在阅读一些编写在基于 MATLAB S-Function 的 .cpp 文件中的代码。
我只想知道这是什么意思:
它是哪种类型的变量?两颗星代表什么?
谢谢你的时间。
c++ - 为什么要使用 SFUNPRINTF?
我正在浏览一个 .cpp 文件,它是 MATLAB S-Function 的源代码,我注意到要在“控制台”上打印,程序员写道:
虽然我会这样做:
你能解释一下区别吗?它只是这段代码的特殊内容,还是我无法在网上找到的某种指令?
谢谢你的帮助。
matlab - 如何使用 S-Function builder 获取数组大小输入
我正在使用 MATLAB2014b s-function builder,我想获得输入数组的大小。例如,我有以下输入。名称:A,维度:2,行:1,列:16,Real
在输出窗格中,我编写了以下代码以获取数组大小。
当我在 Simulink 模型中输出“size_1”时,得到“1”,我期望结果为 16。我的代码错了吗?有没有办法获得输入数组的大小?
matlab - 如何使在 s-functions 中使用的常量变量在 matlab 中可调
我编写了一个简单的 s 函数,它在 ac 代码中调用一个函数,该函数对单轨模型进行建模。我正在使用常量变量来存储质量、偏航惯性矩、转向比等。我想知道如何使这些变量可调。我想从我的 s-function 中创建一个子系统,然后使用 realtime Workshop->generate s-function 并从列表中选择可调参数。但现在我找不到任何可调参数,因为我没有将任何东西指定为可调参数
这是我的 s-function 代码
这是具有功能 singletrack() 的逻辑文件
和相应的 .h 文件
我知道我必须使用 ssSetSFcnParamTunable() 但即使在查看示例之后也不知道该怎么做!
更新:
我将变量声明为 global real_T real_T *m_s,*cv_s,*ch_s,*lv_s,*lh_s,*theta_s,*I_s_s,*dt_s;
并在我的 mdlInitializeSizes() 中添加了这些代码行。我把它混合起来,一切都很好。但是当我使用 s-function 块并将 s-function 的名称更改为 mex 文件时,matlab 崩溃了。我也将这些参数作为指向我的 single_track () 函数的指针传递
知道为什么会发生崩溃吗?
matlab - 如何从旧代码工具中的 s-function 块获取参数
我正在研究可调参数,并且使用手动 s-function 非常简单。但是当我们想要使变量可调(从 s-function 参数块中获取它们作为参数)并使用遗留代码工具自动生成 s-function 时该怎么办。有可能吗?
例如我写了一个简单的单轨模型。这是 single_track.h 文件
这是 single_track.c 文件
从 double m 到 double dt 的参数是我期望从 s-function 块作为参数的输入,而“double a”和“double b”值我将从输入中获得,所以我不必担心它们。
我手动在 mdlInitializeSize ssSetNumSFcnParams(S, 8) 的 s 函数中引入了一些全局变量;
这可以手动工作,但是如何将其放入遗留代码中以使其自动工作
我以前在使用预定义值的地方编写了遗留代码,并且效果很好:
和 CreateBusObject_retvale.m 是
matlab - 如何将 Matlab“总线对象”输入到“Level-2 MATLAB S-Functions”
是否可以在 Simulink 中为 m 文件 s-function 块使用总线数据类型?
我在 matlab 文档或在线任何地方都没有找到任何示例。
对于用 C 编写的 s-Function,API 看起来有点像这样
现在我想从我的 *.m 源代码中访问相同的数据类型(C 中的结构,Matlab 中的总线对象)。您知道有关此的任何示例或教程吗?您可能会注意到,我对 Simulink 环境不太熟悉...
我还发现了关于这是否可能的不同信息
问:2 级 s-Function 是否支持总线对象?
- 回答 1“是的,支持所有数据类型”: http: //nl.mathworks.com/help/simulink/sfg/s-function-features.html
- 回答 2“不,不支持总线对象”: http: //nl.mathworks.com/help/simulink/sfg/s-function-limitations.html
matlab - 在 s-function 模块中指定端口类型
我正在从编译的 C 代码构建我的第一个 s-function 块。一切都很好,除了 s-function 块要求它的接口变量是 type double
,即使底层的 C 接口变量不是。如果我将布尔信号连接到输入并尝试运行,该块会引发错误。
我通过调用ssGetInputPortSignal
and来获取代码中的变量ssGetOutputPortSignal
,并将它们返回的 void 指针转换为正确的指针类型。
如何在 Simulink 中配置 s-function 模块的参数类型?