一个nonvirtual仿万博1manbetx真软件®总线类似于C代码中的结构。要在生成的C代码中将总线数据打包为结构,请使用非虚拟总线。
您还必须使用非虚公交车:
构造一个总线数组。
通过s函数与外部代码接口。
总线数据交叉MATLAB功能块或Stateflow®图表边界。
显示和日志总线与a范围块。
要创建一个非虚总线,你必须:
指定一个万博1manbetxSimulink.Bus
对象作为总线的数据类型。集数据类型来总线:<对象名>
,在那里<对象名>
是个公共汽车
对象名称。
指定块的输出是非虚拟总线。选择输出作为非虚总线或者,为外港块,输出为父模型中的非虚拟总线。
非虚拟总线中的所有信号必须具有相同的采样时间。有关更多信息,请参见修改非虚拟总线的示例时间。
为了模拟包含非虚公交车的典范,被引用的公共汽车
对象必须在基工作区或数据字典。您必须定义公共汽车
对象或使用已定义的公共汽车
对象。模型回调可以加载必要的内容公共汽车
对象。
创建非虚拟总线的方式因总线的位置不同而有所不同:
为了关注基本步骤,这些示例很简单。然而,当你有许多信号要组合时,总线最有用。
该示例示出了如何配置总线创作者块以输出非虚拟总线。
打开并模拟示例模型,其中包含一个虚拟总线层次结构。
创建模型。万博1manbetx总线对象
因为在这个模型中的虚拟总线不会被定义公共汽车
对象,您必须创建公共汽车
匹配总线层次结构的对象。如果虚拟总线定义为公共汽车
对象,您将不需要创建公共汽车
对象。
要创建和保存公共汽车
在模型中的公交车对象,请使用万博1manbetxSimulink.Bus.createObject
功能。当您指定创建包含其他总线一个总线的总线造物主块,这个函数创建公共汽车
对象,用于由块和所有嵌套总线创建的总线。当您指定文件名时,它将保存公共汽车
具有该名称的函数中的对象。
busInfo = 万博1manbetxSimulink.Bus.createObject ...( 'NonvirtualBusCreationModel',... 'NonvirtualBusCreationModel /总线Creator1',... 'NonvirtualBusCreationFunction');
在基本工作区中,Simulink创建了两个万博1manbetx公共汽车
以相应总线命名的对象,TopBus
和NestedBus
。在当前文件夹中,Simulink创建了一个名为万博1manbetxNonvirtualBusCreationFunction.m
。
要查看创建公共汽车
对象,输入以下命令打开总线编辑器:
buseditor
指定非虚拟总线输出
在模型中,双击总线Creator1块。在对话框中,设置输出数据类型来总线:TopBus
并选择输出作为非虚总线复选框。
对模型进行仿真,以实现对非虚拟总线的线型识别。
总线Creator1块输出是非虚拟总线,而总线Creator块输出仍然是虚拟总线。
双击总线造物主块。在该对话框中,设置输出数据类型来公交:NestedBus
并选择输出作为非虚总线复选框。
对模型进行仿真,以确定新的非虚拟总线。
此示例展示了如何在引用模型的输出端口将虚拟总线转换为非虚拟总线。
打开并模拟示例模型,该模型引用具有虚拟总线输出的模型。
接口定义模型,参考模型的输出端口万博1manbetxSimulink.Bus
对象作为其数据类型。创建公共汽车
当被引用的模型被加载时,被引用的模型将使用回调。
在参考模型,双击外港块。在对话框中,在信号属性选项卡上,选择输出为父模型中的非虚拟总线,然后单击好。
要更新线型,再次仿真模型。
输出块的输入仍然是虚拟总线。
模型块的输出现在是非虚拟总线。
这个示例展示了如何将模型中的虚拟总线转换为非虚拟总线。
打开并模拟示例模型,该模型引用具有虚拟总线输出的模型。
接口定义模型,参考模型的输出端口万博1manbetxSimulink.Bus
对象作为其数据类型。创建公共汽车
当被引用的模型被加载时,被引用的模型将使用回调。
要将虚拟总线输出转换为非虚拟总线,请在模型块和输出块之间添加To非虚拟总线块。该块是信号转换块的预配置版本,具有输出参数集Nonvirtual总线
。
对模型进行仿真,以实现对非虚拟总线的线型识别。