% ====================================================================== % simple model of traffic - time to work % Compares time to work for two routes and two sets of traffic conditions % % Model Parameter Definitions Description % Time to traverse block on local street Distance / avg. speed % Stop sign average stop time 30 second delay % Time to traverse highway section Distance / avg. speed % Traffic light stopping time Probability of green x avg. red % Left turn on major road (Total cars turning/cars per green arrow) x light cycle % % ====================================================================== function [fnormal, fcongest, flocal] = traffic1b(city_block, local_speed, major_speed, normal_freeway, ... congest_freeway, red_prob, Avg_redlight, left_on_green, left_green_arrow, cars_left_peak, cars_left_off_peak) % Set parameters for different traffic conditions % city_block = 1000; % average city block length (feet) % local_speed = 25; % average speed for local streets (mph) % major_speed = 35; % average speed for a major street (mph) % normal_freeway = 55; % average freeway speed in normal conditions (mph) % congest_freeway = 20; % average freeway speed during congestion (mph) % red_prob = .05; % Probability of red light at major intersection % Avg_redlight = 2; % average time for light to be red % left_on_green = 6; % number of cars per green arrow on left turn % left_green_arrow = 4; %left turn light cycle time % cars_left_peak = 12; % number of cars turning left at peak hours % cars_left_off_peak = 4; % off peak left turners % Set up routes % Store each leg of the route in a matrix - start with zeros freeway_normal = zeros(9,1); freeway_congest = zeros(9,1); local = zeros(10,1); % Fill in freeway_normal freeway_normal(1)= ((2*city_block)/5280)/local_speed*60; freeway_normal(2)= 0.5; freeway_normal(3)= ((2*city_block)/5280)/local_speed*60; freeway_normal(4)= (2.5/normal_freeway)*60; %2.5 miles on freeway freeway_normal(5)= ((cars_left_peak/left_on_green)-1)*left_green_arrow; %left on major road freeway_normal(6)= ((1*city_block)/5280)/local_speed*60; freeway_normal(7)= red_prob*Avg_redlight; freeway_normal(8)=((2*city_block)/5280)/local_speed*60; freeway_normal(9)= 0; % Fill in freeway_congested freeway_congest(1)= ((2*city_block)/5280)/local_speed*60; freeway_congest(2)= 0.5; freeway_congest(3)= ((2*city_block)/5280)/local_speed*60; freeway_congest(4)= (2.5/congest_freeway)*60; %2.5 miles on freeway freeway_congest(5)= ((cars_left_peak/left_on_green)-1)*left_green_arrow; %left on major road freeway_congest(6)= ((1*city_block)/5280)/local_speed*60; freeway_congest(7)= red_prob*Avg_redlight; freeway_congest(8)=((2*city_block)/5280)/local_speed*60; freeway_congest(9)= 0; % Fill in local route local(1) = ((2*city_block)/5280)/local_speed*60; local(2) = 0.5; local(3) = ((2*city_block)/5280)/local_speed*60; local(4) = (1.75/major_speed)*60; % 1.75 miles on major street local(5) = 5*red_prob*Avg_redlight; % 5 traffic lights local(6) = ((cars_left_peak/left_on_green)-1)*left_green_arrow; %left on major road local(7) = ((1*city_block)/5280)/local_speed*60; local(8) = red_prob*Avg_redlight; local(9) = ((2*city_block)/5280)/local_speed*60; fnormal = sum(freeway_normal); fcongest = sum(freeway_congest); flocal = sum(local); % Now write the output to the screen fprintf('\n Freeway_Reg Freeway-Congest Local '); fprintf('\n %8.2f %15.2f %15.2f', fnormal, fcongest, flocal); fprintf('\n')