主要内容

创建Nonvirtual公交车

非虚拟总线类似于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仿真软件。公共汽车对象数据类型。创建公共汽车与输出总线相对应的对象数据类型。

  1. 在Simuli金宝appnk工具条中,在建模选项卡,设计画廊,选择总线编辑器

  2. 总线编辑器,创建两个公共汽车通过单击来创建对象增加公共汽车两次

  3. 说出公共汽车对象。选择其中一个公共汽车对象,并设置名称OutBus. 选择the other公共汽车对象,然后设置名称嵌套总线

  4. 为每一个公共汽车对象,创建金宝app仿真软件。公共汽车Element对象,该对象对应于总线的元素。选择嵌套总线,然后单击添加/插入母线元件两次。命名元素正弦. 选择OutBus,然后单击添加/插入母线元件两次。命名元素啁啾声嵌套总线

  5. 指定一个公共汽车对象数据类型用于任何嵌套总线。与嵌套总线母线元件对象选择,设置数据类型总线:NestedBus,然后单击申请

要输出非虚拟总线,请指定公共汽车对象数据类型和总线虚拟。

  1. 通过双击一个输出总线元素块打开端口对话框。

  2. 在对话框的树层次结构中,暂停OutBus,然后单击旁边显示的铅笔图标OutBus

  3. 指定公共汽车对象数据类型.Set数据类型巴士:爆发

  4. 在对话框的树层次结构中,单击现在显示在旁边的信号属性OutBus

  5. 指定总线虚拟性。设置总线虚拟世界非虚拟的,然后关闭对话框。

模型的输出是非虚拟总线。若要查看非虚拟总线,请在另一个模型中引用该模型,或将Out总线元素块移动到子系统中。在编译模型时,线样式会更新。若要编译模型,请在建模选项卡,单击金宝app更新模型

如果不保存公共汽车对象,则必须重新创建公共汽车重新打开模型时创建对象。有关如何保存的信息,请参见公共汽车对象,请参见使用Simulink.Bus对象数据类型指定总线属性金宝app

根目录(顶级)轮廓尺寸外埠块还可以在接口上创建非虚拟总线。指定总线虚拟:

  • 对于根导入块,在信号的属性在对话框的选项卡上,选择输出为非虚拟总线

  • 对于根输出端口块,在信号的属性在对话框的选项卡上,选择在父模型中输出为非虚拟总线

总线内元件块使用总线虚拟世界参数来确定它们是继承还是定义总线虚拟性。如果块定义总线虚拟性而输入总线的虚拟性不匹配,则编译模型会产生错误。

转换虚拟总线到非虚拟总线

通过使用信号转换

打开并编译示例模型,其中包含由总线创建者块创建的虚拟总线层次结构建模选项卡,单击金宝app更新模型.编译模型更新了线条样式,您可以使用它来直观地识别总线。

要定义总线并支持到非虚拟总线的转换,总线创建器块金宝app指定金宝app仿真软件。公共汽车对象数据类型。创建公共汽车加载模型时,模型将使用预处理回调。

要查看回调,请在Simulink Toolstrip中的金宝app建模选项卡,单击模型属性.在模型属性对话框中,打开回调选项卡并选择预处理回调模型。

要将虚拟总线转换为非虚拟总线,请使用To非虚拟总线块,这是的预配置版本信号转换块,输出设置为非虚拟总线

在示例模型中:

  1. 将非虚拟总线块添加到模型中。

  2. 将To非虚拟总线块拖到总线创建者1和作用域块之间的线路上。将该块拖到线路上时,该块在两端连接到线路。

假设要转换的总线的数据类型不是由公共汽车对象。您需要执行以下附加操作:

  1. 创建相应的公共汽车对象。

  2. 指定公共汽车总线的对象数据类型。例如,设置数据类型的非虚拟总线块的公共汽车对象,该对象对应于输入总线。

to Nonvirtual Bus块的输入是一个虚拟总线,输出是一个非虚拟总线。要查看非虚拟总线样式,请编译模型。

从MATLAB结构创建非虚拟总线

您可以使用常量块来紧凑地表示具有常量值元素的非虚拟总线。

在常量块上,指定:

  • 一种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块的输出是非虚拟总线。

另见

物体

相关话题