- •Опис застосування програми bluej
- •3 Настанова з інсталяції програми
- •4 Технологія розробки програмного додатку
- •4.1 Розробка класу для завантаження налаштувань
- •4.2 Розробка класу регулятора
- •4.3 Розробка головного класу додатку
- •4.4 Проектування графічного інтерфейсу
- •4.4.1 Розмітка інтерфейсу вікон програми
- •Висновок
- •Список використаної літератури
- •Додаток а. Програмний код для обробки xml файлу з налаштуваннями програми
- •4.5 Розробка класу дляреалізації графічного інтерфейсу
- •Додаток б. Програмний код класу Controller
- •Додаток в. Програмний код класу Application
- •Додаток г. Програмний код класу gui
- •Додаток г. Програмний код класу Graph
- •Додаток e. Вхідні дані
- •Додаток ж. Файл «Object»
3 Настанова з інсталяції програми
Для інсталяції програмого пакету BlueJ потрібно запустити файл bluej.exe, далі відкриється вікно показане на рис. 3 .
Рисунок 3.1 - Вікно програми BlueJ
Щоб створити новий jarфайл, потрібно виконати команду Project-CreateJarFile… та у відкритому вікні показано на рис 3.2 встановити відповідні бібліотеки.
Рисунок 3.2 - Вікно CreateJarFileпрограми BlueJ
4 Технологія розробки програмного додатку
Діаграма класів, що відображає структуру проограми наведена на рисунку 4.1. Для розробки програми, як видно з діаграми, необхідно реалізувати наступні класи: основний клас додатку (Application), клас регулятора (Controller), клас реалізації графічного інтерфеейсу (GUI), клас для завантаження налаштувань (XMLInterface), клас побудови графіків (Graph).
Зверніть увагу, що бібліотеки, що не входять в стандартну поставку JDK необхідно підключати. У BlueJ підключення відбувається в діалозі налаштувань Tools–Preferences (вкладка Libraries).
Окремо від проекту повинні міститися такі файли: файл налаштувань програми, файли з розміткою форми, HTML файл з описом технологічного процесу (і вкладені зображення), піктограми для панелі інструментів, зображення з мнемосхемою технологічного процесу.
Рисунок 4.1 – Діаграма класів програмного додатку
4.1 Розробка класу для завантаження налаштувань
Використання XML для зберігання налаштувань програми є широко застосовуваним підходом у сучасному прикладному програмуванні. Зберігати налаштування вашої програми у форматі XML дуже зручно з ряду причин: простий і наочний синтаксис, можливість редагування простим текстовим редактором, наявність бібліотек програмних компонентів, які виконують синтаксичний розбір документа, які є в арсеналі практично будь–якого сучасного мови програмування.
Функціональним призначенням класу XMLInterface є завантаження налаштувань програми з XML файлу. Структура класу і приклад файлу налаштувань наведений на рисунку 4.2.
Рисунок 4.2 – Структура класу для завантаження налаштувань програми
Універсальним підходом для обробки XML файлів є використання парсеру зі стандартизованим програмним інтерфейсом (API) DOM. Даний інтерфейс дозволяє працювати з XML документом як з деревом вузлів, кожній з яких можна витягти, додати, змінити і видалитти.
РеалізаціяXML документа за допомогою DOM наведені в додатку А.
4.2 Розробка класу регулятора
Клас Controller предназначено для моделювання замкнутої системи керування з лінійно–квадратичним регулятором, яка виконується точно з кроком рівним dt. Для виконання в окремому потоці клас успадковується від класу TimerTask.
Рисунок 4.3 – Структура класу регулятора
На даний момент в Java відсутня стандартний клас для операції над матрицями, проте існує потужний пакет для виконання операцій над матрицями – JAMA, який претендує на те, щоб у майбутньому стати стандартним пакетом. Даний пакет розроблений Національним інститутом стандартних технологій США (NIST) і корпорацією Mathwoorks (розробник математичного пакета Matlab), забезпечує швидкість і точність обчислень.
Для цілей реалізації алгоритму досить використовувати три методи пакета для операції над матрицями: times (множення), plus (додавання), minus (віднімання). Для генерації випадкового збурення необхідно скористатися методом random класу Math, який генерує псевдовипадкове дійсне число в діапазоні від від [0.0 .. 1.0).
Код реалізації методу run ():
public void run()
{
if(work)
{
for(int i=0;i<inputs;i++)
f[i][0]=Math.random()*fmax[i];
if(!manual)
{
e=minus(y,z);
u=times(cr,xr);
xr=times (ar,xr);
xr1=times(br,e);
xr=plus(xr,xr1);
}
x=times(ad,x);
u1=plus(u,f);
x1=times(bd,u1);
x=plus(x,x1);
y=times(c,x);
}
Реалізація класу Controller наведено в додатку Б.
