非虚拟总线类似于C代码中的结构。使用非虚拟总线可以:
在生成的C代码中将总线数据打包为结构。
构造一个总线阵列。
通过s函数与外部代码接口。
让总线数据通过MATLAB®作用块或状态流®图的边界。
显示并记录带有范围块
非虚拟总线需要金宝app仿真软件。公共汽车
对象的数据类型。若要模拟包含非虚拟总线的模型,则引用公共汽车
对象必须位于基本工作区或模型使用的数据字典中。有关详细信息,请参阅使用Simulink.Bus对象数据类型指定总线属性金宝app.
非虚拟总线还要求总线的所有元素具有相同的样本时间。有关更多信息,请参见修改非虚拟总线的采样时间.
创建非虚拟总线的方式因总线的位置和创建总线的块而异:
为了关注基本步骤,这些例子很简单。然而,当您有许多信号要合并时,总线是最有用的。
可以使用总线创建器块在组件中创建非虚拟总线。
打开并编译示例模型,该模型使用Bus Creator块创建虚拟总线的层次结构建模选项卡,单击金宝app更新模型或跑.编译模型更新了线条样式,您可以使用它来直观地识别总线。
要创建这个模型,请参见将元件内的信号线分组.
此模型中的虚拟总线不由定义金宝app仿真软件。公共汽车
要将总线创建者块的输出更改为非虚拟总线,必须公共汽车
与总线层次结构匹配的对象。
创建公共汽车
对应于TopBus
和嵌套总线
,使用金宝appSimulink.Bus.createObject
函数。在MATLAB命令窗口中,输入:
金宝appcreateObject('NonvirtualBusCreationModel',…'NonvirtualBusCreationModel/Bus Creator1');
这个函数创建公共汽车
对象,该对象对应于指定块的输出总线。如果输出总线包含嵌套总线,则函数还将创建公共汽车
与嵌套总线对应的对象。在这个例子中,函数创建了两个公共汽车
以相应总线命名的对象,TopBus
和嵌套总线
.
查看公共汽车
对象,打开总线编辑器。在MATLAB命令窗口中,输入:
公共汽车编辑
既然你有公共汽车
对象对应于你想要创建的非虚拟总线,创建非虚拟总线。在Simuli金宝appnk编辑器中,双击名为Bus creatator1的总线创建器块。在“块参数”对话框中设置输出数据类型到总线:TopBus
,选择输出为非虚拟总线复选框,然后单击好啊.TopBus
现在是一辆非虚拟巴士,而嵌套总线
仍然是一个虚拟总线。为了通过行样式识别非虚拟总线,编译模型。
双击名为总线的创造者
.在“块参数”对话框中设置输出数据类型到总线:NestedBus
,选择输出为非虚拟总线复选框,然后单击好啊.嵌套总线
现在是一个非虚拟总线。要更新它的行样式,编译模型。
如果不保存公共汽车
对象,则必须重新创建公共汽车
重新打开模型时创建对象。有关如何保存的信息,请参见公共汽车
对象,请参见使用Simulink.Bus对象数据类型指定总线属性金宝app.
要在接口处创建非虚拟总线,请将总线元素连接到输出总线元素块,并指定输出总线为非虚拟总线。
打开示例模型,它使用三个公共汽车元素块以在输出端口创建虚拟总线,OutBus
.
要创建这个模型,请参见将多个输出信号连接到一个端口.
非虚拟总线需要
对象数据类型。创建金宝app仿真软件。公共汽车
公共汽车
与输出总线相对应的对象数据类型。
在Simuli金宝appnk工具条中,在建模选项卡,设计画廊,选择总线编辑器.
在总线编辑器,创建两个公共汽车
通过单击来创建对象增加公共汽车两次
说出公共汽车
对象。选择其中一个公共汽车
对象,并设置名称到OutBus
. 选择the other公共汽车
对象,然后设置名称到嵌套总线
.
为每一个公共汽车
对象,创建
对象,该对象对应于总线的元素。选择金宝app仿真软件。公共汽车Element
嵌套总线
,然后单击添加/插入母线元件两次。命名元素正弦
和步
. 选择OutBus
,然后单击添加/插入母线元件两次。命名元素啁啾声
和嵌套总线
.
指定一个公共汽车
对象数据类型用于任何嵌套总线。与嵌套总线
母线元件
对象选择,设置数据类型到总线:NestedBus
,然后单击申请.
要输出非虚拟总线,请指定公共汽车
对象数据类型和总线虚拟。
通过双击一个输出总线元素块打开端口对话框。
在对话框的树层次结构中,暂停OutBus
,然后单击旁边显示的铅笔图标OutBus
.
指定公共汽车
对象数据类型.Set数据类型到巴士:爆发
.
在对话框的树层次结构中,单击现在显示在旁边的信号属性OutBus
.
指定总线虚拟性。设置总线虚拟世界到非虚拟的
,然后关闭对话框。
模型的输出是非虚拟总线。若要查看非虚拟总线,请在另一个模型中引用该模型,或将Out总线元素块移动到子系统中。在编译模型时,线样式会更新。若要编译模型,请在建模选项卡,单击金宝app更新模型或跑.
如果不保存公共汽车
对象,则必须重新创建公共汽车
重新打开模型时创建对象。有关如何保存的信息,请参见公共汽车
对象,请参见使用Simulink.Bus对象数据类型指定总线属性金宝app.
根目录(顶级)轮廓尺寸和外埠块还可以在接口上创建非虚拟总线。指定总线虚拟:
对于根导入块,在信号的属性在对话框的选项卡上,选择输出为非虚拟总线.
对于根输出端口块,在信号的属性在对话框的选项卡上,选择在父模型中输出为非虚拟总线.
总线内元件块使用总线虚拟世界参数来确定它们是继承还是定义总线虚拟性。如果块定义总线虚拟性而输入总线的虚拟性不匹配,则编译模型会产生错误。
通过使用信号转换块
打开并编译示例模型,其中包含由总线创建者块创建的虚拟总线层次结构建模选项卡,单击金宝app更新模型或跑.编译模型更新了线条样式,您可以使用它来直观地识别总线。
要定义总线并支持到非虚拟总线的转换,总线创建器块金宝app指定金宝app仿真软件。公共汽车
对象数据类型。创建公共汽车
加载模型时,模型将使用预处理
回调。
要查看回调,请在Simulink Toolstrip中的金宝app建模选项卡,单击模型属性.在模型属性对话框中,打开回调选项卡并选择预处理回调模型。
要将虚拟总线转换为非虚拟总线,请使用To非虚拟总线块,这是的预配置版本信号转换块,输出设置为非虚拟总线
.
在示例模型中:
将非虚拟总线块添加到模型中。
将To非虚拟总线块拖到总线创建者1和作用域块之间的线路上。将该块拖到线路上时,该块在两端连接到线路。
假设要转换的总线的数据类型不是由公共汽车
对象。您需要执行以下附加操作:
创建相应的公共汽车
对象。
指定公共汽车
总线的对象数据类型。例如,设置数据类型的非虚拟总线块的公共汽车
对象,该对象对应于输入总线。
to Nonvirtual Bus块的输入是一个虚拟总线,输出是一个非虚拟总线。要查看非虚拟总线样式,请编译模型。
您可以使用常量块来紧凑地表示具有常量值元素的非虚拟总线。
在常量块上,指定:
一种MATLAB结构定值.
A.金宝app仿真软件。公共汽车
对象作为输出数据类型.
当输出数据类型为a时,常量块仅支持MATL金宝appAB结构公共汽车
对象
例如,定义一个名为常量参数结构
使用名为抵消
,获得
,阈值
.
const_param_struct。抵消= 197;const_param_struct。获得= 4.32;const_param_struct。阈值= 795.68;
定义相应的公共汽车
对象的数据类型。
金宝appSimulink.Bus.createObject (const_param_struct)
新的公共汽车
对象使用默认名称slBus1
.
打开并模拟示例模型,其中包含一个常量块定值设置为常量参数结构
和输出数据类型设置为巴士:slBus1
.
open_system (“非虚拟BusFromStructModel”)模拟(“非虚拟BusFromStructModel”);
Constant块的输出是非虚拟总线。