问题标签 [stateflow]

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 投票
0 回答
96 浏览

stateflow - 读出状态机的状态

专家 ;) 解决以下问题。有一个状态机,状态为A和B。状态块1被调用:A,块内信息: entry: A=1; 状态块2被调用:B,块内信息:entry: A=0; 从A切换到B的Input(494)>494 & Input(631)<631 条件:从B切换的条件到 A:Input(494)<494 & Input(631)>631 输入是一个包含 1000 个值的向量。Simulink 仿真的运行时间为 1000 秒。Scope 每次只显示 1,但在 494 和 631 之间应该是 0。

条件有什么问题吗??

0 投票
1 回答
203 浏览

matlab - 如何生成状态流条件?

我正在尝试创建一个状态机(状态流)。输入是一个向量。
单向切换的条件是:

而对于另一个方向:

但我在诊断查看器窗口中收到一条错误消息:

在需要标量的情况下非法使用矩阵或向量类型。

为什么?但是,如果我在 MATLAB 命令窗口中键入这些条件,则不会出现错误消息。

0 投票
2 回答
1078 浏览

matlab - 以编程方式打开 Simulink MATLAB 功能块的代码

我可以通过一些命令在 MATLAB 编辑器中打开本地 Simulink MATLAB 功能块的代码吗?

例如,假设我有一个名为mainModel.slx的 Simulink 模型。

其中有一个名为localFunction的 MATLAB 功能块。这未在 .m 文件中定义。

我将能够编辑路径是的函数mainModel/localFunction,而无需打开 simulink 窗口并双击功能块。这可能吗?

我当然已经尝试过open mainModel/localFunctionedit mainModel/localFunction。我可以访问其StateFlow.EMChart对象的句柄。


编辑:最小,(希望)完整且可验证的示例

我的最小 Simulink 模型如下图所示。代码在它下面。为了可读性,我没有解决错误或故障。它不适用于一般用途。

在此处输入图像描述

MATLAB 功能块localFunction的功能代码是

我正在使用以下代码加载模型,搜索所有 MATLAB 功能块并找到包含字符串的那些'findThis''localFunction'然后应该找到命名的 MATLAB 功能块。再次,忽略错误。代码保存在名为tmpScript.m.

在这个例子中,路径应该是mainModel/localFunction和字符索引29(注意函数第二行的三个前导空格,换行符'\n'值一个字符)。命令窗口显示

因此,我可以加载模型并在其 MATLAB 功能块中搜索特定字符串。当我找到这个函数时,我希望能够在 matlab 编辑器中打开它。当我在 Simulink 窗口中双击模块时会调用什么?

这些不起作用_

我无法更改 Simulink 模型本身。我不想更改函数脚本。我只想能够在 MATLAB 编辑器中打开它。

0 投票
3 回答
3314 浏览

matlab - Stateflow 中的转换动作和条件动作

在下面的两个状态图中,第一个在从 StateA 移动到 StateD 时有一个动作要执行,即。/{z=5}; 第二个必须执行动作 {z=5}; 我知道这是一个过渡动作,但我无法理解这两个过渡之间有什么不同

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
94 浏览

matlab - 'AliasType' 会是引用属于 Stateflow 内部结构的信号的解决方案吗?

在图表中,我有几个州可以对某些对象进行读写访问,但不使用每个元素的完整地址(例如“BusOut.CPTIO.CH_PT.Dr”),我希望有一个较短的名称仅在图表内使用(例如“博士”)。

我应该如何在状态流中完成它?似乎是通过“Simulink.AliasType”,但我不确定这是否是方式以及如何实现。

即:实际上它使用了这样的方法:

但我想像这样简化符号:

0 投票
1 回答
72 浏览

matlab - 在 MATLAB Simulink 中进行状态流设计时是否可以使用 tlc?

tlc 可以保存为文本文件并具有可追溯性。

是否可以在状态流设计中使用 tlc?或者有什么其他建议可以在 sateflow 项目中保留 tracebilty 功能?

0 投票
1 回答
309 浏览

matlab - 找不到具有匹配签名的构造函数“Stateflow.State”。错误 Matlab

我正在尝试从sflib( stateflow library) 创建状态块:

它返回给我,请问我该"No constructor 'Stateflow.State' with matching signature found" error. 如何解决?我不知道这是我在许多帖子中看到的语法还是库错误。

0 投票
1 回答
97 浏览

image - 在从 simulink 调用 loadMNISTImages 函数时无法使用“machineformat”输入参数

我称之为对 MNIST 图像进行分类的简单 CNN。CNN 内部调用 loadMNISTImages() 函数从文件中读取图像。当这个 CNN 连接到我的 simulink 模型时。

我收到以下错误:

对于代码生成,您不能使用 'machineformat' 输入参数。函数 'loadMNISTImages.m' (#77.233.262),第 8 行,第 9 列:“fread(fp, 1, 'int32', 0, 'b')" 启动诊断报告。

这是读取 MNIST 图像的函数:


上面的函数是从函数 TestMNISTCONV 调用的


最后,我从 Stateflow 图中的状态调用此函数,因此出现此错误。请问有人可以帮忙吗?:)

0 投票
1 回答
77 浏览

matlab - 如何检索状态块的句柄?MATLAB

我实际上是在尝试使用 Matlab 代码构建 Stateflow

我想知道是否可以检索状态块的句柄。我尝试使用 get_param() :

但它返回我:

是否有另一种使用州名获取 Handle 的解决方案?

编辑:我找到并发布了一个解决方案

0 投票
1 回答
1423 浏览

matlab - 如何解决“在计算输出时更新持久变量或状态变量,因此它不能用于代数循环......”图表错误

我有一个带有 2 个用代码创建的图表的模型。我的第一个图表是一个测试模拟,TIMER EXPIREDTimerStatus = 1;. 我的计时器图表发生错误:

当我尝试模拟时,我得到了错误:

我怎样才能解决这个问题 ?我读过摩尔图,但我不知道如何将我的转换为摩尔图。

编辑1:除了错误之外,我还有这个警告:

相同的Stop_Timer

编辑:如果我显示我的计时器和图表之间的联系,也许它会有所帮助