How to Use Hybrid Macro-Meso Simulation in Aimsun Next 20

Technical Note #50
August 2020

By Tessa Hayman

Tessa Hayman explains hybrid macro-meso simulation in Aimsun Next 20 and how it can unite the best of macro and meso to enable regional-scale modeling.

Traditionally, the strategic and operational impacts of a transportation scheme or future plan are analyzed by building two separate models: one dealing with planning, and the other with operations. The hybrid macro-meso adopts the innovative approach of fusing both in a single model.

How does it work?

Unlike traditional macroscopic modeling, the hybrid macro-meso simulator is a dynamic model that simulates individual vehicles. The paths of each vehicle are determined by a dynamic assignment. The main difference between the macroscopic and mesoscopic levels is in the way that a vehicle’s travel time is calculated: network loading.

The network loading and path assignment within Aimsun Next are treated separately, which allows for hybrid modeling.

Hybrid modeling


  Network loading Routes
Macroscopic area Capacity is an input and there is no capacity constraint.
Travel time is calculated using the delay functions evaluated using the assigned volume for each interval.
Cost is the sum of the volume delay, turn penalty and junction delay functions, which depend on volume and capacity.
Mesoscopic area Maximum throughput and travel time depend on the behavioral models (car-following, lane-changing and gap-acceptance). Cost is evaluated from the experienced travel time with dynamic cost functions.

The network loading gives the travel time and number of vehicles assigned on a section to the route calculation every route choice interval.

The cost of a path is: Macro cost + Meso cost

Simulating individual vehicles

We can split the simulation of a vehicle into 3 main steps:

  1. Generating a vehicle
  2. Calculating a route
  3. Simulating the route

The vehicle generation is the same as in mesoscopic simulation: the modeler chooses an arrivals model.

The route calculation is the same as in mesoscopic simulation. The modeler chooses either stochastic route choice or dynamic user equilibrium and the cost of each path is the macro cost + the meso cost.

Simulating individual vehicles

The route is then simulated as follows:

1. If the origin is in the macro area, calculate the delay functions to give a macro travel time.

2. Move the vehicle to the turn that enters the meso area (either instantaneously or with a delay from the functions).

3. Add one vehicle to the volume of the sections traversed.


4. Can the vehicle safely enter the meso section?

Yes – simulate as a mesoscopic vehicle;

Add to the virtual queue.


If the destination is in the macro area

    1. At the vehicle’s exit time from the meso area, calculate travel time using the delay functions;
    2. Add one vehicle to the volume of the sections traversed;
    3. Move vehicle to destination OR to next mesoscopic area.

How to create a hybrid macro-meso experiment

Within a dynamic scenario, you can create a hybrid macro-meso experiment in a similar way to creating a hybrid meso-micro experiment.

  1. Draw a polygon around each area that you would like to simulate at a mesoscopic level
  2. Convert the polygon to a simulation area
  3. Create a new hybrid macro-meso experiment within an existing dynamic scenario
  4. In the Hybrid tab of the new experiment, add your polygon(s) to specify the mesoscopic areas

Draw a polygon, right click and click convert to simulation area
Draw a polygon, right click and click convert to simulation area

The polygon will then go green to show it is a simulation area
The polygon will then go green to show it is a simulation area

Cost alignment

As the path cost is the sum of the macro cost and the meso cost, it is essential that the units of the macro and meso cost functions are aligned. The default macroscopic cost is expressed in minutes, whereas the default mesoscopic cost is expressed in seconds. To align the cost, you can specify the conversion in the hybrid macro/meso experiment, using the VDF/TPF/JDF Unit Conversion Factor.

It is a good idea to check that the functions that you have used are the same format as the generalized cost function. For example, you may need to add in toll costs, value of time and vehicle operating costs with the same coefficients.

If you want to get skim matrices with any function components, you’ll also need to ensure that they are defined both in your macroscopic functions and in your mesoscopic functions.

Cost alignment

Travel time in the macro area

The travel time in the macro area specifies how long it takes for a vehicle generated in the macroscopic area to reach the boundary of a mesoscopic area. The default is Total VDF/TPF/JDF cost, which interprets the overall output of those functions as a pure travel time; if you have added other terms and computed a generalized cost, you should define and choose a function component that provides the travel time only.

If you developed your demand by using a cordon around the mesoscopic area, you should choose instantaneous time for the first and last segment. This is because the time of each demand slice represents the time at which incoming trips cross the boundary of the mesoscopic area rather than the time when they departed from their origin.

More technical notes

How to code roundabouts – Part 1

November 2019: Tessa Hayman explains different methods of coding roundabouts for different roundabout layouts, ensuring correct lane usage and lane-changing behavior from entry to exit.

Hybrid Simulation

February 2018: Geline Canayon and Laura Torres give you a brief guided tour through the how, when, where and why of hybrid simulation.

  • Got a question? Get in touch.

    We are here to help!


Cite Aimsun Next

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].


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 = {},

Aimsun Next 24

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: