如何使用 CarSource 模块自动从 Excel 电子表格中捕获数据?
Posted
技术标签:
【中文标题】如何使用 CarSource 模块自动从 Excel 电子表格中捕获数据?【英文标题】:How to use the CarSource block to capture data from an Excel spreadsheet automatically? 【发布时间】:2020-11-18 06:30:29 【问题描述】:我有一个 Excel 电子表格中的数据,该数据表示几天内每天每小时通过红绿灯的车辆数量。 24 列代表一天中的几个小时,每一行代表不同的一天。
我希望我在模拟中实现的每个 CarSource 模块都能捕获表中存在的车辆数量,并将其自动分配给 Arrival Time 属性,从 00:00 到 23:00。
对于模拟中经过的每一小时,到达时间属性必须使用从电子表格中获得的下一小时的相关信息进行更新。
有人对如何使用 AnyLogic(版本 8.4.0)有任何建议吗?
【问题讨论】:
【参考方案1】:所以到达时间属性不存在...我假设您的意思是到达表,但这不适用于您的情况,因为您没有确切的到达时间。
因此您将需要使用不同的策略,即使用由速率触发的事件(我们称之为 rateEvent),您将在其中使用 carSource.inject();
并根据您当时的数据库值更改该速率。
您将需要另一个每小时运行一次的事件并读取数据库以了解在该小时内使用的费率...如果您需要执行rateEvent.restart();
以重新评估费率。
要读取正确的数据,您需要弄清楚,因为您可以直接从excel中读取或将excel用作数据库...但是您可以轻松使用的是:
excel.getCellNumericValue
查看 anylogic 帮助文档
【讨论】:
对不起,我引用错误的属性名称,正确的名称是到达率,在 CarSource 块内,在这个属性中,我已经可以定义到达是按小时、周和等等。但是,我想知道如何从 Excel 电子表格中捕获数据,以便它尊重每小时的变化。我相信您的回答已经让我明确了我的目标。以上是关于如何使用 CarSource 模块自动从 Excel 电子表格中捕获数据?的主要内容,如果未能解决你的问题,请参考以下文章