- •Завдання на виконання дипломної роботи
- •6. Календарний план-графік
- •7. Консультанти з окремих розділів роботи:
- •Реферат
- •Перелік скорочень
- •Розділ 1 класифікація бпла
- •Класифікація бпла за способами управління
- •1.2. Класифікація бпла по використаних в них навігаційних системам
- •1.3. Перспективи застосування інерціальної навігаційної системи та її програмне забезпечення
- •1.4. Інерціальна та супутникова навігаційні системи
- •Розділ 2 бортове устаткування сучасних бпла
- •2.1. Склад бортового устаткування бпла
- •2.2. Пілотажно-навігаційні комплекси
- •2.3. Функції тактично-навігаційного комплексу
- •2.4. Елементи тактичної навігаційної системи
- •2.5. Наземна апаратура управління бпла
- •Розділ 3 математична модель бпла
- •3.1. Опис математичної моделі літального апарату
- •3.2. Рульові органи літального апарату і системи координат
- •3.3. Повна нелінійна модель просторового руху літака
- •3.4. Модель двигуна
- •3.5.Модель атмосфери і повітряних обурень
- •3.6. Модель Землі
- •3.7. Модель рульових органів
- •Розділ 4 Розробка алгоритмів управління бпла
- •4.1. Методи декомпозиції управління бпла
- •4.2. Математичний опис польотного завдання
- •4.2.1. Загальні положення
- •4.2.2. Петля Нестерова
- •4.3. Синтез управління на траєкторному рівні
- •4.3.1. Управління рухом літального апарату
- •4.3.2. Управління орієнтацією літального апарату
- •4.4. Розробка алгоритму управління літального апарату у вертикальній площині
- •4.5. Прокладка маршруту в географічних координатах
- •4.6. Програмна реалізація алгоритмів управління
- •4.7. Розробка блоку візуалізації польоту бпла по результатам вище наведених розрахунків.
- •Розділ 5 Розвиток систем з бпла
- •5.1. Проблеми розвитку систем з бпла
- •5.2. Шляхи вирішення проблеми створення систем з бпла
- •Висновки
- •Список використаних джерел
- •Додаток а Опис параметрів моделі
- •Додаток б Опис змінних
4.4. Розробка алгоритму управління літального апарату у вертикальній площині
Запишемо рівняння(4.24) в проекції на вісь ОZ у виді
, (4.36)
Для
побудови алгоритму управління необхідно
знайти оцінки функцій
і
.
Оскільки модель безпілотного літального
апарату нам повністю відома, то при
диференціюванні функції
знайдемо значення
і
.
, (4.37)
, (4.38)
(4.39)
Для побудови контроллера використовуємо алгоритм пропорційного управління.
(4.40)
Виходячи з умови збіжності був вибраний коефіцієнт з рівняння (4.35) :
Було проведено моделювання ЛА в середовищі Vissim на 3 траєкторіях:
рух по прямій із швидкістю 30 м/с;
набір висоти з 1000м до 1200м за 30с на швидкості 50 м/с;
мертва петля радіусом 500м і початковою швидкістю 50 м/с.
Моделювання проводилося при швидкості вітру(1;1;5) м/с
4.5. Прокладка маршруту в географічних координатах
На рис.4.4 зображено ділянку лінії великого кола, що з’єднує два проміжних пункта маршрута ППМ1 і ППМ2 . Вона утворює лінію заданого шляху, інакше – частну ортодромію. Задаючи декілька ППМів одержимо всю задану траекторію БПЛА. Саме задаванням промежуточних пунктів маршруту починається так звана його прокладка. Результатом прокладки є визначення довжин частних ортодромій і заданих шляхових кутів. Наведемо позначення на
Рис.4.4 Лінія заданого шляху між двома проміжними пунктами маршруту
нашому
рисунку: ППМ1
– перший (проміжних пунктів може бути
багато) проміжний пункт маршруту з
географічними координатами
;
ППМ2
- другий проміжний пункт маршруту з
географічними координатами
. A12
- прямий азимут першого ППМа – він і є
заданим шляховим кутом, якщо рух
здійснюється від першого до другого
ППМа. Це кут між напрямком на північний
полюс (дотичною до меридіану, що проходить
через перший ППМ) і напрямком шляху між
ППМами (дотичною до лінії великого кола
в точці першого ППМа); А21
– зворотній азимут першого ППМа –
визначається аналогічно; D12
– відстань між ППМами.
- позначення напрямків на північний
полюс.[26]
На сфері відстань можна вимірювати в кутових одиницях (4.42).
(4.42)
Вираз для заданого шляхового приведено нижче (4.43)
(4.43)
Вираз для зворотнього азимута має аналогічний вигляд.
Схематично роботу фрагмента розрахунку цих параметрів траєкторії можна представити у вигляді окремого блоку, на вхід якого подаються координати пунктів маршруту, а на виході з’являються обчислені прямий і зворотній азимути і відстань між проміжного пунктами маршруту.
4.6. Програмна реалізація алгоритмів управління
Базовим шаблоном проектування в архітектурі розробленого програмно-математичногозабезпечення являється (з деякими упущенням) MVC (model-view-controller).
Перевагами такої архітектури є можливість вільно та незалежно один від одного змінювати модель, представлення та контролер. Таким чином, зміни, зроблені в одній частині додатку не призводять до необхідності переробки всього дотдатку.
ComPort – клас, що відповідає за взяємодію з віртуальним Com портом ЦЕОМ оператора до якої підключається БПЛА. Основними методами являються:
- public ComPort(String port) – конструктор, що створює з’єднання;
- public void write(String query) - метод запису в ComPort;
- public void close() - метод, що закриває з’єднання з портом;
Рис. 4.5. UML діаграма класів моделі.
ComPort – клас, що відповідає за взяємодію з віртуальним Com портом ЦЕОМ оператора до якої підключається БПЛА. Основними методами являються:
- public ComPort(String port) – конструктор, що створює з’єднання;
- public void write(String query) - метод запису в ComPort;
- public void close() - метод, що закриває з’єднання з портом;
ComObserver – інтерфейс Com порта. Необхідний для реалізації шаблона проектування Observer.
DronesUpdateObserver - інтерфейс стеження за оновленнями інформації про БПЛА. Необхідний для реалізації шаблону проектування Observer.
BaseStation - клас, що представляє собою базову станцію. У цьому класі агрегована інформація про всі БПЛА.
Основними методами є:
- public void setComPort (String portName) - метод в якому відбувається створення об'єкта класу ComPort;
- public void onComReceive (String receiveString) - перевизначений метод інтерфейсу ComObserver. Цей метод викликається об'єктом ComPort, коли в порт надійшли нові дані. У ньому відбувається обробка даних;
- public void addDronesUpdateListener (DronesUpdateObserver obs) - метод, який стежить за оновленнями інформації про БПЛА. Необхідний для зв'язку з апаратом;
Drone - клас, що представляє собою окремо взятий БПЛА. Єдиною завданням цього класу є зберігання інформації про конкретно взятому БПЛА.
Основними полями є:
- private int id - унікальний ідентифікатор БПЛА, що співпадає з унікальним ідентифікатором пристроїв передачі на борту БПЛА;
- private ArrayList <DroneState> droneStates - список всіх об'єктів класу DroneState для конкретного БПЛА.
DroneState – класс, що представляє собою стан конкретного БПЛА в деякий момент часу.
Основними полями є:
- private float latitude - інформація про широту БПЛА;
- private float longitude - інформація про довготу БПЛА;
- private byte state - інформація про стан БПЛА;
- private byte job - інформація про завдання, що виконується БПЛА;
- private Date date - тимчасова мітка.
В основі архітектури моделі лежить клас BaseStation, який реалізує інтерфейс ComObserver. Також клас BaseStation зберігає список всіх БПЛА, які в свою чергу зберігають інформацію про всі свої стани. При надходженні інформації в ComPort викликається спеціальний метод BaseStation, який обробляє дані і оновлює інформацію про всю групу БПЛА.
Рис. 4.6. UML диаграма класів View.
DronesUpdateObserver - інтерфейс спостерігача за оновленнями інформації про БПЛА.
ManagerGui - клас-менеджер, містить в собі всі необхідні об'єкти для управління програмою.
Основним методом є:
- Public void onDronesUpdate () - метод, який викликає BaseStation при оновленні інформації про групу БПЛА;
WindowPanel - базовий клас для всіх панелей програми.
MainWindow - клас, успадкований від класу WindowPanel. Являє собою головну (стартову) панель програми. У ньому міститься панель вкладок, в якій містяться всі інші панелі програми.
Основними полями є:
- private DronesTablePanel dronesTablePanel - посилання на об'єкт класу DronesTablePanel;
- private TerminalPanel terminalPanel - посилання на об'єкт класу TerminalPanel;
- private DronePanel dronePanel - посилання на об'єкт класу DronePanel.
DronesTablePanel - клас, успадкований від класу WindowPanel. Являє собою панель для відображення таблиці з поточним станом БПЛА.
Основними методами є:
- private void setDronesTable () - метод, який отримує дані про групу з моделі і таблицю;
- public void redraw () - метод що оновлює відображення таблиці при оновленні інформації про БПЛА.
DronePanel - клас, успадкований від класу WindowPanel. Являє собою панель для відображення інформації про конкретний БПЛА.
Основними методами є:
- public DronePanel (final Manager manager, JFrame frame, final Drone drone, final MainWindow mainWindow) - конструктор, отримує дані про конкретний БПЛА з моделі;
- public void redraw () - метод що відповідає за відображення таблиці при оновленні інформації про конкретний БПЛА.
TerminalPanel - клас, успадкований від класу WindowPanel. Являє собою панель для відображення всієї інформації, що надходить в Com порт. Необхідний для налагодження та при виникненні позаштатної ситуації.
Основними методами є:
- public TerminalPanel (final Manager manager, JFrame frame) - конструктор, що містить всі необхідні елементи;
- public void onComReceive (String receiveString) - перевизначений метод інтерфейсу ComObserver. Викликаються при надходженні нової інформації в Com порт.
