与Simulink和MATLAB万博1manbetx工作区共享数据
与Simulink共享输入数据万博1manbetx
来自Simulink的数据流万博1manbetx®通过图表上的输入端口进入图表。
将输入数据添加到图表中:
向图表中添加数据对象,如中所述使用状态流编辑器菜单添加数据.
请注意
将数据添加到图表本身,而不是图表中的任何其他对象。
在“符号”窗口中,设置类型来
输入数据
.一个输入端口出现在模型的块上。
属性中的值可以更改端口分配港口字段。
设置输入数据的数据类型,如中所述在状态流中使用数据类型.
设置输入数据的大小,如中所述Size状态流数据.
请注意
不能键入或调整状态流的大小®输入数据以接受来自Simulink的基于帧的数据。万博1manbetx
与Simulink共享输出数据万博1manbetx
数据通过图表上的输出端口从图表流向Simulink。万博1manbetx
将输出数据添加到图表中:
向图表中添加数据对象,如中所述使用状态流编辑器菜单添加数据.
请注意
将数据添加到图表本身,而不是添加到图表中的任何其他对象。
在“符号”窗口中,设置类型财产
输出数据
.一个输出端口出现在模型的块上。
按照添加数据的顺序将输出分配给端口。例如,将第三个输出分配给输出端口3。属性中的值可以更改端口分配港口字段。
设置输出数据的类型,如中所述在状态流中使用数据类型.
设置输出数据的大小,如中所述Size状态流数据.
通过图表共享万博1manbetxSimulink参数
何时分享万博1manbetx参数
与图表共享S万博1manbetximulink参数,以保持与Simulink模型的一致性。通过使用参数,还可以避免硬编码数据大小和类型。
您可以在图表中的多个状态流对象中使用在状态流图表中定义的参数,例如状态、MATLAB®函数和真值表。
如何分享万博1manbetx参数
要使用图表共享屏蔽万博1manbetx子系统的Simulink参数,请遵循以下步骤:
在父子系统的S万博1manbetximulink掩码编辑器中,定义并初始化一个Simulink参数。
在Stateflow层次结构中,定义一个与参数名称相同的数据对象(请参阅添加状态流数据).
将数据对象的作用域设置为参数.
当模拟开始时,Simulink尝试将statfl万博1manbetxow数据对象解析为最低级别屏蔽子系统的参数。如果不成功,Simulink将向上万博1manbetx移动模型层次结构,将数据对象解析为更高级别屏蔽子系统中的参数。
从MATLAB基本工作空间
对于C图表,可以从MATLAB基本工作空间初始化数据。初始化要求您在MATLAB基本工作空间和Stateflow层次结构中定义数据,如下所示:
在MATLAB工作区中定义并初始化一个变量。
在Stateflow层次结构中,定义一个与MATLAB变量同名的数据对象(参见添加状态流数据).
将statflow数据对象的范围设置为参数.
当模拟开始时,发生数据解析。在此过程中,Stateflow数据对象从相关的MATLAB变量获取其初始值。例如,如果变量是一个数组,Stateflow数组的每个元素初始化为与MATLAB数组的相应元素相同的值。
一维状态流数组兼容相同大小的MATLAB行向量和列向量。例如,大小的statflow向量5
是兼容的MATLAB行向量的大小(1、5)
或者列向量的大小(5、1)
.
初始化时间
数据父级和作用域控制statflow数据对象的初始化时间。
数据的父母 |
范围 |
当初始化 |
---|---|---|
机 |
本地的,出口 |
模拟开始 |
进口 |
不适用 |
|
图表 |
输入 |
不适用 |
输出,当地 |
开始模拟或当图表作为已启用的Simulink子系统的一部分重新初始化时万博1manbetx |
|
历史交汇的州 |
当地的 |
开始模拟或当图表作为已启用的Simulink子系统的一部分重新初始化时万博1manbetx |
没有历史路口的州 |
当地的 |
激活状态 |
函数(图形、真值表和MATLAB函数) |
输入、输出 |
函数调用的调用 |
当地的 |
开始模拟或当图表作为已启用的Simulink子系统的一部分重新初始化时万博1manbetx |
将数据保存到MATLAB工作空间
对于C图表,您可以指示图表在MATLAB基本工作空间中模拟结束时保存数据对象的最终值(不作为屏蔽子系统参数),用于所有作用域,但除外常数而且参数.
使用以下技巧之一:
在描述窗格中的“数据属性”对话框中,选择将最终值保存到基本工作区.
在内容窗格的模型资源管理器,遵循以下步骤:
选择数据对象所在行。
属性中的复选框SaveToWorkspace列。