几乎每个PtS学习者都会使用实验管理器设定输出值,来记录每次仿真实验的数据.
但如果需要在分布式仿真中记录Table,List等类型的数据该如何处理呢?
这里介绍一个在使用实验管理器进行非分布式仿真和分布式仿真时将数据表导出至Excel进行保存的方法,示例:
Var ExperimentNo,ObservationNo:Integer
if ExperimentManager.currentTaskNo/=0 --ExperimentManager.IsRunning=true --经测试 分布式仿真中ExperimentManager.IsRunning=false 所以不能靠此来判断是否在用实验器进行仿真 currentTaskNo也是个不完美的解决方案,如果ExperimentManager没有重置,currentTaskNo就不为0
if ExperimentManager.UsingRemote -- Use distributed simulation
var n:integer := ExperimentManager.currentTaskNo
ExperimentNo := ExperimentManager.JobsTable[1,n]
ObservationNo := ExperimentManager.JobsTable[2,n]
else
ExperimentNo := ExperimentManager.CurrExpNo
ObservationNo := ExperimentManager.CurrRunNo
end
if ExperimentManager.currentTaskNo<=ExperimentNo*ObservationNo --补丁 防止ExperimentManager没有reset的情况下运行了EventController仿真而覆写了最后一次实验的输出表
if DataTable.writeExcelFile(To_Str("C:\Users\yhu26\Desktop\TestExcelFile\OutPut",To_Str("_",ExperimentN

本文介绍了一种在PtS中使用实验管理器进行非分布式仿真和分布式仿真时,将数据表导出至Excel的方法。通过特定条件判断当前仿真状态,并将数据写入Excel,避免了覆盖问题。
最低0.47元/天 解锁文章
949

被折叠的 条评论
为什么被折叠?



