Синтез нечітких регуляторів на основі асоціативної пам’яті з апаратною реалізацією на ПЛІС



Стаття | Article    

Download

Розглянуто методику синтезу і реалізації швидкодіючих нечітких регуляторів на основі апаратної реалізації асоціативної пам'яті,призначених для побудови систем керування швидкодіючими об'єктами і процесами. Досліджено структури регуляторів, які забезпечують знаходження керуючого рішення напротязі 0.0001...0.0003 сек.

Ключові слова: регулятори, нечіткі множини, нечітка логіка, нейронні мережі, асоціативна пам'ять, програмована логіка

Synthesis of fuzzy controllers based on associative memory with hardware implementation on FPGA

In the report the method of synthesis and implementation of fast fuzzy controllers based hardware implementation of associative memory designed to implement high-speed control system objects and processes. Researched structures of regulators that provide of the solution control during 0.0001 ... 0.0003 seconds.

Keywords: controllers, fuzzysets, fuzzy logic, neural networks, associative memory, programmable logic.

Viatcheslav Nevolko graduate student, NTUU «Igor Sikorsky Kyivpolytechnic institute», Ukraine, Kyiv

В останні десятиріччя значна увага в теорії та практиці синтезу систем керування технічними об’єктами приділяється інтелектуальним системам з регуляторами, що базуються на нечітких множинах та нечіткій логіці і реалізують експертну технологію керування. Такі системи характеризуються значною робастністю по відношення до різного роду невизначеностей пов’язаних з нелінійністю та нестаціонарністю характеристик об’єкта, впливом зовнішніх та внутрішніх завад, тощо [1]. В більшості випадків такі регулятори використовуються для керування складними багатомірними інерційними об’єктами та процесами і реалізуються ЕОМ або контролерами. Для керування простими, але швидкодіючими об’єктами, де інерційність процесів знаходиться на рівні десятих, а то і сотих часток секунди, наприклад, при керуванні процесами, що мають місце в радіоелектронних пристроях,в елементах систем зв'язку, в різних системах синхронізації, регулятори на нечіткій логіці (НЧР) поки що не використовуються, в силу їх програмної складності і нестачі часу на обчислення, хоч, як показали дослідження, такі регулятори забезпечують більш високу стійкість та більш високі показники процесів керування в порівнянні з традиційним регулюванням.

Аналіз можливостей значного збільшення швидкодії НЧР вбачається шляхом відмови від процедури обчислень в реальному часі і переході до процедур пошуку керуючого рішення в середовищі синтезованої для даного об’єкта асоціативної пам’яті, що моделює роботу НЧР. Метою роботи є розробка методики синтезу та дослідження таких швидкодіючих НЧ-регуляторів.

Наданий час опубліковано величезну кількість робіт присвячених НЧР та системам керування на їх основі, створені спеціалізовані програмні оболонки, які можуть бути використані для синтезу, моделювання, налаштування та оптимізації НЧР і систем керування. Прикладом є відомий пакет нечіткої логіки Fuzzy Logic Toolbox та середовище моделювання систем керування Simulink системи MATLAB [1]. В переважній більшості робіт принцип функціонування НЧР базується на ідеях Мамдані, де в якості вхідних величин на НЧ-регулятор подається похибка та її часові похідні. Далі вектор вхідних величин шляхом фаззифікації перетворюється в вектор значень нечітких змінних, які використовуються в операціях нечіткого логічного висновку з використанням бази знань для одержання лінгвістичного значення керуючого рішення, яке після виконання операції дефаззіфікації подається на вихід регулятора, як керуючий вплив [1].

Дослідження обчислювальних процесів функціонування НЧР показало, що найбільш затратними в обчислювальному сенсі є алгоритм формування нечіткого логічного висновку та процедури дефаззіфікації, виходячи з чого в ряді робіт запропоновано використати для реалізації НЧР нечіткі нейронні мережі (ННМ), в яких зберігається основна структура НЧР, але всі обчислення виконуються навченою нейронною мережею[2].Такі НЧР дозволяють значно спростити процедуру налаштування регуляторів, але значно зменшити часові затрати на обчислення при програмній реалізації не вдається. Це можливо лише за рахунок апаратної реалізації ННМ, де розпаралелюються обчислення, однак така реалізація потребує значних апаратних затрат, оскільки фактично реалізує всю програму роботи НЧР.

Виходячи з того, що навчений НЧР фактично є автоматом, в якому кожному значенню вектора вхідних величин формується відповідний вектор вихідних, такий автомат можливо реалізувати нейромережею, яка може розглядатися як асоціативна пам'ять такого автомата. Розглянемо одну із можливих методик синтезу такого НЧР.

В роботі [1] запропонований метод проектування одного класу НЧР, заснований на отриманих аналітичним шляхом математичних залежностях, що пов’язують вектор вхідних величин з керуючими рішеннями на виході регулятора при різних формах функцій приналежності з двома і більше термами. При проектуванні і реалізації таких НЧР немає необхідності у використанні пакета нечіткої логіки і процедура їх проектування зводиться до програмування відповідних математичних залежностей. Налаштування таких регуляторів відбувається шляхом моделювання поведінки системи керування,наприклад, в середовищі Simulink системи MATLAB, за рахунок приведення до єдиного масштабу діапазонів зміни вектора вхідних і вихідних величин.

Відповідно до методики, на вхід НЧР подаються помилка системи $\theta $, швидкість її зміни $\dot{\theta }$ та прискорення зміни помилки $\ddot{\theta}$. Нечіткий регулятор працює як цифровий пристрій в дискретному режимі з періодом квантування $h$. На кожному кроці квантування $k$ помилка в системи дорівнює $\theta(k)$, а перша і друга похідні від помилки зазвичай обчислюють як першу і другу різницю за формулами:

Вектор вхідних величин ($\theta (k),\dot{\theta}(k),\ddot{\theta }(k)$) розглядаються як лінгвістичні змінні -похибка, швидкість зміни похибки, прискорення зміни похибки, відповідно. Кожна із лінгвістичних змінних описується відповідним, але однаковим, числом лінгвістичних значень – двома (позитивна, від’ємна), трьома (позитивна, нульова, від’ємна), п’ятьма і більше.Кожне із значень лінгвістичних змінних описується нечіткою множиною на універсумі $U=[0,1]$ однією із форм функцій приналежності ${{\mu }_{i}}(u)=f(u),\text{ }u\in [0,1]$, що представляють трикутні,гаусові, експоненційні, та інші форми функцій приналежності. Нечіткі множини розподіляються на універсамі $U=[0,1]$ симетрично:

\[{{A}_{m}}={{\theta }_{\max }}=-{{\theta }_{\min }}, {{B}_{m}}={{\dot{\theta }}_{\max}}=-{{\dot{\theta }}_{\min }}, {{C}_{m}}={{\ddot{\theta }}_{\max }}=-{{\ddot{\theta }}_{\min }}.\]

База знань регулятора формується відповідно з продукційним правилом:

\[Якщо ({{\theta}^{*}}=a_{1}^{j}) і ({{\dot{\theta }}^{*}}=a_{2}^{j}) і ({{\ddot{\theta }}^{*}}=a_{3}^{j}), то ({{m}^{*}}=a_{}^{j}),j=\overline{1,l},\]

де $a_{1}^{j}$, $a_{2}^{j}$ и $a_{3}^{j}$ - лінгвістичні оцінки похибки, її першої та другої похідних, які розглядаються як терм-множини на універсальній множині $U=[0,1]$, $j=\overline{1,l}$; $a_{}^{j}$ - лінгвістичні оцінки керуючої дії регулятора, що вибирається із терм-множини змінної $m$.

При подачі на регулятор в деякий момент часу значень вектора вхідних змінних ${{\theta }^{*}}$, ${{\dot{\theta }}^{*}}$ и ${{\ddot{\theta}}^{*}}$ с шагом квантування $h$ відбувається перерахунок (нормування) значень вхідних змінних в змінні ${{u}_{1}}^{*}$, ${{u}_{2}}^{*}$, ${{u}_{3}}^{*}$ и розрахунок значень їх функцій приналежності ${{\mu }_{1}}(u_{1}^{*}),{{\mu}_{1}}(u_{2}^{*}), {{\mu }_{1}}(u_{3}^{*}).$

Подальші обчислення значень керуючої дії uc (обчислення, що включають в себе дії над нечіткими множинами, що описують правила бази знань, та процедури дефаззіфікації методами Мамдані чи Сугено) проводиться у відповідності з аналітичними виразами приведеними в роботі [1]. Наприклад, для регулятора, де лінгвістичні значення вектора вхідних величин представлені двома термами (позитивна, від’ємна) з трикутними функціями приналежності формули для обчислень керуючої дії ${{u}_{c}}$ мають вигляд

\[{{u}_{c}}=\frac{B/2+({{A}^{3}}-{{B}^{3}})/6}{B+({{A}^{2}}-{{B}^{2}})/2}\text{ }A\le B\]

та

\[{{u}_{c}}=\frac{(A-{{A}^{2}}+{{B}^{2}})/2+({{A}^{3}}-{{B}^{3}})/6}{A-({{A}^{2}}-{{B}^{2}})/2}\text{ }A\ge B,\]

де $A=\min[{{\mu}_{1}}(u_{1}^{*}),{{\mu }_{1}}(u_{2}^{*}),{{\mu }_{1}}(u_{3}^{*})];$ $B=\min [{{\mu }_{2}}(u_{1}^{*}),{{\mu }_{2}}(u_{2}^{*}),{{\mu }_{2}}(u_{3}^{*})].$

Одержане значення ${{u}_{c}}$ далі перераховується (нормується) у вихідний сигнал регулятора у відповідності з формулою

\[{{m}^{*}}={{m}_{\max}}(1-2{{u}_{}}),\]

де ${{m}_{\max }}$ - максимальне значення вихідного сигналу.

Розгорнута структурна схема системи керування з НЧР та параметрами налаштування регулятора $F({{\theta }_{\max }},{{\theta }_{\min }}$,${{\dot{\theta }}_{\max }},{{\dot{\theta }}_{\min }},$ ${{\ddot{\theta }}_{\max }},{{\ddot{\theta }}_{\min }}$,${{m}_{\max }},{{m}_{\min }},h)$ показана на рис.1.

Рис. 1 Розгорнута структурна схема системи керування з НЧ-регулятором

Налагодження та дослідження системи керування з НЧР (рис.1) дозволяє отримати масив даних,що характеризує роботу регулятора і синтезувати на його основі нейромережеву модель НЧР регулятора. Виходячи з того, що вектор вхідних величин НЧР має три складові ($\theta $, $\dot{\theta }$, $\ddot{\theta}$) і один вихід (${{m}^{*}}$), то зовнішня структура нейромережі завжди буде мати три входи і один вихід. Внутрішня структура нейромережі може бути з одним прихованим шаром, оскільки нейромережа прямого поширення з трьома шарами дозволяє змоделювати будь яку нелінійну функцію відповідною кількістю нейронів в прихованому шарі [3].Виходячи з того, що складність функції яку реалізує НЧР залежить від кількості терм-множин,що описують вектори вхідних і вихідних величин та форми нечітких множин, синтез нейромережевого регулятора зводиться до вибору із можливих варіантів структури з мінімальною кількістю нейронів в прихованому шарі і підбору функцій активації нейронів. Оскільки на даний час не існує методик або чітких рекомендацій по вибору оптимальної структури нейромережі, використовується технологія створення ряду можливих варіантів нейромереж-кандидатів і відбір найкращої з них, яка з мінімальною похибкою відтворює НЧР.

Для реалізації такого підходу в середовищі MATLAB розроблено програмний пакет «MIMO-Plant», який дозволяє спочатку створити із одержаного масиву даних еталонну модель регулятора як об’єкта у просторі станів. Далі із масиву даних в пакеті «MIMO-Plant» генерується навчальна вибірка даних для створення і навчання нейромережі. Після генерації навчальної вибірки в пакеті формується ряд нейромережевих структур з трьома входами і одним виходом та різною кількістю нейронів (2-10) в прихованому шарі, вибирається алгоритм навчання та кількість навчальних ітерацій, після чого запускається процес навчання. Навчені нейромережі оцінюються на адекватність порівнянням їх реакцій з реакцією еталонної моделі регулятора на тестові сигнали і обчислення сумарної середньоквадратичної помилки:

\[\varepsilon=\sqrt{\frac{\sum\limits_{i=1}^{z}{{{(\hat{y}-y)}^{2}}}}{1}},\]

де $y$ – вихід еталонної моделі регулятора; $\hat{y}$– вихід нейромережевої моделі регулятора.

По результатах оцінки вибирається структура, в якої середньоквадратична помилка найменша. Вибрана нейромережа вважається адекватною НЧР, на її основі створюється модель системи керування аналогічна системі з НЧР і порівнюються показники їх роботи. При підтвердженні адекватності нейромережевого НЧР в складі моделі системи керування вирішується завдання реалізації його на елементах програмованої логіки (ПЛІС).

Для цього можна використати пакет ISEDesign Suite 13.2, який забезпечує синтез моделі нейромережі у вигляді програмного коду, і середовище ISim - для моделювання її роботи. Всі апаратні елементи нейромережі синтезується на мові VHDL. Кожний нейрон представляється окремим процесором, має свою матрицю констант,яка формується при налагоджені нейромережі, і представлену таблицею функцію активації. Всі нейрони одного шару запускаються на обчислення одночасно. Розрядність представлення вхідних і вихідних величин визначається необхідною точністю представлення даних і може бути, наприклад, 8-розрядним чи 16-розрядним двійковим числом.

Моделювання нейромереж і оцінка відповідно займаного ними ресурсу ПЛІС в кількості вентилів логічної матриці LUTs показав, що нейромережі з трьома входами і одним виходом та сигмоїдними функціями активації в прихованому шарі і двома нейронами займає ресурс в 2544 вентилів, з трьома – 3497, з чотирма – 4438 Отримані данні в LUTs можуть дещо змінюватись при зміні констант, що задають синаптичні ваги нейронів. Часові затрати на обчислення знаходяться в межах 150 – 200 наносекунд.

Висновок

Дослідження затрат часу на обчислення керуючого впливу різними реалізаціями НЧ-регулятора показало, що основна структура витрачає (0.1…0.25) сек, нейромережева – (0.01…0.03) сек, апаратна –(0.0001…0.0003) сек, що дозволяє їй керувати процесами зі швидкодією (0.5…1.0)10 -3 сек.

Перелік посилань

$1.$ Гостев В.И. Нечеткие регуляторы в системах автоматического управления. К.: Издательство “Радіоаматор”, 2008. - 972 с

$2.$ Рутковская Д. и др. Нейронные сети, генетические алгоритмы и нечеткие системы: Пер. с польск. И.Д. Рудинского. –М.: Горячая линия – Телеком, 2007. – 452 с.

$3.$ Саймон Хайкин. Нейронные сети. Полный курс. – М.: Вильямс, 2006. – 1104с.

Jun 9, 2017