【问题标题】:Parameter Variation: Tracking the Metadata参数变化:跟踪元数据
【发布时间】:2021-09-16 11:20:14
【问题描述】:

我正在尝试在 AnyLogic 中使用参数变化。我的输入是 3 个参数,每个参数变化 5 次。我的输出是需水量。我需要的参数变化是需求根据三个参数的不同组合而变化的方式。我想像:有 10,950 行(每天一个),第一列是时间(以天为单位),第二列是第一个组合的值,第二列是第二个组合,依此类推向前。跟踪此元数据然后能够将其导出到 excel 的最佳方法是什么?我已经在我的主程序中添加了一个“数据集”来跟踪每次模拟的需求,但我不确定要添加到参数变化实验界面中以跟踪不同迭代中的输出。有一种方法可以知道哪种输入组合产生了给定的输出(例如,将组合作为每列的名称)也会很有帮助。我看到有 Java 操作,但我无法找出代码来做我需要的事情。感谢您对此事的任何帮助。

【问题讨论】:

    标签: anylogic


    【解决方案1】:

    最简单的方法是在输出数据库表中进行跟踪,然后在运行结束时将其导出到 Excel。只要这些表包含多次运行的输出(例如,仅在 experiment 而不是 run 开始时清除),您的 Parameter Variation 实验就会结束生成一个包含所有运行结果的 Excel 文件。 (您可能需要在 PV 实验中关闭并行执行,以免在尝试并行写入同一个 Excel 文件时遇到问题。)

    因此,例如,您可能有表格:

    • run_details 与列 idparm1parm2parm3(根据您的实际参数和为每次运行生成的一些唯一 ID 使用正确的列名称)

    • output_demand 带有列 run_idsim_time_hrsdemand_value(例如,如果您在模拟时间的每小时存储一些需求值)其中 run_id 交叉引用 @987654331 中的运行 ID @

    (在如何分配唯一的运行 ID 以及写入/清除这些表的方式和时间方面存在额外的复杂性,但我只是介绍核心设计。您还可以绕过需要串行执行通过编程控制何时导出到 Excel,而不是使用内置的“模型执行结束时导出表”功能,但这也更复杂。)

    【讨论】:

      猜你喜欢
      • 2015-01-17
      • 2020-07-21
      • 2017-09-07
      • 1970-01-01
      • 2022-01-18
      • 2021-01-07
      • 1970-01-01
      • 2013-02-12
      • 2018-11-07
      相关资源
      最近更新 更多