Есть система заданная следующими равенствами. Это синхронный электродвигатель.
Надо синтезировать для неё наблюдатель. На данный момент результат следующий.
Переходим к ортогональной системе координат с помощью альфа-бета преобразования (оно же преобразование Кларка).
Для напряжения аналогично. И используем упрощенную дискретную модель.
Где
- период дискретизации.
Записываем наблюдатель по классической схеме. Далее обозначим за F вышеуказанное преобразование вектора состояния.
Здесь
- известное входное напряжение (
и
),
- измеренное значение тока (выход настоящей системы).
Весь вопрос в выборе матрицы
, которая очевидно не может быть постоянной.
Двигаемся дальше. Записываем функцию оценки отклонения состояния наблюдателя от состояния системы, или просто квадрат ошибки
.
Находим градиент
в пространстве состояний (возможно лучше называть это производной Ли, т.к.
не скаляр).
Выбираем матрицу
так, чтобы наблюдатель двигался `против градиента` уменьшая ошибку.
Теперь вопрос в выборе оптимального
. Либо есть вариант выбирать этот шаг таким образом, чтобы каждый раз оказываться в некоторой окрестности поверхности заданной уравнением.
Если я правильно понял в таком случае наблюдатель будет `sliding mode` (хорошего перевода не знаю). Не понятно насколько это лучше асимптотической сходимости.
Вопрос второй, как лучше сделать, что почитать. Пока я даже не уверен, что эта конструкция называется именно так я указал в заголовке. Идея пришла после ознакомления с MRAC и градиентным идентификатором. Возможно есть какие-то улучшения метода.
Вопрос третий, какие есть ещё варианты построения идентификатора исключая добавление идентифицируемых переменных в вектор состояния и использование ещё раз градиентного метода?
Дополнительные условия.
1. В измерениях
неизбежно будет шум.
2. Модификации фильтра Калмана (EKF/UKF) вычислительно тяжелы и не годятся в качестве наблюдателя.
Моделирую работу двигателя и наблюдателя численно в octave, пока результаты не очень хороши, иногда возникают долго незатухающие колебания в наблюдателе.
Спасибо.