向模型中添加万博1manbetxSimulink函数
万博1manbetx®函数具有类似于编程语言的带有输入和输出参数的接口。您可以使用以下方法为Simulink函数创建函数定义:万博1manbetx
万博1manbetx类中的Simulink块万博1manbetx仿真软件的功能块
Stateflow®从状态流程图导出的图形函数中的状态转换。
MATLAB®从状态流程图导出的MATLAB函数中的代码。
以下部分展示如何为该函数创建Simulink函数万博1manbetxY = timesttwo (x)
.函数乘以一个值(x
)2
,然后将计算值(y
)回打电话的人。要调用函数,请参见从模型中调用S万博1manbetximulink函数.
若要使用Simulink函数和函数调用程序打开完整的模型,万博1manbetx请参见ex_万博1manbetxsimulink_functions_and_function_callers
.
使用Simulin万博1manbetxk函数块创建Simulink函数
建立一个万博1manbetx仿真软件的功能块,通过函数调用方的输入参数接收数据,然后通过输出参数传回计算值。
添加一个万博1manbetx仿真软件的功能块到你的模型。
在块面上,输入功能原型。
Y = timesttwo (x)
双击该块以打开定义函数算法的子系统。
添加一个获得块,并设置获得参数
2
.
使用从状态流程图导万博1manbetx出的图形化函数创建Simulink函数
在Stateflow图表中设置一个图形函数,通过函数调用者的输入参数接收数据,并通过输出参数将计算值传递回去。设置图表参数以将函数导出到Simulink模型。万博1manbetx
在状态流图中定义一个图形函数
在状态流程图中创建图形化函数。定义函数接口和函数定义。
向Simulink模型中添加状态流程图。万博1manbetx双击Simulink框图。万博1manbetx2 .在搜索框中输入
图表
,然后从搜索结果中选择图表
.双击打开图表。
添加图形化函数。在左侧工具栏中,单击并拖动图形化函数图标在图表上。
定义函数接口。2 .在右侧信息展示区,替换
?
具有功能界面Y = timesttwo (x)
.定义函数算法。单击过渡箭头并替换
?
与{y = 2*x}
.
测试图形化函数。在导出到Simulink模型之前,在状态流图中测试图形化功能。万博1manbetx
在图表中添加用于测试功能的默认转换。从左侧工具栏中,单击并拖动一个默认转换箭头在图表上。
双击箭头并替换
?
与{y1 = timestwo(x1)}
.将输入端口添加到图表中。打开模型资源管理器。在左侧窗格中,选择
图表
.从菜单中选择添加>数据.集的名字来x1
而且范围来输入
.向图表中添加输出端口。从菜单中选择添加>数据.集的名字来
日元
而且范围来输出
.添加一个正弦波块来提供输入的测试数据和一个范围块来查看输出的结果。
运行一个模拟。
为图形函数设置参数
指定函数输入和输出参数的大小、复杂度和类型。图表只能导出具有完全指定原型的函数。
打开模型资源管理器。在建模TAB和从设计部分中,选择模型浏览器.
在左侧窗格中,选择图形化函数。
从列视图列表中,选择
Stateflow
.选择筛选器图标,然后从切换列表中选择所有状态流对象.从中心窗格表中,选择一个输入或输出参数。在右侧窗格中,将“大小”设置为1(标量),“设置”复杂性来
从
(实数),并设置类型来双
.重复步骤
2
而且3.
使用输出函数参数y
.
为图形化函数设置导出函数参数
设置参数以在模拟期间从状态流程图导出图形化函数到Simulink模型。万博1manbetx
打开模型资源管理器。
在左窗格中,选择包含图形化功能的图表。
在右侧的属性对话框中,选择导出图表级别函数复选框,单击应用按钮,然后选择将导出函数视为全局可见复选框。
如果从另一个状态流图表(不是导出图形函数的图表)调用导出的图形函数,则不需要选择将导出函数视为全局可见复选框。
使用从状态流程图导万博1manbetx出的MATLAB函数创建Simulink函数
在状态流图中设置MATLAB函数,通过函数调用者的输入参数接收数据,然后通过输出参数传递计算值。设置图表参数以将函数导出到Simulink模型。万博1manbetx
在状态流程图中定义MATLAB函数
在状态流程图中创建MATLAB函数。定义函数接口和函数定义。
向Simulink模型中添加状态流程图。万博1manbetx双击框图。2 .在搜索框中输入
图表
,然后从搜索结果中选择图表
.打开图表。
添加一个MATLAB函数。在左侧工具栏中,单击并拖动图形化函数图标在图表上。
定义函数接口。2 .在右侧信息展示区,替换
?
具有功能界面Y = timesttwo (x)
.双击功能框,打开MATLAB代码编辑器。用MATLAB代码定义函数算法。
测试MATLAB函数。在导出到Simulink模型之前,在状态流程图中测试MATLAB函数。万博1manbetx
在图表中添加用于测试功能的默认转换。从左侧工具栏中,单击并拖动一个默认转换箭头在图表上。
双击箭头并替换
?
与{y1 = timestwo(x1)}
.将输入端口添加到图表中。打开模型资源管理器。在左侧窗格中,选择
图表
.从菜单中选择添加>数据.集的名字来x1
而且范围来输入
.向图表中添加输出端口。从菜单中选择添加>数据.集的名字来
日元
而且范围来输出
.添加一个正弦波块来提供输入的测试数据和一个范围块来查看输出的结果。
运行一个模拟。
为MATLAB函数设置参数
指定函数输入和输出参数的大小、复杂度和类型。图表只能导出具有完全指定原型的函数。
打开模型资源管理器。在建模TAB和从设计部分中,选择模型浏览器.
在左侧窗格中,选择MATLAB函数。
从列视图列表中,选择
Stateflow
.选择筛选器图标,然后从切换列表中选择所有状态流对象.从中心窗格表中,选择一个输入或输出参数。在右侧窗格中,设置大小to 1(标量),设置复杂性来
从
(实数),并设置类型来双
.重复步骤
2
而且3.
使用输出函数参数y
.
设置MATLAB函数的导出函数参数
设置参数以在模拟过程中从状态流程图导出MATLAB函数。
打开模型资源管理器。
从左窗格中,选择包含MATLAB函数的图表。
在右侧的属性对话框中,选择导出图表级别函数复选框,单击应用按钮,然后选择将导出函数视为全局可见复选框。
如果从另一个状态流图表(不是导出MATLAB函数的图表)调用导出的MATLAB函数,则不需要选择将导出函数视为全局可见复选框。