Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 5
×

Як визначити координати цілі для військового дрона через TechEditor. Приклад застосування

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

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

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

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

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

Звісно, математичні пакети (типу Mathcad) і електронні таблиці (Excel, Google Spreadsheet) активно використовуються інженерами з усього світу, проте всі вони мають відомі обмеження.

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

Так, наприкінці 2018 року світ побачив першу версію TechEditor.

TechEditor

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

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

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

Окрім текстового процесора і математичного движка, TechEditor має функціонал для розробки застосунків. Ви можете запрограмувати свою мініпрограму і запустити її безпосередньо в TechEditor. Додаткове програмне забезпечення для цього не потрібне.

Це не IDE або компілятор в чистому вигляді, а скоріше інтерпретатор; наразі підтримуються мови програмування Pascal та Basic. Саме цей функціонал зацікавив IT-аудиторію, щойно ми представили TechEditor широкій публіці, кілька років тому. Проте ці інструменти не є основним призначенням програми — вони радше доповнюють та посилюють її у випадках, коли алгоритм розрахунку ефективніше запрограмувати у вигляді консольного або віконного застосунку:

Приклад застосунку до TechEditor для розрахунку дерев’яних LVL-балок

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

Визначення координат падіння снаряда

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

Трохи теорії

Дрон (безпілотний літальний апарат, БПЛА) рухається зі швидкістю v на висоті h.

Точку, в якій він позбувається снаряда, позначимо A, а місце враження цілі — B. Якщо через ці дві точки провести вертикальну площину і розташувати в ній прямокутну декартову систему координат з початком в точці O, то маємо можливість дослідити плаский рух системи і визначити траєкторію падіння снаряда.

Розрахунок координат x, y авіаційного снаряду наведено, наприклад, у публікації «Arial Bombing Techniques» (C. Pepper & C. Wilson, 2009, 11 p.). Як й інші подібні підходи, він базується на складанні диференціальних рівнянь руху твердого тіла з урахуванням сил опору. Диференціальні рівняння інтегруються аналітичним методом, в результаті чого маємо готові розрахункові формули для обчислення координат, швидкостей та прискорень снаряда.

Вхідними параметрами для аналізу є:

  • висота та швидкість польоту дрона;
  • маса снаряда та площа його контакту з середовищем;
  • коефіцієнт опору середовища, щільність повітря.

Реалізуємо цей підхід в TechEditor.

Підготовчий етап

Коли ви працюєте в TechEditor — ви працюєте з проєктом. Проєкт складається з окремих розділів.

Наразі TechEditor містить 4 типи розділів:

  • Звіти (Reports).
  • Діаграми (Diagrams).
  • Математичні листи (Mathsheets).
  • Застосунки (Applications).

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

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

Кількість розділів у проєкті — необмежена. Найближча аналогія проєкту і розділів — листи в книзі Excel, або ж модулі в проєкті програмного забезпечення.

Розрахунковий лист для визначення координат снаряда

Запустимо TechEditor. Рекомендується працювати в найновішій версії програми, наразі це версія 3.1.0.975:

Додамо до проєкту діаграму (команда New Diagram). Подвійним кліком у Project Explorer відкриємо цю діаграму у редакторі.

Оскільки ми створили нову діаграму, вона поки що не містить жодних блоків. Додамо перший блок — рисунок. Для цього оберемо файл на диску і скопіюємо його в буфер (CTRL+C), а потім вставимо в діаграму (CTRL+V). Щоб рисунок виглядав естетичніше, приберемо його рамку (команда No Border на стрічці інструментів Diagram > Line):

Текстові блоки

Додамо заголовок і пояснення до нашого розрахункового листа. Змістимо рисунок трохи нижче, і скористаємося командою Blocks на стрічці інструментів Diagram > Block.

В розділі Basic оберемо блок Text. Для цього потрібно натиснути на ньому («взяти блок»), а потім клацнути на будь-якому місці діаграми («покласти блок»). Текстовий блок можна редагувати, двічі клацнувши по ньому. Також ви можете налаштувати його розміри, положення, колір та інші атрибути.

Математичні блоки

У вікні Diagram blocks відкриємо розділ Automation. Додамо до діаграми математичний блок Math Block. Схема вставки — та ж сама: спочатку «взяти» блок в переліку, а потім «покласти» його на діаграму.

Якщо двічі клацнути по блоку, відкриється редактор Math Object. У поле Input Expression введіть текст «h:=200». Тим самим, ми вводимо до математичної моделі висоту польоту дрона, в метрах:

Натисність OK. Повторіть аналогічні дії з іншими блоками

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

Формули для розрахунку

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

Ось як виглядає створена нами математична модель:

h:=200
v:=10
m:=450
g:=-9.81
D:=0.5
A:=0.05
ρ:=1.225
k:=D*ρ*A*v/(2*m)
t:=6.38
kt:=k*t
y:=h+(g/k*t)-(g/(k^2)*(1-e^-kt))
x:=v/k*(1-e^-kt)

Жовтим кольором на діаграмі підсвічені блоки, які можна змінювати (вхідні дані), а сірим — блоки, які є незмінними або обчислюються на основі попередніх. Лаймовий колір мають блоки з результатами розрахунку (координати падіння снаряда).

Про схему обчислення в TechEditor

Діаграми в TechEditor працюють за аналогією Mathcad: першими обчислюються найвищі математичні блоки, а потім ті, що нижче. Блоки одного ряду обчислюються зліва-направо. Якщо ваша формула містить якісь параметри, то ці параметри мають бути введені до математичної моделі раніше цієї формули (вище або ліворуч від неї).

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

Додаємо одиниці вимірювання

Потужним функціоналом в TechEditor є також підтримка одиниць вимірювання фізичних величин.

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

Під час написання цієї статті я зіткнувся з проблемою: коли я додав одиниці вимірювання до формул з базової наукової публікації, TechEditor відмовився визначати координати.

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

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

Остаточний вигляд математичної моделі з одиницями вимірювання:

h:=200 m
v:=10 m/s
m:=450 kg
g:=-9.81 m/s^2
D:=0.5
A:=0.05 m^2
ρ:=1.225 kg/m^3
k:=D*ρ*A*v/(2*m)
t:=6.38 s
kt:=k*t
y:=h+(g/k*t)-(g/(k^2)*(1-e^-kt))
x:=v/k*(1-e^-kt)

Будемо на зв’язку

Сподіваюся, ця інформація стане вам в пригоді, або ж наштовхне на певні інсайти. Використовуйте TechEditor у своїй роботі — це має підвищити якість і швидкість видачі технічної документації. До того ж цей софт made in Ukraine.

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

До зустрічі) Слава Україні!

P. S.

Запропонований проєкт можна завантажити з Dystlab Store, безкоштовно. Архів містить обидва варіанти діаграми — з одиницями вимірювання та без них.

👍ПодобаєтьсяСподобалось3
До обраногоВ обраному3
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

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

TechEditor це програма для підготовки технічної документації. Поки що вона не містить вьюпорта для 3D-візуалізації, але можна подумати в цьому напрямку, дякую!

перекинув хлопцям у ЗСУ, дякссс

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

Тільки вот питання нащо це постити у відкритий доступ. Русня і так вже немало покращень для дронів у нас вкрала.

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

русня нехтує українським контентом

И школьные учебники физики тоже?

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

Як щодо сили та напрямку вітру? Цей фактор має вплив на траєкторію на практиці?

так, звісно. Строго кажучи, навіть «g» не можна вважати константою всюди, воно коливається в певних межах (за деякими даними, від 9.780 до 9.832). Наведений алгоритм це один з варіантів моделювання, який на практиці можна змінювати, доповнювати.

А вітер в реальності враховується при розрахунку? Є можливість його ефективно вимірювати?

Да. Но сложно. 4 варианта:
1. Поставить на дрон анемометр и мерять скорость ветра.
2. Получать текущую погоду с метеоресурса местного.
3. Позволять дрону быть сносимым ветром в какие-то промежутки времени и высчитывать скорость ветра через сдвиг позиции дрона относительно расчетной траектории.
4. Высчитывать скорость ветра через управление движками, чтобы удерживаться на расчетной траектории.
Ну и можно это вся связать воедино.

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

А вот g в рамках плоской Украины можно считать константой. В Карпатах где уже могут быть отличия.

Підписатись на коментарі