Магистерская работа. Магистерская курсач. Вдосконалення методу апроксимації даних
Скачать 1.66 Mb.
|
Огляд недоліків методу найменших квадратів МНК найкраще підходить для сигналів які плавно наростають, але недолік цього методу в тому, що він погано апроксимує знакозмінні сигнали. Квадратична функція має вигляд: = + + , (3.13) де, a,b,c - числа, при чому a≠0. Нехай a=1, b=0, c=0, кількість відліків (точок) у сигналі N=1024. Графік апроксимованого сигналу та отриманих похибок зображено на рис. 3.1. 61 Рисунок 3.1 – Результати апроксимації квадратичної функції при N=1024 Для порівняння наведемо результати апроксимації гармонічної функції, яка має вигляд: = + ( ), (3.14) де а, , с – константи; а – постійна складова сигналу або його математичне сподівання; b – характеризує амплітуду коливань; = 2 , де f – циклічна частота сигналу, Гц. Нехай a=3, b=1, c=1, кількість відліків (точок) у сигналі N=1024, кількість періодів p=3, частота f=20Гц. Графік апроксимованого сигналу та отриманих похибок зображено на рис. 3.2. Також для порівняння проведемо апроксимацію перехідного процесу вигляду = + ( ) ∙ , (3.15) 0 0.05 0.1 0.15 Час, с 0 0.01 0.02 Початкова функція Апроксимована функція 0 0.05 0.1 0.15 Час, с 0 5 10 -18 Графік абсолютної похибки 0 0.05 0.1 0.15 Час, с 0 0.5 1 10 -9 Графік відносної похибки 62 де а, , с – константи; а – постійна складова сигналу або його математичне сподівання; b – характеризує амплітуду коливань; = 2 , де f – циклічна частота сигналу, Гц. Рисунок 3.2 – Результати апроксимації гармонічної функції при N=1024, p=3, f=20Гц Нехай a=3, b=1, c=1, кількість відліків (точок) у сигналі N=1024, частота f=20Гц. Графік апроксимованого сигналу та отриманих похибок зображено на рис. 3.3. Як видно з рис.3.2-3.3, дійсно, апроксимація знакозмінних сигналів (періодичного гармонічного та перехідного процесу) є дуже поганою у випадку, коли вона відбувається по всій довжині сигналу. Таким чином, як метод для вдосконалення, було обрано метод найменших квадратів. 63 Рисунок 3.3 – Результати апроксимації перехідного процесу при N=1024, f=20Гц 3.3 Вдосконалення методу апроксимації даних Багато методів цифрової обробки даних базуються на тому, що довжина оброблюваного сигналу має бути рівною 2 , де i – натуральне число. Це дозволяє використовувати швидкі алгоритми (тобто, частина операцій, наприклад, множення замінюються операцією суми і виконуються паралельно, а не послідовно). Такі алгоритми в багатьох випадках скорочують довжину сигналу до довжини 2 і , відкидаючи зайві відліки. Проте ці відліки можуть містити в собі дуже важливу інформацію, особливо в системах багатокласової діагностики, де у подальшому по виміряним сигналам буде визначатися поточний технічний стан і робитися прогноз. Отже, для вдосконалення методу найменших квадратів було запропоновано проводити апроксимацію не по повному сигналу, а розбивати його на частити, кожну з цих частин окремо апроксимувати, а потім збирати в єдиний сигнал. Такі дослідження було проведено у роботі [53]. 0 0.05 0.1 0.15 Час, с 2 3 4 Графік сигналу Початкова функція Апроксимована функція 0 0.05 0.1 0.15 Час, с 0 0.5 1 Графік абсолютної похибки 0 0.05 0.1 0.15 Час, с 0 20 Графік відносної похибки 64 Із основних недоліків, які було виявлено при такому підході можна назвати наступні: 1) Стрибки у місцях з’єднання сусідніх відрізків. 2) Автори робіт [53] та [54] розглядають у запропонованому методі апроксимацію поліномами до 80го порядку, що значно ускладнює алгоритм і збільшує час моделювання. Дані проблеми проілюстровано на рис. 3.4-3.5. Рисунок 3.4 – Результати апроксимації гармонічної функції при N=1024, p=3, f=20Гц Щоб зменшити вплив цих стрибків на стиках сусідніх сегментів, запропоновано проводити так зване згладжування (рис. 3.6-рис. 3.7), тобто проводити додаткову кускову апроксимацію в області з’єднання двох сусідніх сегментів. Кількість точок для згладжування обирається відповідно до кількості точок сегментів за певним алгоритмом. Кількість точок (відліків), узятих для кускової апроксимації, складає п’яту частину від довжини кожного відрізку, який приймає участь у процесі згладжування. 65 Рисунок 3.5 – Результати апроксимації перехідного процесу при N=1024, f=20Гц Рисунок 3.6 – Результати апроксимації гармонічної функції при N=1024, p=3, f=20Гц 66 Рисунок 3.7 – Результати апроксимації перехідного процесу при N=1024, f=20Гц Як видно з рис. 3.6-3.7, похибка у місці де був стик двох сусідніх сегментів значно знизилась, але на рівень загальної похибки це не вплинуло. Розіб’ємо вхідний сигнал на більшу кількість відрізків, тобто не на 2, як було у попередньому випадку, а, наприклад, на 8. Для початку покажемо випадок розділення вхідного сигналу на 8 частин, але без згладжування. Результати представлені на рис. 3.8-рис. 3.9. Загалом, похибку апроксимації можна знизити якщо збільшити кількість сегментів на які буде розділено вихідний сигнал. Наприклад, для двох сегментів відносна похибка сягала 15%, а для восьми – знаходиться в межах 0,009%. Проте, як видно з рис. 3.8-рис. 3.9 на графіках присутні екстремуми в місцях з’єднання сегментів. Ці екстремуми не змінюють порядок похибки, але збільшують значення середньої відносної похибки апроксимації. Для випадку ідеальних сигналів зміни незначні, але у випадку апроксимації сигналів, в яких міститься так званий шум, ці зміни можуть мати значно більший вплив на значення похибки. 0 0.05 0.1 0.15 Час, с 2 3 4 З н а ч е н н я ф у н кц ії Графік сигналу Початкова функція Апроксимована функція 0 0.05 0.1 0.15 Час, с 0 0.2 0.4 А б с о л ю тн а п о х и б к а Графік абсолютної похибки 0 0.05 0.1 0.15 Час, с 0 5 10 В ід н о с н а п о х и б ка , % Графік відносної похибки 67 Рисунок 3.8 – Результати апроксимації гармонічної функції при N=1024, p=3, f=20Гц Рисунок 3.9 – Результати апроксимації перехідного процесу при N=1024, f=20Гц 68 На рис. 3.10-рис. 3.11 представлений той самий випадок, але з використанням алгоритму згладжування. Таким чином, за рахунок згладжування (рис. 3.10-рис. 3.11) вдалось позбавитись від екстремумів, які були присутні на графіках рис. 3.8-рис. 3.9, що дозволило зменшити відносну похибку. Рисунок 3.10 – Результати моделювання гармонічної функції при N=1024, p=3, f=20Гц Перший недолік апроксимації, розглянутої у роботах [53] та [54] вирішено, залишилось усунути другий, який проявляється у складності розрахункового алгоритму, через необхідність використання поліномів з першого по восьмидесятий порядок. Як і в роботах [53] та [54] показником достовірності апроксимації обрано коефіцієнт детермінації, який характеризує так звану частку «поясненої» дисперсії і визначається як [54]: 69 Рисунок 3.11 – Результати апроксимації перехідного процесу при N=1024, f=20Гц k i i k i i i t f t f t t f R 1 2 1 2 2 1 , (3.16) де 2 R – коефіцієнт детермінації; t f i – вихідний вектор даних вимірювань; t f – математичне сподівання (середнє значення) вихідного ряду; t i – апроксимовані значення. Для спрощення розрахункового алгоритму та зменшення часу розрахунку було прийнято рішення зменшити порядок полінома, який використовується при апроксимації з восьмидесятого до п’ятого. Це дозволило спростити та прискорити розрахунок. Точність використання поліномів вище п’ятого порядку не дає значного зниження похибки апроксимації, що буде показано далі. Проведемо моделювання для різних значень максимального порядку полінома та наведемо графіки тільки відносних похибок: a) поліном 80-го порядку (рис. 3.12); 0 0.05 0.1 0.15 Час, с 2 3 4 З н а ч е н н я ф у н кц ії Графік сигналу Початкова функція Апроксимована функція 0 0.05 0.1 0.15 Час, с 0 1 2 А б с о л ю тн а п о хи б ка 10 -4 Графік абсолютної похибки 0 0.05 0.1 0.15 Час, с 0 5 В ід н о с н а п о хи б ка , % 10 -3 Графік відносної похибки 70 Рисунок 3.12 – Результати моделювання гармонічної функції при N=1024, p=3, f=20Гц b) поліном 5-го порядку (рис. 3.13); Рисунок 3.13 – Результати моделювання гармонічної функції при N=1024, p=3, f=20Гц c) поліном 4-го порядку (рис. 3.14); Рисунок 3.14 – Результати моделювання гармонічної функції при N=1024, p=3, f=20Гц d) поліном 3-го порядку (рис. 3.15). 71 Рисунок 3.15 – Результати моделювання гармонічної функції при N=1024, p=3, f=20Гц Як видно з рис. 3.12-3.13 збільшення порядку полінома з п’яти до восьмидесяти практично не впливає на похибку, тобто порядок похибки не змінюється. Проте зменшення максимального порядку полінома нижче 5-го, може призвести до зростання похибки в декілька разів, як це показано на рис. 3.14-3.15. Так як, описані вище два основні недоліки були вирішені, то можна приступати до вдосконалення методу найменших квадратів, шляхом введення інтерполяційних алгоритмів для коригування довжини сигналу. Як було зазначено вище, при обробці даних існує дуже багато швидких алгоритмів обробки, які працюють лише у тому випадку, коли довжина сигналу є рівною 2 , де i – натуральне число. Більшість цих алгоритмів скорочує сигнал до довжини 2 за рахунок відкидання останніх відліків. Проте ці відкинуті відліки можуть містити важливу інформацію, особливо в системах багатокласової діагностики, де оцінюється і прогнозується технічний стан об’єктів. Завдання прогнозування технічного стану об’єктів в експлуатації вирішується тим точніше, чим більше є інформації про стан об’єкта. Саме тому необхідно вдосконалити алгоритм апроксимації таким чином, щоб відліки не було втрачено при використанні швидких алгоритмів обробки даних. Оскільки довжина початкового сигналу у загальному випадку може бути довільною, було запропоновано перед апроксимацією попередньо проводити інтерполяцію початкового сигналу до довжини 2 . У даному алгоритмі це 72 здійснюється за допомогою інтерполяційних поліномів Лагранжа (див. РОЗДІЛ 2). Алгоритм апроксимації при наявності процесу інтерполяції виглядає наступним чином: 1) Оцінюється довжина сигналу. 2) Визначається найближча степінь двійки «i». 3) Визначається остача від ділення на 2 . 4) Якщо присутня остача, то проводиться інтерполяція сигналу до довжини 2 , остача відсутня – проводиться апроксимація. 5) Сигнал розбивається на окремі відрізки. 6) Кожен з цих відрізків апроксимується по всій довжині поліномами з першого по п’ятий порядок і обирається найбільш точне наближення (показником точності апроксимації виступає коефіцієнт детермінації). 7) Формується новий сигнал із апроксимованих відрізків. 8) У місцях з’єднання відрізків проводиться згладжування для зменшення похибки. Основною проблемою використання інтерполяції поліномами Лагранжа, як було показано у попередньому розділі, являється правильний вибір кількості вузлів інтерполяції. При неправильному виборі кількості вузлів інтерполяції у методі інтерполяційних поліномів Лагранжа виникають значні методичні похибки, які спотворюють результат. Як було показано, одним з найкращих варіантів для інтерполяції поліномами Лагранжа являється вибір від 16 до 32 вузлів інтерполяції. Саме тому було прийнято рішення розбивати сигнал на окремі сегменти для інтерполяції. Кожен з цих сегментів інтерполюється до певної довжини, а потім всі відрізки поєднуються в один сигнал. Таким чином, в основу вдосконаленого алгоритму було закладено пошук дільника довжини початкового сигналу, який знаходиться в межах від 15 до 40 відліків і розділяє початкову довжину на ціле число окремих відрізків для інтерполяції. Кожен з цих відрізків окремо інтерполюється до необхідної довжини і всі ці відрізки об’єднуються у єдиний сигнал. У даному випадку 73 похибка при об’єднанні відрізків відсутня, так як інтерполяція не змінює форму сигналу, а проходить через усі базові відліки. Отже, довжина початкового сигналу розбивається на відрізки від 15 до 40 відліків за алгоритмом програми. Це означає, що для визначення кількості проміжків інтерполяції, за алгоритмом проходить ділення початкової довжини сигналу по черзі на значення від 15 до 40, до того моменту поки не визначиться ціле число відрізків інтерполяції. Якщо при діленні від 15 до 40 ціле число відрізків не буде знайдено, то вводиться алгоритм коригування довжини початкового сигналу, який полягає в наступному: 1) Довжина сигналу ділиться на 32 відліки. 2) Округлюється до поточного цілого числа (тобто до цілого числа зліва від коми). 3) Отриману кількість відрізків інтерполяції множимо на 32 відліки, таким чином отримуємо нову довжину сигналу. 4) Знаходимо різницю між першочерговою довжиною сигналу та тією, до якої необхідно його привести. Отримаємо ту кількість відліків, яку необхідно виключити з початкового сигналу. 5) Якщо виключати відліки які йдуть підряд один за одним, то це може призвести до похибки інтерполяції, що, у свою чергу, призведе до збільшення похибки апроксимації. Тому було прийнято рішення виключати необхідну кількість відліків через однаковий крок, який розраховується наступним чином: довжину початкового сигналу ділимо на кількість відліків, які треба виключити, округлюємо до поточного цілого числа і від цього цілого числа віднімаємо одиницю (необхідно для того щоб не вийти за межі довжини початкового сигналу). 6) У циклі видаляється потрібна кількість елементів через визначений крок. 7) Повторно ведеться перевірка ділення націло нової довжини сигналу на значення від 30 до 40 відліків, якщо ділення націло не присутнє, то процес 74 повторюється. Даний крок використано, як запобіжник від можливих помилок, наприклад, при округленні. 8) При умові, що помилок при розрахунках не було, довжина одного відрізка інтерполяції складатиме 32 відліки. Оскільки початковий сигнал може містити будь-яку кількість відліків, навіть при коригуванні його довжини до умови ділення на 32 вузла інтерполяції, кожного разу необхідно буде додавати різну кількість відліків, щоб провести інтерполяцію до довжини 2 Оскільки кожного разу під час інтерполяції, як було показано вище, сигнал розбивається на фіксовану кількість точок від 15 до 40, то іноді може залишатись певна кількість відліків, які спочатку не можна повністю і рівномірно розподілити по усім відрізкам інтерполяції. Це означає, що ці зайві відліки можна включити не у всі відрізки. Необхідно розробити алгоритм, який би розподіляв усі додаткові точки по відповідним відрізкам інтерполяції за певним правилом. Наприклад, розділити додаткові точки на дві категорії: перша категорія включає в себе ті точки, якими можна заповнити кожен відрізок інтерполяції без виключення. Друга категорія – це та кількість точок, яка менша за кількість відрізків інтерполяції. Тобто, не в кожен відрізок інтерполяції можна включити додаткову точку, наприклад, початковий сигнал містить 1099 точок, найближче значення 2 це 1024 точки, тобто інтерполяцію необхідно проводити до 2048 відліків, але 1099 не ділиться націло на жодне число з проміжку від 15 до 40. Після коригування довжини (умова ділення на 32) у початковому сигналі залишається 1088 відліків і при інтерполяції необхідно додати 960 відліків у 34 проміжки інтерполяції, оскільки 1088/32=34. Проте 960 не ділиться націло на 34, залишається 8 відліків остачі (960-34*28=8). Це означає, що у кожен з 34 відрізків буде додано по 28 відліків при інтерполяції і залишиться 8 відліків, які необхідно додати у сигнал за певним правилом. Спочатку було розглянуто два варіанти: додавати по одному відліку у необхідну кількість відрізків (необхідна кількість відрізків співпадає з кількістю 75 відліків остачі, оскільки в кожен відрізок додаватиметься лише 1 відлік з остачі), починаючи з останнього та починаючи з першого відрізків. Нажаль, ні в рамках першого, ні в рамках другого варіантів не було знайдено єдиного алгоритму, який би правильно працював для усіх можливих довжин початкового сигналу. Саме тому було запропоновано у разі наявності остачі додавати по одному відліку в кожен відрізок інтерполяції і зайві відліки (для описаного прикладу в 34 відрізки треба додати не 8, а 34 відліки; зайвими вважаються 34-8=26 відліків) видаляти з сигналу, починаючи з кінця через певний крок, який відповідає довжині одного відрізка. Таким чином, удалося розробити універсальний алгоритм інтерполяції, який коректно працює для усіх довжин початкового сигналу. За наведеними алгоритмами розроблено відповідне програмне забезпечення в математичному пакеті MatLab. 3.4 Рекомендації щодо використання вдосконаленого методу в системах багатокласової діагностики Єдине обмеження вдосконаленого методу, яке було встановлено при розробці алгоритмічного та програмного забезпечення – початковий сигнал не може бути меншим за 15 відліків. Дане обмеження не є суттєвим при обробці виміряних масивів даних, які були попередньо записані у файл. При наявності необхідності роботи програмного забезпечення у режимі реального часу для оцінки та прогнозування технічного стану об’єктів системами багатокласової діагностики алгоритм програми легко вдосконалити для використання початкових сигналів довжиною від 2 відліків. Для 1 відліку існує нескінченна кількість можливих варіантів апроксимації, тому апроксимація при наявності лише одного відліку не є раціональним кроком. Також для використання розробленого програмного забезпечення в системах багатокласової діагностики необхідно мати відповідне програмне 76 забезпечення, включаючи патематичний пакет MatLab і апаратну частину, яка задовольняє мінімальним системним вимогам для використання названого математичного пакету. За необхідності дане програмне забезпечення може бути адаптоване під будь-яку мову програмування для зняття обмежень, щодо операційної системи, які накладає використання математичного пакету MatLab. |