Macro Function Components
March 2016: Marga Delgado explains how to use macro function components to produce extra outputs when executing an assignment.
June 2017
By Dimitris Triantafyllos and Carles Illera
Did you know that in Aimsun 8.2 you can now make use of a Turning Penalty Function (TPF) that perceives the costs from a control plan selected in the macro scenario? Did you ever use Junction Delay Functions (JDF) to model stop/yield signs during a static assignment?
Below you will find examples of TPF and JDF functions that can be used at:
Aimsun 8.2 introduces the capability of the TPF to access the control plan information (green time and cycle duration) of a turn and to include this cost in the link cost calculation. You’ll find one example in the template named ‘TPF – Example for Signalized Intersection’. This cost function calculates, as a function of the Assigned Volume, the average delay of each signalized turn based on the statistical calculation found in the 2010 Highway Capacity Manual (HCM).
Consider the orange-marked turn at the following signalized intersection. This movement receives 43 seconds of green time during 90-second cycle.
Figure 1. Turn green time and cycle time at signalized intersection
1. First assign the desired Control Plan inside the Macro Assignment Scenario.
Figure 2. Definition of the Master Control Plan in the Static Assignment Scenario
2. Then assign the ‘TPF – Example for Signalized Intersection’ to the signalised turn by double-clicking on the turn object. See the following screenshot:
Figure 3. Definition of the TPF – Example for Signalized Intersection
3. After executing a Macro Assignment you can see the final cost calculated based on the assigned volume:
Figure 4. Cost of a turn post to a macro assignment
The Assigned Volume at this turn came out 339.62 PCUs, and the corresponding cost 0.20 minutes.
– Double-click on the TPF object to check the Python code. To plot a graph that shows how the cost value varies with the assigned volume of the turn, select one Static Assignment Experiment, one Vehicle Type and then just click on the desired turn.
Figure 5. A graph that shows how the cost varies with the assigned volume for a specific turn inside the Python-coded TPF
– If a Master Control Plan with various Control Plans is selected, then the average green time and cycle time will be calculated by taking into account the different plans, each weighted with its relative duration within the period covered in the scenario.
– If an Actuated Control Plan is assigned, then the TPF has access to the cycle (considered as fixed) and to the minimun and maximum green time defined for each phase in the control plan. You are responsible for implementing in the TPF a function that calculates the green duration to take into account in the computation of the delay.
When a yield or stop sign is associated to a turn movement, then another type of cost function, called Junction Delay Function (JDF), can be assigned to this turn to model the travel time or the cost as a function of conflicting turn volumes, the own turn volume or the origin section’s volume.
JDF Example:
The template provides an example of such JDF that can be applied at yield and stop signs named ‘JDF – Example for Unsignalized Intersection’.
Figure 6. JDF – Example for Unsignalized Intersection
This JDF calculates the turn capacity depending on the conflicting turn volumes. Once the capacity has been determined, the JDF function evaluates the turn’s cost based on its Assigned Volume.
First, this function needs to be assigned to a specific turn:
Finally, launch a Macro Assignment Experiment to see the following results:
This JDF “Example for Unsignalized Intersection” is an example and can only be used for turns with a dedicated lane.
If a turn at a signalised intersection has conflicts with other movements during the green phase (e.g. permitted left turn), create a new JDF that captures the effects of both the signal timing and the conflicting volume.
March 2016: Marga Delgado explains how to use macro function components to produce extra outputs when executing an assignment.
August 2016: Most users are familiar with creating their own attributes within objects within an Aimsun model. Grant MacKinnon explains how you can also add a column to an object where a value is returned based on some Python Code, allowing you to calculate a value on the fly.
SHARE
Aimsun Next 24
Aimsun (2024). Aimsun Next 24 User’s Manual, Aimsun Next Version 24.0.0, Barcelona, Spain. Accessed on: April. 16, 2024. [Online].
Available: https://docs.aimsun.com/next/24.0.0/
Aimsun Next 24
@manual {AimsunManual,
title = {Aimsun Next 24 User’s Manual},
author = {Aimsun},
edition = {Aimsun Next 24.0.0},
address = {Barcelona, Spain},
year = {2024. [Online]},
month = {Accessed on: Month, Day, Year},
url = {https://docs.aimsun.com/next/24.0.0},
}
Aimsun Next 24
TY – COMP
T1 – Aimsun Next 24 User’s Manual
A1 – Aimsun
ET – Aimsun Next Version 24.0.0
Y1 – 2024
Y2 – Accessed on: Month, Day, Year
CY – Barcelona, Spain
PB – Aimsun
UR – [In software]. Available:
https://docs.aimsun.com/next/24.0.0/