Линейный фильтр калмана. Современные проблемы науки и образования. Построение математической модели

В интернете, в том числе и на хабре, можно найти много информации про фильтр Калмана. Но тяжело найти легкоперевариваемый вывод самих формул. Без вывода вся эта наука воспринимается как некое шаманство, формулы выглядят как безликий набор символов, а главное, многие простые утверждения, лежащие на поверхности теории, оказываются за пределами понимания. Целью этой статьи будет рассказать об этом фильтре на как можно более доступном языке.
Фильтр Калмана - это мощнейший инструмент фильтрации данных. Основной его принцип состоит в том, что при фильтрации используется информация о физике самого явления. Скажем, если вы фильтруете данные со спидометра машины, то инерционность машины дает вам право воспринимать слишком быстрые скачки скорости как ошибку измерения. Фильтр Калмана интересен тем, что в каком-то смысле, это самый лучший фильтр. Подробнее обсудим ниже, что конкретно означают слова «самый лучший». В конце статьи я покажу, что во многих случаях формулы можно до такой степени упростить, что от них почти ничего и не останется.

Ликбез

Перед знакомством с фильтром Калмана я предлагаю вспомнить некоторые простые определения и факты из теории вероятности.

Случайная величина

Когда говорят, что дана случайная величина , то имеют ввиду, что эта величина, может принимать случайные значения. Разные значения она принимает с разной вероятностью. Когда вы кидаете, скажем, кость, то выпадет дискретное множество значений: . Когда речь идет, например, о скорости блуждающей частички, то, очевидно, приходится иметь дело с непрерывным множеством значений. «Выпавшие» значения случайной величины мы будем обозначать через , но иногда, будем использовать ту же букву, которой обозначаем случайную величину: .
В случае с непрерывным множеством значений случайную величину характеризует плотность вероятности , которая нам диктует, что вероятность того, что случайная величина «выпадет» в маленькой окрестности точки длиной равна . Как мы видим из картинки, эта вероятность равна площади заштрихованного прямоугольника под графиком:

Довольно часто в жизни случайные величины распределены по Гауссу, когда плотность вероятности равна .

Мы видим, что функция имеет форму колокола с центром в точке и с характерной шириной порядка .
Раз мы заговорили о Гауссовом распределении, то грешно будет не упомянуть, откуда оно возникло. Также как и числа и прочно обосновались в математике и встречаются в самых неожиданных местах, так и распределение Гаусса пустило глубокие корни в теорию вероятности. Одно замечательное утверждение, частично объясняющее Гауссово всеприсутствие, состоит в следующем:
Пусть есть случайная величина имеющая произвольное распределение (на самом деле существуют некие ограничения на эту произвольность, но они совершенно не жесткие). Проведем экспериментов и посчитаем сумму «выпавших» значений случайной величины. Сделаем много таких экспериментов. Понятно, что каждый раз мы будем получать разное значение суммы. Иными словами, эта сумма является сама по себе случайной величиной со своим каким-то определенным законом распределения. Оказывается, что при достаточно больших закон распределения этой суммы стремится к распределению Гаусса (к слову, характерная ширина «колокола» растет как ). Более подробно читаем в википедии: центральная предельная теорема . В жизни очень часто встречаются величины, которые складываются из большого количества одинаково распределенных независимых случайных величин, поэтому и распределены по Гауссу.

Среднее значение

Среднее значение случайной величины - это то, что мы получим в пределе, если проведем очень много экспериментов, и посчитаем среднее арифметическое выпавших значений. Среднее значение обозначают по-разному: математики любят обозначать через (математическое ожидание), а заграничные математики через (expectation). Физики же через или . Мы будем обозначать на заграничный лад: .
Например, для Гауссова распределения , среднее значение равно .

Дисперсия

В случае с распределением Гаусса мы совершенно четко видим, что случайная величина предпочитает выпадать в некоторой окрестности своего среднего значения . Как видно из графика, характерный разброс значений порядка . Как же оценить этот разброс значений для произвольной случайной величины, если мы знаем ее распределение. Можно нарисовать график ее плотности вероятности и оценить характерную ширину на глаз. Но мы предпочитаем идти алгебраическим путем. Можно найти среднюю длину отклонения (модуль) от среднего значения: . Эта величина будет хорошей оценкой характерного разброса значений . Но мы с вами очень хорошо знаем, что использовать модули в формулах - одна головная боль, поэтому эту формулу редко используют для оценок характерного разброса.
Более простой способ (простой в смысле расчетов) - найти . Эту величину называют дисперсией, и часто обозначают как . Корень из дисперсии называют среднеквадратичным отклонением. Среднеквадратичное отклонение - хорошая оценка разброса случайной величины.
Например, для распределение Гаусса можно посчитать, что определенная выше дисперсия в точности равна , а значит среднеквадратичное отклонение равно , что очень хорошо согласуется с нашей геометрической интуицией.
На самом деле тут скрыто маленькое мошенничество. Дело в том, что в определении распределения Гаусса под экспонентой стоит выражение . Эта двойка в знаменателе стоит именно для того, чтобы среднеквадратичное отклонение равнялось бы коэффициенту . То есть сама формула распределения Гаусса написана в виде, специально заточенном для того, что мы будем считать ее среднеквадратичное отклонение.

Независимые случайные величины

Случайные величины бывают зависимыми и нет. Представьте, что вы бросаете иголку на плоскость и записываете координаты ее обоих концов. Эти две координаты зависимы, они связаны условием, что расстояние между ними всегда равно длине иголки, хотя и являются случайными величинами.
Случайные величины независимы, если результат выпадения первой из них совершенно не зависит от результата выпадения второй из них. Если случайные величины и независимы, то среднее значение их произведения равно произведению их средних значений:

Доказательство

Например, иметь голубые глаза и окончить школу с золотой медалью - независимые случайные величины. Если голубоглазых, скажем а золотых медалистов , то голубоглазых медалистов Этот пример подсказывает нам, что если случайные величины и заданы своими плотностями вероятности и , то независимость этих величин выражается в том, что плотность вероятности (первая величина выпала , а вторая ) находится по формуле:

Из этого сразу же следует, что:

Как вы видите, доказательство проведено для случайных величин, которые имеют непрерывный спектр значений и заданы своей плотностью вероятности. В других случаях идея доказательтсва аналогичная.

Фильтр Калмана

Постановка задачи

Обозначим за величину, которую мы будем измерять, а потом фильтровать. Это может быть координата, скорость, ускорение, влажность, степень вони, температура, давление, и т.д.
Начнем с простого примера, который и приведет нас к формулировке общей задачи. Представьте себе, что у нас есть радиоуправляемая машинка, которая может ехать только вперед и назад. Мы, зная вес машины, форму, покрытие дороги и т.д., расcчитали как контролирующий джойстик влияет на скорость движения .

Тогда координата машины будет изменяться по закону:

В реальной же жизни мы не можем учесть в наших расчетах маленькие возмущения, действующие на машину (ветер, ухабы, камушки на дороге), поэтому настоящая скорость машины, будет отличаться от расчетной. К правой части написанного уравнения добавится случайная величина :

У нас есть установленный на машинке GPS сенсор, который пытается мерить истинную координату машинки, и, конечно же, не может ее померить точно, а мерит с ошибкой , которая является тоже случайной величиной. В итоге с сенсора мы получаем ошибочные данные:

Задача состоит в том, что, зная неверные показания сенсора, найти хорошее приближение для истинной координаты машины .
В формулировке же общей задачи, за координату может отвечать все что угодно (температура, влажность…), а член, отвечающий за контроль системы извне мы обозначим за (в примере c машиной ). Уравнения для координаты и показания сенсора будут выглядеть так:

Давайте подробно обсудим, что нам известно:

Нелишним будет отметить, что задача фильтрации - это не задача сглаживания. Мы не стремимся сглаживать данные с сенсора, мы стремимся получить наиболее близкое значение к реальной координате .

Алгоритм Калмана

Мы будем рассуждать по индукции. Представьте себе, что на -ом шаге мы уже нашли отфильтрованное значение с сенсора , которое хорошо приближает истинную координату системы . Не забываем, что мы знаем уравнение, контролирующее изменение нам неизвестной координаты:

поэтому, еще не получая значение с сенсора, мы можем предположить, что на шаге система эволюционирует согласно этому закону и сенсор покажет что-то близкое к . К сожалению, пока мы не можем сказать ничего более точного. С другой стороны, на шаге у нас на руках будет неточное показание сенсора .
Идея Калмана состоит в следующем. Чтобы получить наилучшее приближение к истинной координате , мы должны выбрать золотую середину между показанием неточного сенсора и нашим предсказанием того, что мы ожидали от него увидеть. Показанию сенсора мы дадим вес а на предсказанное значение останется вес :

Коэффициент называют коэффициентом Калмана. Он зависит от шага итерации, поэтому правильнее было бы писать , но пока, чтобы не загромождать формулы расчетах, мы будем опускать его индекс.
Мы должны выбрать коэффициент Калмана таким, чтобы получившееся оптимальное значение координаты было бы наиболее близко к истинной . К примеру, если мы знаем, что наш сенсор очень точный, то мы будем больше доверять его показанию и дадим значению больше весу ( близко единице). Eсли же сенсор, наоборот, совсем не точный, тогда больше будем ориентироваться на теоретически предсказанное значение .
В общем случае, чтобы найти точное значение коэффициента Калмана , нужно просто минимизировать ошибку:

Используем уравнения (1) (те которые в на голубом фоне в рамочке), чтобы переписать выражение для ошибки:

Доказательство

Теперь самое время обсудить, что означает выражение минимизировать ошибку? Ведь ошибка, как мы видим, сама по себе является случайной величиной и каждый раз принимает разные значения. На самом деле не существует однозначного подхода к определению того, что означает, что ошибка минимальна. Точно также как и в случае с дисперсией случайной величины, когда мы пытались оценить характерную ширину ее разброса, так и тут мы выберем самый простой для расчетов критерий. Мы будем минимизировать среднее значение от квадрата ошибки:

Распишем последнее выражение:

Доказательство

Из того что все случайные величины, входящие в выражение для , независимы, следует, что все «перекрестные» члены равны нулю:

Мы использовали тот факт, что , тогда формула для дисперсии выглядит намного проще: .

Это выражение принимает минимальное значение, когда(приравниваем производную к нулю):

Здесь мы уже пишем выражение для коэффициента Калмана с индексом шага , тем самым мы подчеркиваем, что он зависит от шага итерации.
Подставляем полученное оптимальное значение в выражение для , которую мы минимизировали. Получаем;

Наша задача решена. Мы получили итерационную формулу, для вычисления коэффициента Калмана.
Давайте сведем, наши полученные знания в одну рамочку:

Пример

Код на матлабе

Clear all; N=100 % number of samples a=0.1 % acceleration sigmaPsi=1 sigmaEta=50; k=1:N x=k x(1)=0 z(1)=x(1)+normrnd(0,sigmaEta); for t=1:(N-1) x(t+1)=x(t)+a*t+normrnd(0,sigmaPsi); z(t+1)=x(t+1)+normrnd(0,sigmaEta); end; %kalman filter xOpt(1)=z(1); eOpt(1)=sigmaEta; for t=1:(N-1) eOpt(t+1)=sqrt((sigmaEta^2)*(eOpt(t)^2+sigmaPsi^2)/(sigmaEta^2+eOpt(t)^2+sigmaPsi^2)) K(t+1)=(eOpt(t+1))^2/sigmaEta^2 xOpt(t+1)=(xOpt(t)+a*t)*(1-K(t+1))+K(t+1)*z(t+1) end; plot(k,xOpt,k,z,k,x)

Анализ

Если проследить, как с шагом итерации изменяется коэффициент Калмана , то можно показать, что он всегда стабилизируется к определенному значению . К примеру, когда среднеквадратичные ошибки сенсора и модели относятся друг к другу как десять к одному, то график коэффициента Калмана в зависимости от шага итерации выглядит так:

В следующем примере мы обсудим как это поможет существенно облегчить нашу жизнь.

Второй пример

На практике очень часто бывает, что нам вообще ничего не известно о физической модели того, что мы фильтруем. К примеру, вы захотели отфильтровать показания с вашего любимого акселерометра. Вам же заранее неизвестно по какому закону вы намереваетесь крутить акселерометр. Максимум информации, которую вы можете выцепить - это дисперсия ошибки сенсора . В такой непростой ситуации все незнание модели движения можно загнать в случайную величину :

Но, откровенно говоря, такая система уже совершенно не удовлетворяет тем условиям, которые мы налагали на случайную величину , ведь теперь туда запрятана вся неизвестная нам физика движения, и поэтому мы не можем говорить, что в разные моменты времени ошибки модели независимы друг от друга и что их средние значения равны нулю. В этом случае, по большому счету, теория фильтра Калмана не применима. Но, мы не будем обращать внимания на этот факт, а, тупо применим все махину формул, подобрав коэффициенты и на глаз, так чтобы отфильтрованные данные миленько смотрелась.
Но можно пойти по другому, намного более простому пути. Как мы видели выше, коэффициент Калмана с увеличением всегда стабилизируется к значению . Поэтому вместо того, чтобы подбирать коэффициенты и и находить по сложным формулам коэффициент Калмана , мы можем считать этот коэффициент всегда константой, и подбирать только эту константу. Это допущение почти ничего не испортит. Во-первых, мы уже и так незаконно пользуемся теорией Калмана, а во-вторых коэффициент Калмана быстро стабилизируется к константе. В итоге все очень упростится. Нам вообще никакие формулы из теории Калмана не нужны, нам просто нужно подобрать приемлемое значение и вставить в итерационную формулу:

На следующем графике показаны отфильтрованные двумя разными способами данные с вымышленного сенсора. При условии того, что мы ничего не знаем о физике явления. Первый способ - честный, со всеми формулами из теории Калмана. А второй - упрощенный, без формул.

Как мы видим, методы почти ничем не отличаются. Маленькое отличие наблюдается, только вначале, когда коэффициент Калмана еще не стабилизировался.

Обсуждение

Как мы увидели, основная идея фильтра Калмана состоит в том, чтобы найти такой коэффициент , чтобы отфильтрованное значение

в среднем меньше всего отличалось бы от реального значения координаты . Мы видим, что отфильтрованное значение есть линейная функция от показания сенсора и предыдущего отфильтрованного значения . А предыдущее отфильтрованное значение является, в свою очередь, линейной функцией от показания сенсора и предпредыдущего отфильтрованного значения . И так далее, пока цепь полностью не развернется. То есть отфильтрованное значение зависит от всех предыдущих показаний сенсора линейно:

Поэтому фильтр Калмана называют линейным фильтром.
Можно доказать, что из всех линейных фильтров Калмановский фильтр самый лучший. Самый лучший в том смысле, что средний квадрат ошибки фильтра минимален.

Многомерный случай

Всю теорию фильтра Калмана можно обобщить на многомерный случай. Формулы там выглядят чуть страшнее, но сама идея их вывода такая же, как и в одномерном случае. В этой прекрасной статье вы можете увидеть их: http://habrahabr.ru/post/140274/ .
А в этом замечательном видео разобран пример, как их использовать.

Как то так повелось, что очень нравятся мне всякие алгоритмы, имеющие четкое и логичное математическое обоснование) Но зачастую их описание в интернете настолько перегружено формулами и расчетами, что общий смысл алгоритма понять просто невозможно. А ведь понимание сути и принципа работы устройства/механизма/алгоритма намного важнее, чем заучивание огромных формул. Как это ни банально, но запоминание даже сотни формул ничем не поможет, если не знать, как и где их применить 😉 Собственно, к чему все это.. Решил я замутить описание некоторых алгоритмов, с которыми мне приходилось сталкиваться на практике. Постараюсь не перегружать математическими выкладками, чтобы материал был понятным, а чтение легким.

И сегодня мы поговорим о фильтре Калмана , разберемся, что это такое, для чего и как он применяется.

Начнем с небольшого примера. Пусть перед нами стоит задача определять координату летящего самолета. Причем, естественно, координата (обозначим ее ) должна определяться максимально точно.

На самолете мы заранее установили датчик, который и дает нам искомые данные о местоположении, но, как и все в этом мире, наш датчик неидеален. Поэтому вместо значения мы получаем:

где – ошибка датчика, то есть случайная величина. Таким образом, из неточных показаний измерительного оборудования мы должны получить значение координаты (), максимально близкое к реальному положению самолета.

Задача поставлена, перейдем к ее решению.

Пусть мы знаем управляющее воздействие (), благодаря которому летит самолет (пилот сообщил нам, какие рычаги он дергает 😉). Тогда, зная координату на k-ом шаге, мы можем получить значение на (k+1) шаге:

Казалось бы, вот оно, то что надо! И никакой фильтр Калмана тут не нужен. Но не все так просто.. В реальности мы не можем учесть все внешние факторы, влияющие на полет, поэтому формула принимает следующий вид:

где – ошибка, вызванная внешним воздействием, неидеальностью двигателя итп.

Итак, что же получается? На шаге (k+1) мы имеем, во-первых, неточное показание датчика , а во-вторых, неточно рассчитанное значение , полученное из значения на предыдущем шаге.

Идея фильтра Калмана заключается в том, чтобы из двух неточных значений (взяв их с разными весовыми коэффициентами) получить точную оценку искомой координаты (для нашего случая). В общем случае, измеряемая величина можем быть абсолютно любой (температура, скорость..). Вот, что получается:

Путем математических вычислений мы можем получить формулу для расчета коэффициента Калмана на каждом шаге, но, как условились в начале статьи, не будем углубляться в вычисления, тем более, что на практике установлено, что коэффициент Калмана с ростом k всегда стремится к определенному значению. Получаем первое упрощение нашей формулы:

А теперь предположим, что связи с пилотом нет, и мы не знаем управляющее воздействие . Казалось бы, в этом случае фильтр Калмана мы использовать не можем, но это не так 😉 Просто “выкидываем” из формулы то, что мы не знаем, тогда

Получаем максимально упрощенную формулу Калмана, которая тем не менее, несмотря на такие “жесткие” упрощения, прекрасно справляется со своей задачей. Если представить результаты графически, то получится примерно следующее:

Если наш датчик очень точный, то естественно весовой коэффициент K должен быть близок к единице. Если же ситуация обратная, то есть датчик у нас не очень хороший, то K должен быть ближе к нулю.

На этом, пожалуй, все, вот так вот просто мы разобрались с алгоритмом фильтрации Калмана! Надеюсь, что статья оказалась полезной и понятной =)

Транскрипт

1 # 09, сентябрь 2015 УДК Применение фильтра Калмана для обработки последовательности GPS-координат Листеренко Р.Р., бакалавр Россия, г. Москва, МГТУ им. Н.Э. Баумана, кафедра «Программное обеспечение ЭВМ и информационные технологии» Научный руководитель: Бекасов Д.Е., ассистент Россия, г. Москва, МГТУ им. Н.Э. Баумана, кафедра «Программное обеспечение ЭВМ и информационные технологии» Задача фильтрации GPS-координат В настоящее время широко используются сервисы GPS-трекинга, задачей которых является отслеживание маршрутов наблюдаемых объектов с целью их сохранения и дальнейшего воспроизведения и анализа. Однако из-за погрешности GPS-датчика, обусловленной рядом причин , таких как потеря сигнала от спутника, изменение геометрии расположения спутников, отражение сигналов, вычислительные ошибки и ошибки округления, итоговый результат не соответствует в точности маршруту объекта. Наблюдаются как незначительные отклонения (в пределах 100 м), не затрудняющие восприятие визуальной информации о маршруте и его анализ, так и весьма значительные (до 1 км, в случае потери сигнала спутников и использования базовых станций до нескольких десятков км). Для демонстрации результата приведенного в статье алгоритма используется маршрут, содержащий отклонения от действительного местоположения, превышающие несколько километров. С целью коррекции таких погрешностей разрабатывается алгоритм, выполняющий преобразование последовательности координат. Входными данными для алгоритма служит последовательность GPS-координат. В каждой координате содержится следующая информация, полученная от датчика: Широта Долгота Азимут в градусах Мгновенная скорость объекта в данной точке в м/с

2 Возможное отклонение координат объекта от истинного значения в метрах Время получения координаты датчиком Результатом работы алгоритма является последовательность координат с скорректированной широтой и долготой. В качестве основы для построения алгоритма решено использовать фильтр Калмана, так как он позволяет отдельно учитывать погрешности измерений и погрешности случайного процесса, а также использовать получаемую от датчика скорость движения объекта . Построение математической модели с использованием фильтра Калмана Для использования фильтра Калмана необходимо, чтобы исследуемый процесс описывался следующим образом : = + + (1) = + (2) В формуле (1) - вектор состояния процесса, A - матрица размерностью n n, описывающая переход наблюдаемого процесса из состояния в состояние. Вектор описывает управляющие воздействия на процесс. Матрица B размерностью n l отображает вектор управляющих воздействий u в изменение состояния s. является случайной величиной, описывающей погрешности исследуемого процесса, причем ~0, где Q - ковариационная матрица погрешностей процесса. Формула (2) описывает измерения случайного процесса. - вектор измеряемого состояния процесса, матрица H размерностью m n отображает состояние процесса в измерение процесса. - случайная величина, характеризующая погрешности измерений, причем ~0, где P - ковариационная матрица погрешностей измерений. Так как исследуется процесс движения объекта, уравнение состояния составляется исходя из уравнения движения тела = + +!" #$ % & ". Кроме того, отсутствует дополнительная информация о процессе движения, поэтому считается, что управляющее воздействие равно 0. За состояние процесса принят вектор = + () *, -. +, где x, y - координаты объекта, - проекции скорости объекта. Таким образом, для рассматриваемого процесса уравнение (1) принимает следующий вид: = + /!, (3) Молодежный научно-технический вестник ФС, ISSN

3 где = ! = 3! + 7 " 0 ; 6 2: 6 " / = : 6 0: 6 2: 6 0: , (4)!,4, (5) (6) В данной модели ускорение объекта рассматривается как случайная погрешность процесса. Принимаются следующие допущения: а) Ускорения по разным осям являются независимыми случайными величинами.),* б)

4 = AB = C. C E. = C/!!. /. = / C!!. /. Так как компоненты вектора ak (5) являются независимыми случайными величинами, то C!!. = " 0 " G. Следовательно, формула (7) принимает следующий вид: = / " (8) Вектор измерения zk для данной задачи представляется следующим образом: H I = 0 + J, J (7) 2, (9) где H, I - координаты объекта, полученные от датчика, J +,J, - скорость объекта, полученная от датчика. Матрица H в формуле (2) принимается равной единичной матрице размерностью 4 4, так как в рамках данной задачи считается, что измерение есть линейная комбинация вектора состояния и некоторых случайных погрешностей. Ковариационная матрица погрешности измерений R считается заданной. Один из возможных вариантов ее вычисления - использование данных о предполагаемой точности измерения, получаемых от датчика. Применение фильтра Калмана к построенной модели Для применения фильтра необходимо ввести следующие понятия: - апостериорная оценка состояния объекта в момент k, полученная по результатам наблюдений вплоть до момента k включительно. L - нескорректированная апостериорная оценка состояния объекта в момент времени k. - апостериорная ковариационная матрица ошибок, задающая оценку точности полученной оценки вектора состояния и включающая в себя оценку дисперсий погрешности вычисленного состояния и ковариации, показывающие выявленные взаимосвязи между параметрами состояния системы. L - нескорректированная апостериорная ковариационная матрица ошибок. Матрица P0 задается как нулевая, так как считается, что известно начальное положение объекта. Молодежный научно-технический вестник ФС, ISSN

5 Одна итерация фильтра Калмана состоит из двух этапов: экстраполяция и коррекция. а) На этапе экстраполяции вычисляется оценка L по оценке вектора состояния L и ковариационная матрица ошибок L по следующим формулам: L =, (10) L =. +, (11) где матрица Ak известна из формулы (4), матрица Qk вычисляется по формуле (8). б) На этапе коррекции вычисляется матрица коэффициентов усиления Kk по следующей формуле: M = L. L. + (12) где R, H считаются известными. Kk используется для коррекции оценки состояния объекта L и ковариационной матрицы ошибок L следующим образом: = L + M L, (13) = N M L, (14) где I - единичная матрица. Следует заметить, что для использования указанных выше соотношений, необходимо, чтобы для параметров объекта, участвующих в вычислениях, единицы измерений были согласованы. Однако в исходных данных широта и долгота приводятся в угловых координатах, а скорость в метрических. Кроме того, ускорение для расчета ошибки процесса также удобнее задавать в метрических единицах. Для перевода скорости и ускорения в угловые единицы используются формулы Винченти . Результат работы фильтра На рис. 1 приведен пример маршрута до обработки. Можно заметить, что в данном примере присутствуют несколько координат с высокой степенью погрешности, что выражается в наличии «пиков» координат, значительно удаленных от основного маршрута. На рис. 2 приведен результат работы фильтра с данным маршрутом.

6 Рис. 1. Маршрут объекта Рис. 2. Маршрут объекта после применения фильтра В результате практически отсутствуют «пики», за исключением самого крупного, который был заметно уменьшен, и сглажена остальная часть маршрута. Таким образом, с помощью приведенного алгоритма удалось снизить степень искажений маршрута и повысить его визуальное качество. Заключение В данной работе был рассмотрен подход к коррекции GPS-координат с помощью фильтра Калмана. С помощью приведенного алгоритма удалось устранить наиболее заметные искажения маршрута, что демонстрирует применимость данного метода к задаче сглаживания маршрута и устранения пиков. Однако для дальнейшего повышения качества алгоритма необходима дополнительная обработка последовательности координат с целью Молодежный научно-технический вестник ФС, ISSN

7 устранения избыточных точек, возникающих при отсутствии движения наблюдаемого объекта. Список литературы 1. Yadav J., Giri R., Meena L. Error handling in GPS data processing // Mausam Vol. 62. No. 1. P Kalman R. E. A New Approach to Linear Filtering and Prediction Problems // Transactions of the ASME Journal of Basic Engineering Vol. 82. No. Series D. PP Welch G., Bishop G. An Introduction to the Kalman Filter: Tech. Rep. TR Available at: accessed Vincenty T. Direct and Inverse Solutions of Geodesics on the Ellipsoid with application of nested equations // Survey Review apr. Vol. 23. No PP


УДК 519.711.2 Алгоритм оценки параметров ориентации космического аппарата с использованием фильтра Калмана Д. И. Галкин 1 1 МГТУ им. Н.Э. Баумана, Москва, 155, Россия Дано описание построения фильтра Калмана

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ТЕХНИЧЕСКОМУ РЕГУЛИРОВАНИЮ И МЕТРОЛОГИИ НАЦИОНАЛЬНЫЙ СТАНДАРТ российской ФЕДЕРАЦИИ ГОСТ Р 53608-2009 Глобальная навигационная спутниковая система МЕТОДЫ И ТЕХНОЛОГИИ ВЫПОЛНЕНИЯ

БАЙЕСОВСКОЕ ПРОГНОЗИРОВАНИЕ ВРЕМЕННЫХ РЯДОВ НА ОСНОВЕ МОДЕЛЕЙ В ПРОСТРАНСТВЕ СОСТОЯНИЙ В И Лобач Белорусский государственный университет Минск Беларусь E-mail: lobach@bsub Рассматривается метод прогнозирования

УДК 681.5(07) ИДЕНТИФИКАЦИЯ НЕЛИНЕЙНЫХ ДИНАМИЧЕСКИХ ОБЪЕКТОВ ВО ВРЕМЕННОЙ ОБЛАСТИ Д.Н. Вятченников, В.В. Кособуцкий, А.А. Носенко, Н.В. Плотникова Недостаточная информация об объектах при разработке их

Сер. 0. 200. Вып. 4 ВЕСТНИК САНКТ-ПЕТЕРБУРГСКОГО УНИВЕРСИТЕТА ПРОЦЕССЫ УПРАВЛЕНИЯ УДК 539.3 В. В. Карелин ШТРАФНЫЕ ФУНКЦИИ В ЗАДАЧЕ УПРАВЛЕНИЯ ПРОЦЕССОМ НАБЛЮДЕНИЯ. Введение. Статья посвящена проблеме

УДК 63.1/.7 АЛГОРИТМЫ ВТОРИЧНОЙ ОБРАБОТКИ ИНФОРМАЦИИ В РАДИОЛОКАЦИОННОЙ СТАНЦИИ С РАЗЛИЧНЫМИ ВИДАМИ МАТРИЦЫ ДИНАМИЧЕСКОГО ПЕРЕСЧЕТА ПРИ ОПРЕДЕЛЕНИИ КООРДИНАТЫ УГЛА МЕСТА Яницкий А.А. научный руководитель

УДК 5979 + 5933 Г А Омарова Èíñòèòóò âû èñëèòåëüíîé ìàòåìàòèêè è ìàòåìàòè åñêîé ãåîôèçèêè ÑÎ ÐÀÍ ïð Àêàä Ëàâðåíòüåâà, 6, Íîâîñèáèðñê, 630090, Ðîññèÿ E-mail: gulzira@ravccru Статистическая модель движения

Введение в робототехнику Лекция 12. Часть 2. Навигация и картографирование. SLAM SLAM Simultaneous Localization And Mapping (одновременная локализация и картографирование) Задача SLAM является одной из

Конспект лекции «Линейные динамические системы. Фильтр Калмана.» по спецкурсу «Структурные методы анализа изображений и сигналов» 211 Ликбез: некоторые свойства нормального распределения. Пусть x R d распределен

Система локализации робота на основе полусферической камеры Александр Овчинников, Хоа Фан Кафедра Радиоэлектронники Тульский Государственный Университет, Тула, Россия [email protected], [email protected]

Труды МАИ Выпуск 84 УДК 57:5198 wwwmairu/science/trudy/ Определение погрешностей бескарданной инерциальной навигационной системы в режиме рулежки и разгона Вавилова НБ* Голован АА Кальченко АО** Московский

# 08, август 2016 УДК 004.93"1 Нормализация данных 3D камеры с использованием метода главных компонент для решения задачи распознавания поз и поведения пользователей Умного дома Малых Д.А., студент Россия,

Национальный технический университет Украины «Киевский политехнический институт» Кафедра приборов и систем ориентации и навигации Методические указания к лабораторным работам по дисциплине «Навигационные

УДК 629.78.018:621.397.13 МЕТОД ПАРНЫХ РАССТОЯНИИ В ЗАДАЧЕ ПОЛЕТНОЙ ЮСТИРОВКИ АСТРОДАТЧИКОВ СИСТЕМЫ ОРИЕНТАЦИИ КОСМИЧЕСКИХ АППАРАТОВ Б.М. Суховилов По мере улучшения точности и надежности астрономических

УДК 629.05 Решение задачи навигации с помощью бесплатформенной инерциальной системы навигации и системы воздушных сигналов Мкртчян В.И., студент, кафедра «Приборы и системы ориентации, стабилизации и навигации»

МОДЕЛЬ ЗРИТЕЛЬНОЙ СИСТЕМЫ ЧЕЛОВЕКА- ОПЕРАТОРА ПРИ РАСПОЗНАВАНИИ ОБРАЗОВ ОБЪЕКТОВ Ю.С. Гулина, В.Я. Колючкин Московский государственный технический университет им. Н.Э. Баумана, Изложена математическая

РАКЕТНО-КОСМИЧЕСКОЕ ПРИБОРОСТРОЕНИЕ И ИНФОРМАЦИОННЫЕ СИСТЕМЫ 2015, том 2, выпуск 3, c. 79 83 УДК 681.3.06 СИСТЕМНЫЙ АНАЛИЗ, УПРАВЛЕНИЕ КОСМИЧЕСКИМИ АППАРАТАМИ, ОБРАБОТКА ИНФОРМАЦИИ И СИСТЕМЫ ТЕЛЕМЕТРИИ

Линейные динамические системы. Фильтр Калмана. Ликбез: некоторые свойства нормального распределения Плотность распределения.4.3.. -4 x b.5 x b =.7 5 p(x a x b =.7) - x p(x a,x b) p(x a) 4 3 - - -3 x.5

УДК 621.396.671 О. С. Л и т в и н о в, А. А. Г и л я з о в а ОЦЕНКА С ПОМОЩЬЮ МЕТОДА СОБСТВЕННЫХ ДИАГРАММ ВОЗДЕЙСТВИЯ ГРУПП ПОМЕХ НА ПРИЕМ ПОЛЕЗНОГО СИГНАЛА ЛИНЕЙНОЙ ЭКВИДИСТАНТНОЙ АДАПТИВНОЙ АНТЕННОЙ

УДК 681.5.15.44 ПРОНОЗИРОВАНИЕ КУСОЧНО-СТАЦИОНАРНЫХ ПРОЦЕССОВ Е.Ю. Алексеева Рассматриваются дискретные случайные процессы содержащие параметры меняющиеся скачкообразно в случайные моменты времени. Для

УДК 63966 ЛИНЕЙНАЯ ОПТИМАЛЬНАЯ ФИЛЬТРАЦИЯ ПРИ НЕ БЕЛЫХ ШУМАХ Г Ф Савинов В работе получен алгоритм оптимального фильтра для случая когда входные воздействия и шумы представляют собой случайные гауссовы

Определение колебательных движений нежёстких элементов спутника с помощью обработки видеоизображения Д.О. Лазарев Московский физико-технический институт Научный руководитель, к.ф.-м.н.: Д.С. Иванов, Институт

УДК 004 О МЕТОДАХ ОТСЛЕЖИВАНИЯ И ТРЕКИНГА ОБЪЕКТА НА ВИДЕОПОТОКЕ ПРИМЕНИТЕЛЬНО К СИСТЕМЕ ВИДЕОАНАЛИТИКИ ДЛЯ СБОРА И АНАЛИЗА МАРКЕТИНГОВЫХ ДАННЫХ Чезганов Д.А., Сериков О.Н. Южно-Российский государственный

Электронный журнал «Труды МАИ». Выпуск 66 www.ma.u/scence/tud/ УДК 69.78 Модифицированный навигационный алгоритм для определения положения ИСЗ по сигналам GS/ГЛОНАСС Куршин А. В. Московский авиационный

УДК 621.396.96 Исследование алгоритма завязки и подтверждения траекторий по критерию M из N Чернова Т.С., студент кафедры «Радиоэлектронные системы и устройства», Россия, 105005, г. Москва, МГТУ им. Н.Э.

ТЕОРІЯ ТА ПРАКТИКА НАВІГАЦІЙНИХ ПРИЛАДІВ І СИСТЕМ УДК 531.383 ВЛИЯНИЕ ПОГРЕШНОСТИ ПОВОРОТА СТЕНДА НА ТОЧНОСТЬ КА- ЛИБРОВКИ БЛОКА ГИРОСКОПОВ И АКСЕЛЕРОМЕТРОВ Аврутов В. В., Мазепа Т. Ю. Национальный технический

Лекция 6 Характеристики портфелей В предыдущих лекциях неоднократно употреблялся термин «портфель» Для математической постановки задачи о выборе оптимального портфеля необходимо строгое определение этого

ИДЕНТИФИКАЦИЯ ВРЕМЕННЫХ РЯДОВ С ПРОПУСКАМИ НА ОСНОВЕ МОДЕЛЕЙ В ПРОСТРАНСТВЕ СОСТОЯНИЙ Р. И. Меркулов В. И. Лобач Белорусский государственный университет Минск Беларусь e-mail: [email protected] [email protected]

ПРИБОРЫ И СИСТЕМЫ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ УДК 51971 В Н АРСЕНЬЕВ, А Г КОХАНОВСКИЙ, А С ФАДЕЕВ МАТЕМАТИЧЕСКАЯ МОДЕЛЬ СВЯЗИ ИЗОХРОННЫХ ВАРИАЦИЙ ПЕРЕМЕННЫХ СОСТОЯНИЯ СИСТЕМЫ УПРАВЛЕНИЯ С ВОЗМУЩЕНИЯМИ ПАРАМЕТРОВ

Труды МАИ. Выпуск 89 УДК 629.051 www.mai.ru/science/trudy/ Калибровка бесплатформенной инерциальной навигационной системы при повороте вокруг вертикальной оси Матасов А.И.*, Тихомиров В.В.** Московский

Аналитическая геометрия Модуль 1 Матричная алгебра Векторная алгебра Текст 4 (самостоятельное изучение) Аннотация Линейная зависимость векторов Критерии линейной зависимости двух, трех и четырех векторов

УДК 62.396.26 Л.А. Подколзина, К.. Другов АЛГОРИТЫ ОБРАБОТКИ ИНФОРАЦИИ В НАВИГАЦИОННЫХ СИСТЕАХ НАЗЕНЫХ ПОДВИЖНЫХ ОБЪЕКТОВ ДЛЯ КАНАЛА ОПРЕДЕЛЕНИЯ КООРДИНАТ ЕСТОПОЛОЖЕНИЯ Для определения координат и параметров

СТАТИСТИЧЕСКИЙ АНАЛИЗ ПАРАМЕТРИЧЕСКИХ ВРЕМЕННЫХ РЯДОВ С ПРОПУСКАМИ НА ОСНОВЕ МОДЕЛЕЙ В ПРОСТРАНСТВЕ СОСТОЯНИЙ С. В. Лобач Белорусский государственный университет Минск, Беларусь е-mail: [email protected]

Математичні методи обробки даних УДК 6.39 С. Я. Жук.. Кожешкурт.. Юзефович Национальный технический университет Украины «КП» просп. Победы 37 356 Киев Украина нститут проблем регистрации информации НАН

Построение ММ статики технологических объектов При исследовании статики технологических объектов наиболее часто встречаются объекты со следующими типами структурных схем (рис: О с одной входной х и одной

Оценка параметров ориентации космического аппарата с использованием фильтра Калмана Студент, кафедра «Системы автоматического управления»: Д.И. Галкин Научный руководитель: А.А. Карпунин, к.т.н., доцент

5. Мелешко В.В. Бесплатформенные инерциальные навигационные системы: Учебн. пособ. / В.В. Мелешко, О.И. Нестеренко. Кировоград: ПОЛИМЕД-Сервис, 211. 172 с. Надійшла до редакції 17 квітня 212 року ÓКостюк

УДК 004.896 Применение геометрических преобразований для анаморфирования изображений Канев А.И., специалист Россия, 105005, г. Москва, МГТУ им. Н.Э. Баумана, кафедра «Системы обработки информации и управления»

4. Методы Монте-Карло 1 4. Методы Монте-Карло Для моделирования различных физических, экономических и прочих эффектов широко распространены методы, называемые методами Монте-Карло. Они обязаны своим названием

Полосовая фильтрация 1 Полосовая фильтрация В предыдущих разделах была рассмотрена фильтрация быстрых вариаций сигнала (сглаживание) и его медленных вариаций (устранение тренда). Иногда требуется выделить

[ЗАМЕТКИ] Пояснение Основ фильтра Калмана С помощью Простого и интуитивно понятного Выведения Рэмси Фарахер та статья предоставляет Э простой и интуитивный вывод фильтра Калмана, с целью обучения этому

УДК 004.932 Алгоритм классификации отпечатков пальцев Ломов Д.С., студент Россия, 105005, г. Москва, МГТУ им. Н.Э. Баумана, кафедра «Программное обеспечение ЭВМ и информационные технологии» Научный руководитель:

Лекция ЧИСЛОВЫЕ ХАРАКТЕРИСТИКИ СИСТЕМЫ ДВУХ СЛУЧАЙНЫХ ВЕЛИЧИН -МЕРНЫЙ СЛУЧАЙНЫЙ ВЕКТОР ЦЕЛЬ ЛЕКЦИИ: определить числовые характеристики системы двух случайных величин: начальные и центральные моменты ковариацию

Динамика рождаемости по Чувашской республике Содержание Введение 1. Общая тенденция рождаемости населения Чувашской республики 2. Основная тенденция рождаемости 3. Динамика рождаемости городского и сельского

IN 1990-5548 Електроніка та системи управління. 2011. 4(30) 73 УДК656.7.052.002.5:681.32(045) В. М. Синеглазов, д-р техн. наук, проф., Ш. И. Аскеров ОПТИМАЛЬНАЯ КОМПЛЕКСНАЯ ОБРАБОТКА ДАННЫХ В НАВИГАЦИОННЫХ

УДК 004.896 Особенности реализации алгоритма для отображения результатов анаморфирования Канев А.И., специалист Россия, 105005, г. Москва, МГТУ им. Н.Э. Баумана, кафедра «Системы обработки информации и

177 УДК 658.310.8: 519.876.2 ИСПОЛЬЗОВАНИЕ ТОЧНОСТИ ОЦЕНИВАНИЯ ПРИ РЕЗЕРВИРОВАНИИ ДАТЧИКОВ Л.И. Лузина В статье рассматривается возможный подход для получения новой схемы резервирования датчиков. Традиционная

СБОРНИК НАУЧНЫХ ТРУДОВ НГТУ. 28. 4(54). 37 44 УДК 59.24 О КОМПЛЕКСЕ ПРОГРАММ ДЛЯ РЕШЕНИЯ ЗАДАЧИ ИДЕНТИФИКАЦИИ ЛИНЕЙНЫХ ДИНАМИЧЕСКИХ ДИСКРЕТНЫХ СТАЦИОНАРНЫХ ОБЪЕКТОВ Г.В. ТРОШИНА Рассмотрен комплекс программ

УДК 625.1:519.222:528.4 С.И. Долганюк С.И. Долганюк, 2010 ПОВЫШЕНИЕ ТОЧНОСТИ НАВИГАЦИОННОГО РЕШЕНИЯ ПРИ ПОЗИЦИОНИРОВАНИИ МАНЕВРОВЫХ ЛОКОМОТИВОВ ЗА СЧЕТ ИСПОЛЬЗОВАНИЯ ЦИФРОВЫХ МОДЕЛЕЙ ПУТЕВОГО РАЗВИТИЯ

УДК 531.1 АДАПТАЦИЯ ФИЛЬТРА КАЛМАНА ДЛЯ ИСПОЛЬЗОВАНИЯ С ЛОКАЛЬНОЙ И ГЛОБАЛЬНОЙ СИСТЕМАМИ НАВИГАЦИИ А.Н.Забегаев ([email protected]) В.Е.Павловский ([email protected]) Институт прикладной математики им.

АВТОМАТИЗАЦИЯ И УПРАВЛЕНИЕ УДК 68.58.3 А. Г. Шпекторов, В. Т. Фам Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В. И. Ульянова (Ленина) Анализ применения микромеханических

ОСНОВЫ РЕГРЕССИОННОГО АНАЛИЗА ПОНЯТИЕ КОРРЕЛЯЦИОННОГО И РЕГРЕССИОННОГО АНАЛИЗА Для решения задач экономического анализа и прогнозирования очень часто используются статистические, отчетные или наблюдаемые

Лекция 4. Решение систем линейных уравнений методом простых итераций. Если система имеет большую размерность (6 уравнений) или матрица системы разрежена, более эффективны для решения непрямые итерационные

58-я научная конференция МФТИ Секция динамики и управления движением космических аппаратов Система определения движения макетов системы управления на аэродинамическом столе с использованием видеокамеры

Лекция 3 5. МЕТОДЫ ПРИБЛИЖЕНИЯ ФУНКЦИЙ ПОСТАНОВКА ЗАДАЧИ Рассматриваются сеточные табличные функции [ a b] y 5. определенные в узлах сетки Ω. Каждая сетка характеризуется шагами h неравномерного или h

1. Численные методы решения уравнений 1. Системы линейных уравнений. 1.1. Прямые методы. 1.2. Итерационные методы. 2. Нелинейные уравнения. 2.1. Уравнения с одним неизвестным. 2.2. Системы уравнений. 1.

УДК 621.396 ИССЛЕДОВАНИЕ АЛГОРИТМОВ ВТОРИЧНОЙ ОБРАБОТКИ ИНФОРМАЦИИ МНОГОПОЗИЦИОННОЙ РАДИОЛОКАЦИОНОЙ СИСТЕМЫ ДЛЯ КАНАЛА УГЛА МЕСТА Борисов А.Н., Глинченко В.А., Назаров А.А., Исламов Р.В., Сучков П.В. Научный

Тема Численные методы линейной алгебры - - Тема Численные методы линейной алгебры Классификация Выделяют четыре основных раздела линейной алгебры: Решение систем линейных алгебраических уравнений (СЛАУ)

УДК 004.352.242 Восстановление смазанных изображений путем решения интегрального уравнения типа свертки Иванникова И.А., студент Россия, 105005, г. Москва, МГТУ им. Н.Э. Баумана, кафедра «Системы автоматизированного

АЭРОГРАВИМЕТРИЧЕСКАЯ СЪЕМКА ПРИ СТАНДАРТНОМ РЕЖИМЕ РАБОТЫ GPS Могилевский В.Е. АО «ГНПП «Аэрогеофизика» Важнейшим элементом, определяющим успех аэрогеофизических исследований, является качественное навигационное

АНАЛИЗ АКУСТИЧЕСКИХ СИГНАЛОВ НА ОСНОВЕ МЕТОДА ФИЛЬТРАЦИИ КАЛМАНА И.П. Гуров, П.Г. Жиганов, А.М. Озерский Рассматриваются особенности динамической обработки стохастических сигналов с использованием дискретных

УДК АА Минко ИДЕНТИФИКАЦИЯ ЛИНЕЙНОГО ОБЪЕКТА ПО РЕАКЦИИ НА ГАРМОНИЧЕСКИЙ СИГНАЛ Предложен алгоритм обобщенной идентификации на основе интегральных двупараметрических преобразований Гаусса линейного стационарного

ЛЕКЦИЯ. Оценка комплексной амплитуды сигнала. Оценка времени запаздывания сигнала. Оценка частоты сигнала со случайной фазой. Совместная оценка времени запаздывания и частоты сигнала со случайной фазой.

Вычислительные технологии Том 18, 1, 2013 Идентификация параметров процесса аномальной диффузии на основе разностных уравнений А. С. Овсиенко Самарский государственный технический университет, Россия e-mail:

1 ПРОГНОЗИРОВАНИЕ КОНЪЮНКТУРЫ РЫНКА НЕФТЕХИМИЧЕКСИХ ПРЕДПРИЯТИЙ Кордунов Д.Ю., Битюцкий С.Я. Введение. В современных условиях хозяйствования, которые характеризуются быстрым развитием мировых интеграционных

Задача одновременной локализации и построения карты (SLAM) Робошкола-2014 Андрей Антонов robotosha.ru 10 октября 2014 г. План 1 Основы SLAM 2 RGB-D SLAM 3 Робот Андрей Антонов (robotosha.ru) Задача SLAM

УДК 004.021 Т. Н. Р о м а н о в а, А. В. С и д о р и н, В. Н. С о л я к о в, К. В. К о з л о в СИНТЕЗ МОНОХРОМНОГО ИЗОБРАЖЕНИЯ ИЗ МНОГОДИАПАЗОННОГО ПОСТРОЕНИЕМ ПАЛИТРЫ С ПОМОЩЬЮ РЕШЕНИЯ УРАВНЕНИЯ ПУАССОНА

Национальный технический университет Украины «Киевский политехнический институт» Кафедра приборов и систем ориентации и навигации Методические указания к лабораторным работам по дисциплине «Навигационные

Цифровая Обработка Сигналов /9 УДК 69.78 АНАЛИТИЧЕСКИЙ МЕТОД РАСЧЕТА ПОГРЕШНОСТЕЙ ОПРЕДЕЛЕНИЯ УГЛОВОЙ ОРИЕНТАЦИИ ПО СИГНАЛАМ СПУТНИКОВЫХ РАДИОНАВИГАЦИОННЫХ СИСТЕМ Алешечкин А.М. Введение Режим определения

ОСОБЕННОСТИ ФОРМИРОВАНИЯ КОМПЬЮТЕРНОЙ МОДЕЛИ ДИНАМИЧЕСКОЙ ОПТИКО-ЭЛЕКТРОННОЙ СИСТЕМЫ Позднякова Н.С., Торшина И.П. Московский государственный университет геодезии и картографии Факультет оптико-информационных

Труды ИСА РАН 009. Т. 46 III. ПРИКЛАДНЫЕ ЗАДАЧИ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ Стационарные состояния в нелинейной модели переноса заряда в ДНК * Стационарные состояния в нелинейной модели переноса заряда в

Random Forest - один из моих любимых алгоритмов data mining. Во-первых он невероятно универсален, с его помощью можно решать как задачи регрессии так и классификации. Проводить поиск аномалий и отбор предикторов. Во-вторых это тот алгоритм, который действительно сложно применить неправильно. Просто потому, что в отличии от других алгоритмов у него мало настраиваемых параметров. И еще он удивительно прост по своей сути. И в то же время он отличается удивительной точностью.

В чем же идея такого замечательного алгоритма? Идея проста: допустим у нас есть какой-то очень слабый алгоритм, скажем, . Если мы сделаем очень много разных моделей с использованием этого слабого алгоритма и усредним результат их предсказаний, то итоговый результат будет существенно лучше. Это, так называемое, обучение ансамбля в действии. Алгоритм Random Forest потому и называется "Случайный Лес", для полученных данных он создает множество деревьев приятия решений и потом усредняет результат их предсказаний. Важным моментом тут является элемент случайности в создании каждого дерева. Ведь понятно, что если мы создадим много одинаковых деревьев, то результат их усреднения будет обладать точностью одного дерева.

Как он работает? Предположим, у нас есть некие данные на входе. Каждая колонка соответствует некоторому параметру, каждая строка соответствует некоторому элементу данных.

Мы можем выбрать, случайным образом, из всего набора данных некоторое количество столбцов и строк и построить по ним дерево принятия решений.


Thursday, May 10, 2012

Thursday, January 12, 2012


Вот собственно и всё. 17-ти часовой перелет позади, Россия осталась за океаном. А в окно уютной 2-ух спальной квартиры на нас смотрит Сан-Франциско, знаменитая Кремниевая долина, Калифорния, США. Да, это и есть та самая причина, по которой я практически не писал последнее время. Мы переехали.

Всё это началось еще в апреле 2011 года, когда я проходил телефонное интервью в компании Zynga. Тогда это все казалось какой-то игрой не имеющей отношения к реальности и я и представить себе не мог, во что это выльется. В июне 2011 года Zynga приехали в Москву и провели серию собеседований, рассматривалось около 60 кандидатов прошедших телефонное интервью и из них было отобрано около 15 человек (точное число не знаю, кто-то потом передумал, кто-то сразу отказался). Интервью оказалось неожиданно простым. Ни тебе задачек на программирование, ни заковыристых вопросов про форму люков, в основном проверялись способности болтать. А знания, на мой взгляд, оценивались лишь поверхностно.

А дальше началась канитель. Сначала мы ждали результатов, потом офера, потом одобрение LCA, потом одобрения петиции на визу, потом документы из США, потом очередь в посольстве, потом дополнительную проверку, потом визу. Временами мне казалось, что я готов все бросить и забить. Временами я сомневался, а нужна ли нам эта Америка ведь и в России не плохо. Весь процесс занял где-то около полугода, в итоге, в середине декабря мы получили визы и начали готовиться к отъезду.

В понедельник был мой первый рабочий день на новом месте. В офисе созданы все условия для того чтобы не только работать, но и жить. Завтраки, обеды и ужины от собственных поваров, куча разнообразнейшей еды распиханной по всем уголкам, спортзал, массаж и даже парикмахер. Все это совершенно бесплатно для сотрудников. Многие добираются на работу на велосипеде и для хранения транспорта оборудовано несколько комнат. В общем, ничего подобного в России мне встречать не доводилось. Всему, однако, есть своя цена, нас сразу предупредили, что работать придется много. Что такое "много", по их меркам, мне не очень понятно.

Надеюсь, однако, что несмотря на количество работы, в обозримом будущем смогу возобновить ведение блога и, может быть, расскажу что-нибудь о американской жизни и работе программистом в Америке. Поживем - увидим. А пока, поздравляю всех с наступившим новым годом и рождеством и до новых встреч!


Для примера использования, распечатаем дивидендную доходность российских компаний. В качестве базовой цены, берем цену закрытия акции в день закрытия реестра. Почему-то на сайте тройки этой информации нет, а она ведь гораздо интересней чем абсолютные величины дивидендов.
Внимание! Код выполняется довольно долго, т.к. для каждой акции требуется сделать запрос на сервера finam и получить её стоимость.

Result <- NULL for(i in (1:length(divs[,1]))){ d <- divs if (d$Divs>0){ try({ quotes <- getSymbols(d$Symbol, src="Finam", from="2010-01-01", auto.assign=FALSE) if (!is.nan(quotes)){ price <- Cl(quotes) if (length(price)>0){ dd <- d$Divs result <- rbind(result, data.frame(d$Symbol, d$Name, d$RegistryDate, as.numeric(dd)/as.numeric(price), stringsAsFactors=FALSE)) } } }, silent=TRUE) } } colnames(result) <- c("Symbol", "Name", "RegistryDate", "Divs") result


Аналогично можно построить статистику для прошлых лет.

В процессе автоматизации технологических процессов для управления механизмами и агрегатами приходится сталкиваться с измерениями различных физических величин. Это может быть давление и расход жидкости или газа, частота вращения, температура и многое другое. Измерение физических величин осуществляется с помощью аналоговых датчиков. Аналоговый сигнал - сигнал данных, у которого каждый из представляющих параметров описывается функцией времени и непрерывным множеством возможных значений . Из непрерывности пространства значений следует, что любая помеха, внесенная в сигнал, неотличима от полезного сигнала. Поэтому на аналоговый вход управляющего устройства будет поступать неверное значение требуемой физической величины. Следовательно, необходимо производить фильтрацию сигнала, поступающего с датчика.

Одним из эффективных алгоритмов фильтрации является фильтр Калмана. Фильтр Калмана - рекурсивный фильтр, оценивающий вектор состояния динамической системы, используя ряд неполных и зашумленных измерений . Фильтр Калмана использует динамическую модель системы (к примеру, физический закон движения), управляющие воздействия и множество последовательных измерений для формирования оптимальной оценки состояния. Алгоритм состоит из двух повторяющихся фаз: предсказание и корректировка. На первом этапе рассчитывается предсказание состояния в последующий момент времени (с учетом неточности их измерения). На втором, новая информация с датчика корректирует предсказанное значение (также с учетом неточности и зашумленности этой информации).

На этапе предсказания происходит:

  1. Предсказание состояния системы:

где – предсказание состояния системы в текущий момент времени; – матрица перехода между состояниями (динамическая модель системы); – предсказание состояния системы в предыдущий момент времени; – матрица применения управляющего воздействия; – управляющее воздействие в предыдущий момент времени.

  1. Предсказание ошибки ковариации:

где – предсказание ошибки; – ошибка в предыдущий момент времени; – ковариация шума процесса.

На этапе корректировки происходит:

  1. Вычисление усиления Калмана:

где – усиление Калмана; – матрица измерений, отображающая отношение измерений и состояний; – ковариация шума измерения.

где – измерение в текущий момент времени.

  1. Обновление ошибки ковариации:

где – матрица идентичности.

Если состояние системы описывается одной переменной, то = 1, а матрицы вырождаются в обычные уравнения.

Чтобы наглядно продемонстрировать эффективность фильтра Калмана, был проведён эксперимент с датчиком громкости AVR PIC KY-037, который подключен к микроконтроллеру Arduino Uno. На рисунке 1 представлен график показаний датчика без применения фильтра (линия 1). Хаотичные колебания значения на выходе датчика свидетельствуют о наличии шумов.

Рисунок 1. График показаний датчика без применения фильтра

Чтобы применить фильтр, необходимо определить значения переменных , и , которые определяют динамику системы и измерений. Примем и равными 1, а равным 0, поскольку управляющих воздействий в системе нет. Для определения сглаживающих свойств фильтра необходимо рассчитать значение переменной , а также подобрать значение параметра .

Расчёт переменной произведём в программе Microsoft Excel 2010. Для этого необходимо рассчитать среднеквадратичное отклонение для выборки значений показаний датчика. = 0,62. подбирается в зависимости от требуемого уровня фильтрации, принимаем = 0,001. На рисунке 2 второй линией представлен график показаний датчика с применением фильтра.

Рисунок 2. График показаний датчика с применением фильтра Калмана

Из графика можно сделать вывод, что фильтр справился с задачей фильтрации помех, поскольку в установившемся режиме колебания показаний датчика, прошедших фильтрацию, незначительны.

Однако у фильтра Калмана есть существенный недостаток. Если измеряемая датчиком величина может резко изменяться, отфильтрованные показания датчика не будут изменяться так же быстро, как измеряемая величина. На рисунке 3 показана реакция фильтра Калмана на скачок измеряемой величины.

Рисунок 3. Реакция фильтра Калмана на скачок измеряемой величины

Реакция фильтра на скачок измеряемой величины оказалась незначительной. Если измеряемая величина значительно изменятся, и не вернётся затем к предыдущему значению, то отфильтрованные показания датчика будут соответствовать реальному значению измеряемой величины только через значительный промежуток времени, что недопустимо для систем автоматического управления, от которых требуется высокое быстродействие.

Из проведённого эксперимента можно сделать вывод о том, что фильтр Калмана целесообразно применять для фильтрации показаний датчиков в системах с низким быстродействием.

Список литературы:

  1. ГОСТ 17657-79. Передача данных. Термины и определения. – Москва: Изд-во стандартов, 2005. – 2 с.
  2. Фильтр Калмана // Википедия. . Дата обновления: 26.04.2017. URL: http://ru.wikipedia.org/?oldid=85061599 (дата обращения: 21.05.2017).
Вверх