0

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

chart = add_block('sflib/Chart', 'autoDS/Chart'); %Create Chart Block
state = Stateflow.State(chart); %Create State in Chart Block
state.Name = 'CMD_28V_Avion';
open_system('autoDS');

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

4

1 回答 1

1

add_block返回添加块的句柄(对于状态图,它实际上是一个子系统。)它不返回图的句柄,这是Stateflow.State它的输入所需要的。因此错误。

你需要,

add_block('sflib/Chart', 'autoDS/Chart'); %Create Chart Block
rt = sfroot;
m = rt.find('-isa', 'Simulink.BlockDiagram', '-and', 'Name', 'autoDS'); % block diagram
ch = m.find('-isa','Stateflow.Chart', '-and', 'Name', 'Chart'); % chart
st = Stateflow.State(ch); % state
st.Name = 'CMD_28V_Avion';
open_system('autoDS');

请参阅使用 Stateflow API 创建图表Access the Model Object的和Access the Chart Object部分

于 2019-07-05T14:24:37.880 回答