前页 | 后页 |
使用仿真图表定义
模拟是观察行为的绝佳工具。在仿真中的任何时候,很容易分辨出我们在哪里以及我们所处的状态。当我们逐步进行仿真时,这些信息通常会被丢弃。例如,在向我们展示 24 小时内的交通流量的仿真中,我们可以很容易地观察到在早晚不同时间通过隧道的车辆数量。在仿真完成后保留此信息并使用它来提供有意义的东西可能会很有用。仿真中的动态图表特征使我们能够做到这一点。以上面的例子为例,我们可以记录仿真每一步的交通量,并用它制作一个图表,清楚地显示在仿真的 24 小时内通过隧道的交通量。图表实际上可以为我们显示仿真的时间线或仿真的总和效果。
在仿真中制作自定义图表
您可以从任何仿真中制作各种图表。每次仿真运行时,仿真引用(按名称)的任何运行元素都会更新。仿真将在与模型相同的包中搜索任何图表的模型。
遵循这个简单的过程:
- 为仿真创建动态图表元素。
- 在仿真的初始步骤中,使用JavaScript定义一个变量来保存车辆编号。
//
// 流量变量将保存仿真进行时的流量数字,最初为零
// 数组的每个元素代表一天中的一个时段,早上,下午,晚上和晚上。
//
变量 交通 = [ 0 , 0 , 0 , 0 ]; - 接下来以 JSON 格式编写描述要生成的图表的JavaScript 。
//
// 描述要生成的图表的 JSON 实例。 (符合 EA DynamicChart架构)
//
变量 图表数据 =
{
“类别” : “专栏” ,
“类型” : “简单” ,
“标题” : “交通” ,
“系列” :
[
{ “标签” : “车辆” ,
“数据” :
{
“类型” : “专栏” ,
“积分” :
[
{ “类别” : 《早安》 , “是” : 0 }, // 轴的 Y 值最初为零
{ “类别” : 《下午》 , “是” : 0 }, //仿真结束时填写
{ “类别” : 《傍晚》 , “是” : 0 },
{ “类别” : 《夜》 , “是” : 0 }
]
}
}
]
}; - 在仿真中的各个过渡处更新交通号码。
//
// 下午有2000辆车通过隧道(元素1 )
//
交通[ 1 ] + = 2000 ; - 在仿真结束时,使用运行过程中运行的数据来填充系列。
// 用一天中每个部分的车辆数量连续填充点
变量 数据点 = 图表数据。系列[ 0 ]。数据。积分;
对于(变量 dp = 0 ; dp < 交通。长度; DP ++)
{
数据点[ dp ]。是 = 交通[ dp ];
} - 更新模型。
//调用EA函数以使用此数据填充名为“Vehicles”的 DynamicChart元素。
模拟生成图表( “车辆” , JSON 。字符串化(图表数据));
默认图表由仿真制作
除了您专门生成的图表外,还可以通过模拟自动生成摘要图表。所有这一切都是在包中添加一个工件所需的,并为其状态机与包相同的名称。默认的图表总结了模拟执行过程中的状态转换。如果在模拟完成时找到默认的图表,该图表的数据将被更新并自动显示。
要将默认图表添加到您的状态机模拟,请按照下列步骤操作:
- 找到包含要在其上执行模拟的状态机的包。
- 创建一个仪表板图作为那个包的孩子。
- 在仪表板图中添加一个工件状态机图,并赋予它与机器相同的名称。