您可以在statflow中扩展图表级函数的范围®图表到Simulink中的其他模块金宝app®通过导出函数进行建模。您可以导出:
图形化功能
MATLAB®功能
真值表
当您导出图表级函数时,您可以在其他状态流图表中调用它们金宝app动态仿真模块调用者块。
导出可以通过使用限定表示法调用的图表级函数,例如
,选择导出图表级功能图表属性,如为状态流图指定属性.chartName
.functionName
要导出可以不使用限定符号调用的图表级函数,请选择导出图表级功能,然后选择将导出的函数视为全局可见的.不能导出同名的函数。
这个示例演示了如何从Simulink模型中的其他图表中调用导出的函数。金宝app该模型包含一个主状态流程图,mainChart
,以及两张辅助图库图,lib1Chart
和lib2Chart
.每个图表都包含一个图表级图形函数,并具有导出图表级功能和将导出的函数视为全局可见的图表属性启用。
主图包含两个数据对象,x
和y
,初始值为0
和1
,分别。当您模拟模型时,此图表中的默认转换将调用该函数lib1_func
使用这些值作为参数。
这个函数lib1_func
是在库图中定义的吗lib1Chart
.函数读取其输入参数并将它们传递给函数lib2_func
.
这个函数lib2_func
是在库图中定义的吗lib2Chart
.函数读取其输入参数并将它们传递给函数main_func
.
这个函数main_func
的定义在主图中。函数添加其输入参数并返回结果。主图将此结果存储为输出数据x
.函数调用的顺序在模拟的每个时间步骤中重复。Scope块显示了的值x
在模拟过程中递增。
当输入或输出具有以下属性时,不能导出图表级函数:
字长大于32位的定点数据类型
变量的大小
如果您启用导出图表级功能如果在包含图表级Simulink函数的图表中使用chart属性,则会发生运行时错误。金宝app若要解决此错误,请禁用导出图表级功能或将Simulink函数移动到图表层次结构中的较低级别金宝app。
或者,您可以通过在Simulink画布中使用金宝app金宝app仿真软件的功能(金宝app模型)块。有关更多信息,请参见在Simulink和statflow中共享函数金宝app.
不能从引用的模型导出函数,也不能从父模型调用函数。
如果您为使用导出的图表级函数的模型生成代码,请启用模型配置参数单输出/更新功能(金宝app仿真软件编码器)确保模拟和代码生成之间的一致行为。