Дипломная (вкр): Розробка розподіленої інформаційно-навігаційної системи для диспетчерського центру автотранспортного підприємства

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Отже у наступному розділі необхідно провести аналіз технологій місцевизначення рухомих об’єктів, що використовуються у сучасних AVL системах.

2. Аналіз технологій місцевизначення рухомих об’єктів та їх застосування у сучасних AVL системах

2.1    Загальні відомості про методи місцевизначення та їх застосування у навігаційних системах

давніх часів була актуальна задача визначення точних географічних координат об’єктів на місцевості [3, 5]. Мореплавці в давнину, подорожуючи по своїх маршрутах, орієнтувалися за Сонцем вдень, по зірках - вночі. Визначивши висоту світил над горизонтом та їх часовий кут, а також знаючи їх небесні координати, вони могли точно зорієнтуватися в просторі, визначити своє місце розташування та відстань до пункту призначення. Нажаль, погодні умови далеко не завжди були ідеальними, так що можна було легко збитися з курсу.

Близько 1300 року в Європі було створено судновий компас. Компас - це найпростіший прилад, який представляє собою магнітну стрілку, закріплену на осі. З його появою завдання навігації в морі і на суші істотно спростилася. З цієї пори мандрівники вже в значно меншій мірі залежали від погоди. На початку XX століття був сконструйований надійний і точний прилад - гірокомпас. Він став використовуватися на великих морських судах. На відміну від звичайного компаса, гірокомпас використовує додатковий пристрій гіроскоп і вказує напрям не на магнітний полюс, а на справжній географічний.

В еру радіо перед людиною відкрилися нові можливості. З'явилися радіолокаційні станції та системи наземної навігації, які дозволяли визначати параметри руху і відносне місцезнаходження об'єктів в просторі за часом і напрямком поширення радіохвиль. На сьогоднішній день радіонавігаційні системи є найбільш точними і універсальними засобами місцевизначення [3-5].

З початку з’явилося поняття «радіопеленгація» - визначення напрямку на джерело радіовипромінювання. Радіопеленгація здійснюють за допомогою радіопеленгатора. Радіопеленгатор складається з антенної системи і приймально-індикаторного пристрою. Шляхом радіопеленгації джерела з двох і більш віддалених одна від одної точок можна визначити місце розташування джерела випромінювання з використанням методу тріангуляції (рис.2.1).

Рис.2.1. Пеленгаційний метод

При вимірюванні пеленгу, тобто напрямку поширення сигналу від джерела випромінення, який відкладається за годинниковою стрілкою від Півночі (визначається за компасом), будується лінія рівних пеленгів (ЛРП1), на якій знаходиться об’єкт з невідомими координатими. Для однозначного визначення горизонтальних координат об’єкта на поверхні Землі необхідно отримати радіосигнал від другого радіонавігаційного орієнтира (РНО2) і так само побудувати другу ЛРП2, яка перетнеться з першою ЛРП1 в одній точці.

Зворотно, при радіопеленгації двох і більше рознесених радіомаяків, місце розташування яких відомо, можна визначити положення радіопеленгатора. І в тому і в іншому випадку для отримання задовільної точності потрібно, щоб визначені напрямки достатньо відрізнялися один від одного. У першому випадку цього досягають вибором точок, з яких здійснюється радіопеленгація, в другому - шляхом вибору відповідних радіомаяків.

Радіопеленгація може бути в різному ступені автоматизована і використовувати різні радіотехнічні методи:

Амплітудний метод. Для пеленгації амплітудних методом застосовують антенну систему, яка має діаграму спрямованості з одним або кількома чіткими мінімумами або максимумами. Наприклад, при пеленгації джерела в УКХ діапазоні типовим є застосування антен типу хвильового каналу для пошуку по максимуму. В КХ діапазоні часто застосовується рамкова антена, діаграма спрямованості має форму вісімки з двома чіткими мінімумами. Для усунення неоднозначності доводиться застосовувати спеціальні технічні рішення (наприклад, підключення додаткової штирьової антени, що дозволяє виключити один мінімум і перетворити діаграму направленості в кардіоїду). Радіопеленгація цим методом може вироблятися як неавтоматично (шляхом повороту антени і пошуку максимуму або мінімуму на слух), так і автоматично.

Фазовий метод. При пеленгації фазовим методом застосовують антенну систему, яка дозволяє розрізняти сигнали, що приходять з різних напрямків, шляхом аналізу фаз прийнятих декількома антенами сигналів. Як правило, пеленгація цим методом автоматизована.

Допплерівський метод. Висновок про направлення (в деяких випадках - і про відстань) на джерело радіовипромінювання робиться на підставі характеру зміни доплерівського зсуву частоти сигналу, що приймається рухомим пеленгатором або рухається антеною пеленгатора. Допплерівський метод використовується, наприклад, при пеленгації аварійних радіобуїв міжнародної космічної системи пошуку і рятування потерпілих КОСПАС-САРСАТ.

Наряду з радіопеленгацією також використовується радіодальнометрія - визначення відстані між джерелом приймачем за часом і швидкістю поширення радіохвил. Радіодальнометрія використовується в радіолокаційних системах морського і авіаційного транспорту (системи інструментальної посадки), а також у сучасних системах супутникової навігації GPS і ГЛОНАСС.

Визначення відстаней R від рухомого об’єкта (РО) до що щонайменш 3-х радіомаяків (РНО) дозволяє побудувати три лінії рівних відстаней (ЛРВ), перетин яких дозволить визначити невідомі координати РО (рис.2.2).

Рис.2.2. Радіодальномірний метод на площині.

При розв’язанні спецзавдань за наявності обмеженої кількості радіомаяків та необхідності підвищення точності місцевизначення об’єктів використовують комбінації перерахованих методів, наприклад пеленгаційно-дальномірний (рис.2.3)

Комбінований пеленгаційно-дальномірний метод використовується для визначення місцезнаходження абонентів мереж GSM та Wi-Fi, але зазвичай він не дозволяє досягти такої точності місцевизначення як дальномірний метод.

Рис.2.3. Пеленгаційно-дальномірний метод на площині.

.2 Визначення координат об’єктів з використанням супутникових навігаційних систем

.2.1 Основні принципи і умови визначення координат об’єктів

У 60-ті рр. XX століття відбулася революція. Успішні запуски космічних апаратів позначили практичну можливість розробки системи глобального позиціонування, яка дозволяє обчислювати географічні координати на поверхні Землі і у навколоземному просторі шляхом вимірювання відстаней до декількох штучних супутників Землі [3, 5, 8].

Основними принципами визначення координат за радіосигналами навігаційних штучних супутників Землі (НШСЗ) є трілатерація, радіодальнометрія, точна часова прив'язка генераторів радіосигналу, уточнення ефемерид НШСЗ і корегування похибок визначенних координат.

Супутникова трілатерація - це спосіб визначення координат об’єкту через групу з 3-х супутників. Точні координати об’єкту можуть бути обчислені для місця на поверхні Землі через вимірювання відстаней від групи супутників, якщо відомо їх положення у просторі. У цьому розумінні НШСЗ є радіомаяками з відомими координатами. Якщо відстань від одного супутника відома, можна описати сферу заданого радіусу навколо нього (рис. 2.4, а).

 

а)                                                               б)

Рис. 2.4. Визначення координат об’єкту за сигналами групи НШСЗ

Якщо відома також відстань і до другого супутника, то місце розташування об’єкту буде у колі, що задається перетином двох сфер (рис. 2.4, б). Третій супутник визначає дві точки на колі (рис.2.5, а), а четвертий - одну (рис.2.5, б), яка і характеризує дійсне положення об’єкта у просторі.

а)                                            б)

Рис. 2.5. Визначення координат об’єкту за сигналами групи супутників

Проте для визначення горизонтальних координат наземних об’єктів (без висоти) у більшості випадків достатньо вимірювання відстаней до 3-х навігаційних супутників (рис. 2.2).

В обох випадках для визначення відстані між супутником і об’єктом з невідомими координатами знати час розповсюдження сигналу, тобто знати, коли радіосигнал «покинув» супутник і коли «досяг» приймача РО .Для цього на супутнику і в приймачі одночасно генерується синхронний псевдовипадковий код. Тобто приймач РО та передавач супутника синхронізовують так, щоб вони одночасно генерували однаковий код. Вхідний код супутника приймається РО та визначається як давно приймач генерував такий самий код (рис. 2.6).

Рис. 2.6. Визначення затримки часу прийнятого сигналу супутника відносно сигналу приймача РО

Використання цифрового двійкового коду дозволяє приймачу визначити часову затримку в будь-який момент часу. Крім того, супутники GPS випромінюють сигнал на однаковій частоті, але при цьому кожен супутник ідентифікується за своїм псевдовипадковим кодом (PRN або PseudoRandom Number code).

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

.2.2 Точність оцінки координат об’єктів за сигналами супутникових навігаційних систем та джерела похибок

Обчислення припускають, що сигнал поширюється з незмінною швидкістю, яка дорівнює швидкості світла у вакуумі. Проте в реальності все набагато складніше. Швидкість світла є константою тільки у вакуумі. Коли сигнал проходить через іоносферу (шар заряджених частинок на висоті 130-290 км) і тропосферу, його швидкість розповсюдження зменшується, що призводить до помилок у вимірюванні дальності [3, 8-10].

Іноді виникають помилки в ході атомних годинників і орбітах супутників, але вони зазвичай незначні і ретельно відстежуються зі станцій спостереження.

Багатопроменева інтерференція також вносить помилки у визначення місця розташування за допомогою GPS. Це відбувається, коли сигнал відбивається від об'єктів, розташованих на земній поверхні, що створює помітну інтерференцію з сигналами, що приходять безпосередньо з супутників. Спеціальна технологія обробки сигналу і продумана конструкція антен дозволяє звести до мінімуму це джерело помилок.

Усі похибки визначення координат об’єктів можна поділити на систематичні та випадкові. Систематичні похибки є відносно постійними величинами, що змінюються за визначеним законом і, як правило, характеризуються просторово-часовою кореляцією. Питома вага систематичних похибок навігаційних визначень зазвичай перевищує випадкові складові похибок, закон зміни яких визначити дуже складно.

Якщо розглядати систематичні складові похибок визначення координат РО за супутниковими РНС, то до основних чинників, що їх викликають, треба віднести: похибки часу і ефемерид, іоносферні похибки, а також так званий селективний доступ (штучне загублення сигналу GPS, яке було скасовано у 2000 р., але може бути знову активоване військовими). З таблиці 2.1 видно, що саме ці фактори роблять найбільший внесок у точність визначення відстаней між об’єктами і навігаційними супутниками.

У сучасних GPS приймачах використовують різні алгоритми усунення цих затримок, але похибки від деяких джерел, що виникають при роботі GPS, важко видалити.

Таблиця 2.1 Середньоквадратичні похибки вимірів псевдодальностей за СНС

Погрішності НП  СКВ, м ГНСС

Іоносферні

Тропосферні

Часу і ефемерид

Шуми приймача

Відбиття сигналів

Селективний доступ (S/A)

Загальний бюджет похибок

ГЛОНАСС

2

4

3

3

0

11

GPS

7

0,7

3,6

1,5

1,2

24

25,3/8,1*


Визначення псевдошвидкостей у приймачах сигналів СНС базується на вимірах доплерівського зсуву несучих сигналів. Похибка виміру радіальної швидкості за фазою знаходиться в межах 1,5 - 5,5 см./с. Основні складові похибок виміру псевдошвидкостей, визначених приймачем ГНСС за фазовими вимірами, наведені у таблиці 2.2.

Таблиця 2.2 Середньоквадратичні похибки виміру псевдошвидкостей за СНС

Джерела похибок

СКВ, м/с


ГЛОНАСС

GPS

1. Шум годинника супутника

3,3 10-2

3 10-2

2. Шум приросту виміру дальності

4,2 10-2

4 10-2


Дослідження і оцінка факторів, що впливають на рівень похибок визначення координат в різних умовах застосування приймачів СНС, показали, що похибки вимірювання псевдодальностей і псевдошвидкостей, які використовуються для розрахунку поточних координат і швидкості АТЗ, можуть значно перевищувати номінальні значення, наведені у таблицях 2.1 і 2.2.

В результаті чого номінальні (регламентні) значення похибок координат і швидкостей АТЗ, одержаних в результаті обробки псевдодальностей і псевдошвидкостей у приймачах СНС, суттєво перевищуються (табл.2.3).

Таблиця 2.2. Вплив експлуатаційних факторів на похибки визначення площинних координат рухомих об’єктів за СНС GPS

Похибка, м Складові 

Типове значення

Найгірший випадок

Бортовий годинник супутника

2-3

25

Положення супутника

1-2

5

Селективний доступ (SA)

30-50

100

Тимчасові флуктуації

3-5

15

Затримка сигналу в іоносфері

10-15

100

Затримка сигналу у тропосфері

3-5

30

Багатопроменеве поширення сигналу

10

50

Шуми приймача

5

15

Загальний ефект

100 (95%)

300 (99,99%)


Насамперед це трапляється коли функціонування навігаційної системи виходить за припустимі межі через внутрішні збої (зсув шкал часу НС, великі похибки розрахунку ефемерид і т.д.), а також коли бортова навігаційна апаратура АТЗ працює у складних (неблагоприємних) умовах.

Окремим фактором, який може у декілька разів збільшити похибку визначення координат об’єктів, викликану вищезазначеними факторами є так званий геометричний фактор погіршення точності. Геометричний фактор стандартно представляється у вигляді деякого коефіцієнту, який залежить від азимутів і кутів піднесення кожного навігаційного супутника, що знаходиться над горизонтом РО. Для визначення координат і складових швидкості об'єкта в СНС використовуються виміри псевдодальностей і радіальної псевдошвидкості. Випадкова некорельована частина похибки вимірювання псевдодальності називається еквівалентною похибкою дальності ЕПД (в зарубіжній літературі застосовується термін UERE -User Equivalent Range Error) [8, 10], а випадкова некорельована частина похибки вимірювання швидкості - еквівалентною похибкою швидкості ЕПШ (даному терміну відповідає англійське UERRE - User Equivalent Range Rate Error).

Як вже зазначалось у п.1.2.1 для визначення трьох просторових координат потрібно використовувати чотири незалежні виміри псевдодальностей до чотирьох супутників, що утворюють з РО деяку геометричну конфігурацію. Найпростішим і найзагальнішим підходом до оцінки точності визначення координат і системного часу є множення ЕПД на геометричний фактор зниження точності Г (в англійському варіанті DOP - delution of precision), що відображує взаємну геометрію чотирьох супутників і споживача. Аналогічно похибка визначення швидкості споживача і швидкості дрейфу годинників його оцінюється множенням ЕПШ на Г.

Добуток цього коефіцієнту Г на значення похибки навігаційних визначень () (СКВ) дає значення результуючої похибки місцевизначення РО за сигналами СНС [10, 11].

 (2.1)

Важливо відмітити, що вирішення навігаційної задачі фактично неможливе, коли осі векторів “споживач-супутник” знаходяться в одній площині (рис.2.7). Г при цьому нескінченно зростає. Навпаки ж значення Г набагато менше і відповідно менша похибка місцевизначення, коли навігаційні супутники, що використовуються для вирішення навігаційної задачі, розподілені по небу.

Рис.2.7                                                              Рис.2.8

Якщо розглядати випадок, коли навігаційні визначення здійснюються за 4-ма супутниками і осі векторів “споживач-супутник” утворюють тетраедр, тоді об’єм цієї геометричної фігури обернено пропорційно пов’язаний з величиною Г. Тобто чим більший об’єм тетраедра, тим менше значення Г і навпаки. Тетраедр найбільшого об’єму практично можливий у випадку, коли один із супутників знаходиться у зеніті над споживачем, а решта три розташовані з рівними кутовими відстанями (по 120 градусів) і якомога ближче до горизонту (рис.2.8). При такій геометрії коефіцієнт Г досягає свого мінімального значення 1,732.

Геометричний фактор завжди є невід’ємною складовою похибок навігаційних визначень, одержаних за будь-якою РНС. Зниження його впливу на результуючу точність навігаційних визначень можливе лише за наявності інформаційної надлишковості, коли існує можливість вибору оптимальних груп НШСЗ (наприклад при одночасній роботі за декількома сузір’ями супутників різних систем). У цьому випадку геометричний фактор береться в якості критерію вибору оптимальних груп НС і потребує мінімізації. Проте на практиці не завжди вдається забезпечити навігаційні визначення з мінімальним геометричним фактором. Специфіка роботи наземного транспорту, зокрема автомобільного, характеризується частим перебуванням його навігаційної апаратури у складних для поширення радіохвиль умовах, які призводять до появи ненормованих похибок навігаційних визначень.

У зв’язку з цим доцільно дати визначення поняттю „складні умови” і охарактеризуємо основні випадки, коли вони виникають. Під складними умовами експлуатації навігаційної апаратури СНС треба розуміти:

·   позиціювання транспортних засобів в умовах висотної міської забудови, в передгір’ях, ущелинах, просіках лісних масивів, поблизу високих берегів річок і водоймищ та інших рельєфних завад на шляху поширення сигналу від навігаційних супутників (НС) до АТЗ;

·        знаходження під кронами дерев, поблизу металевих решіток, транспортної контактної мережі та ліній високовольтних електропередач;

·        рух АТЗ у щільному транспортному потоці.

Причинами зростання похибок позиціювання у складних експлуатаційних умовах є:

·   наявність перевідбивання сигналів та їх захват навіть за відсутності прямих сигналів від НС;

·        часті втрати сигналів НС і припинення слідкування за фазою їх несучих;

·        пропуск фазових циклів;

·        неможливість відстеження сигналів одних і тих самих НС на протязі часу, достатнього для реалізації алгоритмів згладжування кодових вимірів фазовими.

Додатковий внесок у бюджет похибок позиціювання, що призводить до перевищення їх регламентованих значень згідно федеральних планів ГНСС ГЛОНАСС і GPS, викликаний:

·  багатопроменевим поширенням сигналів НС;

·        неможливістю забезпечення мінімального геометричного фактору робочих сузір’їв НС;

·        частою зміною складу робочих сузір’їв НС.

Перераховані фактори призводять до збільшення загальної похибки вимірів псевдодальностей до 100 і більше метрів (результуючі похибки позиціювання АТЗ досягають приблизно таких самих значень (табл.1.3)), що є неприйнятним для вирішення багатьох задач управління автотранспортом у містах і населених пунктах, особливо при перевезеннях цінних й небезпечних вантажів та супроводження VIP пасажирів.

.3      Режим диференціальної корекції координат

Диференціальна корекція координат - це метод, який значно покращує точність визначених за допомогою СНС GPS координат об’єктів [3, 8, 12]. Для реалізації диференційного режиму використовується приймач GPS, розташований в точці з відомими координатами (Differential Base Station), та інші пересувні GPS приймачі, що знаходяться поблизу базової станції (до 500 км) і визначають свої координати за тими ж самими навігаційними супутниками, що і базова станція (БС) (рис.2.9, 2.10).

Рис.2.9. Диференціальна корекція координат РО.

Основним призначенням диференційного режиму є компенсація (зниження) сильнокорельованих (систематичних) складових похибок координат РО, що знаходяться поблизу стаціонарної апаратури базової станції.

Вагова частка сильнокорельованих складових похибок координат визначених за сигналами СНС у середньому складає 70-90 %. Тобто якщо похибка визначення координат РО у номінальному режим роботи апаратури GPS за ідеальних геометричних умов знаходиться у межах 15-25 м., то у диференційному режимі знижується до 1-5 м.

Існує ряд ознак, за якими можна класифікувати диференційний режим:

) Тип основних вимірів - фаза коду або фаза несучої частоти сигналу;

) Тип корекції - корекція псевдодальності і псевдошвидкості або параметрів (координат, швидкостей і прискорень), що розраховуються на їх основі;

) Місце проведення процедури корекції - у споживача (на борту АТЗ) або у деякому центрі;

) Засоби передачі корегуючою інформації - неземні або супутникові системи радіозв’язку, канали Інтернет тощо.

Рис.2.10. Диференційний режим роботи ГНСС.

Згідно першої ознаки диференційна корекція може здійснюватися за результатами вимірів коду і фази несучої. Перший варіант стандартно підтримується багатьма сучасними приймачами GPS і не потребує додаткових апаратних елементів, що підвищують їх вартість.

Другий спосіб, детально описаний у [3,8], потребує безперервного (без зривів) стеження за фазою несучої та відсутності пропусків фазових циклів. Реалізація диференціальної корекції за фазою несучої потребує дорогої навігаційної апаратури (класу RTK), яка має обмежену область застосування (геодезія і геологія). Застосування такої апаратури на наземному транспорті у більшості випадків є недоцільним. Отже існує необхідність розробки більш простих та економічно прийнятних рішень для використання в рамкахсистем класу AVL.

Найбільше розповсюдження на практиці одержав метод диференційної корекції координат, розрахованих за кодовими вимірами (рис.А.1 у додатку А). Співставляючи власні координати , виміряні за сигналами НШСЗ, з апріорно відомими координатами фазового центру антени  базова станція розраховує відповідні похибки власного місцевизначення :

     (2.2)

Відомо, що величина цих похибок місцезнаходження є приблизно однаковою для усіх споживачів ГНСС, які знаходяться поблизу базової станції і визначають свої координати за одними й тими ж оптимальними сузір’ями навігаційних супутників з координатами . Тому ці похибки можуть використовуватись в якості виправлень для уточнення координат рухомих об’єктів , визначених їх бортовою навігаційною апаратурою у номінальному режимі:

,         (2.3)

Метод введення виправлень у координати є порівняно простим, але має істотні недоліки - обмеження дальності дії та застосування однакових (визначених за власним оптимальним сузір’ям) виправлень до координат усіх РО, що знаходяться в зоні дії БС. Дійсно, апаратура РО використовує для розрахунку власних координат навігаційні супутники, що утворюють оптимальні (за геометричним фактором і рівнем сигналу) сузір’я, а тому і БС повинна використовувати ті ж самі сузір’я. Насправді ж для розрахунку виправлень БС використовує власні оптимальні сузір’я НС, які не завжди співпадають з робочими сузір’ями РО. В результаті чого застосування виправлень до координат РО, що знаходяться на різному віддаленні від БС, може призвести до суттєвого зниження ефективності диференціальної корекції. По мірі віддалення РО від БС точність визначення координат РО буде ще більше погіршуватись. Цей недолік можна зменшити якщо проводити централізовану обробку інформації за наявності не просто координат РО, а відстаней до навігаційних супутників і відповідних виправлень до них, що передаваються з БС. Це дозволяє апаратурі РО обирати ті сузір’я навігаційних супутників, які є оптимальними для визначення координат конкретного об’єкту. Схема застосування методу диференціальної корекції псевдовідстаней наведена на рис.А.2 (додаток А).

.4 Застосування методу відносно-диференційних визначень координат рухомих об’єктів в AVL системах

Як вже зазначалось на сьогоднішній день найбільш ефективним методом підвищення точності навігаційних визначень є застосування разом з навігаційними супутниками наземних базових станцій диференційного режиму, що виробляють виправлення до координат рухомих об’єктів. Проте, суттєвим недоліком диференційного режиму корекції координат або псевдодальностей, що обумовлює його обмежене застосування в AVL системах, є необхідність використання дорогої навігаційної апаратури з точною геодезичною прив’язкою на місцевості і додаткових телекомунікаційних каналів для передачі корегуючих повідомлень. На даний момент в Україні поки що не створено повноцінної мережі БС диференціального режиму, хоча роботи у цьому напрямку ведуться.

У зв’язку з вищенаведеним, пропонується застосувати в AVL системах більш просте і порівняно недороге рішення, що базується на алгоритмічній реалізації методу відносно-диференційних визначень навігаційних параметрів АТЗ [14, 15], що використовує різницеві виміри псевдодальностей до навігаційних супутників. На відміну від стандартного диференційного режиму, згідно якого координати АТЗ корегуються за допомогою виправлень, вироблених БС, відносно-диференційний метод використовує властивість відносних різницевих вимірів навігаційних параметрів. При цьому усі АТЗ повинні знаходитись у межах робочої зони БС (ДЦ) і використовувати для навігаційних визначень однакові оптимальні сузір’я НШСЗ (рис.2.11).

Рис. 2.11. Схема організації збору первинної навігаційної інформації у диспетчерському центрі.

Практичне застосування цього методу передбачає наявності на борту АТЗ і в диспетчерському центрі однакового відносно недорого навігаційного обладнання у складі: приймачів сигналів ГНСС і пристроїв зв’язку.

Процес обробки навігаційної інформації розподілений на три етапи і починається, як і у номінальному режимі, з вимірювання апаратурою АТЗ часової затримки проходження сигналу від кожного з  видимих НШСЗ до  АТЗ та розрахунку відповідних псевдодальностей (відстаней „приймач АТЗ-НС”) :

,     (2.4)

де  - часова затримка поширення сигналу від - го НШСЗ до -го АТЗ, - швидкість поширення радіохвиль у просторі.

Навігаційна апаратура ДЦ закріплюється на місцевості з високою точністю і проводить розрахунок псевдодальностей до кожного навігаційного супутника (рис. 2. 11).

На основі відомих координат апаратури ДЦ і розрахованих псевдодальностей визначаються азимути і кути місця кожного НС відносно ДЦ.

Розраховані на борту АТЗ псевдодальності синхронно передаються каналами зв’язку у ДЦ для проведення комплексної (вторинної, третинної) обробки та визначення координат АТЗ. При цьому суттєвою перевагою такого варіанту порівняно зі стандартним рішенням (коли у ДЦ передаються готові координати АТЗ) є те, що під час передачі каналами зв’язку навігаційна інформація перебуває у непридатному для використання третьою стороною вигляді, що сприяє загальному покращенню її захисту. До того ж перенесення подальшої (вторинної, третинної) обробки навігаційної інформації у ДЦ дозволяє суттєво спростити бортову навігаційну апаратуру АТЗ і знизити вартість апаратно-програмного комплексу АСМДУ НТ.

Розраховані набори псевдодальностей  збираються у ДЦ для проведення вторинної обробки, що передбачає спочатку розрахунок різниць (приростів) псевдодальностей , які були визначені на борту АТЗ і апаратурою ДЦ, за формулою:

,        (2.5)

де ,- відповідно псевдодальності між парами “ДЦ - N-й супутник” і “k-й АТЗ - N-й супутник”.

Таким чином, диференційний ефект отримується завдяки компенсації сильнокорельованих складових похибок при вимірюванні приростів псевдодальностей між парами “k-й АТЗ - N-й супутник” і “ДЦ - N-й супутник”. Визначення приростів псевдодальностей здійснюється з високою точністю (залишкова похибка складає декілька дм).

Отримані таким способом прирости псевдодальностей  через матрицю  направляючих косинусів азимутів і кутів місця зв’язуються з приростом координат  кожного АТЗ відносно ДЦ.

,                 (2.6)

де  - матриця направляючих косинусів кутів місця  і азимутів ; у матриці направляючих косинусів елементи стовпців задають коефіцієнти по широті, довготі, висоті і часу, а кожен рядок відповідає різниці дальностей від до N-го супутника. Значення кутів місця  і азимутів  можна вважати однаковими для ДЦ і АТЗ, що знаходяться поблизу.

Знаючи точні координати ДЦ  (можуть визначаються шляхом геодезичної прив’язки або усереднення великої вибірки навігаційних вимірів) і розрахувавши за (2.6) , можна з високою точністю визначити координати АТЗ, що знаходяться в робочій зоні опорної станції ДЦ:

     (2.7)

У першому наближенні точність запропонованого методу відповідає диференційному режиму корекції координат, тобто залишкові похибки місцевизначення складають 1-5 м. Проте ефективність обох методик (звичайної і відносної) значно зменшується при зростанні відстані між АТЗ і ДЦ. Як показали дослідження гранична відстань між АТЗ і ДЦ, при якій доцільно застосовувати локальний диференційний режим (використовується один стаціонарний приймач СНС з відомими координатами), складає приблизно 500 км., що в принципі достатньо для моніторингу міських, приміських і навіть міжміських перевезень.

Загалом точність як стандартного так і відносного диференційних режимів може бути оцінено лінійною залежністю [8, 11] середньоквадратичного сферичного відхилення похибки місцевизначення () від відстані  і затримки надходження виправлень t (або первинної навігаційної інформації) у центр обробки (рис.2.11):

       (2.8)

де  м,  м/с,  м/км.

Обробка експериментальних даних показала, що погрішності (СКВ) лінійної апроксимації похибок за допомогою (2.8) при оцінці компенсацій псевдодальностей можуть характеризуватися залежністю:

,        (2.9)

де м, Т = 3847 с, км.

З урахуванням (2.8) і (2.9) середньоквадратичне сферичне відхилення при відносному місцевизначенні одного з пари об’єктів може бути визначено наступним співвідношенням:

,        (2.10)

де  - геометричний фактор для точності визначення просторових координат (PDOP), а  були визначені вище.

У випадку застосування відносно-диференційного методу коефіцієнт b буде мати більше значення (приблизно на 15-20%), що пов’язано з появою додаткових похибок через неточність вимірів апаратурою АТЗ і ДЦ азимутів та кутів місця навігаційних супутників у матриці косинусів, які приймаються однаковими незалежно від відстані між ними.

Значною перевагою запропонованого відносно-диференційного режиму є використання однакової навігаційної апаратури побутового класу у ДЦ та на всіх АТЗ, що є необхідною умовою ефективної компенсації сильнокорельованих погрішностей при роботі з однаковими сузір’ями навігаційних супутників. Завдяки цьому запропонована методика може бути легко реалізована на базі будь-якого апаратно-програмного комплексу AVL системи.

Проте запропонований відносно-диференційний метод, як і стандартна диференційна корекція координат, включає лише детерміновані процедури обробки, які не дозволяють зменшити несистематичні (слабокорельовані) складові похибок навігаційних визначень, що викликані впливом випадкових експлуатаційних факторів. Тому для підвищення результативності відносно-диференційного методу доцільно використовувати усю корисну інформаційну надлишковість навігаційної системи. Це означає, що в обробку повинна залучатись якомога більша кількість навігаційних вимірів, одержаних від множини навігаційних підсистем, зокрема одразу декількох елементарних сузір’їв НШСЗ систем GPS, ГЛОНАСС (у перспективі ГАЛІЛЕО), наземних систем „Чайка” і „Лоран С”.

Випробування, проведені в рамках науково-дослідної роботи [16] показали достаньо високу ефективність роботи методу відносно-диференціальних визначень координат АТЗ на тестовому маршруті (рис.А.3-А.5 у додатку А).

Висновки по розділу

У другому розділі дипломної роботи було проведено аналіз технологій та методів визначення координат об’єктів, що використовуються у сучасних AVL системах, зокрема були розглянуті кутомірний і дальномірний метод, за яким проводяться визначення координат з використанням наземних та супутникових навігаційних систем. За в результаті опрацювання теоретичного матеріалу та опублікованих результатів експериментальних досліджень було визначено, що точність визначення координат рухомих об’єктів з використанням СРНС є імовірнісною характеристикою, що залежить від впливу багатьох факторів, найбільш значними з яких є:

-       неточність визначення ефемерид супутників;

-        зсув шкали часу апаратури споживача відносно атомної шкали часу навігаційних супутників;

         іоносферна і тропосферна затримка поширення сигналів навігаційних супутників;

         геометричний фактор погіршення точності.

Для підвищення точності визначення координат об’єктів за сигналами СНС було розглянуто варіанти реалізації диференційного режиму роботи обладнання користувачів СНС. В якості найбільш точного варіанту обрано диференціальний метод корегування відстаней до навігаційних супутників з кодовими вимірами. Але цей варіант також потребує удосконалення і адоптації для успішного застосування в AVL системах. Отже на практиці пропонується застосувати більш економічно вигідний відно-диференційний метод, що передбачає використання у диспетчерських центрах та на всіх контрольованих АТЗ однакових навігаційних приймачів побутового класу, що на порядок дешевші за супутникову навігаційну апаратуру геодезичного класу.

У випадках, коли трапляються збої у роботі супутникової навігаційної системи і похибки місцевизначення сягають неприйнятних значень або взагалі неможливо визначити координати АТЗ, тоді доцільно використовувати інші джерела радіосигналів (GSM, Wi-Fi/Wi-Max або навіть RFID технологію).

3. Проектно-конструкторський розділ

3.1 Обгрунтування інформаційної структури і апаратного забезпечення AVL системи

.1.1 Основні функції створюваної системи та характеристики її інформаційного забезпечення

Задавданнями даного розділу дипломної роботи є описання інформаційної структури AVL системи, розробка алгоритмів функціонування її окремих елементів та вибір програмних засобів для створення системи.

Спочатку визначимо основні функції створюваної системи та характеристики інформаційного забезпечення.

Система надає адміністраторові наступні функції:

-    оновлення та індексація векторних карт місцевості,

-        керування реєстром транспортних засобів,

         оновлення версій ПЗ.

Операторові (користувачу) доступні такі функції:

-    перегляд фрагменту карти у питомому масштабі,

-        перегляд поточного місцезнаходження транспортних засобів,

         перегляд ретроспективних даних щодо місцезнаходження, швидкості та напряму руху транспортних засобів

Система розмежовує права доступу користувачів та відповідно надає такі функції:

-    реєстрація користувачів,

-        оновлення версій ПЗ;

         перегляд таблиць БД;

         додавання та індексація файлів векторної карти;

         перегляд фрагменту карти у вказаному масштабі;

         перегляд поточного місцезнаходження транспортних засобів;

         перегляд ретроспективних даних щодо місцезнаходження, напряму та швидкості руху ТЗ.

Вхідною інформацією для системи є:

-    файли, у яких збережено векторну карту місцевості;

-        файли з індексною інформацією;

         навігаційні дані щодо місцезнаходження, напряму та швидкості руху ТЗ, збережені у БД;

         файл налаштувань з’єднання з БД;

         ТСР та UDP-пакети даних від трекерів;

         реєстраційні дані трекера.

Вхідні дані вводяться з клавіатури, з файлу та надходять з мережі Internet.

Вихідними даними є:

-        перегляд таблиць БД;

-        побудовані індексні дані;

         графічне відображення фрагменту карти у визначеному масштабі;

         графічна інтерпретація поточного місцезнаходження ТЗ;

         графічна інтерпретація ретроспективних даних щодо місцезнаходження ТЗ;

         запити до БД, згенеровані на базі даних від трекерів;

         графічна інтерпретація отриманих від трекера даних.

         Вихідна інформація виводиться на екран монітора і зберігається у базі даних.

Інформаційне забезпечення системи включає в себе внутрішньомашине інформаційне забезпечення.

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

Дані системи зберігаються у вигляді записів реляційної бази даних та структурованих текстових ini-файлів.

Робота з базою даних відбувається через інтерфейс користувача, написаний на мові Borland Delphi 7.

3.1.2 Вимоги до апаратного забезпечення

Загальні вимоги до системи

Дана версія автоматизованої системи повинна функціонувати на базі моделі «клієнт-сервер» з реалізацією «товстого» клієнта. Серверна частина складається з сервера бази даних. Клієнтська та серверна части можуть розгортатися як локально (на одному вузлі), так і з можливістю віддаленого доступу (розподілена система).

Користувач може продивлятися вхідні та вихідні дані через інтерфейс системи.

Система повинна функціонувати протягом необмеженого часу, обмеження можуть визначатися тільки ресурсом апаратного забезпечення.

Персонал, що використовує систему, повинен вміти працювати з MS Windows та його додатками.

Вимоги до апаратного забезпечення

Для функціонування системи потрібен звичайний офісний комп'ютер. Мінімальна конфігурація комп'ютера:

процесор із частотою від 1800 Mhz;

оперативна пам'ять від 512 Мб;

жорсткий диск від 4 Гб;

монітор від 15';

клавіатура;

миша.

Чітких вимог до відеокарти нема.

Вимоги до системного програмного забезпечення

Для забезпечення роботи системи повинна бути встановлена операційна система Windows 98/2000/XP/7, а також СУБД MySQL.

Система запускається на виконання після встановлення СУБД MySQL, створення і заповнення таблиць бази даних, встановлення та індексації векторних карт місцевості.

3.2 Розробка структури AVL системи і алгоритмів функціонування її окремих модулів

.2.1 Модульна структура системи

Для реалізації функцій розподіленої інформаційної-навігаційної системи збору, збереження, обробки та відображення навігаційних і службових даних було розроблено її структуру (рис. 3.1).

Рис. 3.1. Структурна схема системи

До складу системи входять наступні блоки:

1.     Блок ТСР-серверу.

2.      Блок UDP-серверу.

.        Блок декодування даних від трекерів.

.        Блоки інтерфейсу з БД.

.        База даних системи.

.        Блоки інтерфейсу адміністратора та диспетчера.

.        Блок зчитування карт.

.        Блок індексування.

.        Блок масштабування та візуалізації.

На початку роботи система виконує завантаження налаштувань (рис. 3.2).

Після завантаження налаштувань система виконує спробу з’єднання з БД. Якщо з’єднання встановити не вдалося, система виводить відповідне діагностичне повідомлення та завершує свою роботу. Якщо з’єднання встановлене успішно, система визначає тип інтерфейсу та функціоналу за налаштуваннями.

Додаток може бути налаштовано для виконання функцій клієнта або сервера.

Якщо програма працює у режимі клієнта, то після вибору режиму роботи виконується завантаження векторних карт місцевості та індексних даних. Після цього система ініціалізує початкові координати та переходить до очікування та обробки команд користувача. Якщо користувач ініціював вихід з системи, система завершує свою роботу.

Якщо додаток працює у серверному режимі, після визначення типу функціоналу система налаштовує сервери ТСР та UDP. Після виконання налаштувань серверів система переходить до очікування команд користувача та мережевих пакетів даних від трекерів.

У разі надходження пакету система його обробляє та вносить необхідні зміни до даних у БД та повертається до режиму очікування.

Якщо надійшла команда від користувача-адміністратора, система виконує відповідні дії та повертається до режиму очікування. У разі надходження команди «Вихід» система закриває відкриті з’єднання та завершує роботу.

Рис. 3.2. Узагальнений алгоритм роботи системи

Взаємодія між клієнтськими та серверними додатками виконується за допомогою розподіленого використання БД.

.2.2 Розробка структури бази даних

БД було розроблено на основі реляційної моделі [9]. Дані представлені у вигляді двовимірних таблиць, пов’язаних між собою зв’язками типу «один-до-багатьох».

Розроблена база даних складається з шести таблиць (рис. 3.3), в яких зберігається інформація, що стосується відомостей про трекери, навігаційні дані, дані про підрозділи підприємства, транспортні засоби, на яких встановлено трекери, типи трекерів.

Рис. 3.3. Концептуальна схема бази даних

Перегляд та модифікація даних таблиць виконується за допомогою формування SQL-запитів.

Таблиця vehicles містить інформацію про окремі ТЗ та їх положення на поточний момент.

Таблиця 3.1 Поля таблиці «vehicles»

Назва поля

Ключ

Тип даних

Коментар

VehicleID

Pr.key

Int

Ідентифікаційный код ТС

VehicleRegNumber

унікальне

Сhar(8)

Бортовий номер ТС

VehicleTypeID


Short

Код марки ТС

GroupID

Default = 0


Код підрозділу

PositionX


Double

Довгота (град)

PositionY


Double

Широта (град)

Speed


Short

Швидкість (км/ч)

Course


Short

Курс (град)

VehicleStatus

Default = «0;»

Char(25)

Статус ТС

Pdop


Short

Параметр геометрії сузір’я

Nsatellits


Short

Число супутників

Validity

Default = 1

Int (1)

Ознака достовірності

RSSY


Short

Параметр RSSY (для Р23)

GMTime1


long

Службове поле для «чорної скрині»

GMTime2


Long

Службове поле для «чорної скрині»

GMTime3


Long

Час найпершої позначки у БД

GMTime4


Long

Час останньої нав. позначки у БД

PhoneNumber


Vсhar(11)

Телефонний номер

DriverName


Vchar(45)

Дані про володаря

Comments


Vchar(25)


VehicleColor

Default = 0

Long

Колір навіг. позначки

DeviceType

Default = 0

Int(1)

Тип пристрою: 0 - навігатор 1 - диспетчер; 2 - Р23 3 - чорна скриня

DevType

Default = “Navigator”

VChar(25)

Тип пристрою

VoiceGroup

Default = 0

Int(1)

Група голосового зв’язку (для Р23)

Protocol

Default = “V3.01”

VChar(25)

Версія командного протоколу

BlowfishKey


VChar(32)

Шифрувальний ключ


Поля GMTime задають час у секундах від 01.01.1970 по GMT.

У полі VehicleStatus міститься список статусів ТЗ, в якості розділювача використовується “;”

Таблиця «vehtypes» містить інформацію про марки транспортних засобів.

Таблиця 3.2 Поля таблиці «vehtypes»

Назва поля

Ключ

Тип даних

Коментар

VehicleTypeID

Pr.key

Short

Код марки

TypeText


Varchar(30)

Марка

Q1


DOUBLE

Тарировочний коефіцієнт для аналогового входа - Ain0 (0-4В)

Q2


DOUBLE

Тарировочний коефіцієнт для аналогового входа - Ain1 (0-4В)


DOUBLE

Тарировочний коефіцієнт для аналогового входа - Ain2 (0-40В)

Q4


DOUBLE

Тарировочний коефіцієнт для аналогового входа - Ain3 (0-40В)

TypeColor


Int(4)

Колір навіг. позначки


Таблиця «navdata» містить ретроспективну інформацію про навігацію.

Таблиця 3.3 Поля таблиці «navdata»

Назва поля

Ключ

Тип даних

Коментар

VehicleID

Pr.key

Int

Ідентифікаційний код ТС

GMTime

Pr.key

long

Час в сек

PositionX


Double

Довгота (град)

PositionY


Double

Широта (град)

Speed


Short

Швидкість (км/ч)

Course


Short

Курс (град)

VehicleStatus

Default = ‘0;’

Char(25)

Статус ТС

Pdop


Short

Параметр точности

NSatellits


Short

Число супутників

Validity

Default = 1

Int(1)

Ознака достовірності

Visible

Default = 1

Int(1)

Ознака відображення на карті

DataChannelID


Int(1)

Канал передачі даних

RTFlag

Default = 1

Int(1)

Ознака real-time

Ain0


Short

Напруга живлення

Ain1


Short

Рівень виібрації

Ain2


Short

Датчик 1

Ain3


Short

Датчик 2

Din


Int(1)


Dout


Int(1)


Track

Default = 0

Short

Пройдена відстань у метрах


Таблиця «trackers» містить реєстраційну інформацію щодо трекерів. За допомогою цієї таблиці виконується прив’язка IMEI трекера до його реєстраційного номера у системі.

Таблиця 3.4 Поля таблиці «trackers»

Назва поля

Ключ

Тип даних

Коментар

IMEI

Pr.key

Char(15)

IMEI код трекера

VehicleID


int

Ідентифікаційний код трекера в базі

tracker_type


int

Код типу трекера

descr


Char(30)

Текстова примітка


Таблиця «trackertypes містить інформацію про типи трекерів, з якими може працювати система.

Таблиця 3.5 Поля таблиці «trackertypes»

Назва поля

Ключ

Тип даних

Коментар

tracker_type


int

Код типу трекера

tracker_name


Char(30)

Назва типу трекера


Таблиця «Units» містить дані про структурні підрозділи підприємства.

Таблиця 3.6 Поля таблиці «Units»

Назва поля

Ключ

Тип даних

Коментар

VehicleID

Pr.key

int

Ідентифікаційний код ТС

Preffix


Char(30)

Назва підрозділу


.2.3 Блок взаємодії з БД

Блок виконує функції зв’язку системи з СУБД MySQL та контроль коректності додавання (рис. 3.4).

Блок реалізовано за допомогою технології ADO.

Під час запуску програми після ініціації серверів до поля «Connection String» компоненту «ADOConnection» завантажуються дані з файлу «constr.ocs». Ці дані являють собою побудований певним чином рядок з’єднання з БД. Редагування таблиць БД здійснюється за допомогою компонентів «ADOTable». Запити виконуються за допомогою компонентів «ADOQuery». Усі компоненти ADOTable та ADOQuery зв’язуються з БД через налаштований компонент ADOConnection.

Рис. 3.4. Схема роботи блоку взаємодії з БД

На початку роботи блок отримує запит до БД від одного з модулів системи. Після цього запит транслюється у мову SQL та передається до СУБД. Якщо запит потребує відповіді, блок чекає на її надходження, після чого відповідь передається відправникові запиту. Після обробки запитів блок завершує роботу.

3.2.4 Блоки інтерфейсу користувача

Взаємодія користувача з програмним комплексом відбувається через інтерфейс. Інтерфейс реалізовано у вигляді екранних форм, на яких розміщені візуальні компоненти, за допомогою яких користувач викликає необхідні функції комплексу, задає вхідні дані, зберігає результати роботи системи.

Віконний користувацький інтерфейс системи побудовано за технологією багатодокументного інтерфейсу MDI. Головне вікно системи є контейнером для дочірніх інструментальних та діалогових вікон.

За допомогою інтерфейсу користувач може:

редагувати перелік трекингових пристроїв;

редагувати перелік транспортних засобів;

реєструвати нові пристрої у системі;

продивлятися карту місцевості з відображенням місцезнаходження, напрямку та швидкості руху пристроїв;

продивлятися протокол роботи системи;

виконувати налаштування системи.

3.2.5 Блок зчитування векторних карт

Блок зчитування карт зчитує дані з файлу векторної карти у форматі *.mp та заповнює відповідні структури у програмі (рис. 3.5). Дані щодо географічних об’єктів типу «Полігон» (Polygon), «Полілінія» (Polyline) та «Точка POI» заносяться у масив географічних об’єктів у оперативній пам’яті. Одночасно з цим дані щодо опорних точок цих об’єктів теж заносяться у масиви в оперативній пам’яті.

Рис.3.5. Схема роботи блоку зчитування векторних карт

.2.6 Блок індексації

Для пришвидшення відображення карти застосовується система індексування. При першому відкритті карти або якщо файли індексу пошкоджені відбувається індексація. Процес індексації полягає у відокремленні однієї з координат у окремий масив та сортуванні цього масиву (рис. 3.6).

Оскільки процес індексації, особливо на великих картах, є довготривалим, після побудови індексу він зберігається у вигляді типізованих файлів ptlat.ix та ptlon.ix. При наступному завантаженні програми індекс завантажується з цих файлів.

Рис. 3.6. Схема роботи блоку індексації

3.2.7. Блок масштабування та візуалізації

Блок призначено для створення растрового зображення на базі векторної карти, з урахуванням масштабу та положення нормалі (рис. 3.7).

У сучасних навігаційних системах карти здебільшого зберігаються у векторних форматах. Водночас графічні адаптери сучасних ПК працюють з растровими зображеннями.

Оскільки дані щодо опорних точок побудови карти зберігаються у вигляді значень широти та довготи у градусах, являючи собою полярні координати на поверхні сфери, а область побудови є пласкою проекцією цих координат, необхідним є перетворення координат опорних точок у координати пласкої поверхні та перехід від градусів полярних координат до метрів декартової площини, а згодом - до пікселів області побудови згідно з обраним масштабом.

Рис.3.7. Схема роботи блоку масштабування та візуалізації

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

Після формування списків точок окремих географічних об’єктів вони візуалізуються за допомогою стандартних методів класу TCanvas.

3.2.8 Блоки серверів ТСР та UDP

Блоки серверів ТСР та UDP працюють за схожими схемами (рис. 3.8).

Рис. 3.8. Схема роботи блоків серверів ТСР та UDP

На початку роботи блок виконує отримання налаштувань серверного сокета. Після цього відповідний сокет налаштовується на очікування підключень до вказаного налаштуваннями порта сервера. У якості серверного сокета ТСР система використовує компонент TServerSocket з палітри компонентів середовища Delphi. Побудову серверного сокета UDP виконано з використанням компонента TIDUDPServer з палітри компонентів Delphi. Номер порта, що використовується компонентами за замовченням - 20010. У разі необхідності це значення можна змінити за допомогою налаштувань системи. Діапазон рекомендованих значень - від 1024 до 65535.

.2.9 Блок декодування даних

Блок декодування отримує дані, що надійшли від трекерів, та виділяє з них інформацію щодо номеру, місцезнаходження та режиму руху трекера (рис. 3.9).

Рисунок 3.9. Схема роботи блоку декодування даних

На початку роботи блок завантажує перелік моделей трекерів та властивих їм сигнатур пакетів, після чого переходить до очікування даних. У разі надходження даних блок виконує пошук сигнатури. Якщо сигнатуру не знайдено, блок формує повідомлення щодо неопізнаного пакету. Якщо сигнатуру знайдено, блок виділяє з пакету ІМЕІ пристрою та виконує пошук трекера у БД. Якщо трекер не знайдено, блок формує діагностичне повідомлення щодо незареєстрованого трекера, інакше виконує декодування полів пакету та додавання інформації до БД.

3.2.10 Блок налаштувань

Блок налаштувань виконує налаштування модулів та режимів роботи системи. Блок дозволяє налаштовувати параметри автоматичного режиму, період опитування стану мережі, розміри ехо-пакетів, параметри з’єднання з БД.

Користувач отримує доступ до налаштувань за допомогою екранних форм інтерфейсу.

.2.11 Блок відносно-диференційних визначень координат об’єктів

Блок відносно-диференційних визначень координат об’єктів призначений для проведення процедури уточнення координат шляхом визначення різниць псевдодальностей, виміряних однотипними примачами сигналів навігаційних супутників, один з яких встановлений у ДЦ, а інші - на борту транспортних засобів. Процедура відносно-диференційних визначень була описана у п.2.4 даної роботи, а алгоритм роботи блоку наведений на рис.3.10.

Отже вхідними даними є: набори псевдодальностей, виміряних апаратурою ОС () і апаратурою АТЗ () в однакові (максимально близькі) моменти часу, СКВ визначення псевдодальностей апаратурою ОС () і апаратурою АТЗ ().

Рис. 3.10. Алгоритм вирішення навігаційної задачі з використанням відносно-диференційного методу.

Передумовою рішення навігаційної задачі за відносно-диференційним методом є визначення орієнтації базової лінії між приймачами АТЗ і БС, а звідси азимутів і кутів місця усіх навігаційних супутників, що знаходяться у межах радіовидимості БС [14,15]. На основі одержаних значень азимутів і кутів місця НШСЗ формується т.зв. матриця направляючих косинусів і розраховується значення геометричного фактору для кожного сузір’я НШСЗ. Далі розраховуються прирости псевдодальностей для кожного АТЗ і відповідно вектори відносних координат

В ході рішення навігаційної задачі з використанням відносно-диференційних визначень може бути використана різна кількість n пар вимірів псевдодальностей. Мінімальною необхідною кількістю вимірів для визначення планових координат АТЗ є n=3.

У випадку наявності надлишкових вимірів псевдодальностей у кількості некратній трьом (3<n<6 або 6<n<9,..).для пошуку оптимального рішення може застосовуватись алгоритм МНК [3]. В разі, коли  кратне трьом навігаційна задача вирішується окремо по кожному набору пар псевдодальностей. Таким чином, застосування запропонованого алгоритму (рис.3.10) за наявності надлишкових вимірів від інших навігаційних систем (СНС GPS, ГЛОНАСС, Galileo) дозволяє одержувати декілька результатів вимірів координат і відповідних похибок їх розрахунку по кожному АТЗ.

Даний алгоритм завдяки проведенню різницевих вимірів дозволяє знизити рівень сильнокорельованих (систематичних) складових похибок навігаційних визначень, але вимагає введення додаткових процедур статистичної обробки для зниження рівня залишкових (несистематичних) похибок навігаційних визначень Для досягнення найвищої точності оцінки координат АТЗ необхідно знайти оптимальне рішення з усієї множини одержаних варіантів.

3.3 Вибір засобів розробки програмного забезпечення

.3.1 Вибір мови програмування

Як середовище розробки було обрано Borland Delphi 7.0 - одна з найбільш потужних систем, що дозволяє на найсучаснішому рівні створювати як окремі прикладні програми Windows, так і розгалужені комплекси, призначені для роботи в корпоративних мережах і в Інтернет.Delphi дозволяє з невеликими витратами сил і часу розробити прикладні програми різного рівня складності, розподілені програми, що працюють з будь-якими базами даних [17, 18].Delphi - це комбінація декількох важливих технологій:

-   високопродуктивний компілятор в машинний код;

-       об'єктно-орієнтована модель компонентів;

-       візуальна (а, отже, і швидкісна) побудова програм з програмних прототипів;

-       засоби, що масштабуються, для побудови баз даних.

Основною перевагою об'єктно-орієнтованої моделі програмних компонент в Borland Delphi є максимальне ревикористання коду. Це дозволяє розробникам будувати додатки дуже швидко із заздалегідь підготовлених об'єктів, а також дає їм можливість створювати свої власні об'єкти для середовища Borland Delphi. Немає жодної різниці між об'єктами, що поставляються виробниками Borland Delphi, або третіми фірмами, і об'єктами, які може створити розробник програмного забезпечення. Delphi включає повний набір візуальних інструментів для швидкої розробки програм (RAD - rapid application development), що підтримує розробку призначеного для користувача інтерфейсу і підключення до корпоративних баз даних. VCL - бібліотека візуальних компонент, включає стандартні об'єкти побудови призначеного для користувача інтерфейсу, об'єкти управління даними, графічні об'єкти, об'єкти мультимедіа, діалоги і об'єкти управління файлами, управління DDE і OLE. Delphi - це інструмент, за допомогою якого легко створити програму з професійним інтерфейсом, є можливість працювати з будь-якими базами даних, створювати прикладні програми.

3.3.2 Вибір СУБД

З усього розмаїття СУБД вирішено вибрати СУБД MySQL - компактний багатопоточний сервер баз даних. MySQL характеризується високою швидкістю, стабільністю и легкістю у використанні. MySQL є ідеальним рішенням для малих та середніх додатків. Вихідний код сервера компілюється на множину платформ. підтримує мову запитів SQL в стандарті ANSI 92, має ряд розширень до цього стандарту, котрих не мають інші СУБД.

Наведемо короткий перелік можливостей MySQL:

-   підтримка не лімітованої кількості користувачів, що одночасно працюють з базою даних.

-       кількість рядків у таблицях може досягати 50 млн.

-       висока швидкість виконання команд;

-       проста та ефективна система безпеки;

-       можливість безкоштовного використання для некомерційного застосування.

Для розробки AVL системи була обрано СУБД MySQL тому, що вона є безкоштовним продуктом і задовольняє вимогам до швидкодії і стабільності роботи під навантаженням. Також важливим є те, що MySQL адаптована для роботи з ОС Linux та веб-сервером Apache.

.4 Керівництво користувача по встановленню і роботі з програмним забезпеченням системи

.4.1 Встановлення програмного забезпечення

Система поставляється у вигляді архіву, що саморазпаковується і складається з трьох файлів (лістинг головного файлу наведений у додатку Б):

·        NavSysCS.exe - виконуваний файл додатку;

·        ConStrBuilder.exe - інструмент для налаштування з’єднання додатку з БД;

·        constr.ocs - файл з налаштуваннями.

Для роботи з системою необхідно розкрити архів у будь-яку вільну папку (Рис. 3.11).

Рис. 3.11. Інтерфейс саморозкриваючогося архіву

Для роботи системи необхідно встановити драйвер ODBC для MySQL версії не нижче 3.51 та створити системний псевдонім для бази даних. Для цього слід відкрити Панель керування->Адміністрування->Джерела даних ODBC (рис. 3.12).

Рис. 3.12. Створення нового джерела даних ODBC

Далі необхідно обрати закладку «Системний DSN» та натиснути кнопку «Додати». У вікні вибору драйвера (рис. 3.13) необхідно обрати «MySQL ODBC 3.51 Driver» та натиснути кнопку «Готово».

Рис. 3.13. Вибір драйвера ODBC

У вікні налаштувань драйверу треба задати ім’я джерела даних, адресу сервера (якщо БД знаходиться не на локальному комп’ютері), ім’я користувача, пароль та обрати базу даних (рис. 3.14).

Рис.3.14. Налаштування драйвера ODBC

Після заповнення вказаних полів треба натиснути «ОК».

Останнім підготовчим кроком є налаштування сервера на роботу зі створеним джерелом даних, що здійснюється за допомогою програми ConStrBuilder.exe (рис. 3.15). У полі «Provider» треба вказати «MSDASQL.1». Значення «PersistSecurityInfo» - «False». У полі «Data Source» вказується ім’я щойно створеного джерела даних. У полі «DATABASE» - назва бази даних, у якій треба буде зберігати навігаційні дані. Значення поля «Option» - 0. Поля «Port» та «Server» заповнюються згідно до розташування та налаштувань сервера БД. Якщо сервер встановлено на локальний комп’ютер, то «Server» - «localhost», «Port» - 0. У полі «UID» вказується ім’я користувача БД. Після заповнення полів для перевірки з’єднання з БД треба натиснути кнопку «Проверить».

Рис. 3.15. Інтерфейс програми ConStrBuilder.exe

Якщо поля заповнено вірно, то з’явиться повідомлення про успішне з’єднання (рис. 3.16).

Рис. 3.16. Повідомлення про успішне з’єднання з БД

Після появи повідомлення необхідно зберегти налаштування у файлі «constr.ocs». Це робиться за допомогою кнопки «Сохранить».

Після цього можна виконати запуск сервера.

Після запуску файлу NavSysCS.exe відкривається головне вікно програми і її функції стають доступними користувачеві.

3.4.2 Запуск програмного додатку

Програмний додаток запускається на виконання шляхом запуску файлу NavSysCS.exe. Під час першого запуску додатку користувачеві пропонується обрати режим роботи - клієнт або сервер. Після запуску додатку на екрані з’являється головне вікно програми з головним меню.

3.4.3 Робота системи у режимі АРМ диспетчера

Після завантаження на екрані з’являється головне вікно програми (рис. 3.17).

Рис. 3.17. Головне вікно програми

У верхній лівій частині форми знаходяться поля вводу параметрів області побудови карти. За допомогою цих полів можна ввести широту та довготу центра області побудови.

Під полями вводу параметрів області побудови карти знаходиться вікно з переліком ідентифікаційних номерів ТЗ у базі даних. Для відображення положення конкретного ТЗ на карті треба встановити навпроти його номера помітку.

Основну частину форми займає область побудови карти. На карті відмічено географічні об’єкти, а також стрілками відповідного кольору відмічається місцезнаходження та напрям руху транспортних засобів.

У верхній правій частині головного вікна програми знаходиться панель навігації. кнопками «<»,«>»,«^» та «v» можна змінювати положення центру області побудови, а кнопками «+» та «-» - масштаб.

Якщо файли індексу не існують або пошкоджені, система видає відповідне діагностичне повідомлення (рис. 3.18).

Рис. 3.18. Діагностичне повідомлення про відсутність файлів індексу

Якщо натиснути «Нет», додаток буде закрито. Після натискання «Да» з’являється діалогове вікно індексування карти (рис. 3.19).

У цьому вікні треба натиснути кнопку «загрузить карту», у стандартному діалоговому вікні обрати файл з картою, після чого натиснути «Создать индекс». Процес індексування є довготривалим. Прогрес відображається індикатором прогресу у середній частині форми. Якщо встановити флаг «Отображать подробній ход индексирования», то у ході індексування у нижній частині форми буде надаватися текстове розшифрування поточної операції. Якщо встановити флаг «Автоматически сохранить индекс по завершении», то після завершення процесу побудови індексні файли буде автоматично збережено у каталозі програми. Якщо цей флаг не встановити, то потрібно буде натиснути кнопку «Сохранить индекс».

Рис. 3.19. Діалогове вікно індексування карти

3.4.4 Робота системи у режимі АРМ адміністратора

Після завантаження програмного комплексу користувач бачить головне вікно (рис. 3.20).

Рис. 3.20. Головне вікно програмного комплексу

У верхній лівій частині форми знаходиться текстове вікно логу роботи сервера. У ньому відображаються діагностичні повідомлення, а також результати розшифровки пакетів.

У нижній лівій частині форми розташоване ще одне текстове вікно - лог запитів до БД. У ньому відображаються усі згенеровані SQL-запити до БД.

У верхній правій частині знаходиться поле переліку IMEI-номерІв пристроїв, пакети від яких надходили на сервер.

У нижній правій частині форми знаходиться кнопка виклику режиму редагування даних про трекери.

Після надходження інформаційного пакету результати розшифровки потрапляють у вікно лога роботи сервера, а у верхній правій частині форми з’являється графічне відображення даних пакету (рис. 3.21).

Рис. 3.21. Результат розшифрування пакету

У випадку, якщо цей пакет - перший у рамках поточної сесії роботи серверу, IMEI трекера буде додано до переліку. Якщо IMEI трекера зареєстровано у БД, у нижньому текстовому полі з’явиться текст SQL-запитів до БД.

Для того, щоб перейти до режиму реєстрації трекера у БД, треба натиснути кнопку «Добавить трекер». Після цього з’явиться вікно керування реєстраційними даними трекерів (рис. 3.22).

Реєстрація трекера починається натисканням кнопки «добавить» у лівій частині форми. Після цього треба ввести IMEI пристрою.

Рис. 3.22. Форма керування реєстраційними даними трекерів

Ідентифікаційний номер пристрою можна ввести вручну або згенерувати автоматично (у якості номера будуть узяті останні 5 знаків IMEI). Далі необхідно обрати тип трекера з випадаючого списку. Якщо необхідно, можна додати текстовий опис трекера у відповідному полі. Після заповнення полів треба натиснути кнопку «сохранить».

Наступним кроком реєстрації є реєстрація у навігаційній базі. Для цього на формі є група елементів «Регистрация в БД Гранит». Робота з цією групою починається з натискання кнопки «Добавить». Після цього з випадаючого списку треба обрати IMEI нового пристрою. Далі заповнюються поля, що описують транспортний засіб, на якому встановлено пристрій. Поле «Цвет» задає колір, яким буде відображатися шлях трекера на формах АРМ. Колір можна задати вручну або обрати за допомогою діалогу (рис. 3.23).

Сервер може працювати у фоновому режимі. Для цього достатньо закрити головне вікно програми. Індикатором працездатності сервера є піктограма у області повідомлень (Tray).

Рис. 3.23. Діалог вибору відображуваного кольору трекера

Для завершення роботи сервера треба натиснути на цю іконку правою кнопкою миші та у контекстному меню обрати «Закрыть» (рис. 3.24). Для повернення з фонового режиму у контекстному меню потрібно обрати «Развернуть».

Рис. 3.24. Контекстне меню керування сервером

Таким чином, за допомогою розробленого програмного комплексу користувач може реєструвати у системі нові трекери та слідкувати за роботою серверу збору даних.

Розроблена система може бути використана для інформаційного забезпечення диспетчерського пункту автотранспортного підприємства, таксомоторного парку або будь-якого транспортного підрозділу служб оперативного реагування (ДАІ, МНС, пожежна охорона, інкасаторські служби тощо).

Висновки по розділу

У третьому розділі дипломної роботи було наведено обгрунтування інформаційної структури і апаратного забезпечення AVL системи, розроблено структуру AVL системи і алгоритми функціонування її окремих модулів. Також було представлено структуру блоку взаємодії з базою даних системи, блоків роботи з електронними картами і блоків серверів ТСР та UDP.

Також було обрані засоби розробки програмного забезпечення системи, зокрема мова програмування Borland Delphi 7 і СУБД MySQL. У програмному середовищі Borland Delphi 7 сторено тестові версії програмних модулів системи, розроблено керівництво по встановленню і роботі з програмним забезпеченням, а також наведені результати перевірки його працездатності.

Виходячи з отриманих результатів, можна зробити висновок, що система на даному етапі є працездатною і готовою до практичного використання та подальшого удосконалення.

щитовидный железа репродуктивный гипотиреоз

4. Організаційно-економічний розділ

.1 Загальні положення

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

Абсолютна величина економічного ефекту без співставлення з витратами на його отримання не дозволяє однозначно оцінити, наскільки вдалим виявився відповідний інноваційний проект. Таку оцінку дають показники економічної ефективності (прибутковості) проекту.

При реалізації інвестиційного проекту випуску нової (в тому числі програмної) продукції підприємство несе разові витрати, пов'язані з розробкою проекту, а також з придбанням і налагодженням необхідного обладнання, розхідних матеріалів і таке інше. Такі разові витрати називають капітальними витратами або інвестиціями.

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

При використанні інновацій підприємство-споживач в свою чергу отримує певний економічний ефект, що зазвичай виражається економією витрат на виконання виробничих та управлінських функцій. За умов обґрунтування поліпшення співвідношення ціна-якість у нової продукції в порівнянням з базовим варіантом підприємство-виробник може встановити певну добавку до ціни інноваційної продукції.

Зміст техніко-економічного обґрунтування розробки програмного продукту полягає в наступному:

– розрахунок трудомісткості та тривалості розробки;

–       визначення величини капітальних витрат розробника та максимальної ціни продажу програмного продукту;

–       розрахунок поточних витрат реалізації та мінімальної ціни продажу;

–       розрахунок річної економії споживача програмного продукту та остаточне встановлення ціни продажу програмного продукту;

–       визначення показників економічної ефективності проекту.

В даному проекті розроблено програмний продукт, що має наступні переваги перед аналогами:

зменшується час рішення одної задачі з 1 до 0,2 год/од;

спрощується процедура моніторингу місцезнаходження транспортних засобів;

спрощується процедура контролю за дотриманням маршрутів.

.2 Вихідні дані для розрахунку

Вихідні дані для розрахунку економічної ефективності проекту наведено в таблиці 4.1.

Таблиця 4.1 Вихідні дані для розрахунку ефективності

Позначення

Найменування показника

Значення

Вм

Вартість ПЕОМ, грн

15000

Тсл

Плановий строк служби ПЕОМ, років

5

Nп

Кількість розроблюваних проектів, од./рік

6

Зо

Посадовий оклад інженера-програміста, грн/міс

4200

Кд

Коефіцієнт додаткової заробітної плати

0,3

Кс

Коефіцієнт відрахувань до страхових фондів

0,369

Кн

Коефіцієнт накладних витрат організації

0,4

Рн

Норматив рентабельності організації-розробника

0,35

Ппдв

Ставка податку на додану вартість, %

20

Пп

Потенційна ємність ринку для нової програми, од.

120

На

Норма амортизації, %

25

Вт

Витрати на тиражування програми, грн/од.

224

Ка

Коефіцієнт витрат на адаптацію програми

0,07

Тпр

Термін реалізації проекту, років

3

П1

Плановий обсяг продажу програми в 1-му році, од.

10

П2

Плановий обсяг продажу в 2-му році, од.

16

П3

Плановий обсяг продажу в 3-му році, од.

22

Пс

Середній плановий річний обсяг продажу, од.

20

Цб

20000

Кількість задач, що вирішуються протягом року, од.

120

tзб

Витрати машинного часу на вирішення задачі базовою програмою, годин/од.

1

tзн

Витрати машинного часу на вирішення задачі новою програмою, годин/од.

0,2

Ен

Нормативний коефіцієнт ефективності

0,2

Де

Доля ефекту споживача - добавка до ціни

0,25


4.3 Визначення трудомісткості та тривалості розробки програми

Серед чинників, що визначають величину витрат на розробку програмного додатку, одним з основних є тривалість розробки. Її можна визначити за формулою:

 ,

де Т - сумарні трудовитрати;р - кількість виконавців.

Загальна трудомісткість розробки складається з трудомісткості виконання окремих етапів роботи: вивчення предметної області та формулювання постановки задачі, складання алгоритму й схеми рішення задачі, розробка й налагодження програми, підготовка документації.

Трудовитрати по окремих етапах всіх видів визначені за допомогою експертної оцінки. Розрахунок трудозатрат зведено до таблиці 4.2.

Таблиця 4.2 Розрахунок трудових затрат

Етапи робіт

Позначення

Трудовитрати (чол-дн)

Вивчення предметної області та формулювання постановки задачі

Тпз

2

Розробка алгоритму рішення задачі

Та

6

Складання схеми програми

Тс

7

Розробка програми

Тп

15

Налагодження програми

Те

7

Оформлення документації

Тд

3

РАЗОМ


40


Розробку програми виконує один інженер-програміст. Отже, тривалість розробки складає 40 робочих днів. З урахуванням середньої кількості робочих днів у місяці ( 22 дні ) тривалість розробки складе:

Тр = 40 / 22 = 1,82 (міс)

4.4 Розрахунок витрат на розробку програми

Розрахунок витрат на розробку програмного продукту, тобто суми капітальних витрат, оформлюється документом - кошторис витрат по формі таблиці 4.3.

Таблиця 4.3 Кошторис витрат на проектування

Найменування статей витрат

Сума, грн.

Обгрунтування

1 Спеціальне обладнання.

5146,13

з розрахунку

2 Розхідні матеріали.

1543,84

30% ст.1

3 Зарплата проектувальників.

18205,20

з розрахунку

4 Відрахування до фондів соціального страхування.

6717,72

36,9% ст.3

5 Усього прямих витрат.

31612,89

ст.1..ст.4

6 Накладні витрати.

12645,17

40% ст.5

7 Усього, кошторисна вартість проекту.

44258,06

ст.5+ст.6


Витрати, пов’язані з придбанням ПЕОМ (спеціальне обладнання) можна розрахувати за формулою:

Sоб = Вм+Sтм+Sпз+Sд+Sпл,

де Вм - прейскурантна вартість ПЕОМ;

         Sтм - витрати на транспортування, монтаж та налаштування ПЕОМ;

         Sпз - вартість загальносистемного програмного забезпечення;

         Sд - вартість допоміжного офісного обладнання;

         Sпл - вартість додаткової виробничої площі для встановлення ПЕОМ.

З урахуванням вихідних даних та прийнятих розрахункових коефіцієнтах

Sтм = 0,02 · Вм ; Sтм = 0,02 · 15000 = 300 (грн);пз = 0,2 · Вм ; Sпз = 0,2 · 15000 = 3000 (грн) ;д = 0,15 · Вм ; Sд = 0,15 · 15000 = 2250 (грн) ;

Потреби в додатковій виробничій площі немає. Таким чином, загальна сума витрат на спеціальне обладнання становить:

Sоб = 15000 + 300 + 3000 + 2250 = 20550,00 (грн)

З урахуванням кількості розроблюваних проектів та прийнятого строку служби ПЕОМ (Тсл=6 років) вартість спеціального обладнання, що включається до кошторису витрат складе:

об = Sоб /( Nп * Тсл) ; sоб = 20550/(6*5) = 685,00 (грн)

Вартість розхідних матеріалів, необхідних на час розробки проекту:рм = 0,3· sоб ; Sрм = 0,3 · 685,00 = 205,50 (грн) ;

Заробітна плата працівників визначається, виходячи з кількості виконавців, діючих посадових окладів та кількості місяців участі виконавців у розробці проекту, за формулою:

з = Зо · (1+Кд) · Тр ,

де  Зо - місячний посадовий оклад виконавця;

Кд - коефіцієнт урахування додаткової заробітної плати (щорічна тарифна відпустка, доплати та премії);

Тр - тривалість розробки, міс.

Таким чином, витрати по заробітній платі інженера-програміста складуть:з = 4200 · (1+ 0,3) ·1,82 = 9937,20 (грн)

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

Отже, сума відрахувань до фондів соціального страхування складе:

= Sз · Кс ; Sс = 9937,20 · 0,369 = 3666,83 (грн)

Загальна сума прямих витрат становить:

пр = Sоб + Sрм + Sз + Sс;

пр = 685 + 205,5 + 9937,20 + 3666,83 = 14494,53 (грн)

Накладні витрати враховують загальногосподарчі витрати по забезпеченню проведення роботи: витрати на опалення, електроенергію, амортизацію або оренду приміщень, зарплату адміністративного персоналу та інше. Вони визначаються в процентах від суми прямих витрат по даному проекту:

н = Кн · Sпр ; Sн = 0,4 · 14494,53 = 5797,81 (грн)

Загальна кошторисна вартість проекту - сума прямих і накладних витрат представляє собою суму капітальних вкладень (або інвестицій) в новий проект:

К = Sпр + Sн ; К = 14494,53 + 5797,81 = 20292,34 (грн)

При продажу розробленої програми в одному екземплярі відпускна ціна формується з урахуванням нормативного рівня рентабельності продукції, що задає мінімально допустиме значення прибутку підприємства.

Таким чином:

Пн = Рн · К ; Пн = 0,35 · 20292,34 = 7102,32 (грн)

Цв = К + Пн ; Цв = 20292,34 + 7102,32 = 27394,66 (грн),

де Пн - нормативний прибуток;

Рн - нормативна рентабельність продукції;

Цв - максимальна відпускна ціна програмного продукту.

Максимально можлива ціна продажу програмного продукту з урахуванням податку на додану вартість (ПДВ):

Цmax = (1+Ппдв/100) · Цв ; Цmax = 1,2 · 27394,66 = 32873,59 (грн)

.5 Розрахунок поточних витрат реалізації та мінімальної ціни продажу програми

Специфікою вироблення та реалізації програмних продуктів є те, що зазвичай розроблена програма реалізується багатьом споживачам. Поточні витрати на тиражування програми набагато менші за первинні витрати на її розробку, тому і ціна продажу може бути встановлена набагато нижчою за максимальну ціну, розраховану вище.

При розрахунку ціни реалізації треба врахувати постійні витрати, що не залежать від обсягу продажу (амортизація капітальних вкладень та реклама продукції), та змінні витрати, пропорційні обсягу продажу, - витрати на тиражування й адаптацію програмного продукту до вимог конкретних споживачів, представницькі витрати. При розрахунку мінімального значення ціни продажу програмного продукту витрати на рекламу та представницькі розходи не враховуємо.

Річна сума амортизаційних відрахувань обчислюється за нормою амортизації від загальної суми капітальних вкладень:

Ав = На /100 · К ; Ав = 25/100 · 20292,34 = 5073,08 (грн)

Витрати на тиражування включають вартість машинних носіїв інформації та витрати на розмноження програмної документації і для одного акту продажу становлять Вт=224 грн/од.

Витрати на адаптацію програмного продукту до вимог споживачів - це витрати на вдосконалювання програмного продукту. За експертними оцінками вони можуть сягати до 40% від витрат на розробку програмного продукту. Залежно від особливостей програмного продукту ці витрати можуть бути відсутні.

При збільшенні обсягів продажу зменшується різноманітність додаткових вимог споживачів і величина витрат на адаптацію програми. Враховуючи ступінь уніфікації розробленої програми встановимо середній рівень адаптаційних витрат на рівні 15%.

Витрати на адаптацію програмного продукту можна визначити так:

Ва = Ка · (Sз + Sс) · (1 + Кн),

де Ка - коефіцієнт витрат з адаптації програми;з - витрати по заробітній платі при розробці проекту;с - відповідні відрахування до страхових фондів;

Кн - коефіцієнт накладних витрат організації-розробника.

Ва = 0,07 · (9937,20+3666,83) · (1+0,4) = 1333,19 (грн/од)

Загальна сума змінних витрат складе:

Вз = Вт + Ва ; Вз = 224,00 + 1333,19 = 1557,19 (грн/од)

Мінімальна відпускна ціна програмного продукту з урахуванням отримання нормативного прибутку розраховується за формулою:

Цвmin = (Ав/П + Вз) · (1 + Рн),

де Ав - річна сума постійних витрат (сума амортизації);

П - річний обсяг продажу;

Вз - сума змінних витрат;

Рн - нормативна рентабельність продукції.

При середньому річному обсязі продажу Пс=15од. мінімальна відпускна ціна складе:

Цвmin = (5073,08/15 + 1557,19) · 1,4 = 2653,55 (грн)

Мінімальна ціна продажу програмного продукту з урахуванням податку на додану вартість (ПДВ):

Цмін = (1+Ппдв/100) · Цвмін ; Цмін = 1,2 · 2653,55 = 3184,26 (грн.),

де Ппдв - ставка податку на додану вартість;

Ціна продажу програмного продукту перебуває в таких межах:

Цmin <= Цпп <= Цmax.

3184,26 грн <= Цпп <= 32873,59 грн

Для визначення обсягу продажу, що забезпечує рентабельну діяльність, побудуємо графік досягнення беззбитковості - схему, що показує вплив на прибуток обсягів реалізації програмного продукту, ціни, постійних і змінних витрат (рис.4.1).

Рис. 4.1 Графік досягнення беззбитковості

За допомогою цього графіка можна знайти так звану точку беззбитковості. Точка беззбитковості показує кількість програмного продукту, який необхідно продати, щоб загальний виторг від реалізації (без ПДВ) рівнявся загальним витратам. Очевидно, що при цьому обсязі продажів буде, нарешті, досягнута беззбитковість виробництва й подальше збільшення обсягу реалізації приведе до появи прибутку.

Таким чином, навіть при мінімальній відпускній ціні програми річний продаж 4 одиниць програмного продукту вже приносить певний прибуток.

Для успішного впровадження програмного продукту на ринок і досягнення запланованого обсягу продажу необхідно ретельно спланувати рекламну кампанію, що дало б можливість довідатися про існування розробленого програмного продукту і його перевагах всім потенційним споживачам.

У нашому випадку кількість потенційних споживачів невелике й розміщувати рекламу в засобах масової інформації економічно недоцільно. Прийнято рішення про розміщення рекламної інформації на основних тематичних форумах і порталах в мережі Internet. При цьому річні витрати на розміщення реклами в глобальній мережі складуть:

Зри = Зпр + М · Зпм,

де Зпр - витрати на первинне розміщення реклами;

Зпм - плата за щомісячну підтримку рекламних повідмлень;

М - кількість місяців підтримки.

Зри = 1650 + 3 · 450 = 3000 (грн/рік)

Крім цього, планується організувати пряму адресну рекламу для потенційних споживачів програмного продукту. Ємність ринку збуту - 80 споживачів. Витрати на виготовлення індивідуальних рекламних матеріалів та їх доставку складуть 100 грн/од. Планується на протязі трьох років реалізації проекту охватити адресною рекламою по 25 споживачів на рік, що складе Зра=100·25=2500 грн/рік.

Таким чином загальні щорічні витрати на рекламу становлять:

Зр = Зри +Зра ; Зр = 3000 + 2500 = 5500 (грн/рік)

При визначенні показників економічної ефективності проекту отриману суму потрібно буде врахувати як додаткові постійні річні витрати з реалізації програмного продукту.

4.6 Економія у споживача програмного продукту

Користувач запропонованої програми отримує економічний ефект за рахунок скорочення часу вирішення задач в порівнянні з використанням базового варіанту програми. Проведемо розрахунки, вважаючи, що ціна нової програми співпадає з ціною базової Цн = Цб = 20000 грн.

Річний економічний ефект можна розрахувати як різницю приведених витрат при використанні базової та нової програми:

Ер = Впрб - Впрн

Приведені витрати визначаються за формулою:

Впр = Спр + Ен · Кпр,

де Спр - приведені річні експлуатаційні витрати, пов’язані з вирішенням задач;

Кпр - сума приведених капітальних вкладень;

Ен - нормативний коефіцієнт економічної ефективності.

Для базового варіанту загальну суму капітальних вкладень визначається витратами на придбання ПЕОМ. В такому разі у відповідності з розрахунками пункту 3.4 Кб = Sоб = 20550 грн.

Для нового варіанта загальна сума капіталовкладень додатково включає ціну придбання нової програми : Кн = Sоб + Цн = 20550+20000 = 40550 грн.

Величина приведених капіталовкладень в розрахунку приведених витрат визначається з урахуванням долі часу вирішення задач, що розглядаються, в річному корисному фонді часу роботи ПЕОМ:

Кпр = Тм / Ткор · К,

де Ткор - річний корисний фонд часу роботи ПЕОМ;

Тм - машинний час вирішення даних задач протягом року.

Річний корисний фонд часу роботи ПЕОМ розраховується за формулою:

Ткор = Тзаг · Тз · Nз · (1 - Пп/100),

де Тзаг - загальний річний фонд часу роботи ПЕОМ (робочих днів);

Тз - тривалість робочої зміни;з - кількість робочих змін на день;

Пп - процент планових простоїв ПЕОМ.

При 5-денному робочому тижні та роботі в одну зміну отримаємо:

Ткор = 250 · 8 · 1 · (1 - 5/100) = 1900 годин/рік

Машинний час за рік для вирішення задач з використанням базової та нової програми:

Тм = Nз · tз,

де Nз - кількість задач, що вирішуються за рік;з - машинний час вирішення одної задачі.

Отже, для базового і нового варіантів маємо:

Тмб = 120 · 1 = 120 (год/рік) ; Тмн = 120 ·0,2 = 24 год/рік.

Відповідне значення приведених капітальних вкладень:

Кпрб = (120/1900) · 4384 = 276,88 (грн) ;

Кпрн = (24/1900) · 6384 = 80,64 (грн).

Аналогічним чином визначаються приведені річні експлуатаційні витрати при використанні ПЕОМ з урахуванням долі використання корисного машинного часу:

Спр = С · Тм/Ткор ,

де С - загальна річна сума експлуатаційних витрат.

С = Ав + Sз + Sм + Sр ,

де Ав - амортизаційні відрахування;з - витрати по заробітній платі спеціаліста;м - вартість спожитої електроенергії та розходних матеріалів;р - річні витрати на ремонт ПЕОМ.

Сума амортизаційних відрахувань визначається за нормою амортизації:

Ав = К · На/100 ;

Авб = 20292,34 · 25/100 = 5073,08 (грн) ;

Авн = 8376 · 25/100 = 10137,5 (грн).

Річні витрати по заробітній платі користувача ПЕОМ розрахуємо в припущенні, що умови оплати праці у споживачів і розробників програмного продукту тотожні, за формулою:

з = 12 · Зо · (1+Кд) · (1+Кс) ,

де Зо - посадовий оклад спеціаліста;

Кд - коефіцієнт, що враховує додаткову заробітну плату;

Кс - коефіцієнт відрахувань до фондів соціального страхування.з = 12 · 4200 · (1 + 0,3) · (1 + 0,369) = 89696,88 (грн).

Вартість спожитої електроенергії, розхідних матеріалів та річні витрати на ремонт ПЕОМ розрахуємо за укрупненими нормативами в відсотках від вартості ПЕОМ:

Sм = 0,03 · Вм ; Sм = 0,03 · 15000 = 450 (грн);р = 0,08 · Вм ; Sр = 0,08 · 15000 = 1200 (грн).

Загальна сума річних витрат з експлуатації ПЕОМ:

Сб = 5073,08 + 46984,10 + 96 + 256 = 52409,18 (грн);

Сн = 10137,5 + 46984,10 + 96 + 256 = 57473,6 (грн).

Приведені експлуатаційні витрати:

Спрб = 52409,18 · 120/1900 = 3310,05 (грн);

Спрн = 57473,6 · 24/1900 = 725,98 (грн).

Сумарні приведені витрати:

Впрб = 3310,05 + 0,2 · 276,88 = 3365,42 (грн)

Впрн = 725,98 + 0,2 · 80,64 = 742,11 (грн).

Річний економічний ефект у споживача нової програми:

Ер = 3365,42 - 742,11 = 2623,31 (грн)

З урахуванням річної економії споживача ціну продажу нової програми встановимо за наступним співвідношенням:

Ц = Цб + 0,25 · Ер ; Ц = 20000 + 0,25 · 2623,31 = 20655,83 (грн)

Остаточне значення ціни продажу нової програми встановимо на рівні Ц=20655,83 грн.

.7 Розрахунок економічної ефективності проекту

Економічна ефективність інвестиційних проектів характеризується системою показників, що відображають співвідношення фінансових витрат і результатів. В умовах високого рівня інфляції, характерного для України, різночасові фінансові показники доцільно приводити к одному моменту часу (першому року реалізації проекту) шляхом дисконтування. Норма дисконту розраховується за формулою:

r = a + b + c ,

де а - облікова ставка НБУ (30% початок дїї 04.03.2015 р.);- коефіцієнт врахування ризиків;- плановий рівень інфляції.

r = 0,30 + 0,04 + 0,25 = 0,59

Для розрахунку показників економічної ефективності потрібно скласти план грошових потоків (табл. 4.4).

Таблиця 4.4 План грошових потоків

Показник

Значення, грн


0-й рік

1-й рік

2-й рік

3-й рік

Плановий обсяг продажу, од.


10

16

22

Виторг від продажу


206558,3

330493,28

454428,26

ПДВ (20%)


41311,66

66098,66

90885,65

Виторг від продажу без ПДВ


165246,64

264394,62

363542,61

Витрати на тиражування


240

384

528

Витрати на адаптацію


6983,40

11173,40

15363,50

Витрати на рекламу


2150

2150

2150

Амортизаційні відрахування


2560,56

2560,56

2560,56

Прибуток від реалізації


9732,71

18398,70

27064,60

Податок на прибуток (25%)


2433,18

4599,67

6766,16

Чистий прибуток


7299,53

13799,00

20298,50

Сума капітальних вкладень

10242,3




Грошовий потік

-10242,3

9860,09

16359,60

22859,00

Коефіцієнт дисконтування


1

0,76923077

0,59171598

Поточна дисконтована вартість

-10242,3

9860,09

12584,30

13526,10

Чиста дисконтована вартість

-10242,3

-382,16

12202,10

25728,20


Сума виторгу від продажу програмного продукту розраховується з урахуванням планового обсягу продажу та визначеною ціною продажу Ц= 20655,83 грн.

Сума грошового потоку або поточна вартість визначається як різниця між фінансовим результатом поточного року Рt (чистий прибуток+амортизаційні відрахування) та поточними витратами Bt .

Поточна дисконтована вартість (ПДВ) - це поточна вартість, приведена до начала першого року реалізації проекту за допомогою коефіцієнту дисконтування КДt , тобто річний економічний ефект з урахуванням інфляції:

ПДВt = (Рt - Bt) · КДt ;

КДt = 1/(1+r)t

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

Індекс прибутковості - це відносний показник, що характеризує рівень доходів, отриманих на одну гривню інвестицій за весь строк реалізації проекту:

ІП = ∑ ПДВ / К;  ІП = 35970,42/ 10242,30= 3,512

Середня рентабельність проекту - це аналогічний показник, що відображає середньорічний рівень ефективності проекту:

РП = ІП / Тпр , РП = 3,512 / 3 = 1,17

де Тпр - строк реалізації проекту.

Термін окупності інвестицій - це строк, за який капітальні вкладення погашаються кумулятивним доходом, тобто строк, за який отримані від проекту реальні (з урахуванням інфляції) гроші перекривають вкладену суму інвестицій:

Ток = t + (ЧДВt / ПДВt+1) ,

де t - останній рік, в якому чиста дисконтована вартість залишається від’ємною.

Якщо в останньому році реалізації проекту ЧДВТ < 0, то проект не окупається протягом своєї реалізації. Для даного проекту:

Ток =1 + 382,16/2584,28 = 1,03 (років)

Основні техніко-економічні показники проекту зведені в таблицю 4.5 .

Таблиця 4.5 Техніко-економічні показники проекту

Найменування показника

Значення

Разові витрати на обладнання, грн

4384,00

Доля вартості обладнання в кошторисі проекту, грн

5146,13

Загальна сума капітальних вкладень, грн

44258,06

Постійні витрати експлуатації, грн :


– амортизаційні відрахування;

2560,56

– витрати на рекламу

2150,00

Змінні витрати експлуатації, грн/од :


– тиражування програми;

224,00

– адаптація програми

698,34

Точка беззбитковості продажу, од/рік

5

Ціна базової програми-аналога, грн

20000,00

Річний економічний ефект у споживача, грн

12480,03

Встановлена ціна продажу програми, грн

20655,83

Термін реалізації проекту, років

3

Плановий обсяг продажу за 3 роки, од.

48

Чиста дисконтована вартість (при r = 30%), грн

35970,42

Індекс прибутковості

3,512

Середня рентабельність проекту

Термін окупності, років

1,03


Висновки по розділу

Показник чистої приведеної вартості ЧПВ >0 , індекс прибутковості проекту ІП > 1, це свідчить про те, що проект є економічно ефективним, його розробка і впровадження є економічно доцільними. Інвестиції, вкладені в проект окупаються за 1,03 року, а кожна вкладена гривня щорічно приносить 0,63 грн. доходу.

Загальні висновки

У процесі виконання дипломного проекту було проведено аналіз застосування навігаційних технології у сучасних AVL системах та розглянуті сучасні розробки таких систем з метою оцінки їх функціональних можливостей, переваг і недоліків.

Також був проведений аналіз існуючих технологій місцевизначення рухомих об’єктів, зокрема з використанням супутникових навігаційних систем (СНС), описані фактори, що впливають на точність місцевизначення об’єктів, і наведені рекомендації щодо реалізації в AVL системах відносно-диференційного методу для забезпечення достатньо високої точності визначення координат об’єктів у складних експлуатаційних умовах.

У третьому розділі було проведено проектування і розробку програмного забезпечення AVL систем, зокрема обґрунтовано структуру системи і вимоги до апаратного забезпечення, розроблені алгоритми функціонування окремих програмних модулів, обрано мову програмування і СУБД, з використанням яких створено тестовий варіант програмного забезпечення для АРМ диспетчера AVL системи.

Розроблене програмне забезпечення на даному етапі є працездатним та готовим до практичного використання і подальшого удосконалення.

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

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

1.   Пржибыл П., Свитек М. Телематика на транспорте. BEN, Прага-Москва, 2004. - 534 c.

2.      Баранов Г.Л. Диспетчерські системи класу AVL по управлінню перевезеннями із застосуванням супутникових технологій // Системні методи керування, технологія та організація виробництва, ремонту і експлуатації автомобілів. Застосування супутникових технологій у транспортній галузі. - К.: НТУ, ТАУ. - 2002. - С.18 - 23.

.        Бєляєвський Л.С., Топольськов Є.О., Сердюк А.А. та інш. Глобальні супутникові системи навігації та зв’язку на транспорті. Навчальний посібник для ВУЗів транспортного профілю. - К.: В-во «ДажБог», 2009. - Іл., табл., бібліогр. - 216 с.

.        Беляевский Л.С., Новиков Б.С, Олянюк П.В. Основы радионавигации. - М.: Транспорт; 1997. - 316 с.

.        Навігація. Основи визначення місцеположення та скеровування / Б. Гофманн-Велленгоф, К. Легат, М.Візер; Пер. з англ.. за ред. Я.С. Яцківа. - Львів: Львівський національний університет імені Івана Франка, 2006. - 443с.

.        Баранов Г.Л., Кошовий А.А. и др. Радіонавігаційний план України: Київ, ЦНДІНУ, 2002., 78 с.

.        Системи супутникові радіонавігаційні мережні. Терміни та визначення. Державний стандарт України. ДСТУ 2599-94. - Київ, 1994. - 31с.

.        Соловьев Ю.А. Системы спутниковой навигации. - М,: ЭКО-Трендз, 2000. - 267 с.

.        Котяшкин С. И. Определение ионосферной задержки сигналов в одночастотной аппаратуре потребителей спутниковой системы навигации NAVSTAR // Зapyбeжнaя радиоэлектроника-1989.-№ 5.-С. 85-95.

.        Бєляєвський Л.С., Левковець П.Р., Топольськов Є.О. Аналіз точносних характеристик супутникових систем диспетчерського контролю і управління автотранспортом// Системні методи керування, технологія та організація виробництва, ремонту і експлуатації автомобілів. -К.: НТУ, ТАУ. - 2003, вип.17, - с.7-12.

.        Методичні вказівки до виконання лабораторних робіт з навчальної дисципліни "Глобальні супутникові системи навігації і зв'язку на транспорті" для студентів заочної та дистанційної форм навчання напрямів 070101 «Транспортні технології» і 050101 «Комп’ютерні науки» / Топольськов Є.О., Аль-Амморі А., Косенко В.Р., Пилипейко С.С. - К.: НТУ, 2014. - с. 62

12.    Кутиков В.Ю., Сошин A. П. и др. Перспективная аппаратура дифференциальной геодезической подсистемы спутниковых РНС ГЛОНАСС и GPS// Радионавигация и время, РИРВ, 1992.

.        Топольськов Є.О. Аналіз методів достовірного відтворення траєкторій руху автотранспортних засобів у складних експлуатаційних умовах // Управління проектами, системний аналіз і логістика. -К.: НТУ, ТАУ. - 2006, вип. 3.- с.148-153.

.        Топольськов Є.О. Перспективи застосування методики відносної корекції координат для підвищення точності місцевизначення транспортних засобів // Управління проектами, системний аналіз і логістика. - К.: НТУ. - 2004. - Вип. 1.- с.53-56.

.        Топольськов Є.О. Удосконалена методика визначення азимутів і кутів місця навігаційних супутників з використанням базових лінії та різницевих вимірів // Автошляховик України: Вісник Північного наукового центру ТАУ. - 2007. - Вип. 10.

.        Держбюджетна НДР "Методи і алгоритми просторово-часової обробки навігаційної інформації у системах супутникового моніторингу і управління транспортними засобами" (шифр за номером державної реєстрації 0106U002143, 2005-2007 рр.)

17.    Галисеев Г.В. Программирование в среде Delphi 7. Самоучитель. - М.: Диалектика, 2007. - 288 с.

.        Марселлус Д. Программирование экспертных систем. - М.: Финансы и статистика, 1994. - 256 с.: ил. I8ВN 5-279-00613-0.

19.    Лапуста М.Е., Шаршукова Л.Г. Риски в предпринимательской деятельности. - М.: ИНФРА, 1998. - 223 с.

.        Бачкаи Т., Месена Д., Мико Д. и др. Хозяйственный риск и методы его измерения. -М.: Экономика, 1979. - 184 с.

.        Сытник В.Ф., Срока X., Еремина Н.В. и др. Компьютеризация информационных процессов на промышленных предприятиях. - К.: Техника; Катовице: Эконом, академия им. Карола Адамецкого, 1991.- 215с.

Додаток А

Рис.А.1. До диференційного методу корекції координат.

Рис.А.2. До диференційного методу корекції псевдодальностей.

Рис.А.3. Тестовий маршрут руху АТЗ: вул. Січневого повстання - Московська - Цитадельна.

Рис.А.4. Траєкторія АТЗ, одержана з використанням фільтра Калмана.

Рис.А.5 Траєкторія руху АТЗ, одержана з використанням методу відносно-диференційних визначень і фільтра Калмана.

Додаток Б

Лістинг програми

Фрагмент головного модулю системи

Unit1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ComCtrls, ExtCtrls, CheckLst, DB, Grids, DBGrids,;geopoint=record:integer;,lon:double;;geolat=record:integer;:double;;geolon=record:integer;:double;:double;:integer;;geoobj=record:string;:integer;:string;;= class(TForm): TButton;: TMemo;: TButton;: TButton;: TEdit;: TEdit;: TEdit;: TEdit;: TProgressBar;: TButton;: TButton;: TButton;: TButton;: TImage;: TButton;: TButton;: TButton;: TButton;: TButton;: TButton;: TADOConnection;: TADOQuery;: TDBGrid;: TDataSource;: TCheckListBox;: TButton;: TButton;: TADOQuery;: TDataSource;: TDBGrid;Button1Click(Sender: TObject);Button2Click(Sender: TObject);Button3Click(Sender: TObject);Button5Click(Sender: TObject);Button4Click(Sender: TObject);Button6Click(Sender: TObject);Button7Click(Sender: TObject);Button8Click(Sender: TObject);Button11Click(Sender: TObject);Button9Click(Sender: TObject);Button10Click(Sender: TObject);Button12Click(Sender: TObject);Button13Click(Sender: TObject);Button14Click(Sender: TObject);Button15Click(Sender: TObject);FormCreate(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm1;:array[0..40000000]of geolat;:array[0..40000000]of geolon;:array[0..5000000]of geoobj;:array[0..200000]of integer;,nob,nwrkpt:integer;,maxlon,minlat,minlon:double;

{$R *.dfm}objcf(objkind:integer;objtype:string;c:tcanvas);

//

//canvas.pen.style.Pen.Color:=clwhite;.Brush.Color:=clwhite;.Pen.Style:=pssolid;.Pen.Width:=1;objkind=1 then begin(objtype='0x28')or(objtype='0x3e')(objtype='0x46')or(objtype='0x44')(objtype='0x43')or(objtype='0x42')(objtype='0x40')or(objtype='0x3d')(objtype='0x3c')or(objtype='0x1f')(objtype='0x3b')or(objtype='0x3f')(objtype='0x47')begin c.Pen.Color:=clblue;c.Brush.Color:=clblue;end;(objtype='0x1')begin c.Pen.Color:=clbtnface;c.Brush.Color:=clbtnface;end;(objtype='0x2')begin c.Pen.Color:=clsilver;c.Brush.Color:=clsilver;end;(objtype='0x3')begin c.Pen.Color:=rgb(100,0,100);c.Brush.Color:=rgb(100,0,100);end;(objtype='0x17')begin c.Pen.Color:=cllime;c.Brush.Color:=cllime;end;(objtype='0x1a')begin c.Pen.Color:=clgreen;c.Brush.Color:=clgreen;end;(objtype='0x4f')begin c.Pen.Color:=rgb(128,255,128);c.Brush.Color:=rgb(128,255,128);end;(objtype='0x4e')begin c.Pen.Color:=rgb(100,255,100);c.Brush.Color:=rgb(128,255,128);end;(objtype='0x50')begin c.Pen.Color:=rgb(100,255,100);c.Brush.Color:=rgb(100,255,100);end;(objtype='0xc')begin c.Pen.Color:=rgb(100,100,100);c.Brush.Color:=rgb(100,100,100);end;(objtype='0x8')or(objtype='0x13')(objtype='0x17')or(objtype='0xa')begin c.Pen.Color:=rgb(150,150,100);c.Brush.Color:=rgb(150,150,100);end;;objkind=0 then begin(objtype='0x26')or(objtype='0x1f')(objtype='0x18')begin c.Pen.Color:=clblue;c.Brush.Color:=clwhite;end;(objtype='0x4')begin c.Pen.Width:=2; c.Pen.Color:=clblack;c.Brush.Color:=clwhite;end;(objtype='0x1')begin c.Pen.Style:=psinsideframe; c.Pen.Width:=3;c.Pen.Color:=tcolor($009090);c.Brush.Color:=clwhite;end;(objtype='0x2')begin c.Pen.Width:=2;c.Pen.Color:=tcolor($000000);c.Brush.Color:=clwhite;end;(objtype='0x3')begin c.Pen.Width:=2;c.Pen.Color:=tcolor($900000);c.Brush.Color:=clwhite;end;(objtype='0x15')begin c.Pen.Width:=2;c.Pen.Color:=tcolor($900000);c.Brush.Color:=clwhite;end;(objtype='0x6')begin c.Pen.Color:=tcolor($900000);c.Brush.Color:=clwhite;end;(objtype='0x7')begin c.Pen.Color:=tcolor($aa0000);c.Brush.Color:=clwhite;end;(objtype='0x9')begin c.Pen.Color:=tcolor($aaaaaa);c.Brush.Color:=clwhite;end;(objtype='0x27')begin c.Pen.Color:=tcolor($0000ff);c.Brush.Color:=clwhite;end;(objtype='0x10f13')begin c.Pen.Style:=psdash; c.Pen.Color:=tcolor($0000ff);c.Brush.Color:=clwhite;end;;

//form1.Memo1.Lines.Append(objkind+objtype);;quicksort(var a: array of integer; Lo,Hi: integer);sort(l,r: integer);,j,x,y: integer;:=l; j:=r; x:=a[(l+r) DIV 2];a[i]<x do i:=i+1;x<a[j] do j:=j-1;i<=j thena[i] <> a[j] then BEGIN y:=a[i]; a[i]:=a[j]; a[j]:=y; END;:=i+1; j:=j-1;;i>j;l<j then sort(l,j);i<r then sort(i,r);;{quicksort};(Lo,Hi);;latgt(lat:double):integer;i,j:integer;:=0;:=npt;ptlat[i+((j-i)div 2)].lat<lat then i:=i+((j-i)div 2) else j:=j-((j-i)div 2);((ptlat[i].lat<=lat)and(ptlat[i+1].lat>lat))or((j-i)<2);:=i;;longt(lon:double):integer;i,j:integer;:=0;:=npt;ptlon[i+((j-i)div 2)].lon<lon then i:=i+((j-i)div 2) else j:=j-((j-i)div 2);((ptlon[i].lon<=lon)and(ptlon[i+1].lon>lon))or(j-i<2);:=i;;TForm1.Button1Click(Sender: TObject);f:textfile; s,s1,s2:string;i:integer;d,newobj:integer;gp:geopoint;(f,'d:\gps\Ukraine.mp');(f);:=0;:=0;:=0;(f,s);pos('[END]',s)>0 then begin:=1;:=nob+1;;pos('Type',s)>0 then begin(s,1,5);[nob].objtype:=s;:=1;;pos('Label',s)>0 then begin(s,1,6);[nob].objname:=s;

//newobj:=1;;

{if pos('[POLYLINE]',s)>0 then begin[nob].objkind:=0;;}pos('[POLYLINE]',s)>0 then begin[nob].objkind:=0;:=1;;pos('[POLYGON]',s)>0 then begin[nob].objkind:=1;:=1;;pos('[POI]',s)>0 then begin[nob].objkind:=2;:=1;;(pos('Data',s)>0){and(newobj=1)} thennewobj=0 then begin[nob+1]:=gomas[nob];:=nob+1;;(s,1,pos('(',s));:=s;:=s;(s1,pos(',',s1),length(s1)-pos(',',s1)+1);(s2,1,pos(',',s2));(s2,pos(')',s2),length(s2)-pos(')',s2)+1);(s1,ptlat[npt].lat,i);(s2,ptlon[npt].lon,i);[npt].lat:=ptlat[npt].lat;[npt].pid:=npt;[npt].oid:=nob;[npt].pid:=npt;:=npt+1;pos('(',s)=0;:=0;;eof(f);(f);.Lines.Append(inttostr(npt));.Click;;TForm1.Button2Click(Sender: TObject);i,j:integer;gp:geolat;gl:geolon;.Max:=npt;i:=0 to npt-1 doj:=i to npt doptlat[i].lat>ptlat[j].lat then begin:=ptlat[i];[i]:=ptlat[j];[j]:=gp;;

{if ptlon[i].lon>ptlon[j].lon then begin:=ptlon[i];[i]:=ptlon[j];[j]:=gl;;};.Position:=i;;.Lines.Append('Indexing complete');;TForm1.Button3Click(Sender: TObject);,ptlatmax,ptlonmin,ptlonmax,i,j,k:integer;dlat,dlon:double;:=strtofloat(edit1.text);:=strtofloat(edit2.text);:=strtofloat(edit3.text);:=strtofloat(edit4.text);:=maxlat-minlat;:=maxlon-minlon;:=minlat-(dlat/2);:=minlon-(dlon/2);:=maxlat+(dlat/2);:=maxlon+(dlon/2);:=latgt(minlat);

//ptlonmin:=longt(minlon);:=latgt(maxlat);

//ptlonmax:=longt(maxlon);.Lines.Append(inttostr(ptlatmin));.Lines.Append(inttostr(ptlonmin));.Lines.Append(inttostr(ptlatmax));.Lines.Append(inttostr(ptlonmax));:=0;:=0;i:=ptlatmin to ptlatmax do(ptlon[ptlat[i].pid].lon>=minlon)and(ptlon[ptlat[i].pid].lon<maxlon) then[nwrkpt]:=ptlat[i].pid;:=nwrkpt+1;;(wrkpt,0,nwrkpt);

{for i:=0 to nwrkpt-1 doj:=i to nwrkpt do if wrkpt[i]>wrkpt[j] then begin:=wrkpt[i];wrkpt[i]:=wrkpt[j];wrkpt[j]:=k;;}:=minlat+(dlat/2);:=minlon+(dlon/2);:=maxlat-(dlat/2);:=maxlon-(dlon/2);.Click;.Lines.Append(inttostr(nwrkpt));

//memo1.Lines.Append(inttostr(ptlon[j].pid)+':'+inttostr(ptlat[i].pid));;TForm1.Button5Click(Sender: TObject);flat:file of geolat;flon:file of geolon;i:integer;(flat,'c:\ptlat.ix');(flon,'c:\ptlon.ix');(flat);(flon);i:=0 to npt-1 do begin(flat,ptlat[i]);(flon,ptlon[i]);;(flat);(flon);;TForm1.Button4Click(Sender: TObject);flat:file of geolat;flon:file of geolon;i:integer;(flat,'c:\ptlat.ix');

//assignfile(flon,'c:\ptlon.ix');(flat);

//reset(flon);:=0;(flat,ptlat[npt]);

//read(flon,ptlon[npt]);:=npt+1;eof(flat);(flat);

//closefile(flon);.Click;.Click;.Click;;TForm1.Button6Click(Sender: TObject);i:integer;i:=0 to npt do memo1.Lines.Append(floattostr(ptlat[i].lat));;arrow(c:tcanvas;x,y:integer;course:double;color:integer);.Pen.Color:=tcolor($0f0f0f);.Brush.Color:=color;.MoveTo(round(sin(course/180*pi)*5)+x,round(cos(course/180*pi)*5)+y);.lineTo(round(sin((course+160)/180*pi)*5)+x,round(cos((course+160)/180*pi)*5)+y);.lineTo(round(sin((course+180)/180*pi)*3)+x,round(cos((course+180)/180*pi)*3)+y);.lineTo(round(sin((course-160)/180*pi)*5)+x,round(cos((course-160)/180*pi)*5)+y);.LineTo(round(sin(course/180*pi)*5)+x,round(cos(course/180*pi)*5)+y);.FloodFill(x,y,c.Pen.Color,fsborder);;TForm1.Button7Click(Sender: TObject);i,np,cx,cy:integer;kx,ky,lat,lon,course:double;pc,bc:tcolor;:array[0..100000]of tpoint;.Canvas.Brush.Color:=rgb(250,245,220);.Canvas.Rectangle(0,0,image1.Width,image1.Height);:=image1.Width/(maxlat-minlat);:=image1.Height/(maxlon-minlon);i:=1 to nwrkpt do begin(ptlon[wrkpt[i]].oid<>ptlon[wrkpt[i-1]].oid)then begingomas[ptlon[wrkpt[i-1]].oid].objkind=1 then.Canvas.Polygon(slice(points,np+1));(gomas[ptlon[wrkpt[i]].oid].objkind,gomas[ptlon[wrkpt[i]].oid].objtype,image1.Canvas);

{image1.canvas.pen.color:=pc;.canvas.brush.color:=bc;}:=0;[np].X:=round(((ptlon[wrkpt[i]].lon)-minlon)*ky);[np].Y:=image1.Height-round(((ptlon[wrkpt[i]].lat)-minlat)*kx);else:=np+1;[np].X:=round(((ptlon[wrkpt[i]].lon)-minlon)*ky);[np].Y:=image1.Height-round(((ptlon[wrkpt[i]].lat)-minlat)*kx);;.Canvas.Pen.Width:=2;i:=1 to nwrkpt do begin(ptlon[wrkpt[i]].oid<>ptlon[wrkpt[i-1]].oid)then begingomas[ptlon[wrkpt[i-1]].oid].objkind=0 then.Canvas.Polyline(slice(points,np+1));

{if gomas[ptlon[wrkpt[i-1]].oid].objkind=1 then.Canvas.Polygon(slice(points,np+1));}gomas[ptlon[wrkpt[i-1]].oid].objkind=2 then.Canvas.Brush.Color:=clred;.Canvas.Ellipse(round(((ptlon[wrkpt[i]].lon)-minlon)*ky)-5,

image1.Height-round(((ptlon[wrkpt[i]].lat)-minlat)*kx)-5,

round(((ptlon[wrkpt[i]].lon)-minlon)*ky)+5,

image1.Height-round(((ptlon[wrkpt[i]].lat)-minlat)*kx)+5);

//image1.Canvas.TextFlags:=(image1.Canvas.Handle, TRANSPARENT);.Canvas.TextOut(round(((ptlon[wrkpt[i]].lon)-minlon)*ky),image1.Height-round(((ptlon[wrkpt[i]].lat)-minlat)*kx),gomas[ptlon[wrkpt[i]].oid].objname);;(gomas[ptlon[wrkpt[i]].oid].objkind,gomas[ptlon[wrkpt[i]].oid].objtype,image1.Canvas);

{image1.canvas.pen.color:=pc;.canvas.brush.color:=bc;}:=0;[np].X:=round(((ptlon[wrkpt[i]].lon)-minlon)*ky);[np].Y:=image1.Height-round(((ptlon[wrkpt[i]].lat)-minlat)*kx);else:=np+1;[np].X:=round(((ptlon[wrkpt[i]].lon)-minlon)*ky);[np].Y:=image1.Height-round(((ptlon[wrkpt[i]].lat)-minlat)*kx);;

//:=dbgrid2.DataSource.DataSet.Recordcount;i:=1 to np do.DataSource.DataSet.Recno:=i;:=dbgrid2.Fields[0].AsFloat;:=dbgrid2.Fields[1].AsFloat;:=round((lat-minlon)*ky);:=image1.Height-round((lon-minlat)*kx);:=dbgrid2.Fields[2].AsFloat;(image1.Canvas,cx,cy,course,clgreen);

//image1.Canvas.Ellipse(cx-5,cy-5,cx+5,cy+5);

//image1.Canvas.MoveTo();;;TForm1.Button8Click(Sender: TObject);.Text:=floattostr(minlon-((maxlon-minlon)/10));.Text:=floattostr(maxlon-((maxlon-minlon)/10));.Click;;TForm1.Button11Click(Sender: TObject);.Text:=floattostr(minlon+((maxlon-minlon)/10));.Text:=floattostr(maxlon+((maxlon-minlon)/10));.Click;;TForm1.Button9Click(Sender: TObject);.Text:=floattostr(minlat+((maxlat-minlat)/10));.Text:=floattostr(maxlat+((maxlat-minlat)/10));.Click;;TForm1.Button10Click(Sender: TObject);.Text:=floattostr(minlat-((maxlat-minlat)/10));.Text:=floattostr(maxlat-((maxlat-minlat)/10));.Click;;TForm1.Button12Click(Sender: TObject);.Text:=floattostr(minlon+((maxlon-minlon)/10));.Text:=floattostr(maxlon-((maxlon-minlon)/10));.Text:=floattostr(minlat+((maxlat-minlat)/10));.Text:=floattostr(maxlat-((maxlat-minlat)/10));.Click;;TForm1.Button13Click(Sender: TObject);.Text:=floattostr(minlon-((maxlon-minlon)/10));.Text:=floattostr(maxlon+((maxlon-minlon)/10));.Text:=floattostr(minlat-((maxlat-minlat)/10));.Text:=floattostr(maxlat+((maxlat-minlat)/10));.Click;;TForm1.Button14Click(Sender: TObject);i,l:integer;.Items.Clear;.DataSource.DataSet.FindLast;:=dbgrid1.DataSource.DataSet.RecNo;

//dbgrid1.:=2;i:=1 to l do begin.DataSource.DataSet.RecNo:=i;

//dbgrid1.Fields.AsString.Items.Append(dbgrid1.Fields[0].asstring);;;TForm1.Button15Click(Sender: TObject);.Close;.SQL.Text:='select positionX,positionY,course from navdata where vehicleid=52252';.Open;;TForm1.FormCreate(Sender: TObject);.Click;;.

Источник: https://www.bibliofond.ru/detail.aspx?id=870362