0

在 Rhapsody - 创建一个之后,可以创建该类的许多相似对象(实例)。

在 matlab 的 stateflow 工具中 -据我所知,可以创建一个状态object

是否有可能将 matlab 的状态流工具中的状态用作一个并创建一个或多个对象?

4

3 回答 3

2

我不知道这是否是您要问的,但是是的,您可以从 stateflow 类创建对象。

据我所知,stateflow 有很多类。例如,一个 stateflow 状态、一个 stateflow junction、一个 stateflow 函数。

当您单击以创建新状态时,您正在创建状态类的新对象。要以编程方式执行此操作,您必须首先获取 stateflow 对象的句柄(例如,这可以是整个 stateflow 图或 stateflow 图)。

要获取此句柄,您可以使用 sfgco 函数 - 此函数获取当前选择的状态流对象的句柄(如果没有选择,则获取状态流图对象的句柄)。

要创建具有作为父级的 stateflow 对象的类的新对象,您可以使用这样的句柄:

创建一个新的 Stateflow 状态:

state = sfgco;
newState = Stateflow.State(state); %this creates a state inside the stateflow object selected by sfgco.

有关更多信息,请查找 Stateflow API pdf 文件。

于 2016-06-10T13:12:02.157 回答
0

状态流图经常在 Simulink 中使用,并且驻留在 S-Function(Simulink 中具有时间相关输入/输出的模块)中。然后,每个 S-Function 将成为状态图的实例化。通常这些形成一个 simulink 模型,块由线连接。尽管我认为也可以动态地执行此操作,但这远远超出了工具预期使用的舒适范围。

我通过使用库将 simulink(和 stateflow 块)与 simulink 模型分离。我可以实例化它们中的许多(以图形方式)并与它们所在的模型分开更新它们

于 2011-09-09T14:16:44.643 回答
0

Stateflow 状态不是对象。从 Stateflow 图生成代码时,状态通常表示为“switch”语句中的单个“case”。它们没有属性或方法,也不能被实例化。

实际上,我根本不知道可以在 Stateflow 或 Simulink 中创建类。这两种工具都旨在以图形方式表示算法,而不是类、关系或其他(抽象)对象。

于 2015-06-29T20:07:13.303 回答