Для оперативной оценки состояния дискретно-временных нелинейных систем можно использовать алгоритмы дискретно-временного расширенного и незаметного фильтра Калмана. Если у вас есть система с серьезными нелинейностями, алгоритм фильтра Калмана может дать лучшие результаты оценки. Оценку состояния можно выполнить в Simulink ® и в командной строке. Для выполнения оценки состояния сначала необходимо создать нелинейную функцию перехода состояния и функцию измерения для системы.
В командной строке функции используются для построения extendedKalmanFilter или unscentedKalmanFilter объект для требуемого алгоритма и указать, являются ли члены шума процесса и измерения в функциях аддитивными или неаддитивными. После создания объекта используется predict и correct команды для оценки состояний с использованием данных в реальном времени. Для получения информации о порядке выполнения этих команд см. predict и correct справочные страницы.
В Simulink эти функции задаются в блоках Расширенный фильтр Калмана (Extended Kalman Filter) и Фильтр Калмана (Uncented Kalman Filter). Кроме того, можно указать, являются ли условия шума процесса и измерения в функциях аддитивными или неаддитивными. В блоках программное обеспечение определяет порядок, в котором выполняется прогнозирование и коррекция оценок состояния.
extendedKalmanFilter команда и расширенный блок фильтра Калмана реализуют алгоритм дискретного фильтра Калмана первого порядка. Предположим, что уравнения перехода состояния и измерения для дискретно-временной нелинейной системы имеют неаддитивные условия процесса и шума измерения с матрицами Q и R среднего нуля и ковариации соответственно:
] ~ (0, Q [k]) v [k] ~ (0, R [k])
Здесь f - нелинейная функция перехода состояний, описывающая эволюцию состояний x от одного временного шага к следующему. Нелинейная функция измерения h x к измерениям y на шаге времени k. Эти функции могут также иметь дополнительные входные аргументы, которые обозначаются us и um. Уровень технологического и измерительного шума: w и vсоответственно. Вы предоставляете Q и R.
В блоке программное обеспечение решает порядок предсказания и коррекции оценок состояния. В командной строке определяется порядок. Для получения информации о порядке выполнения этих команд см. predict и correct справочные страницы. Предполагая, что вы реализуете correct команда перед predict, программное обеспечение реализует алгоритм следующим образом:
Инициализируйте объект фильтра с начальными значениями состояния, x[0]и ковариационная матрица ошибки оценки состояния, P.
0 | − 1]) (x [0] − x ^ [0 | − 1]) T
Здесь ^ - оценка состояния, а ka 'kb] - оценка состояния на шаге времени.ka использование измерений на временных этапах 0,1,...,kb. Таким образом, − 1] является наилучшим предположением значения состояния перед выполнением любых измерений. Это значение задается при построении фильтра.
Для временных шагов k = 0,1,2,3,... выполните следующее:
Вычислите якобиан функции измерения и обновите ковариацию ошибок оценки состояния и состояния, используя измеренные данные. y[k]. В командной строке correct выполняет это обновление.
Программа вычисляет эти матрицы якобиана численно, если не указан аналитический якобиан.
[
Здесь K это выигрыш Калмана.
Вычислите якобиан функции перехода состояния и предсказайте ковариацию состояния и ошибки оценки состояния на следующем шаге времени. В программном обеспечении, predict команда выполняет это прогнозирование.
Программа вычисляет эти матрицы якобиана численно, если не указан аналитический якобиан. Это численное вычисление может увеличить время обработки и численную неточность оценки состояния.
+ 1 | k] = f (x ^ [k' k], 0, us [k])
correct функция использует эти значения на следующем шаге времени. Для улучшения числовой производительности программное обеспечение использует факторизацию квадратного корня ковариационных матриц. Для получения дополнительной информации об этой факторизации см. [2].
Блок расширенного фильтра Калмана поддерживает несколько функций измерения. Эти измерения могут иметь разное время выборки, если их время выборки кратно целому числу времени выборки перехода состояния. В этом случае выполняется отдельный этап коррекции, соответствующий измерениям из каждой функции измерения.
Описанные выше шаги алгоритма предполагают, что в функциях перехода и измерения состояния имеются неаддитивные шумовые члены. Если в функциях есть аддитивные шумовые члены, изменения в алгоритме:
Если технологический шум w является аддитивным, то есть уравнение перехода состояния имеет вид 1]) + w [k − 1], то якобовская матрицаG[k] является единичной матрицей.
Если шум измерения v является аддитивным, то есть уравнение измерения имеет вид ]) + v [k], затем матрица ЯкобианаS[k] является единичной матрицей.
Аддитивные шумовые члены в функциях состояния и перехода сокращают время обработки.
Расширенный фильтр Калмана первого порядка использует линейные приближения к функциям перехода и измерения нелинейного состояния. В результате алгоритм может оказаться ненадежным, если нелинейности в системе являются серьезными. В этом случае алгоритм фильтра Калмана без запаха может дать лучшие результаты.
Алгоритм фильтра Калмана без запаха и блок фильтра Калмана без запаха используют преобразование без запаха для захвата распространения статистических свойств оценок состояния через нелинейные функции. Алгоритм сначала генерирует набор значений состояния, называемых сигма-точками. Эти сигма-точки улавливают среднее значение и ковариацию оценок состояния. Алгоритм использует каждую из сигма-точек в качестве входа в функции перехода состояния и измерения для получения нового набора преобразованных точек состояния. Среднее значение и ковариация преобразованных точек затем используются для получения оценок состояния и ковариации ошибок оценки состояния.
Предположим, что уравнения перехода и измерения состояния для дискретно-временной нелинейной системы M-состояния имеют аддитивные условия процесса и шума измерения с нулевым средним значением и ковариациями Q и R соответственно:
[k] ~ (0, Q [k]) v [k] ~ (0, R [k])
Вы предоставляете начальные значения Q и R в ProcessNoise и MeasurementNoise свойства объекта фильтра Калмана без запаха.
В блоке программное обеспечение решает порядок предсказания и коррекции оценок состояния. В командной строке определяется порядок. Для получения информации о порядке выполнения этих команд см. predict и correct справочные страницы. Предполагая, что вы реализуете correct команда перед predict, программное обеспечение реализует алгоритм следующим образом:
Инициализируйте объект фильтра с начальными значениями состояния, x[0]и ковариация ошибок оценки состояния, P.
0 | − 1]) (x [0] − x ^ [0 | − 1]) T
Здесь ^ - оценка состояния, а ka 'kb] - оценка состояния на шаге времени.ka использование измерений на временных этапах 0,1,...,kb. Таким образом, − 1] является наилучшим предположением значения состояния перед выполнением любых измерений. Это значение задается при построении фильтра.
Для каждого временного шага k обновите ковариацию состояния и ошибки оценки состояния, используя измеренные данные, y[k]. В программном обеспечении, correct выполняет это обновление.
Выберите сигма-точки − 1] на временном шаге k.
Где + start) - масштабный коэффициент, основанный на количестве состояний M, и параметрах α и Дополнительные сведения о параметрах см. в разделе Эффект параметров альфа, бета и каппа. cP является квадратным корнем матрицы из cP, так ) T = и (cP) i является i-м столбцом cP.
Функция нелинейных измерений используется для вычисления прогнозируемых измерений для каждой из сигма-точек.
0,1,..., 2M
Объедините предсказанные измерения, чтобы получить предсказанное измерение в момент времени k.
Оцените ковариацию прогнозируемого измерения. Добавить R[k] для учета шума измерения присадки.
Сведения о параметре β см. в разделе Эффект параметров альфа, бета и каппа.
Оцените перекрестную ковариацию между − 1] ^ [k].
^ (i) [k 'k − 1] − y ^ [k]) T
Суммирование начинается от i = 1, поскольку [k' k − 1] = 0.
Получить ковариацию оцененного состояния и ошибки оценки состояния на временном шаге k.
[k 'k] = P [k' k − 1] − KPyKkT
Здесь K это выигрыш Калмана.
Предсказать ковариацию состояния и ошибки оценки состояния на следующем шаге времени. В программном обеспечении, predict команда выполняет это прогнозирование.
Выберите сигма-точки k 'k] на временном шаге k.
= 1,
Функция перехода нелинейного состояния используется для вычисления прогнозируемых состояний для каждой из сигма-точек.
[k 'k], us [k])
Объединение предсказанных состояний для получения предсказанных состояний в момент времени k + 1. Эти значения используются correct на следующем шаге времени.
Вычислите ковариацию предсказанного состояния. Добавить Q[k] для учета аддитивного технологического шума. Эти значения используются correct на следующем шаге времени.
+ β) − Mα2 (M +
Блок «Фильтр Калмана без запаха» поддерживает несколько функций измерения. Эти измерения могут иметь разное время выборки, если их время выборки кратно целому числу времени выборки перехода состояния. В этом случае выполняется отдельный этап коррекции, соответствующий измерениям из каждой функции измерения.
Предыдущий алгоритм реализуется в предположении аддитивных шумовых членов в уравнениях перехода состояния и измерения. Для улучшения числовой производительности программное обеспечение использует факторизацию квадратного корня ковариационных матриц. Для получения дополнительной информации об этой факторизации см. [2].
Если шумовые члены не являются аддитивными, основными изменениями алгоритма являются:
correct команда генерирует 2*(M+V)+1 сигма-точки с использованием P[k|k-1] и R[k], где V - количество элементов в шуме измерения v[k]. R[k] термин больше не добавляется в шаге 2 (d) алгоритма, поскольку дополнительные сигма-точки фиксируют влияние шума измерения наPy.
predict команда генерирует 2*(M+W)+1 сигма-точки с использованием P[k|k] и Q[k], где W - количество элементов в технологическом шуме w[k]. Q[k] термин больше не добавляется в шаге 3 (d) алгоритма, поскольку дополнительные сигма-точки фиксируют влияние шума процесса наP[k+1|k].
Чтобы вычислить состояние и его статистические свойства на следующем шаге времени, алгоритм фильтра Калмана без запаха генерирует набор значений состояния, распределенных вокруг среднего значения состояния. Алгоритм использует каждую сигма-точку в качестве входа в функции перехода состояния и измерения для получения нового набора преобразованных точек состояния. Среднее значение и ковариация преобразованных точек затем используются для получения оценок состояния и ковариации ошибок оценки состояния.
Разброс сигма-точек вокруг среднего значения состояния управляется двумя параметрами α и λ. Третий параметр, β, влияет на веса преобразованных точек во время вычислений ковариации состояния и измерения.
α - Определяет разброс сигма-точек вокруг среднего значения состояния. Обычно это небольшое положительное значение. Разброс сигма-точек пропорционален α. Меньшие значения соответствуют сигма-точкам, более близким к среднему состоянию.
start- второй параметр масштабирования, который обычно устанавливается равным 0. Меньшие значения соответствуют сигма-точкам, более близким к среднему состоянию. Разброс пропорционален квадратному корню, составляющему
β - Включает в себя предварительное знание распределения государства. Для гауссовых распределений β = 2 является оптимальным.
Эти параметры указываются в Alpha, Kappa, и Beta свойства незаметного фильтра Калмана. Если известно распределение состояния и ковариации состояния, можно настроить эти параметры для захвата преобразования моментов высшего порядка распределения. Алгоритм может отслеживать только один пик в распределении вероятностей состояния. Если в распределении состояний системы имеется несколько пиков, можно настроить эти параметры так, чтобы сигма-точки оставались в пределах одного пика. Например, выберите маленький Alpha для формирования сигма-точек, близких к среднему значению состояния.
[1] Саймон, Дан. оптимальная оценка состояния: Калман, H Бесконечность и нелинейные подходы. Хобокен, Нью-Джерси: Джон Уайли и сыновья, 2006.
[2] Ван дер Мерве, Рудольф и Эрик А. Ван. Международная конференция IEEE 2001 по акустике, речи и обработке сигналов. Разбирательство (Cat. № 01CH37221), 6:3461–64. Солт-Лейк-Сити, УТ, США: IEEE, 2001. https://doi.org/10.1109/ICASSP.2001.940586.