Code covered by the BSD License  

Highlights from
CTMSIM - an interactive freeway traffic macrosimulator

image thumbnail
from CTMSIM - an interactive freeway traffic macrosimulator by Alex Kurzhanskiy
Freeway traffic simulation based on Asymmetric Cell Transmission Model

compute_vmt(densities, speeds, celldata, ts)
function vmt = compute_vmt(densities, speeds, celldata, ts)
% COMPUTE_VMT - computes and returns Vehicle Miles Traveled (VMT) based on densities
%               and fundamental diagrams.
%
% Call:   vmt = compute_vmt(densities, speeds, celldata, ts)
%
% Parameters:
%             densities - vector of densities;
%             speeds    - vector of speeds, same size as 'densities';
%             celldata  - array of freeway cell structures, whose length
%                         must be the same as size of 'densities';
%             ts        - sampling period.
%
% Returns:   vmt - vector of VMT values.
%
% Last modified:   10/14/2006.

%
% Alex Kurzhanskiy   <akurzhan@eecs.berkeley.edu>
%

L = size(densities, 1);
M = size(speeds, 1);
N = size(celldata, 2);

if L ~= N
  error('COMPUTE_VMT: number of densities does not match number of cells.');
end

if M ~= N
  error('COMPUTE_VMT: number of speeds does not match number of cells.');
end

vmt = [];

for i = 1:N
  l   = abs(celldata(i).PMend - celldata(i).PMstart);  % i-th cell length
  n   = densities(i, 1) * l;  % number of vehicles in i-th cell

  vmt = [vmt; (n * ts * speeds(i, 1))];
end

return;

Contact us at files@mathworks.com