- Run a step before reading: Add sim.RunSingleStep; before the loop to initialize the simulation.
- Check if queue counter exists: Make sure queue_counters_1 is not empty.
- Use correct attribute: Try 'QLen(Current)' instead of 'QLen(Current, Last)'.
- Ensure it is placed correctly: In VISSIM, confirm the queue counter is on the right link/lane and enabled.
I am using the queue counter, I have put the queue counter in VISSIM GUI and saved & enabled it but while i am coding it in MATLAB the results are showing NaN, Why is it so
8 views (last 30 days)
Show older comments
%Link Numbers
Link_Num_1=Link_i.ItemByKey(5);
Link_Num_2=Link_i.ItemByKey(7);
Link_Num_3=Link_i.ItemByKey(13);
Link_Num_4=Link_i.ItemByKey(23);
simulation_duration = 7200; % Total simulation time in seconds
interval = 1; % Collect queue length every 120 seconds
num_intervals = simulation_duration / interval; % Number of 120-second intervals (60)
% Initialize matrix for queue lengths (60 rows)
queue_lengths = zeros(num_intervals, 1);
% Get queue counter
queue_counters_1 = Link_Num_1.QueueCounters.GetAll;
qc1 = queue_counters_1{1}; % First queue counter
% Display queue counter info
disp(['Number of queue counters: ', num2str(length(queue_counters_1))]);
disp(['Queue Counter Object: ', class(qc1)]);
disp(['Queue Counter Name: ', qc1.get('AttValue', 'Name')]);
% Run simulation and collect queue length every 120 seconds
interval_idx = 0; % Counter for interval index
for t = 1:interval:simulation_duration
% Run simulation for 120 seconds
for step = 1:interval
sim.RunSingleStep;
end
% Increment interval index
interval_idx = interval_idx + 1;
% Get queue length
queue_length = qc1.get('AttValue', 'QLen(Current, Last)');
if isnan(queue_length)
queue_length = 0; % Replace NaN with 0
end
queue_lengths(interval_idx, 1) = queue_length;
% Display queue length for this interval
disp(['Time ', num2str(t), 's: Queue Length = ', num2str(queue_length)]);
end
disp('Queue Length collection complete.');
0 Comments
Answers (1)
Kautuk Raj
on 5 Jun 2025
I suspect you are getting NaN because the queue counter might not be properly set up or accessed. Could you try these quick fixes?
I hope one of the above troubleshooting steps will help resolve the issue.
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!