Aimsun里的“宏观函数组件”

技术注解 #14

2016年3月
作者:Margarida Delgado

设想你的成本函数有几个组件,如距离、旅行时间或过路费。 如果你想单独评估它们,并将它们作为输出显示出来(除了总成本之外),你可以根据需要声明多个“宏观函数组件”,以便在执行任务时产生每个额外的输出。

你可以在与“成本”函数相同的文件夹中创建新的“宏观函数组件”。

 

有两种类型的组件:非衍生型和衍生型。

非衍生组件是基于对成本函数的一部分(子函数)的评估,它可以通过函数字符串检测出来。

也就是说,宏功函数组件编辑器将包含一个关键词,它必须与一个子函数的名称相对应(在所有宏观成本函数中:路段的”流量延误“函数,以及转弯的“转弯惩罚”和“路口延误”函数)。

例如,要定义“Distance (距离)(km)”和“Time (时间)(h)”的组件:在宏观函数组件中,分别设置函数字符串“Distance”和“Time”作为关键词。


现在,我们需要在所有的宏观成本函数中引入这些组件的定义(谨慎对待转弯,其默认的转弯惩罚是硬编码 (hard-coded) 的,所以它不包含任何组件),这样就可以在所有的路段和转弯处评估该组件。 在函数代码中,最后一个函数(在下图中,“def vdf”和“def tpf”)是主函数。 在它之前,我们已经定义了子函数“Distance”和”Time“,它们将在分配结束时被评估,并给出额外的输出列。


 

此外,我们还可以定义由其他组件组合而成的衍生组件。 例如,我们可以将速度定义为距离/时间。

 

衍生组件意味着在函数定义中没有额外的变化。
在执行分配时,将创建额外的列,包含每个组件的值。



 

路径分配结果也包含宏观函数组件的结果。 非衍生组件是沿着路径添加的,而衍生组件是用非衍生路径值计算的(例如,如果我们把速度定义为衍生,我们就不添加沿路径的速度,而是计算总长度/总时间)。



而且,每个组件还将提供”指标“和”输出“矩阵。

更多技术说明

宏观函数组件

2016年3月:Marga Delgado解释了如何使用“宏观函数组件”在执行任务时产生额外的输出。

Python:从函数到属性

2016年8月:大多数用户都熟悉在Aimsun模型中的目标内创建自己的属性。 Grant MacKinnon解释了你如何也可以在一个目标中添加一个列,根据一些Python代码返回一个值,允许你即时计算一个值。

  • 有问题吗? 请联系我们。

    我们在这里提供帮助!

  • 有问题吗? 请联系我们。

    我们在这里提供帮助!

分享

引用Aimsun Next

Aimsun Next 20

Aimsun (2021). Aimsun Next 20 User's Manual, Aimsun Next Version 20.0.3, Barcelona, Spain. Accessed on: May. 1, 2021. [In software].
Available: qthelp://aimsun.com.aimsun.20.0/doc/UsersManual/Intro.html


Aimsun Next 8.4

Aimsun (2021). Aimsun Next 8.4 User's Manual, Aimsun Next Version 8.4.4, Barcelona, Spain. Accessed on: May. 1, 2021. [In software]. Available: qthelp://aimsun.com.aimsun.8.4/doc/UsersManual/Intro.html

Aimsun Next 20

@manual {​​​​​​​​AimsunManual,

title = {​​​​​​​​Aimsun Next 20 User's Manual}​​​​​​​​,

author = {​​​​​​​​Aimsun}​​​​​​​​,

edition = {​​​​​​​​​​​​​​​Aimsun Next 20.0.3}​​​​​​​​​​​​​​​,

address = {​​​​​​​​​​​​​​​Barcelona, Spain}​​​​​​​​​​​​​​​,

year = {​​​​​​​​​​​​​​​2021. [In software]}​​​​​​​​​​​​​​​,

month = {​​​​​​​​​​​​​​​Accessed on: Month, Day, Year}​​​​​​​​​​​​​​​,

url = {​​​​​​​​​​​​​​​qthelp://aimsun.com.aimsun.20.0/doc/UsersManual/Intro.html}​​​​​​​​​​​​​​​,

}​​​​​​​​​​​​​​​


Aimsun Next 8.4

@manual {​​​​​​​​AimsunManual,

title = {​​​​​​​​Aimsun Next 8.4 User's Manual}​​​​​​​​,

author = {​​​​​​​​Aimsun}​​​​​​​​,

edition = {​​​​​​​​​​​​​​​Aimsun Next 8.4.4}​​​​​​​​​​​​​​​,

address = {​​​​​​​​​​​​​​​Barcelona, Spain}​​​​​​​​​​​​​​​,

year = {​​​​​​​​​​​​​​​2021. [In software]}​​​​​​​​​​​​​​​,

month = {​​​​​​​​​​​​​​​Accessed on: Month, Day, Year}​​​​​​​​​​​​​​​,

url = {​​​​​​​​​​​​​​​qthelp://aimsun.com.aimsun.8.4/doc/UsersManual/Intro.html}​​​​​​​​​​​​​​​,

}​​​​​​​​​​​​​​​

Aimsun Next 20

TY - COMP

T1 - Aimsun Next 20 User's Manual

A1 - Aimsun

ET - Aimsun Next Version 20.0.3

Y1 - 2021

Y2 - Accessed on: Month, Day, Year

CY - Barcelona, Spain

PB - Aimsun

UR - [In software]. Available: qthelp://aimsun.com.aimsun.20.0/doc/UsersManual/Intro.html


Aimsun Next 8.4

TY - COMP

T1 - Aimsun Next 8.4 User's Manual

A1 - Aimsun

ET - Aimsun Next Version 8.4.4

Y1 - 2021

Y2 - Accessed on: Month, Day, Year

CY - Barcelona, Spain

PB - Aimsun

UR - [In software]. Available: qthelp://aimsun.com.aimsun.8.4/doc/UsersManual/Intro.html