Устройство фильтра
Пользователь задает в интерфейсном окне три числа: \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{час}. |