книги / Техническое нормирование макрошероховатости дорожных покрытий автомобильных и лесовозных дорог
..pdfПоусловиюнекоррелированностипоследовательности {ξn } получаем
|
2 |
, |
τ = 0, |
(3.11) |
Kξ (τ) = Gξ |
||||
|
0, |
|
τ > 0. |
|
При выделении систематической составляющей, т.е. при определении «шума» (случайные помехи), применяются методы линейной фильтрации.
Для рассматриваемого условия решение задачи фильтрации заклю-
чается в поиске линейной функции по известному значению печивающей лучшее приближение к искомой величине:
n
υn = bk xn0− k . k =0
xn0 , обес-
(3.12)
Величина коэффициентов bk , обеспечивающих наилучшее приближение к минимуму средних квадратов отклонения υn от υn , определяется из системы линейных уравнений [172]
N
Kυ (τ) + Kξυ (τ) = bk Kx (τ − k ), τ = 0, 1, 2,...
k =0
Здесь Kυ (τ) и Kξυ (τ), как показано в [172], определяется следующим образом:
l |
|
|
|
Kυ (τ) = Gξ2 α jα j+ τ |
, |
(3.13) |
|
j=0 |
|
||
2 |
|
|
|
Kξυ (τ) = Gξ aτ |
|
|
|
гдекоэффициенты α j будутрешениемследующей нелинейнойсистемы:
Kx (0) = Gξ2 |
|
l |
+ 2α0 |
|
, |
τ = 0 |
|
|
|
α2J |
+ 1 |
|
|||||
|
j=0 |
|
|
|
|
|
(3.14) |
|
|
|
l |
|
|
|
|
. |
|
2 |
|
, |
τ = 1 , 2,.. |
|
|
|||
Kx (τ) = Gξ |
|
α jα j+τ + ατ |
|
|
||||
|
|
j=0 |
|
|
|
|
|
|
В формулах (3.12) и (3.14) оперируют точными значениями корреляционных функций Kx (τ), Kυ (τ), Kξυ (τ). Следовательно, величи-
141
ны выборочных функций корреляции Kx (τ), Kυ (τ), Kξυ (τ) необхо-
димо сглаживать.
Это без значимых потерь в точности сглаживания функций можно делать в виде экспоненты:
Kx (τ) = Gx2e− θxτ ,
где θx – коэффициент кривой аппроксимации.
Для нахождения решения системы (3.14) нужно знать значения дисперсии некоррелированных составляющих Gξ2 . Оценка значения
Gξ2 осуществляется спектральным методом.
Выборочная корреляционная функцияKx (τ) вычисляется по формуле
|
1 |
N −τ |
|
Kx (τ) = |
x0j x0j−τ ; τ = 0, 1, 2,..., m. |
||
N − τ |
|||
|
j=1 |
Введем нормированную корреляционную функцию ρx (τ) =
Подставив значения Kx (τ) из (3.14), получим |
|
|
|
|
|||||||
|
|
|
|
α jα j−1 − |
ατ α2j |
|
|
|
|
||
|
|
|
|
l |
|
|
l |
|
|
|
|
ρx (τ) = |
ατ |
+ |
j=0 |
α0 |
+ 1 |
j=0 |
= |
ατ |
|
+ . |
|
α0 |
+ 1 |
l |
2 |
|
|
α0 −1 |
|||||
|
|
|
|
|
|
|
|||||
|
|
|
|
α j |
|
|
|
|
|
|
j=0
Kx((τ) ) .
Kx 0
(3.15)
Свойства α для реального процесса таковы, что значение |
не |
||
больше 4 % от значения ρx (τ) . Поэтому запишем |
|
||
ατ = (α0 + 1)ρx (τ). |
(3.16) |
||
Величина определяется следующим образом: |
|
||
1 |
|
(3.17) |
|
α0 = |
|
. |
|
l |
|||
|
ρx (τ)(−1)τ |
|
|
τ=0
142
Следует отметить, что коэффициенты α j обладают следующими свойствами: α0 + 1 > α1 > α2 > ... > α j ; 0 < α j < 1. Это означает, что влияние погрешности ξn на υn , υn=1,..., υn+l сильно снижается от одного цикла к другому. Поэтому можно ограничиться небольшим значением величины l (l = 3 6).
Рис. 3.1. Пример построения средней линии макрошероховатости
Замер параметров макрошероховатости дорожного покрытия производится в различных точках дорожной поверхности (в поперечном и продольном направлениях). Разноглубинность впадин и разновысот-
143
ность выступов, а также разнодлинность расстояний между щебенками оценивается через среднеквадратическое отклонение или дисперсию.
Определение статистических инвариантов реализовано в прикладной программе «Шероховатость-2015».
Наиболее сложным является решение для задачи определения геометрии периодических составляющих для регулярных рельефов.
Анализ различных фотографий и построенных диаграмм геометрии макрошероховатостых дорожных покрытий показывает присутствие этих периодических криволинейных составляющих, которые имеют разную ориентацию, различные масштабы, амплитуды периодов, длины и структуру.
Пример математического построения средней линии (прямой и аппроксимирующим полиномом) на графике шероховатой поверхности приведен на рис. 3.1.
3.1.2.Построение вероятностно-статистической модели геометрии макрошероховатости поверхности
автомобильных дорог
Получение информации и макрошероховатости на практике затрудняется наличием в результатах измерения, полученных с передвижных дорожных лабораторий, составляющих о геометрии поверхности дорожногопокрытия, вчастностиуклонаи коротковолновыхсоставляющих.
Поэтому задача выделения составляющей о макрошероховатости дорожногопокрытияизрезультатовизмерениястала весьмаактуальной.
Построение математической модели результатов измерения с передвижных дорожных диагностических лабораторий как последовательности отклонений дорожного покрытия от требуемого уровня включает следующие этапы.
1.Формирование отклонений в виде ряда. Визуализация диаграмм.
2.Выделение линейной составляющей ln на основе метода наи-
меньших квадратов. Определение корреляционной функции отклонения от ln :
K (τ) = 1 |
N − τ |
x0 x0 , x0 = x − l = x − a − bn. |
N− τ n=1
3.Проверка непротиворечия закона распределения xn0 нормаль-n nnn n+ τx n
ному закону (критерий Пирсона).
144
4.Вычисление оценок дисперсии некоррелированной составляющей и спектральной плотности.
5.Расчет коэффициентов α j . Получение аппроксимаций корреля-
ционных функций Kx (τ), Kυ (τ), Kξυ (τ) . 6. Определение коэффициентов bj .
В итоге выполнения процедуры рассчитывают все параметры модели длявсехвозможныхотклоненийместзамеровдорожногопокрытия:
xn = ln + ξn + υn , |
(3.18) |
где ξn – случайная составляющая (нормальная случайная величина
с математическим ожиданием равным нулю), ln = a + bn |
– линейный |
тренд. |
|
M {ξn} = 0. |
(3.19) |
Автором в соавторстве создан программный модуль для формирования оценок модели выделения макрошероховатости.
Программный модуль работает следующим образом. Построение плана автомобильной дороги по данным с гироскопа.
AddLeft(x, n) := return x if n 0
otherwise
for i 0.. n − 1 Gi ← x0
return stack(G , x)
Функция дополняет ряд x слева n значениями, равными 1-му числу ряда.
AddRightx(, n) := return x if n 0
otherwise
for i 0 .. n − 1
Gi ← xlast(x)
return stack(x, G)
Функция дополняет ряд x справа n значениями, равными последнему числу в ряду.
145
RunningMedianx(, n) := |
|
m ← n − 1 |
|
||
|
|
2 |
|
||
|
|
X ← AddLeft(x, m) |
|||
|
|
X ← AddRight(X, m) |
|||
|
|
R ← medsmooth(X, n) |
|||
|
|
submatrixR(, m, last(R) − m, 0 , 0) |
|||
Функция вычисляет робастную оценку тренда с помощью сколь- |
|||||
зящей медианы: |
|
|
|
|
|
x – ряд исходных данных, |
|
||||
n – ширина окна сглаживания. |
|
||||
GetNValues(x, n, i) := |
m ← n − 1 |
|
|||
|
2 |
|
|||
|
lx← last(x) |
|
|||
|
for j 0 .. n − 1 |
|
|||
|
|
|
idx← j − m + i |
||
|
|
|
|||
|
|
|
rvj ← x0 if idx < 0 |
||
|
|
|
otherwise |
|
|
|
|
|
|
rvj ← xlx |
if idx > lx |
|
|
|
|
||
|
|
|
|
rvj ← xidx |
otherwise |
rv
Функция выбирает из ряда x n значений в окрестности точки i, начиная с i-(n-1)/2 и заканчивая i+(n-1)/2:
Med5(x, i) := data ← GetNValues(x, 5 , i)
median(data)
Функция вычисляет медиану для точки i по 5 значениям:
Med3(x, i) := data ← GetNValues(x, 3 , i)
median(data)
Функция вычисляет медиану для точки i по 3 значениям: FHenningx(, i) := data ← GetNValues(x, 3 , i)
0.25 data0 + 0.5 data1 + 0.25 data2
146
Функция реализует фильтр Хеннинга для точки i по 3 значениям:
GetMedian5V(x) := for i 0 .. last(x) ri ← Med5(x, i)
r
Функция реализует сглаживание ряда x медианами по 5 точкам: GetMedian3V(x) := for i 0 .. last(x)
ri ← Med3(x, i)
r
Функция реализует сглаживание ряда x медианами по 3 точкам:
GetHenningx( ) := for i 0 .. last(x)
ri ← FHenning(x, i)
r
Функция реализует сглаживание ряда x фильтром Хеннинга: Tukie53X(x) := m5 ← GetMedian5V(x)
m53 ← GetMedian3V(m5)
GetHenningm53( )
Функция реализует для ряда x процедуру «Тьюки 53Х»:
ZCount(x) := for i 0 .. last(x) |
||
|
yi ← 0 |
if xi < 0 |
|
||
|
yi ← 1 |
otherwise |
last(x)
yi − yi−1
i = 1
Функция подсчитывает количество пересечений нуля рядом x:
GetESq(idx, ex) := e ← if(idx < 0 , ex0 , exidx)
e2
Функция возвращает значение с индексом:
idx из ряда ex, учитывая начальное условие: при idx<0 считаем idx=0
147
EDIT(x, ex, M , k , m) := flag← 1 |
|
|
|
|
|
|
|
|
while flag |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
||||
flag← 0 |
|
|
|
|||||
|
|
|
|
|
|
|
|
m−1 |
sg0 ← |
1 |
|
|
|
(exi)2 |
|||
|
m − 1 |
|||||||
|
|
|
|
|
|
|
|
i = 0 |
for i 1 .. m − 1 |
||||||||
sgi ← sg0 |
|
|
|
|||||
for i m.. last(x) |
||||||||
if |
|
exi |
|
|
≥ k sgi−1 |
|||
|
|
|||||||
|
|
flag← 1 |
||||||
|
|
if i |
|
|
last(x) |
|||
|
|
|
||||||
|
|
|
xi ← xi−1 exi ← exi−1
otherwise
x← xi−1 + xi+ 1
i2
|
exi ← |
exi−1 + exi+ 1 |
||
|
2 |
|
||
|
|
|
|
|
sg |
← sg |
+ GetESq(i, ex) − GetESq(i − M , ex) |
||
i |
i−1 |
|
|
M − 1 |
|
|
|
|
for i 0 .. last(x) ri, 0 ← xi
ri, 1 ← exi
ri, 2 ← k sgi
r
Функция реализует операции поиска и редактирования аномальных данных.
x – ряд исходных данных;
ex – остатки, полученные после сглаживания исходного ряда робастным медианным фильтром;
M – количество значений для оценивания текущего значения выборочной дисперсии;
148
k – параметр для установки границ;
m – количество точек, входящих в начальную зону, для которой не производится проверка на аномальность.
Результат, возвращаемый функцией, – матрица, в первом столбце которой содержатся скорректированные значения ряда x, во втором – остатки после корректировки ряда x, в третьем – произведение среднего квадрата отклонения на k:
SlideMean(x, n) := y ← x
HW ← n − 1 |
|
||
|
2 |
|
|
for |
i HW .. last(x) − HW |
||
|
n |
HW |
|
y |
|
x |
|
← 1 |
|
||
i |
|
|
i+ k |
k = − HW
y
Сглаживание данных простым скользящим средним. Параметры:
x – вектор данных;
n – число точек сглаживания (нечетное значение).
MultiSlideMean(x,n,rep):=(x, n, rep) := res ← x
for k 1.. rep
res←SlideMean((res,n), n)
res
Сглаживание данных кратным скользящим средним. Параметры:
x – вектор данных, n – число точексглаживания(нечетное значение); rep – количество репликаций простого среднего.
ExtendData(x, n) := lx← last(x)
for i 0 .. n − 1 fvi ← xn−i
bvi ← xlx−i−1
stack(fv, x, bv)
149
Расширение ряда путем симметричного дополнения значений в начало и в конец.
Параметры:
x – вектор данных, n – количество добавляемых в начало и в конец точек.
SmoothData(x,(x, n,rep):=):= H__WIN←truncn((n·0.5)
EData←ExtendData(x,H_WIN) |
|
ESmData← MultiSlideMeanEDataMultiSlideMean(EData,n,r)( n, r) |
|
submatrix(ESmData,H_WIN,length(ESmData) – H_WIN – 1,0,0 |
|
submatrix(ESmDataH, _WIN, lengthESmData( |
) − H_WIN− 1, 0, 0) |
FindZone(x,M,L,dd):= for k 1.. M − 1 |
|
fvk−1 ← x0 |
|
Ex← stack(fv, x) |
|
SEx← SlideMean(Ex,M) |
|
Rx← submatrix(Sex, M–1, last (SEx),0,0) for i 0.. L − 1
Fi ← 0
Di ← 0
for i L.. last(x) Di ← xi − Rxi−L
Fi ← sign(Di) if Di ≥ dd Fi ← 0 otherwise
augment (Rx,D,F)
Поиск участков в плане. Параметры:
x – вектор данных;
M – число точек для опорного сглаживания;
L – удаленность проверяемой точки в числе интервалов между значениями;
dd – максимально допустимое отклонение контрольной точки. Выходные данные:
Матрица, где в столбцах 1 – значения, полученные при опорном сглаживании;
150