将集束驱动的模型转换为使用无集束的外部输入
这个例子展示了如何将使用Signal Builder块作为输入的集束模型转换为具有根导入的无集束模型。该示例从控制模型收集数据,并将其存储在无控制模型的mat文件中。在存储数据之后,该示例将从控制模型中删除Signal Builder块,并添加根导入以创建无控制模型。然后,mat文件中的数据被映射到模型的根导入。
将线束数据保存到mat文件
在将模型转换为无约束之前,收集约束中的测试用例。
对于本例,您将修改模型sldemo_autotrans从自动变速器控制器建模的例子。
打开示例模型。在MATLAB命令窗口中,键入sldemo_autotrans
.
导出信号构建块组
从“信号生成器”窗口导出定义“信号生成器”块信号组的数据到mat文件。导出格式为Simulink.SimulationData的Signal Builder信号数据。金宝app数据集,到mat文件,打开信号生成器窗口并选择文件>出口数据>对MAT-File.在对话框中,输入mat文件的名称,以包含要导出的数据和组的编号。在本例中,文件名为slexAutotransRootInportPassingManeuver.mat
通过机动组的组号为1。
移除信号构建块
移除名为机动gui的信号构建器块,并用两个导入替换它。
删除名为机动gui的信号构建器块。
从金宝appSimulink/常用块库中,将两个导入块拖到模型中。
将输入端口连接到先前连接到Signal Builder块的线路上。
重命名导入端口。命名与Throttle线连接的输入端口节气门.命名连接到BrakeTorque线的输入端口刹车.
将模型另存为slexAutotransRootInportsExample1.slx
或者举个例子slexAutotransRootInportsExample.slx
.
本例的其余步骤使用该模型slexAutotransRootInportsExample.slx
.如果您使用不同的名称保存模型,请在后续步骤中使用您的模型名称。
设置无控制输入
现在模型是不受控制的,设置已经保存的输入(参见“将控制数据保存到MAT-Files”)。
在Modeling选项卡中,选择Model Settings。在“数据导入/导出”窗格中,单击连接输入按钮。
将信号映射到根输入
根导入映射器工具打开。
该示例使用该工具从mat文件设置模型输入,并基于映射算法将这些输入映射到输入端口。要选择包含输入数据的mat文件,请单击从MAT-File“根导入映射器”工具栏上的按钮。当链接对话框出现时,单击Browse按钮。在浏览器中,选择前面保存的mat文件。
选择映射模式
当您选择mat文件时slexAutotransRootInportPassingManeuver.mat
,确定要将输入数据发送到的根输入端口。金宝appSimulink根据以下五个标准之一匹配输入数据和输入端口:
港顺序—按照文件中出现的顺序映射到相应的端口号。
块名称—根据变量名映射到对应的根导入,并使用匹配的块名。
信号的名字-通过变量名映射到对应的根输入,并使用匹配的信号名。
块路径—通过BlockPath参数映射到对应的根导入和匹配的块路径。
自定义-地图使用MATLAB函数。
在本例的前面,您将输入数据保存到与线束信号Throttle和Brake同名的变量中,并添加了名称与变量匹配的输入端口。给定输入数据和模型输入端口的条件集,映射标准的最佳选择是块名称.使用这个标准,Simulink尝试将输入数金宝app据变量名与输入端口名匹配。选择此选项:
单击块名称单选按钮。
单击选项按钮并选择更新模型.这将验证映射。
单击地图按钮。
在编译数据时,Simulink根据以下标准评估导入金宝app,以确定兼容性问题。这种兼容性的状态由表的颜色绿色、橙色或红色反映。用诊断消息标记警告和错误。如果选项>更新模型选项未选中,根导入映射器通过评估这些块参数和分配的信号来确定兼容性状态:
数据类型—Double, single, enum, ....
复杂性-真实或复杂
维-信号尺寸vs端口尺寸
最后确定模型的输入
检查映射兼容性的结果。在场景数据集列表中单击场景数据集“PassingManeuver”。如需准备模拟,请单击模拟评分.此操作将映射变量应用到配置参数数据导入导出>外部输入文本框中。如果此文本框有内容,则会覆盖该文本框。
模拟模型
应用更改后,您现在可以模拟模型并查看结果。运行模型。要查看模拟的结果,双击作用域块PlotResults.