Aimsun里的“宏观函数组件”

技术注解 #14

2016年3月
作者:Margarida Delgado

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

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

 

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

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

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

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


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


 

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

 

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



 

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



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

更多技术说明

切换到Python 3

2021年5月:Python 2在2020年1月终结。 Tessa Hayman分享一些技巧,让你的脚本Python 3在Aimsun Next中获得最佳性能。

有时间序列的脚本编写

2021年3月:Tessa Hayman指导你通过Python脚本处理时间序列的复杂性,并解释如何以可以在用户界面中可视化的方式创建你的自定义时间序列。

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

    我们在这里提供帮助!

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

    我们在这里提供帮助!

分享

引用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