Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛРметодичка_2014.doc
Скачиваний:
104
Добавлен:
07.06.2015
Размер:
1.62 Mб
Скачать

Задание

1. Построить простейший наблюдатель. Использовать асимптотический идентификатор.

2. Реализовать фильтр Баттерворта.

3. Реализовать фильтр Бесселя.

4. Реализовать биноминальный полином.

5. Сделать выводы о проделанной работе.

Лабораторная работа №5 Оценивание состояний с помощью фильтра Калмана

Цель работы.

Для оценки состояний системы построить фильтр Калмана.

Теоретические сведения

На рисунке приведена структура фильтра Калмана.

  1. Рисунок 35 - Фильтр Калмана

Дано описание объекта:

Математическое ожидание:

Матрица ковариации:

Алгоритм расчета оценки по фильтру Калмана:

- оценивают текущую выборку.

- невязка между наблюдавшимся и предсказуемым значением.

- изменяющийся во времени матричный коэффициент.

- корректирует на основании ошибки текущую оценку.

В общем случае он получается решением нелинейного уравнения Риккати:

Коэффициент может быть определен реккурентно по следующим выражениям:

- априорное значение ковариационной матрицы погрешностей состояний, основанное на- наблюдений.

- апостериорное значение (после этого наблюдения) основанное на- наблюдениях.

Алгоритм решения:

1. Определяется априорное значение матрицы , т.е..

2. Рассчитывается апостериорное значение оценок матрицы , т.е..

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

4. Рассчитывается оценка состояний .

Методический пример

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

sys1=tf([5],[3 2 1])% задание передаточной функции системы

sys=ss(sys1)% задание системы в пространстве состояний

[A,B,C,D]=ssdata(sys); % формирование матриц системы

n=length(A); % определение порядка системы

t=0:0.001:2; % задание массива значений времени

x=zeros(n,1); % начальное значение математического ожидания сигнала

p=10000*diag(ones(n,1)); % начальное значение ковариационной матрицы сигнала

V=1000*diag(ones(n,1)); % ковариационная матрица входной помехи

R=10; % ковариационная матрица выходной помехи

eps=.001;% заданная погрешность сходимости Калмановского коэффициента

Lk (:,1)= eye(n,1); % начальные приближения

Lk (:,2)= ones(n,1);

i=2;

pk(1,i)=p(1,1); pk(2,i)=p(2,2);

whilenot (abs(Lk(1,i)-Lk(1,i-1))<eps & abs(Lk(2,i)-Lk(2,i-1))<eps)

i=i+1;

q=A*p*A'+V;

p=q-q*C'*inv(C*q*C'+R)*C*q;

L=p*C'*R^-1;

pk(1,i)=p(1,1); pk(2,i)=p(2,2);

Lk(:,i)=L;

end

Соберем в Simulink схему

  1. Рисунок – Схема

Далее необходимо задать разные начальные условия для интеграторов объекта и формирующего фильтра (50 и -30), для этого зададим необходимые значения в параметре InitialconditionблокаIntegratorи аналогично в блокеIntegrator1.

  1. Рисунок – Изменение начального условия у наблюдателя

Промоделируем систему. Построим раздельные графики выходных сигналов систем.

  1. Рисунок – Графики изменения переменных состояния: черный – объекта, синий – наблюдателя

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]