Hi,
I am testing SUMO MESO (SUMO 1.27.1) as a dynamic network loading (DNL) model and I am trying to reproduce a proportional merge rule.
My test network is very simple:

E0 ---
(J1) --- E1 --- E2
E3 ---
E0 and E3 are both two-lane incoming edges and E1 is a two-lane downstream edge. During the test, demand on E0 + E3 exceeds the capacity of E1.
What I would like to achieve is a proportional allocation of the available receiving capacity of E1.
For example, with a 40/60 merge priority:
- if both incoming links are congested, 40% of E1 capacity should go to E0 and 60% to E3;
- the full capacity of E1 should still be used;
- if one incoming link cannot use its allocated share, the remaining capacity should be available to the other incoming link.
So this is essentially a merge supply-allocation rule rather than an absolute capacity restriction on either incoming movement.
I tried several approaches in SUMO 1.27.1:
- No MESO junction control
With junction control disabled, E1 reaches its full capacity, but SUMO distributes the available capacity approximately 50/50 between the two identical incoming links.
This works well in terms of total throughput, but I cannot specify an unequal merge priority.
- Priority junction with meso-junction-control
I defined E3→E1 as the major movement and E0→E1 as the minor movement.
With meso-junction-control=true, the priority becomes very strict: E3 receives almost continuous priority and E0 is nearly blocked. More importantly, E1 is then no
longer necessarily used at its full capacity.
With meso-junction-control.limited=true, the same strict-priority behaviour is applied once the downstream queue is considered jammed. Changing meso-jam-threshold changes
when this behaviour activates, but not the strength of the priority.
So this gives essentially either no priority or strict right-of-way priority, rather than proportional priority.
- meso-minor-penalty
I tested a penalty on the minor E0→E1 movement. This changes the penalty/delay associated with the movement, but it did not change the observed merge flow allocation:
under congestion the split remained approximately 50/50.
- Different MESO headway on E0
I also tested assigning a separate edge type to E0 with different tauff, taufj, taujf and taujj. This can change the sending capacity of E0 itself, but does not change the flow allocation
to E1
- Traffic-light workaround
Finally, I converted the merge to a TLS and gave the movements different green fractions, e.g. 60% for E3→E1 and 40% for E0→E1, together with meso-tls-flow-penalty.
This does create different movement capacities, but it also reduces the total throughput of the merge. The green fractions act as capacity restrictions on the individual movements rather
than simply allocating the available capacity of E1. As a result, the full downstream capacity is not necessarily used.
Is there a MESO setting, junction model, or other recommended way to implement this type of proportional merge rule?
In other DNL models this would typically be formulated as allocating downstream supply between the competing upstream links according to predefined merge priorities, while redistributing unused supply if one approach
cannot use its share.
I am mainly interested in motorway merges, so I do not need detailed gap-acceptance behaviour; maintaining the correct downstream capacity and controlling the relative allocation between competing upstream links is more
important.
Thanks in advance,
Jonas