主要内容

自动化测试高速公路车道改变

这个例子展示了如何评估车道改变应用程序的功能需求的基础上,通过定义场景和自动化测试的组件,这些组件生成的代码。组件包括一个车道改变规划师和控制器。这个例子构建的高速公路车道改变的例子。

介绍

高速公路车道改变系统允许自我车辆自动从一个通道转移到另一个车道高速公路。系统模型的纵向和横向控制自动车道变化动态。系统级仿真可以评估系统级试验台的功能模型。您可以配置模拟测试场景基于系统需求。自动运行这些模拟支持回归测试来验证系统级的功能。

高速公路车道改变例子展示了如何设计和模拟的系统级模型车道改变使用地面实况信息。这个例子展示了如何自动化的测试模型对多个场景,利用仿真软件测试™®。金宝app场景是基于系统级需求。在本例中,您:

  1. 评审需求——需求描述系统级测试条件。创建模拟测试场景来表示这些条件。

  2. 检查试验台模型——检查系统级前馈试验台模型,该模型包含指标评估。这些指标评估试验台模型与仿真软件集成测试自动化测试。金宝app

  3. 禁用运行可视化——禁用运行可视化降低了自动化测试的执行时间。

  4. 自动化测试——配置测试经理来模拟每一个测试场景中,评估成功的标准,并报告结果。探索结果动态测试经理和导出到PDF审稿人。

  5. 自动化测试与生成的代码——配置车道改变规划师和控制器组件生成c++代码。生成的代码上运行自动化测试和验证行为。

  6. 自动化测试并行——提高执行速度通过使用并行计算在多核计算机上运行测试。

评审需求

探索需求,打开一个工程实例文件的工作副本。MATLAB®将文件复制到一个文件夹中,这样您就可以编辑它们。

目录(fullfile (matlabroot,“工具箱”,“开车”,“drivingdemos”)helperDrivingProjectSetup (“HighwayLaneChange.zip”,workDir = pwd)

要求工具箱™可以作者,在仿真软件分析和管理需求。金宝app这个例子包含15个测试场景,高层为每个场景定义测试需求。开放的要求。

打开(“HighwayLaneChangeTestRequirements.slreqx”)

或者,您可以打开的文件需求选项卡的要求经理应用仿真软件。金宝app

每一行在这个文件中指定了前馈系统测试场景的测试需求文本和图形格式。这些场景让你测试车道改变规划师和控制器组件。

  • scenario_LC_01_SlowMoving——连续三车道公路场景与缓慢导致车辆在自我车道上。

  • scenario_LC_02_SlowMovingWithPassingCar——连续三车道公路现场自我车道缓慢的领头车和一辆驶过的车在左边的车道。

  • scenario_LC_03_DisabledCar——连续三车道公路场景与残疾人车辆在自我车道上。

  • scenario_LC_04_CutInWithBrake——连续三车道公路场景领先汽车降低了自我车道闸。

  • scenario_LC_05_SingleLaneChange——连续四车道公路场景与场景中的多个车辆缓慢移动的车辆。

  • scenario_LC_06_DoubleLaneChange——连续四车道公路场景与多个车辆在该方案中,包括一个缓慢移动的车辆和快速移动的后方车辆。

  • scenario_LC_07_RightLaneChange——连续三车道公路场景在自我领先汽车车道和路过的车辆在左边的车道,导致右车道变化引发自我。

  • scenario_LC_08_SlowmovingCar_Curved——弯曲的道路场景与缓慢的领先汽车在自我车道上。

  • scenario_LC_09_CutInWithBrake_Curved——弯曲的道路场景领先汽车降低自我巷。

  • scenario_LC_10_SingleLaneChange_Curved——弯曲的道路场景与场景中的多个车辆缓慢移动的车辆。

  • scenario_LC_11_MergingCar_HighwayEntry——高速公路入口场景三辆场景。车辆之一是合并到自我highway-entry路段车道。

  • scenario_LC_12_CutInCar_HighwayEntry——高速公路与四车辆进入现场的场景。削减的车辆进入自我巷弯曲段的道路网络。

  • scenario_LC_13_DisabledCar_Ushape——u型场景与场景中的多个车辆,包括残疾人车在相邻车道上的自我自我车道车辆和缓慢移动的车辆。

  • scenario_LC_14_DoubleLaneChange_Ushape——u型场景与场景中的多个车辆,包括残疾人车在相邻车道上的自我自我车道车辆和缓慢移动的车辆。

  • scenario_LC_15_StopnGo_Curved——弯曲的道路场景包含六个车辆的场景。领队汽车减慢而其他在相邻车道的车辆。

回顾试验台模型

这个例子中重用HighwayLaneChangeTestBench模型的高速公路车道改变的例子。打开模型试验台。

open_system (“HighwayLaneChangeTestBench”)

试验台模型包含这些子系统:

  • 场景和环境——指定现场,车辆和地图数据用于仿真。

  • 计划配置参数——指定所需的配置参数规划算法。

  • 高速公路车道改变计划——实现高速公路的车道改变规划算法。

  • 车道改变控制器——指定控制器的算法模型。

  • 车辆动力学——指定自我车辆的动态模型。

  • 指标的评估——评估系统级的行为。

通过使用配置该试验台模型helperSLHighwayLaneChangeSetup脚本。这个设置脚本scenarioName作为输入,scenarioName可以是任何之前的测试场景。运行安装脚本,使用这段代码:

scenarioName =“scenario_LC_15_StopnGo_Curved”;helperSLHighwayLaneChangeSetup (scenarioFcnName = scenarioName)

你现在可以模拟模型和可视化结果。为更多的细节在各个组件的设计试验台模型,看到高速公路车道改变的例子。

接下来,自动化试验台模型使用模型的模拟运行不同的测试场景的测试。金宝app的指标的评估子系统支持集成的系统级仿真软件测试度量评估。金宝app该子系统使用检查静态范围(金宝app模型)检查静态下界(金宝app模型)该集成块。打开指标的评估子系统。

open_system (“HighwayLaneChangeTestBench /指标评估”)

指标的评估这些指标子系统输出:

  • 验证时间差距——验证时间自我车辆和领队汽车差距大于0.8秒。两辆车之间的时间间隔的比值计算进展距离自我车辆速度。

  • 验证没有碰撞——验证自我车辆没有撞上任何车辆在任何时候的场景模拟。

  • 验证纵向混蛋——验证自我车辆纵向混蛋值5 m / s ^ 3至5米/秒^ 3。

  • 验证侧混蛋——验证自我车辆侧向反射值5 m / s ^ 3至5米/秒^ 3。

  • 验证安全——验证的安全自我车辆对当前车道,车辆出现在左车道,右车道。这确保了自我后车辆执行安全操作而轨迹。

禁用运行可视化

系统级试验台模型打开一个可视化窗口展示自我,采样轨迹,胶囊列表在追逐视图和视图的场景。你可以禁用可视化窗口仿真运行得更快。

配置可视化块禁用可视化窗口。

黑色=“HighwayLaneChangeTestBench /可视化”;set_param(黑色,EnableChaseView =“关闭”)set_param(黑色,EnableTopView =“关闭”)

自动化测试

配置测试经理车道改变应用程序的自动化测试。打开HighwayLaneChangeMetricAssessments.mldatx测试文件测试经理

sltestmgr;测试文件= sltest.testmanager.load (“HighwayLaneChangeMetricAssessments.mldatx”);

观察填充之前测试用例编写在这个文件中。这些测试配置运行模型。

每个测试用例使用POST-LOAD回调以适当的输入运行安装脚本。模拟测试用例后,测试经理使用helperLaneChangeReport函数的清理回调函数来生成曲率的情节,横向偏差,航向角、速度、转向角加速度,混蛋。

单独的测试场景运行和探索结果

测试上的系统级模型scenario_LC_15_StopnGo_Curved场景。

testSuite = getTestSuiteByName(测试文件,“测试场景”);testCase = getTestCaseByName (testSuite,“scenario_LC_15_StopnGo_Curved”);resultObj =运行(testCase);

仿真后生成测试报告。

sltest.testmanager.report (resultObj“Report.pdf”,Title =“高速公路车道变化”,IncludeMATLABFigures = true,IncludeErrorMessages = true,IncludeTestResults = false,LaunchReport = true)

检查Report.pdf文件。观察到的测试环境节展示的平台测试是用于测试运行和MATLAB版本。的总结部分显示的模拟测试的结果和持续时间以秒为单位。的结果部分显示了通过或失败结果的基础上评估标准。这一节还显示了情节的记录helperLaneChangeReport函数。

运行所有测试场景和探索的结果

模拟系统对所有测试通过运行(测试文件)命令。另外,您可以通过点击模拟系统测试经理应用程序。

当测试模拟完成后,查看所有的测试结果结果和工件选项卡的测试经理。为每个测试用例测试经理使用检查静态范围(金宝app模型)检查静态下界(金宝app模型)块模型可视化整体通过或失败的结果。

你可以找到在当前工作目录中生成的报告。这份报告包含一个详细的总结通过或失败状态并为每个测试用例情节。

在编辑器的需求验证测试状态

打开要求编辑器并选择显示。然后,选择验证状态看到一个验证状态摘要为每一个需求。绿色和红色条指示通过或失败,分别仿真结果为每个测试。

自动化测试与生成的代码

HighwayLaneChangeTestBench模型支持的集成测试高速公路车道改变计划高速公路车道改变控制器组件。为这些组件生成代码需要一个仿真软件编码器™许可证。金宝app此工作流使您能够验证生成的代码产生预期结果在模拟系统级需求相匹配。

设置高速公路车道改变计划运行在software-in-the-loop (SIL)模式。

模型=“HighwayLaneChangeTestBench /高速公路车道改变计划”;set_param(模型、SimulationMode =“Software-in-the-loop”)

设置车道改变控制器在银模式下运行。

模型=“HighwayLaneChangeTestBench /车道改变控制器”;set_param(模型、SimulationMode =“Software-in-the-loop”)

模拟系统,通过所有的测试场景运行(测试文件)命令。测试完成后,检查中的情节和结果生成的报告。如果你有一个许可模型覆盖™,你也可以生成的代码的代码金宝app覆盖分析生成的报告。这也许可使您能够想象单个测试用例的覆盖率结果和聚合的报道结果。

自动化测试并行

如果你有一个并行计算工具箱™的许可证,您可以配置测试经理使用平行并行执行测试池。并行运行测试,禁用后保存模型运行时使用的可视化save_system (“HighwayLaneChangeTestBench”)命令。的测试经理使用默认集群并行计算工具箱,只在本地机器上执行测试。运行测试并行加速执行和减少所花费的时间得到测试结果。有关如何配置的更多信息的并行测试测试经理,请参阅运行测试使用并行执行(金宝app仿真软件测试)

相关的话题