2010-09-06 28 views
0

在Rhapsody中 - 在创建之后,可以创建该类的许多类似对象(实例)。matlab Stateflow vs. Rhapsody

在MATLAB的Stateflow的工具 - 一个可以创建一个状态是,据我所知,一个对象

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

回答

0

Stateflow图通常在Simulink中使用,并驻留在一个S函数(Simulink内的一个块,具有与时间相关的输入/输出)。每个S函数将成为状态图的一个实例。通常这些形成一个simulink模型,通过线连接块。虽然我认为也可以动态地做到这一点,但这远远超出了工具预期使用的舒适区域。

我已经使用库从simulink模型中解耦了simulink(和stateflow块)。我可以实例化它们中的很多(以图形方式),并分别从它们的模型中更新它们。

0

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

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

2

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

据我所知,stateflow有很多类。例如,状态流状态,状态流连接,状态流功能。

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

为了得到这个句柄,你可以使用sfgco函数 - 这个函数获取当前选中的stateflow对象的句柄(如果没有被选中,你得到stateflow图表对象的句柄)。

要创建具有作为家长,你有手柄,你可以使用像这样的Stateflow的对象类的新对象:

创建一个新的Stateflow的状态:

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

更多信息查找Stateflow API pdf文件。