||
6.3.4 Фильтрация данных

Устройство фильтра

Пользователь задает в интерфейсном окне три числа: \Delta 𝑃_{𝑚𝑎𝑥}, \Delta 𝑡_{𝑚𝑎𝑥}, \Delta 𝑡_{𝑚𝑖𝑛}. На каждом промежутке \Delta t_{max} остается только одна точка, если разность давлений между двумя соседними точками меньше или равна \Delta P_{max}. Если разность между соседними точками больше или равна \Delta P_{max}, а разность разница по времени в то же самое время меньше чем заданное максимальное значение, решение интерполируется на мелкую сетку, заданной величиной \Delta t_{min}.


Алгоритм прореживания массива данных

Оптимизация расчета экспонент. Аппроксимация Паде

Представление экспоненты Гаусса в дробно рациональном виде:

e^{-ax^{2}} = \sum\limits_{i=0}^{\infty}c_{i}x^{i} = \frac{a_{0}+a_{1}x+a_{2}x^{2}+...+a_{L}x^{L}}{b_{0}+b_{1}x+b_{2}x^{2}+...+b_{M}x^{M}} + O(x^{M+L+1})
(6.3.4.1)

Уравнение, из которого определяются коэффициенты b_{i}:

b_{0}=1
(6.3.4.2)
\left( \begin{array}{ccc} c_{L-M+1} & \cdots & c_{L} \\ \vdots & \ddots & \vdots \\ c_{L} & \cdots & c_{L+M-1} \end{array} \right) \times \left( \begin{array}{c} b_{m} \\ \vdots \\ b_{1} \end{array} \right) = -\left( \begin{array}{c} c_{L+1} \\ \vdots \\ c_{L+M} \end{array} \right)
(6.3.4.3)

Уравнения, из которых определяются коэффициенты a_{i}:

a_{0} = c_{0}
(6.3.4.4)
a_{i} = c_{i}+\sum\limits_{j=1}^{i}b_{j}c_{i-j}, \qquad i = 1,...,L
(6.3.4.5)

при условии, что c_{j}=0 при 𝑗 < 0.

При параметрах 𝐿 = 𝑀 = 2 расхождение на кривых начинается в пределах 1.5\sigma (\sigma = 1/\sqrt{2a}) (Рис. 6.3.4.1).

Рис. 6.3.4.1  Паде-аппроксимация для различных параметров 𝐿,𝑀.

Были перепробованы различные варианты параметров аппроксимации. В дальнейшем используются полиномы порядков 𝐿 = 0, 𝑀 = 3.


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

В итерационном процессе фильтрации по Калману оптимальное значение переменной в момент времени 𝑡 = 𝑡_{𝑘} вычисляется в следующей системе уравнений:

P_{k+1} = P_{k}+u_{k}+\xi_{k}
(6.3.4.6)
z_{k} = P_{k}+\eta_{k}
(6.3.4.7)
P_{k+1}^{\mbox{opt}} = K_{k+1}z_{k+1}+(1-K_{k+1})\left( P_{k}^{\mbox{opt}} + u_{k}\right)
(6.3.4.8)

где P_{k}^{\mbox{opt}} – требуемая оценка реальной величины 𝑃_{𝑘}z_{k} – показания счетчика; u_{k} – известное значение скорости изменения величины P_{k} умноженное на промежуток времени \Delta 𝑡_{𝑘} = 𝑡_{𝑘} − 𝑡_{𝑘−1}\xi_{𝑘} и \eta_{𝑘} – ошибки записи счетчика и в определении модели поведения системы соответственно; K_{k} – итерационно определяемый параметр Калмана.

Коэффициент Калмана рассчитывается по следующей формуле:

K_{k+1} = \frac{E\!\left( e_{k+1}^{2} \right)}{\sigma^{2}_{\eta}}
(6.3.4.9)
E\!\left( e_{k+1}^{2} \right) = \frac{\sigma_{\eta}^{2}\left( E(e_{k}^{2})+\sigma_{\xi_{k}}^{2} \right)}{ E(e_{k}^{2})+\sigma_{\xi_{i}}^{2}+\sigma_{\eta}^{2}}
(6.3.4.10)
E\!\left( e_{0}^{2} \right) = \sigma_{\eta}^{2}
(6.3.4.11)
e_{k} = P_{k}-P_{k}^{\mbox{opt}}
(6.3.4.12)

Пример применения фильтра Калмана к модельным зашумленным данным:

Рис. 6.3.4.2  Модельное давление

Рис. 6.3.4.3  Зашумленное давление

Рис. 6.3.4.4  Фильтрованное давление

Рис. 6.3.4.5  Разница между фильтрованным и модельным давлениями



Фильтрация приливных компонент шума

Применение экспоненциального сглаживания.

Скользящее среднее представляет собой фильтр низких частот с граничной частотой обратно пропорциональной ширине окна:

\nu_{\mbox{bound}} = \frac{1}{\mbox{window}}
(6.3.4.13)

Фильтрованный сигнал представляется следующим выражением:

P_{i}^{*}=\frac{\sum\limits_{j=1}^{N} P_{j} \exp\!\left[ \frac{(t_{j}-t_{i})^{2}}{2\pi\sigma^{2}} \right]}{\sum\limits_{j=1}^{N} \exp\!\left[ \frac{(t_{j}-t_{i})^{2}}{2\pi\sigma^{2}} \right]}
(6.3.4.14)

где \mbox{window} = 6\sigma.


Частотные характеристики построенного фильтра

На Рис. 6.3.4.6 и Рис. 6.3.4.7 представлены АЧХ и ФЧХ для двух значений окна: \mbox{окно}_{1} = 1/10\, \mbox{час} и \mbox{окно}_{2} = 24\, \mbox{час}.

Рис. 6.3.4.6  АЧХ и ФЧХ для фильтра при \mbox{окно}_{1} = 1/10\, \mbox{час}.

Рис. 6.3.4.7  АЧХ и ФЧХ для фильтра при \mbox{окно}_{2} = 24\, \mbox{час}.