模拟的概述走鹃场景MATLAB和动态仿真模块
这个主题描述了工作流来模拟走鹃与MATLAB的场景®和仿真软件®。走鹃是一个交互式编辑器,它使您能够设计场景模拟和测试自动驾驶系统。自动驾驶工具箱™提供了一个cosimulation框架来模拟场景走鹃演员在MATLAB建模和仿真软件。这些是工作流的步骤:
作者或仿真软件MATLAB系统对象模型来定义角色行为。
把演员的行为走鹃。
可选地,发布一个演员的行为。
调优参数定义在MATLAB或仿真软件走鹃模拟。
模拟一个场景使用走鹃用户界面或控制模拟从MATLAB编程。
检查使用模拟仿真结果日志。
从保存模拟日志回放场景模拟。
这个工作流假定:
作者走鹃演员的行为使用动态仿真模块或MATLAB系统对象
您可以定义自定义行为对你的演员走鹃使用MATLAB仿真软件或系统对象™。
例如,这个模型SimulinkVehicle.slx
使用仿真软件和创建走鹃场景在自动驾驶工具箱图书馆。模型数据读取的演员,增加它的速度,然后将数据写回到演员走鹃场景。关于创建仿真软件行为的更多信息走鹃,请参阅模拟走鹃场景和演员在仿真软件建模。
这个例子显示了hVehicle.m
创建行为为MATLAB系统对象文件。在这种行为中,代码读取一个演员的初始姿态和速度和更新的值使演员巷。关于创建角色行为使用MATLAB的更多信息,见模拟走鹃场景和演员在MATLAB建模。
classdefhVehicle < matlab.System% 2021年版权MathWorks公司。属性(访问=私人)mActorSimulationHdl;mScenarioSimulationHdl;mActor;结束方法(访问=保护)函数深圳= getOutputSizeImpl(~)深圳= [1];结束函数圣= getSampleTimeImpl (obj)圣= createSampleTime (…obj,“类型”,“离散”,“SampleTime”,0.02);结束函数t = getOutputDataTypeImpl t = (~)“替身”;结束函数resetImpl (~)结束函数setupImpl (obj) obj。mScenarioSimulationHdl =…Simulink.ScenarioSimulation.find (…“ScenarioSimulation”,“SystemObject”、obj);obj。mActorSimulationHdl = Simulink.ScenarioSimulation.find (…“ActorSimulation”,“SystemObject”、obj);obj.mActor。提出了=…obj.mActorSimulationHdl.getAttribute (“姿势”);obj.mActor。速度=…obj.mActorSimulationHdl.getAttribute (“速度”);结束函数stepImpl (obj ~)速度= obj.mActor.velocity;dTimeUnit = obj.getSampleTimeImpl.SampleTime;构成= obj.mActor.pose;体式(1,4)=(1,4)+速度(1)* dTimeUnit;% x体式(2、4)=(2、4)+速度(2)* dTimeUnit;y %体式(3、4)= (3、4)+ (3)* dTimeUnit速度;% zobj.mActor。提出了=pose; obj.mActorSimulationHdl.setAttribute(“姿势”,构成);结束函数releaseImpl (~)结束结束结束
把演员的行为走鹃场景
本节描述了如何将一个自定义的行为你的演员走鹃。工作流是相同的MATLAB和Simulink的行为。
在你的走鹃场景中,选择库浏览器然后是
行为
文件夹中。然后,右键单击一个空的空间来创建一个新的行为。在这个步骤中,您可以选择任何文件夹库浏览器。选择新,然后选择行为。
在属性窗格中,设置平台来
MATLAB / Simulink
。随着文件名称,用你的文件的位置hVehicle.m
。如果你的仿真软件MATLAB系统对象模型或文件在您的工作目录中,您可以输入您的文件的名称及其扩展等
.slx
或。m
例如,hVehicle.m
。您还可以使用完整路径进入你的文件的位置,例如
MyLocation \ hVehicle.m
。
此操作将创建一个新的行为,您可以附加到演员在你的场景中。重命名行为
MyNewBehavior
。添加一个新的
CompactCar
你的场景MyExampleScenario
。把新行为一个演员,选择
CompactCar
。在属性窗格中,在行为框,添加MyNewBehavior
来CompactCar
通过点击和拖动图标到箱子的行为。
发布演员的行为
在您创建定制的行为,你可以将你的行为附加到演员的场景。可选地,您可以发布您的演员行为作为原型文件或包使用Simulink.publish.publishActorBehavior ()
和Simulink.publish.publishActor ()
功能。
原型是特定于文件走鹃和有一个.slprotodata
扩展。这个数据接口允许你结合你的行为模型,其参数,和他们的价值观和一起分享走鹃。
您还可以发布你的行为作为一个包. zip
文件。发布在一个. zip
文件将允许您创建一个包,包括原型文件以及其他支持文件为您的模型。
有关行为的更多信息发布工作流程,明白了公布演员行为作为原型文件,计划,行动资产或资产。
曲调演员参数
您可以调整的参数定义定制的MATLAB和Simulink行为走鹃。
例如,假设你有一个仿真软件模型foo01.slx
用一个增益参数gain01
。参数值2
。您可以将您的模型在两种不同的方式来调整模型参数走鹃。
您可以发布您的模型作为一个原型文件和调优参数走鹃。
你可以直接把你的MATLAB或仿真软件模型的行为走鹃然后调优参数走鹃。
原型文件的调优参数走鹃
作为一个原型文件发布模型,foo01.slprotodata
。发布的原型文件模型,其参数和值。看到的更多信息,公布演员行为作为原型文件,计划,行动资产或资产。
调整的gain01
参数在一个走鹃场景:
拖动
foo01.slprotodata
原型文件到任何文件夹下MyProject /资产
。双击行为
foo01
并观察,获得参数及其值出现在走鹃。这显示参数的值是只读的。调整参数,继续下面的步骤。原型文件附加到你的汽车在你的场景。
选择的操作阶段
轿车
并点击添加操作。然后,选择改变行为参数
。观察模型参数
gain01
出现了。你现在可以调优参数模拟。
优化参数模型相关的行为没有出版
你也可以直接关联模型的行为一个演员在一个场景中没有出版。
在本例中,您创建一个新的行为然后添加一个新的参数对自己的行为负责,这张图的名字相同的模型参数gain01
。然后,您可以调整的参数没有任何额外的步骤。
按照前面的步骤创建一个新的行为。
选择添加参数。
创建参数具有相同的名称作为模型参数
gain01
。剩下的工作流程是一样的,当你发布你的文件。行为附加到你的车,和操作阶段,调优参数模拟。
模拟的场景走鹃
使用场景编辑器走鹃模拟场景定制行为和控制仿真的发展和执行开始,暂停,一步,继续,停止行动。
支持自定义行为定义为仿真软件的仿真模型或MATLAB系统对象,您需要配置走鹃这样就可以找到一个MATLAB的安装在您的计算机上可用。
配置文件:
打开
SimulationConfiguration.xml
文件生成的与你走鹃安装。有关更多信息,请参见模拟配置(走鹃场景)。在这个文件中,搜索相关的配置MATLAB平台(见下面的例子)。
<平台名称=“MATLAB”> < ExecutablePath > C: \ Program Files \ MATLAB \ R2022a \ MATLAB \ bin \ MATLAB。exe < / ExecutablePath > <个StartTimeOut > 60000 < /个StartTimeOut > < NoDesktop >对< / NoDesktop > < /平台>
取代的完整路径(用MATLAB是可执行的
< ExecutablePath >
标签)可执行文件在您的计算机上安装。
您还可以控制速度的模拟和仿真步长,观察当前在模拟仿真时间。
控制场景模拟使用MATLAB
而不是使用场景编辑器走鹃您还可以使用MATLAB来控制你的模拟。
开始走鹃和走鹃场景。有关更多信息,请参见
走鹃
。加载和保存一个预定义的场景文件(
.rrScenario
)。有关更多信息,请参见openScenario
和saveScenario
。配置和管理一个模拟世界中。有关更多信息,请参见
Simulink.ScenarioSimulation
。从MATLAB,准备一个仿真通过获取或设置仿真步长和仿真速度。
使用MATLAB控制仿真开始、停止、暂停、恢复和单步执行。
获取当前的播放状态。
使用MATLAB函数和MATLAB系统对象。
读演员静态规范或场景的逻辑模型。有关更多信息,请参见
Simulink.ActorModel
。读和写运行时如演员运行时属性值,有关更多信息,请参见
Simulink.ActorSimulation
。与仿真结果和诊断报告或通知如警告和错误,或接收和发送场景逻辑事件。有关更多信息,请参见
Simulink.ScenarioSimulation
。
这个例子展示了如何使用MATLAB模拟场景的代码。每一步后,等待的预期响应走鹃或MATLAB在继续下一步之前。
使用这些命令来指定
MyInstallationFolder
在你的必经之路走鹃安装文件夹和MATLAB和之间创建连接走鹃只有第一个MATLAB安装。RRInstallationFolder =“MyInstallationFolder”;s =设置;s.roadrunner.application.InstallationFolder。PersonalValue = RRInstallationFolder;s.roadrunner.application.InstallationFolder。TemporaryValue = RRInstallationFolder;
改变之间的联系的超时值走鹃场景和MATLAB,分配所需的秒的超时值
超时
设置。s.roadrunner.application.Timeout。TemporaryValue = 10;
实际的超时值是那么的指定值和每个事件类型的默认值。有关更多信息,请参见超时值(走鹃场景)。
打开走鹃项目
MyRoadRunnerProject
从MATLAB,使用此命令。rrapp =走鹃(“MyProjectLocation”);
开现场
MyExampleScene
。rrapp.openScene (“MyExampleScene”);
开放的场景
MyExampleScenario
。rrapp.openScenario (“MyExampleScenario”);
从MATLAB仿真对象控制仿真。
党卫军= rrapp.createSimulation ();
从命令行启动模拟。
ss.set (“SimulationCommand”,“开始”);
检查使用数据记录仿真结果
您可以检查仿真结果数据日志记录。该示例代码记录仿真数据,运行仿真,然后被记录的仿真数据。关于日志的更多信息,请参阅Simulink.ScenarioLog
。
%将登录ss.set (“日志”,“上”)%运行仿真ss.set (“SimulationCommand”,“开始”)%得到仿真数据记录日志= ss.get (“SimulationLog”);
控制场景中使用MATLAB仿真和使用数据记录检查结果假设您手动打开一个MATLAB会话控制仿真。如果没有任何积极的MATLAB会话连接到走鹃开始之前的模拟,走鹃自动打开一个会话MATLAB模拟场景和MATLAB仿真软件的演员。
启用此配置模拟配置(走鹃场景)通过设置ExecutablePathMATLAB可执行文件和设置参数个StartTimeOut参数正常开始前走鹃。