主要内容

将信号数据映射到root输入端口

将数据导入数据后,通过选择地图模式和选项并选择数据,将信号数据映射到根输入端口。

有关使用Root Inport Mapper工具所涉及的其他步骤的摘要,请参阅导入和映射工作流

选择地图模式

要将信号数据映射到根级端口,请在映射中使用其中一个映射模式到root映射器Toolstrip的opto of tool。从工具串中选择的映射模式,例如块名称港顺序, MATLAB之间维护®会话和模型。每次要将信号数据映射到根输入端口时,都不必选择地图模式。

目标 地图模式

根据root- import块的名称为端口分配信号。如果信号或总线元素的名称与根输入端口块的名称匹配,则将数据映射到相应的端口。

块名称

根据根输入端口块的块路径将信号分配给端口。如果信号的块路径与root-Inport块的块路径匹配,则数据被映射到对应端口。

块路径

根据端口上的信号名称将信号分配给端口。如果数据元素的信号名称与端口上的信号名称匹配,则将该信号映射到相应的端口。

信号的名字

为导入的数据分配顺序的端口号,从1开始。将信号映射到相应的输入端口。

如果有多于输入端口的数据,则剩余数据映射以启用,然后触发输入端口。

如果数据不是数据集的形式,则按照它在数据文件中出现的顺序处理它。

港顺序

根据自定义文件中的定义将信号分配到端口。要创建自定义映射模式,请参见创建和使用自定义地图模式

自定义

设置映射选项

如果要设置映射选项,请在根导入映射器工具条上的映射到模型部分单击选项.您从ToolStrip中选择的选项,例如更新模型允许部分,在MATLAB会话和模型之间进行维护。每次想要将信号数据映射到根导入端口时,您不必选择该选项。

要绘制信号图,请看地图数据

目标 选项

更新模型并检查根级输入端口和导入数据的数据类型。

更新模型.将信号数据和输入端口参数与根级端口进行比较并显示结果。如果不选择此选项,工具将导入的数据映射到根级输入端口,但不更新模型。

从电子表格映射数据时使用强数据类型。

使用带电子表格的强数据.清除此复选框以允许根导入映射器工具自动将电子表格输入信号转换为相应根导入的数据类型。根导入映射器工具可以将电子表格数据转换为以下数据类型:int8uint8int16uint16int32uint32.如果选中此复选框或者root输入端口不是这些数据类型之一,则可能会收到数据类型不匹配错误。

导入仅部分定义的总线数据。

允许部分.确认您将正导入的任何部分指定的总线数据正确地映射到root级输入端口。

识别未分配的根输入端口,并检测不完整的输入数据集。

通知缺失信号.显示缺少信号的输入。

选择要映射的数据

要指定要映射的方案的子集,请单击“向下箭头”映射到模型按钮。您可以为不同的方案选择不同的映射模式。

目标 选项

映射所有场景数据集(默认)。

映射所有

映射当前在方案数据集部分中选择的场景的数据集。

地图选择

映射断开连接的数据集。

地图无关

映射以前映射失败的数据集。

映射失败

先前引起警告的地图数据集。

地图警告

地图数据

导入信号或总线后,可以映射数据。

  1. 在root Inport Mapper工具栏上,单击映射到模型

    信号映射的结果显示在场景数据集选项卡。

  2. 在“文件”部分中,单击“数据集”以查看映射结果

    • 模拟准备节列出输入数据和映射的状态。

      请注意

      看到理解映射结果

    • 输入数据的映射定义应用于模型。

保存并关闭模型后,当您将相同方案的输入数据加载到工作区时,该模型使用为该方案定义的映射。

有关将信号数据映射到根级输入的示例,请参见将工具驱动模型转换为使用无工具外部输入

在保存模型的映射定义之后,可以自动加载数据。有关更多信息,请参见用于加载映射数据的替代工作流程

理解映射结果

当您完成导入和映射过程时,模拟准备部分将在状态区域中显示结果。结果取决于您是否选择更新模型选项。

状态 更新模型 不更新模型继续

映射数据和输入端口的属性适用于模拟。

数据和输入端口的数据类型、维度和信号类型属性是兼容的。

不适用

数据和根级端口数据类型、维度和信号类型属性的比较不能确定是否存在匹配。如果您没有在映射之前更新模型,那么除非您显式地指定输入端口数据类型,否则工具无法评估所有数据类型是否匹配。确认你正确设置了这些块参数:

inport.块参数数据类型未设置为继承:汽车

inport.块参数未设置为-1

inport.块参数信号类型不能汽车

映射数据和输入端口的属性不适合模拟。

信号数据的一个或多个数据类型、维度或信号类型与根级输入端口不兼容。

为了使模型能够进行模拟,如果Root Inport Mapper没有找到要映射的输入端口信号,它将这些输入端口映射到地面,并将映射的信号显示为空([])。

这个图显示了映射成功、失败和地面分配。如果有问题,状态列会显示建议的解决方案。金宝搏官方网站仔细阅读并诊断问题。

有时,模拟准备部分显示一个警告或错误,但是对元素的研究表明映射数据没有问题。在这些情况下,如果您没有选择更新模型复选框中的选项菜单,选择并单击映射到模型一次。

在根导入映射器工具中,单击马克的模拟选择输入复选框中的数据导入/导出窗格在“模型配置参数”对话框中。它还将值设置为导入的数据变量。要将更改应用于模型配置,请在数据导入/导出窗格,点击好的

如果您的模型使用配置引用参考配置集,则无法标记模拟模拟。要使用此数据来使用root Inport Mapper工具模拟模型,请使用模型资源管理器首先激活配置集。

此图形说明了模型模型配置的更改的应用地图数据

检查导入的数据,您可以:

  • 将输出连接到一个范围,模拟模型,并观察数据。

  • 记录信号并使用模拟数据检查器工具观察数据。

强调了inport.与信号关联的块,在其中选择一个项目模拟准备部分。所选的inport.块用蓝色勾勒。

请注意

当输入是总线时,单击总线对象的级别以查看总线中的各个元素。

将工具驱动模型转换为使用无工具外部输入

本示例演示如何将使用Signal Builder块作为输入的套具模型转换为具有根导入端口的无套具模型。该示例从利用模型收集数据,并将其存储在无利用模型的mat文件中。在存储数据之后,该示例从利用模型中删除Signal Builder块,并添加根导入以创建无利用模型。然后,mat文件中的数据被映射到模型的根导入。

将HARNESS数据保存到MAT文件

在将模型转换为无工具之前,收集工具中的测试用例。

对于本例,您可以修改模型sldemo_autotrans自动变速器控制器的建模的例子。

打开示例模型。

导出信号构建块组

从Signal Builder窗口导出定义Signal Builder块信号组的数据到mat文件。导出Signal Builder信号数据,格式为Simulink.SimulationData。金宝app数据集,到mat文件,打开信号生成器窗口并选择文件>出口数据>对MAT-File.在对话框中,输入mat文件的名称,以包含要导出的数据和组的编号。对于本例,文件名是slexAutotransRootInportPassingManeuver.mat并为传递机动组进行组号为1。

移除信号构建块

移除名为manuversgui的Signal Builder块,并将其替换为两个导入。

  1. 删除名为manuversgui的Signal Builder块。

  2. 金宝appSimulink /常用块库,将两个导入块拖到模型中。

  3. 将输入端口连接到先前连接到Signal Builder块的线路上。

  4. 重命名导入端口。命名连接到节流管的输入端口节气门.将连接到Braketorque线路连接的输入端口名称制动

保存模型slexAutotransRootInportsExample1.slx或使用该示例slexautotransrootinportsexample.slx.

本示例的其余步骤使用该模型slexautotransrootinportsexample.slx..如果您使用不同的名称保存模型,请在前进的步骤中使用您的型号名称。

设置无工具输入

现在模型是无利用的,设置您已经保存的输入(参见“保存利用数据到MAT-Files”)。

在Modeling选项卡中,选择Model Settings。在数据导入/导出窗格中,单击连接输入按钮。

将信号映射到根导入

将打开根导入映射器工具。

该示例使用此工具从mat文件建立模型输入,并基于映射算法将这些输入映射到输入端口。要选择包含输入数据的mat -文件,请单击从MAT-File按钮。当链接对话框出现时,单击Browse按钮。在浏览器中,选择前面保存的mat -文件。

选择映射模式

当您选择mat文件时slexAutotransRootInportPassingManeuver.mat如果包含输入数据,则确定将输入数据发送到的根输入端口。金宝appSimulink将输入数据与输入端口匹配,基于以下五个标准之一:

  • 港顺序- 按顺序映射到文件中显示到相应的端口号。

  • 块名称—通过变量名映射到对应的带有匹配块名的根导入。

  • 信号的名字- 通过匹配信号名称对相应的根Inport进行映射到相应的root。

  • 块路径- 使用匹配块路径的块路径参数映射到对应的根Inport。

  • 自定义-地图使用MATLAB函数。

在本例的前面,您将输入数据保存到与控制信号Throttle和Brake同名的变量中,并添加名称与变量匹配的输入端口。给定输入数据和模型输入端口的一组条件,映射标准的最佳选择是块名称.使用这个标准,Simulink尝试将输入数金宝app据变量名称与输入端口的名称匹配。要选择此选项:

  1. 单击块名称单选按钮。

  2. 单击选项按钮并选择更新模型.这验证了映射。

  3. 单击地图按钮。

当编译数据时,Simulink根据以下标准评估导入金宝app,以确定兼容性问题。这种兼容性的状态反映在表格的颜色中:绿色、橙色或红色。警告和错误被标记为诊断消息。如果选项>更新模型选项,根导入映射器通过评估这些块参数和分配的信号来确定兼容性状态:

  • 数据类型- Double, single, enum, ....

  • 复杂性-实数或复数

  • —信号尺寸vs端口尺寸

最后确定模型的输入

检查映射兼容性的结果。在场景数据集列表中单击场景数据集“PassingManeuver”。要准备模拟,请单击马克的模拟.此操作将映射变量应用到配置参数数据导入/导出>外部输入文本框中。如果这个文本框有内容,它将被覆盖。

模拟模型

应用更改后,您现在可以模拟模型并查看结果。运行模型。要查看模拟的结果,双击Scope BlockPlotesults.

用于加载映射数据的替代工作流程

在将映射定义保存到模型之后,可以自动加载和模拟数据。考虑以下方法之一。

命令行或脚本

要从MATLAB命令行加载数据并模拟模型,请使用类似的命令:

加载('signaldata.mat');simout = sim('model_name');

自动化测试和加载不同的信号组,请考虑使用脚本。

下面的示例代码创建时间序列数据,并在加载每个信号组后模拟一个模型。它:

  • 用变量名创建信号组三机一体In2, 和In3,并将这些变量保存到mat文件中。

  • 在加载每个信号组后模拟一个模型。

请注意

变量名称必须与导入数据变量匹配配置参数>数据导入/导出>输入参数。

%创建信号组fileName = 'testCase';创建timeseries数据var1 = timeseries(rand(10,1));var2 = timeseries(兰德(10,1));var3 = timeseries(兰德(10,1));%创建数据集ds = Simulink.Sim金宝appulationData.Dataset();ds = ds。addElement (var1 var1);ds = ds。addElement (var2 var2);ds = ds。addElement( var3, 'var3'); % Save the data save([fileName '_' num2str(k) '.mat' ],'ds'); end clear all % After mapping and saving the model loop over signal groups and simulate % Set the filename to append testcase # to fileName = 'testCase'; % Loop backwards to preallocate for k=3:-1:1 % Load the MAT-file. load([fileName '_' num2str(k) '.mat']); % Simulate the model simOut{k} = sim('model_name'); end

使用PreLoadFcn模型回调

当您对数据和映射满意时,您可以将模型配置为将包含信号组的MAT文件加载到MATLAB工作区中。打电话给加载功能PreLoadFcn模型的回调。

  1. 保存mat -文件后,在建模选项卡,单击模型设置下拉并选择模型属性

  2. 在模型属性窗口中,选择回调TAB,然后是PreLoadFcn节点。

  3. 输入命令来加载包含信号数据的mat -文件。例如:

    加载d_signal_data.mat;
  4. 点击好的并保存模型。

相关的例子

更多关于