Назад
Процедура ZADERZKA
k:=1÷n
Z
jkhx
:= Z
jkhx
+ n
0jkhx
m:=1÷round(n
0jkhx
)
Z
jkhx
:= (2*Z
jkhx
–(1+round(n
0jkhx
))*round(n
0jkhx
))/(2*λ
jkhx
)
Z
jhx
:= Z
jhx
+ Z
jkhx
;
Z
1TEjhx
:= Z
/n
0j
; Z
hx
:= Z
hx
+ Z
jhx
j:=1÷4
j:=1÷4
k:=1÷n
n
0j
:=n
0j
+ n
0jkhx
; n
0h
:=n
0h
+ n
0jkhx
да
j mod 2
<>0
нет
n
0jkhx
:=(tr+T
0
+β*(С-T
0
))/(1-q)*λ
jkhx
n
0jkhx
:=(tr+T
0
+α*(С-T
0
))/(1-r)*λ
jkhx
начало
Ввод λ
jkhx,
h, x
C, T
0
, t
зел
, t
кр
(1)
(2)
(3)
Конец
Вывод
λ
maxhx
, Z
hx
(4)
(5)
(6)
(7)
j:=1÷4
k:=1÷n
да
j mod 2 <>0
нет
λ
maxjkhx
:=(t
зел
-t
r
)/Cτ
jkhx
;
λ
maxjhx
:=(t
зел
-t
r
)/Cτ
j
λ
maxjkhx
:=(t
кр
-t
r
)/Cτ
jkhx
λ
maxjhx
:=(t
кр
-t
r
)/Cτ
j
λ
maxhx
:= λ
maxhx
maxjhx
(8)
(9)
981
Процедура VIBROS
начало
Ввод H, l, R
L, x
(1)
(2)
(3)
Конец
Вывод
Э
кол
(4)
(5)
(6)
(7)
h:=1÷H
m
п
jh
:= m
п
jh
+n
0jh
* (2/3* λ
jhx
*3,3+ 2/3* λ
jhx
*0,42+ 1/3* λ
jhx
*14,5+ 1/3*
λ
jhx
*2,2)+ Z
1TEjh
*(2/3* λ
jhx
*286+ 2/3* λ
jhx
*37+ 1/3* λ
jhx
*697+ 1/3* λ
jhx
*107)
j:=1÷4
h
:=1÷
R
m
пр
jh
:= m
пр
jh
+ (2/3*λ
jhx
*21+ 2/3*λ
jhx
*2,7+ 1/3*λ
jhx
*51,4+ 1/3*λ
jhx
*7,9
j:=1÷2
m
пр
jh
:=L* m
пр
jh
Э
кол
:=m
пр
jh
+ m
п
jh
(8)
982
начало
Ввод
Δl, Э
конп
, β, h, x
(1)
(2)
k:=1÷K
j:=1÷4
С
км
:= С
км
+ Э
конп
* β /
l
jkhx
*365)
Вывод
С
км
Конец
(3)
(4)
(5)
Процедура ECONOM
α:=q/(q+r); β:=r/(q+r);
q+r<>1
да нет
C:=(2*tr+T
0
)/(1-q-r)
ошибка
конец
t
зел
:=α*(С-T
0
);
t
кр
:=β*(С-T
0
);
начало
Ввод
q, r, tr,T
0
(1)
(2)
Процедура СIKL
Вывод
C, t
зел
, t
кр
, α, β
Конец
(6)
(7)
(3)
(4)
(5)
983
Основной алгоритм
Ввод l
sjx
j:=1÷4
i:=1÷4
h:=1÷H
k:=1÷K
x:=1÷X
Начало
Ввод
X, K, H, tr
l
s
:= l
s
+ l
sjx
Ввод
V
сфx
, V
сДОx
,
V
cУДСx
:= V
сфx
/V
сДОx
Ввод
i
оjkhx
,
i
сjkhx
,
i
пjkhx
,
i
jkhx
, τ
i
jkhx
, T
i
jkhx
jhx
:=
jhx
+
i
jkhx
Ввод μ
пjhx
, μ
лjhx
Ввод Э
КОНПх
,
Δl
x
, l
эфх
, l
УДСх
j:=1÷4
x:=1÷X
L
УДСx
:= l
sx
/l
s
Θ
УДСх
:= l
эфх
/l
УДСх
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
984
h:=1÷H
x:=1÷X
KONFLIKT(h,x)
K
TOhx
:=Kp
K
TOx
:= K
TOx
+K
TOhx
/H
ZADERZKA(h,x)
Z
x
:= Z
x
+Z
hx
; Z:= Z +Z
x
λ
maxx
:= λ
maxx
maxhx
λ
max
:= λ
max
maxx
PROMTAKT(h,x)
DINAM(h,x)
CIKL(h,x)
EKONOM(h,x)
Э
конhx
:=C
км
Э
конx
:= Э
конx
конhx
Э
кон
:= Э
кон
конx
VIBROS(x)
Э
колx
:= Э
кол
Э:= Э +Э
колx
x:=1÷X
K
TOУДСx
:= K
TOx
/K
TO
Z
УДСх
:= Z
x
/ Z
N
УДСx
:= λ
maxx
max
Э
конУДСx
:= Э
конx
кон
Э
колУДСx
:= Э
колx
кол
Вывод
K
TOУДСx
Z
УДСx
L
УДСx
Э
колУДСx
Э
конУДСx
V
cУДСx
N
УДСx
Θ
УДСх
КОНЕЦ
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
K
TO
:= K
TO
+K
TOx
985
11.10.2. Комментарий к блок–схеме алгоритма расчета комплекс-
ного критерия оценки качества О и УДД на сети улиц и дорог
Данный алгоритм позволяет рассмотреть Х вариантов организации
дорожного движения на сети улиц и дорог и выбрать оптимальный из них с
помощью комплексного критерия оценки качества О и УДД на сети улиц и
дорог. Каждый из Х вариантов характеризуется своим набором исходных
данных: l
эфх
, l
УДСх
, l
sjx
, Э
КОНПх
, Δl
x
, μ
пjhx
, μ
лjhx
, V
сфx
, V
сДОx
вводятся средние ско-
рости на изучаемом УДС,
i
оjkhx
,
i
сjkhx
,
i
пjkhx
,
i
jkhx
, τ
i
jkhx
, T
i
jkhx
. Количество пе-
рекрестков и рядов на них вводиться один раз максимально возможное (не-
обходимое) количество перекрестков и максимальное количество полос (ог-
раничено 6). Для любого из х вариантов в расчете можно принять меньшее
количество перекрестков, данные по лишним просто вводить как нулевые,
и для любого перекрестка можно использовать меньшее количество полос
так же обнуляя неиспользуемые переменные.
Расчет каждого составляющего из комплексного критерия оценки ка-
чества О и УДД на сети улиц и дорог выполняется при помощи отдельного
вспомогательного алгоритма, вызываются которые из основного.
Для Х вариантов выводятся все составляющие комплексного крите-
рия оценки качества О и УДД на сети улиц и дорог. Рекомендуем построить
графики каждого из них в зависимости от варианта х, и графическим спосо-
бом оценить наиболее оптимальный из Х способов управления дорожным
движением.
Опишем строение и работу вспомогательных алгоритмов:
Алгоритм KONFLIKT:
Этот алгоритм позволяет по введенным исходным данным: количест-
ву рядов К, номеру перекрестка h и варианта x, характеристикам движения на
перекрестке λ
i
jkhx
,
i
оjkhx
,
i
сjkhx
,
i
пjkhx
. по формулам главы 5 рассчитать коэф-
фициент транспортной опасности на h перекрестке.
Данный алгоритм использует вспомогательные:
Функция MIN:
986
Определяет в минимальное из двух чисел а и b.
(1) - Начало подпрограммы;
(2) - Ввод исходных данных: а и b – любые числа;
(3) - Определяется минимальное из двух чисел и его значение при-
сваивается переменной MIN;
(4) - Конец подпрограммы.
Функция SUM:
Определяет значение выражения (1- e
-0.3*a
)*a для введенного действи-
тельного числа а;.
(1) - Начало подпрограммы;
(2) - Ввод числа а;
(3) - Подсчет значение выражения и присваивание его переменной
SUM;
(4) - Конец подпрограммы.
Опишем строение алгоритма KONFLIKT по блокам.
(1) - Начало программы;
(2) - Подключение функции MIN;
(3) - Подключение функции SUM;
(4) - Ввод исходных данных n, номера перекрестка h и варианта х;
(5) - Исходя из количества рядов n ввод трехмерных массивов λ
i
jkhx
,
i
оjkhx
,
i
сjkhx
,
i
пjkhx
;
(6) - Ввод одномерных массивов μ
пj
, μ
лj
;
(7) - Обнуление значений переменных Ah, Bh, Cph, Cpph – уровни
конфликтности на перекрестке при отклонениях, слияниях, пересечениях
транспортными потоками транспортных потоков, пересечениях транспорт-
ными потоками пешеходных потоков соответственно, Kp – коэффициент
конфликтной загрузки на перекрестке;
(8) - Обнуление значений переменных A[j], B[j], Cp[j], Cpp[j], K[j] –
уровни конфликтности на j –ом направлении;
987
(9) - Узловая точка выбора: в зависимости от значения n выбирается
один из следующих подпунктов;
(10) - В этом блоке подсчитывается значение искомых переменных в
случае одного ряда;
(11) - Начало цикла по j направлениям;
(12) - Подсчет значения A[j] и Ah: в переменных m1 и m2 накаплива-
ются суммы интенсивностей λ
i
j1
, соответствующих маневру отклонения, при
помощи функции MIN определяется минимальное из λ
o
i
j1
и переменных m,
при помощи функции SUM подсчитывается значение :=(1- e
-0.5*a
)*a от мини-
мального числа; Накоплением SUM(min) определяется A[j], суммированием
A[j] определяется Ah;
(13) - Подсчет значения В[j] и Вh: в переменных m1 и m2 накаплива-
ются суммы интенсивностей λ
i
j1
, соответствующих маневру слияния, при по-
мощи функции MIN определяется минимальное из λ
с
i
j1
и переменных m, при
помощи функции SUM подсчитывается значение :=(1- e
-0.3*a
)*a от минималь-
ного числа; Накоплением SUM(min) определяется В[j], суммированием В[j]
определяется Вh;
(14) - Подсчет значения Сp[j] и Cph: в переменной m1 накапливается
суммы интенсивностей λ
i
j1
, соответствующих маневру пересечения, при по-
мощи функции MIN определяется минимальное из λ
п
i
j1
и переменной m1, при
помощи функции SUM подсчитывается значение :=(1- e
-0.3*a
)*a от минималь-
ного числа; Накоплением SUM(min) определяется Cp[j], суммированием
Cp[j] определяется Cph;
(15) - Подсчет значения Сpp[j] и Cpph: в переменной m1 накапливает-
ся суммы интенсивностей μ
л j
п j
, соответствующих маневру пересечения с
пешеходными потоками, при помощи функции MIN определяется минималь-
ное из λ
п
i
j1
и переменной m1, при помощи функции SUM подсчитывается зна-
чение :=(1- e
-0.3*a
)*a от минимального числа; Накоплением SUM(min) опреде-
ляется Cpp[j], суммированием Cpp[j] определяется Cpph;
988
(16) - Завершение цикла по j – направлениям и переход к пункту 38,
минуя все стоящие между ними;
(17) - В этом блоке подсчитывается значение искомых переменных в
случае двух ряда;
(18) - Начало цикла по j направлениям;
(19) - Подсчет значения A[j] и Ah: в переменных m1 и m2 накаплива-
ются суммы интенсивностей λ
i
jkhx
, соответствующих маневру отклонения,
при помощи функции MIN определяется минимальное из λ
o
i
jkhx
и переменных
m, при помощи функции SUM подсчитывается значение :=(1- e
-0.3*a
)*a от ми-
нимального числа; Накоплением SUM(min) определяется A[j], суммировани-
ем A[j] определяется Ah;
(20) - Подсчет значения В[j] и Вh: в переменных m1 и m2 накаплива-
ются суммы интенсивностей λ
i
jkhx
, соответствующих маневру слияния, при
помощи функции MIN определяется минимальное из λ
с
i
jkhx
и переменных m,
при помощи функции SUM подсчитывается значение :=(1- e
-0.3*a
)*a от мини-
мального числа; Накоплением SUM(min) определяется В[j], суммированием
В[j] определяется Вh;
(21) - Подсчет значения Сp[j] и Cph: в переменной m1 накапливается
суммы интенсивностей λ
i
jkhx
, соответствующих маневру пересечения, при
помощи функции MIN определяется минимальное из λ
п
i
jkhx
и переменной m1,
при помощи функции SUM подсчитывается значение :=(1- e
-0.3*a
)*a от мини-
мального числа; Накоплением SUM(min) определяется Cp[j], суммированием
Cp[j] определяется Cph;
(22) - Подсчет значения Сpp[j] и Cpph: в переменной m1 накапливает-
ся суммы интенсивностей μ
л j
п j
, соответствующих маневру пересечения с
пешеходными потоками, при помощи функции MIN определяется минималь-
ное из λ
п
i
jkhx
и переменной m1, при помощи функции SUM подсчитывается
значение :=(1- e
-0.3*a
)*a от минимального числа; Накоплением SUM(min) оп-
ределяется Cpp[j], суммированием Cpp[j] определяется Cpph;
989
(23) - Завершение цикла по j – направлениям и переход к пункту 38,
минуя все стоящие между ними;
(24) - В этом блоке подсчитывается значение искомых переменных в
случае трех ряда;
(25) - Начало цикла по j направлениям;
(26) - Подсчет значения A[j] и Ah: в переменных m1 и m2 накаплива-
ются суммы интенсивностей λ
i
jkhx
, соответствующих маневру отклонения,
при помощи функции MIN определяется минимальное из λ
o
i
jkhx
и переменных
m, при помощи функции SUM подсчитывается значение :=(1- e
-0.3*a
)*a от ми-
нимального числа; Накоплением SUM(min) определяется A[j], суммировани-
ем A[j] определяется Ah;
(27) - Подсчет значения В[j] и Вh: в переменных m1 и m2 накаплива-
ются суммы интенсивностей λ
i
jkhx
, соответствующих маневру слияния, при
помощи функции MIN определяется минимальное из λ
с
i
jkhx
и переменных m,
при помощи функции SUM подсчитывается значение :=(1- e
-0.3*a
)*a от мини-
мального числа; Накоплением SUM(min) определяется В[j], суммированием
В[j] определяется Вh;
(28) - Подсчет значения Сp[j] и Cph: в переменной m1 накапливается
суммы интенсивностей λ
i
jkhx
, соответствующих маневру пересечения, при
помощи функции MIN определяется минимальное из λ
п
i
jkhx
и переменной m1,
при помощи функции SUM подсчитывается значение :=(1- e
-0.3*a
)*a от мини-
мального числа; Накоплением SUM(min) определяется Cp[j], суммированием
Cp[j] определяется Cph;
(29) - Подсчет значения Сpp[j] и Cpph: в переменной m1 накапливает-
ся суммы интенсивностей μ
л j
п j
, соответствующих маневру пересечения с
пешеходными потоками, при помощи функции MIN определяется минималь-
ное из λ
п
i
jkhx
и переменной m1, при помощи функции SUM подсчитывается
значение :=(1- e
-0.3*a
)*a от минимального числа; Накоплением SUM(min) оп-
ределяется Cpp[j], суммированием Cpp[j] определяется Cpph;
990