主要内容

整合自定义结构Stateflow图表

这个例子展示了如何使用自定义代码的结构Stateflow®图表。您可以定义结构类型数据与Stateflow C代码并将其集成结构和仿真软件®的公交车。金宝app通过共享数据和自定义代码,您可以增加Stateflow支持的功能和利用你现有的代码。金宝app有关更多信息,请参见重用定制代码Stateflow图表

在这个例子中,Stateflow图流程数据从一个仿真软件总线和输出结果到另一个模型汽车。金宝app输入和输出定义的公共汽车金宝appSimulink.Bus(金宝app模型)对象COUNTERBUS。图,仿真软件总线接口与Statefl金宝appow结构inbusoutbus。图表调用自定义的C函数写入输出结构outbus

定义自定义结构的C代码

1。在你的C代码,通过创建一个自定义头文件定义一个结构。头文件包含类型定义声明定义自定义的属性结构。例如,在这个模型中,头文件counterbus.h说三个自定义结构:

…typedef struct {int输入;}SIGNALBUS;
typedef struct {int upper_saturation_limit;int lower_saturation_limit;}LIMITBUS;
typedef struct {SIGNALBUS inputsignal;LIMITBUS限制;}COUNTERBUS;…

2。在类型编辑器中,定义一个金宝appSimulink.Bus对象匹配每个自定义结构类型定义声明。在头文件每一个领域金宝appSimulink.Bus对象,输入头文件包含的名称匹配类型定义声明。

3所示。配置Stateflow图表包含自定义的C代码,描述为您的模型配置自定义代码

4所示。构建并运行您的模型。

通过Stateflow结构定制代码

当你调用自定义代码的函数结构的指针作为参数,通过Stateflow结构的地址。通过地址Stateflow结构或它的一个字段的自定义函数,使用&运营商和点符号:

  • &outbus提供的地址Stateflow结构outbus

  • &outbus.inputsignal提供了子结构的地址inputsignal的结构outbus

  • &outbus.inputsignal.input提供的地址字段输入子结构的outbus.inputsignal

有关更多信息,请参见Stateflow结构指数和赋值

例如,这个例子中包含一个自定义的C函数counterbusFcn这需要结构指针作为参数。自定义头文件counterbus.h包含这个函数声明:

走读生空白counterbusFcn (int COUNTERBUS * u1, u2, COUNTERBUS * y1, y2 int *);

图表将地址传递到Stateflow结构counterbus_structoutbus通过使用这个函数调用:

counterbusFcn (&counterbus_struct, u2, &outbus y2);

读取表的值输入的函数u2和当地的结构counterbus_struct。它写入表的输出y2和输出结构outbus

另请参阅

(金宝app模型)

相关的话题