Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.76/34: Рейтинг темы: голосов - 34, средняя оценка - 4.76
 Аватар для tonline_kms65
-16 / 0 / 0
Регистрация: 17.09.2016
Сообщений: 232

Зависимость угла поворота объекта от его скорости

09.04.2020, 07:27. Показов 9811. Ответов 195
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Все здравствуйте.
Мне нужна помощь в таком вопросе. У меня есть самонаводящаяся ракета, она летит -ищет противника, когда находит - меняет направление в строну найденного противника.
Вот и вопрос - меняет направление она резко, а я хочу понять принцип, как можно менять направление полета плавно.
Сам полет происходит по схеме:
в таймере толкаю ракету в первоначальном направлении вектора(прицел), с тиком 0.1 сек.
в полете (в цикле) идет поиск ближайших противников(находящихся в пределах прямой видимости).
при обнаружении противника задаю новый вектор до найденной цели, и соответственно ракета движется уже по этому вектору.
Я понимаю так, каждый тик таймера ракета перемещается на то расстояние, что составляет длинна этого вектора. Вектор нормализую, что бы иметь возможность управлять событиями(типа столкновений и т.д.)и нормализованному задаю скорость. Полет происходит с этой скоростью.
Может быть при обнаружении противника нужно, для снижения скорости, получить разность векторов направлений(старого и нового), этакую дельту, и в зависимости от этого менять скорость, можно эти данные, примерно, получить экспериментальным путем, забить их в массив и потом оттуда получать - это самый быстродействующий способ будет по моему.
Мне бы сам принцип понять.

Много перегуглил - так ничего и не понял, только запутался еще больше.
Может быть есть такие, кто все это прошел, и сможет "на пальцах" объяснить принцип работы кода.
Просьба у меня такая, не нужны формулы(их еще нужно в код перевести, а что бы перевести, нужно их понять)я их уже насмотрелся, нужен сам принцип.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.04.2020, 07:27
Ответы с готовыми решениями:

Найти зависимость угловой скорости от угла поворота
Диск начинает вращаться вокруг закрепленной оси с угловым ускорением, изменяющимся по закону ε=ε0cosϕ, где ε0 -...

Найти зависимость от времени угла α между векторами скорости и ускорения , его величину в момент времени t
Найти зависимость от времени угла α между векторами скорости и ускорения , его величину в момент времени t 1 , если известен закон...

Взаимозависимость угла поворота и угловой скорости
Здравствуйте, помогите пожалуйста разобраться. Взаимозависимости уголь \varphi поворота с угловой скорости \omega можно написать так: ...

195
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
10.04.2020, 13:47
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Excalibur921 Посмотреть сообщение
отел “наведение по кривой погони” но непонятно как.
ну это и есть пропорциональное наведение. т.е. регулятором удерживаете производную угла визирования 0. т.е. берем дельту угла визирования между двумя фреймами. Домножаем ее на коэффициент регулирования и собственно говоря это и есть угол поворота на текущий фрейм.

Добавлено через 5 минут
За какое то количество фреймов таким образом выходим на курс перехвата и дальше точно так же его удерживаем при маневре цели и т.д.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
10.04.2020, 14:51
Цитата Сообщение от tonline_kms65 Посмотреть сообщение
Много перегуглил - так ничего и не понял, только запутался еще больше.
Та это полный мрак. Каша в терминах. Огрызки формул, непотные схемы в книгах…швах.
Есть наркоманские пояснения и рисунки типа таких
https://habr.com/ru/post/254485/
походу там напутали картинки 1 и 2 повтор.
И где формулы для “Метод параллельного сближения” где обозначения угла?
“Метод пропорционального сближения” где рисунок? Где формулы? Что куда… мда.


Волжин А.Н., Сизов Ю.Г. Борьба с самонаводящимися ракетами
Упоминает такие:
1)прямое наведение
2)погоня(преследование)
3)наведение с постоянным углом упреждения(преследование с упреждением)
4)параллельное сближение
5)пропорциональная навигация
В общем формул понятных мне нет. Если кто шарит в ракетах пусть на уровне "для игры"
покажет алгоритмы или формулы.

А так пока рулит:
1)наведение на цель (работает)
2)как простой апгрейд наведение на вектор скорости цели.
Остальные алгоритмы непонятно что и зачем эти усложнения...
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
10.04.2020, 15:39
Excalibur921, Начните с PID-регулятора. Практически все эти алгоритмы разрабатывались для реализации на регуляторах. По большому счет все эти алгоритмы - подача разных вариантов входных данных (параметров пространственного положения ракеты относительно цели) на регулятор руля поворота.

Добавлено через 11 минут
Excalibur921, Погуглил чуток. с 2-го по 5-ый это все один и тот же метод пропорциональной навигации только называется по разному/юзается при разных условиях. Отличия в том что к примеру параллельное сближение - это метод ручного вывода истребителя на цель а никак не ракеты. Хотя работает точно так же. С постоянным углом наведения - тоже фактически тоже самое но при стрельбе по неманеврирующейй цели - т.е. достаточно один раз выйти на курс перехвата и он уже не поменяется.
Отличается только прямое поведение (он же трехточка). Причем отличается только подачей на вход регулятора другого отклонения - угла между прямымми соединяющими ПУ и цель и ПУ и ракету.

Добавлено через 12 минут
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Если кто шарит в ракетах пусть на уровне "для игры"
покажет алгоритмы или формулы.
ну берем вектор курса ракеты и вектор на цель. Считаем угол( назовем его a1). Второй кадр опять берем те же вектора и считаем угол (назовем его a2). находим разницу угла назавем ее d = a2-a1. поворачиваем ракету на угол c * d. и делаем так каждый кадр последовательно используя разницы a3 - a2, a4-a3 и так далее до самой победы. Попадание в супостата гарантированно. коэффициент с подбирается экспериментально. для реальных ракет в районе 10.

Добавлено через 6 минут
Прямое наведение (трехточка) еще проще.
Берем вектор с ПУ на цель. Берем вектор с ПУ на ракету. Находим угол a. поворачиваем ракету на угол с * a. Повторяем каждый кадр. Для малоподвижной цели (танк и т.п) в прямой видимости пусковой установки выше крыши. Недостаток - за время полета ракеты которую нужно вести на цель, цель может и ответить.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
10.04.2020, 15:50
Мне кажется наиболее логичным для алгоритма наведения ракеты будет предсказание места удара зная вектор скорости цели и скорость ракеты. Как упрощение задачи траектории прямые и скорости константа.

Как решить?
Найти место встречи двух точек.
Точке A (цель) задан вектор скорости, движется по прямой траектории с постоянной скоростью.
Точке B (ракета) задана постоянная скорость, направление движения неизвестно.
Найти направление движения точки B чтобы она попала в точку A за минимальное время. Обе точки одновременно движутся.

Наверно эта формула и есть упрощенное решение этой задачи?
Цитата Сообщение от Excalibur921 Посмотреть сообщение
phi=arcsin ((targetSpeed/rocketSpeed)*sin(alf)) так?
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
10.04.2020, 15:58
Excalibur921, Это гораздо гораздо сложнее. Как минимум нужна дистанция до цели. как максимум куча всяких незамеряемых факторов и попыток уклонится и т.п. - т.е. нужна постоянная коррекция.При этом есть еще такой вопрос - а как собсвенно воткнуть на борт предсказамуса? В 40-ых когда это все изобретали компьютером называлась должность человека который арифмометр крутил или вообще в столбик умножал.
А так при пропорциональной навигации она реагирует на маневры цели и корректирует курс вооще элементарным изменением напруги с координатора. Ее тока усилить пропорционально и напрямую в канал управления рулями подавай.
При прямом наведении вообще оператор фактически указывает цель, автоматика радиокомандным (или проводнокомандным) способом только удерживает ракету на этой линии. Опять же с точно такой же простейшей реакцией на изменение этой линии (задания). Т.е. PID регулятор используется по прямому назначению - приведение в заданное положение с последующим удержанием исполнительного механизма. Все остальное - всего лишь элементарная геометрия поданная на вход задания регулятору.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
10.04.2020, 16:12
Давайте все применительно к играм и физике в вакууме с макс упрощением. Как решить с поста 24? Может там система уравнений или численно? Может как-то исправить баг формулы пост 20?

Как усложнение1:
Заданы 3 точки задающие кривую(A, два прошлых положения точки A).
Найти тоже самое, точку встречи. Скорости на траекториях постоянны.

Как усложнение2:
Заданы 3 точки задающие кривую(A, два прошлых положения точки A).
Найти тоже самое, точку встречи. Скорости на траектории заданы квадратичной кривой.

Вот там с поста 20 вполне не плохо выглядит, ну правдопободно, только вот баг…
Цитата Сообщение от Excalibur921 Посмотреть сообщение
когда targetSpeed чуть больше rocketSpeed то phi не существует
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
10.04.2020, 16:29
Excalibur921, Да куда уж проще чем реальные схемы то? При этом опкатаны как сами схемы так и PID-по самые немогу. На PID регуляторах вообще все исполнительные механизмы всей автоматики живут. И переход от реле к контроллерам использование регуляторов тока расширил. Потому как задача системы непосредственного управления исполнительными механизмами - с максимально возможной скоростью по кратчайшей траектории плавно подвести исполнительный механизм в заданное положение удерживать его в этом положении и перевести в новое заданное положение при изменении задания. PID регулятор вырабатывает управляющий сигнал обеспечивающий все это ровно одной строчкой кода.

Добавлено через 9 минут
Цитата Сообщение от Excalibur921 Посмотреть сообщение
айти направление движения точки B чтобы она попала в точку A за минимальное время. Обе точки одновременно движутся.
За минимальное время - значит по кратчайшей. Кратчайшая - это в точку упреждения. Именно это и обеспечивает пропорциональная навигация. Фактически ищет курс на точку упреждения методом градиентного спуска с автоматической подстройкой шага, одновременно корректируя сам курс. Нуль производной угла визирования - это и есть искомый минимум .
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
10.04.2020, 16:36
Не знаю я PID формул...это для меня темный лес.

Если места встречи A и B не существует, то найти точку где A и B будут наиболее близко расположены. Очень смахивает на “задачу место встречи автомобилей” из школьной тематики.
Целевая функция это найти минимум квадрата расстояния AB. По идее тут только численно или можно аналитически?
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
10.04.2020, 16:59
Excalibur921, Вообще если по наукам то все эти дюже вумные ракеты бомбы и т.д. называются не самонаводящимися а корректируемыми. Суть в том что всегда существуют куча факторов которые не удастся учесть в расчете. Ну хотя бы телодвиженя супостата органами управления его пепелаца. А соответственно для поражения цели нужна постоянная коррекция траектории все время полета боеприпаса. При этом чем быстрее после изменения ситуации начнется коррекция тем гораздо вероятнее попадание в цель. А соответственно методы с поиском решения во время произведения физической коррекции траектории будут наиболее эффективными во всяком случае на терминальном этапе траектории (при стрельбе с дальних дистанций по высокоманевренной цели есть ньюансы).

Добавлено через 2 минуты
Excalibur921, для игры P хватит выше крыши. формула Out = c * In. Out - выход, т.е. управляющий сигнал, In - вход т.е. разница между заданием и текущим показанием датчика. с - экспериментально подбираемый коэффициент регулирования.
все остальное - элементарная геометрия в духе скалярного/векторного произведений. Ну ежели с нелинейными эффектами не охота возится то можно через atan прямо с углами работать а не со значениями синусов-косинусов.
для 3D чуть сложнее - нужно спроецировать задачу на плоскости СК ракеты, решить для каждой плоскости отдельно и подать результат в два канала управления рулями.

Добавлено через 18 минут
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Очень смахивает на “задачу место встречи автомобилей” из школьной тематики.
Она не просто смахивает. Это та же задача. Другая только цена ее успешного своевременного решения.
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Целевая функция это найти минимум квадрата расстояния AB.
Собственно говоря это и делается. Кратчайшая это по прямой. А соответственно получаем треугольник ракета-цель-точка встречи. Если движемся в точку встречи по сторонам треугольника то в любой момент времени все эти треугольники будут подобны. Т.е. все углы будут постоянны в любой момент времени. При этом такое семейство треугольников единственное. Ну вот соответственно и ищем постоянный угол между двумя сторонами итеративным методом при этом на каждой итерации доворачивая ракету в сторону искомой стороны треугольника.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
10.04.2020, 17:07
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Она не просто смахивает. Это та же задача.
Но там все аналитические решения и постановка чуть другая.

Т.е. поиск точки встречи это только численно минимум одной неизвестной? А может есть некоторая аналитическая аппроксимация этого решения? Ведь траектории прямые, скорости константа…что-то тут нетак.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
10.04.2020, 17:13
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Ведь траектории прямые, скорости константа…что-то тут нетак.
Мы не из пушки стреляем. Это там траектории прямые скорости константа а иначе можно даже не пытаться. Тут суть в том что все может поменяться в любой момент. Преимущество регулятора в том что для него такое изменение штатная ситуация. Т.е. если на какой то итерации параметры поменялись мы тут же продолжили поиск (строго говоря мы его и не останавливали когда нашли искомую траекторию, просто шаг стал нулевым).
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
10.04.2020, 17:34
Как упрощение для игры можно с постоянным интервалом ставить точки и перебрав каждую найти ближайшее место встречи. Ограничить количество точек проверки количеством кадров до взрыва ракеты. Ищем перебором в какую точку нужно лететь ракете.
Вот и готов простой алгоритм наведения. Можно за критерий выбора точки брать некий радиус взрыва ракеты.
Название: ScreenShot00938.jpg
Просмотров: 55

Размер: 10.0 Кб
Более сложный метод можно будет искать численно или разбить просто более мелким шагом, половина скорости цели и т.п.

Покажете траектории в 2д перехвата цели летящей по прямой с постоянной скоростью и ракета с постоянной скоростью? Вот ваш PID регулятор и для сравнений метод прямого наведения.
Неужели PID быстрей выходит к цели?
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
10.04.2020, 17:48
Т.е. то что вы сейчас пытаетесь изобрести называется метод построения. Он действительно применяется, но при наведении зенитной артиллерии а не ракет. Ракеты как раз и вытеснили ствольную зенитную (да и в общем то бортовую авиационную если не вытеснили то сильно потеснили) артиллерию как раз потому что построительный метод имеет гораздо более низкую эффективность и гораздо более высокую сложность расчетов и измерений чем пропорциональная навигация. Начнем с того что для него нужна дистанция до цели, что могут себе позволить только ракеты с активной ГСН и то только на терминальном участке траектории не более 15км.
Реально вероятность поражения цели "пукалкой" ПЗРК использующей самую примитивную пропорциональную навигацию колеблется в пределах 0,8-0,9 при том что энергетические характеристики самой ракеты мягко говоря нияки - дальность в пределах 5км. Для сравнения для "Шилки" c ее РЛС и счетно-решающим устройством и способностью засыпать себя гильзами эта вероятность составляет 0,28-0,39 при дальности 500 метров.

Добавлено через 1 минуту
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Неужели PID быстрей выходит к цели?
PID не просто выходит на траекторию он еще и удерживает ее - т.е. при маневре цели сразу же вносит коррекцию.

Добавлено через 7 минут
Цитата Сообщение от Excalibur921 Посмотреть сообщение
и для сравнений метод прямого наведения.
Метод прямого наведения тоже на PID регуляции работает только на другой геометрии в следствие другого способа целеуказания. И там все идет ни разу не по прямой.
Ну а то что вы показываете - называется метод построения. В учебниках по самолетовождению считается недостаточно быстрым для практического применения.
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Ограничить количество точек проверки количеством кадров до взрыва ракеты. Ищем перебором в какую точку нужно лететь ракете.
Вот и готов простой алгоритм наведения. Можно за критерий выбора точки брать некий радиус взрыва ракеты.
Зачем такие сложности то? А тем более при том что пересчитывать все придется каждый кадр для каждой ракеты. Коррекция то нужна постоянно. У пропорциональной навигации вычислительная сложность гораздо ниже - фактически в O(1) в течение таймфрейма. А толку больше - решает ту же самую задачу только через поиск другого элемента треугольника, при этом при изменении задачи полного пересчета не требует - может продолжать с текущего приближения.

Добавлено через 3 минуты
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Покажете траектории в 2д перехвата цели летящей по прямой с постоянной скоростью и ракета с постоянной скоростью?
С постоянной врядли - это слишком скучно. Щас в загашнике библиотечку отрисовки найду - популяем по высокоманевренной.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
10.04.2020, 18:30
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
У пропорциональной навигации вычислительная сложность гораздо ниже
Я так понял вот тут он пост 20, по формуле из книги угол упреждения, но не работает стабильно. Может ошибка в формуле?

Добавлено через 13 минут
А может это такое особе требование чтобы скорость ракеты была выше скорости цели тогда пашет формула пост 20. Ну а запуск и набор скорости ракеты? Так при пуске несколько сек у ракеты не будет работать наведение а потом сработает arcsin и включиться расчет упреждения…это будет выглядит странно. А может это такой особый алгоритм работы наведения? Стреляем примерно в строну цели а потом включаться наведение после набора ракетой скорости…а какой порог соотношения скорости цели и ракеты должен запускать наведение? Этого нет в книге. А может это метод для ракет воздух \земля где заведомо ракета много быстрей цели. Всеравно странно.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
10.04.2020, 19:01
Цитата Сообщение от Excalibur921 Посмотреть сообщение
может это такое особе требование чтобы скорость ракеты была выше скорости цели тогда пашет формула пост 20.
Это как бы требование в любом случае, разве что кроме стрельбы на встречном курсе. Т.е. если у ракеты недостаточно энергии для маневра она не способна вовремя скорректировать траекторию/догнать цель и т.д. Именно с этим и связан ньюанс со стрельбой с дальних дистанций. Для ракет которые используют с дальней дистанции только пропорциональную навигацию был эффективный противоракетный маневр "большой змей" суть которого как раз в том чтобы "раскачать" запущенную с близкой к предельной дальности ракету - т.е. заставить ее выработать топливо не достигнув цели.
Ну а вообще у современных ракет воздух-воздух скорость обычно в пределах 3-4,5 маха. т.е до двух раз превосходит предельную скорость целей, на которых оные цели высокоманевренными быть не могут. Маневр же обычно в районе овер 20G - т.е. и тут превосходство целей от двух раз. Это как раз ключевые моменты для успешного поражения целей. т.е. по большому счету не важно насколько точно быстро и т.д. можешь просчитать траекторию если не можешь с достаточной скоростью на нее выйти. Т.е. у кого маневр энергичней тот и в дамках. И это по определению ни разу не цель.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
11.04.2020, 00:19
https://en.wikipedia.org/wiki/... navigation
a// acceleration perpendicular to the missile's instantaneous velocity vector
какой “a”брать для ракет? Похоже на выбор.

V //гугл перевел “скорость закрытия” что это хз. Нет формулы для него.
Есть какая-то Lambda , гугл перевел “скорость прямой видимости” что это хз.
Так и не понял где там находят угол поворачивающий вектор скорости missle.
Очень сумбурно написано. Не вижу что в итоге ищем и главное зачем.

У вас работает только по тем формулам? Может там не все что нужно?

Добавлено через 8 минут
Может найти нужно Lambda и это угол поворота по часовой вектора missle-target который нормализовать и умножить на скорость missle?

Добавлено через 4 часа 6 минут
Методов то 9… капец + подвиды каждого и это не все еще.
“1.Программное наведение
Программный метод наведения заключается в том, что в системе наведения ракеты
закладывается программа полета (как правило, функция времени), в процессе
полета заданные выходные параметры ракеты сравниваются с фактическими
(координаты, скорость, тангаж, курс и т.д.). Их разность и производные в
идентичных координатах служат сигналом управления по соответствующему
параметру.
2. Метод погони.
3. Прямой метод наведения.
4. Метод параллельного сближения.
5. Метод пропорционального сближения или иначе Метод пропорциональной
навигации.
6. Метод наведения с упреждением.
7. Метод трех точек или Метод совмещения или Метод накрытия цели.
8. Методы спрямления траектории.
9. Методы теленаведения с упреждением.
Очевидно, в методах 8,9 могут использоваться методы наведения 4÷6.”

Я так понял “Метод пропорционального сближения” он же “Метод параллельного сближения”
он же “Метод пропорциональной навигации“ он же “Метод наведения с постоянным углом упреждения“ ( который считается 1 раз перед пуском...и вся разница). Короче бардак в терминах полный...похоже сами ракетчики путаются в них. Разместил в геометрии, может пофиксят этот баг. Единственно адекватная формула.
Найти место встречи двух точек
0
 Аватар для tonline_kms65
-16 / 0 / 0
Регистрация: 17.09.2016
Сообщений: 232
11.04.2020, 02:25  [ТС]
Цитата Сообщение от Excalibur921 Посмотреть сообщение
повернуть ракету на MaxAngle
До меня только дошло! Я не знаю как повернуть вектор! Во дожил.
Вроде все сообразил, отсек физику что бы не мешала основному и здесь понял - я не умею поворачивать векторы.
Углы запросто, а векторы - не понимаю.
Это же нужно нормализованный вектор текущего направления повернуть относительно... а вот чего, не пойму.
Как вариант - вижу создание каждый тик нового вектора, с новым направлением, но мне кажется это не есть нормально, это же нужно получить кучу конечных точек по радиусу поворота(по delta)

Добавлено через 23 минуты
Самое главное, я определился с основной постановкой вопроса.
Меня интересуют только изменения направления векторов, причем плавное.

И кстати, насчет упреждения перехвата. Как пример, у меня дрон для защиты от летящей в него ракеты выпускает навстречу свою ракету, дальше самое интересное:
ракета противника, к примеру, летит вдоль стены, под углом к стене примерно 10 град. ширкает об стену(взрыва не будет так как нет удара) и естественно меняет своё направление, рикошетит (т.к. вектор её движения создается из текущего положения углов 3d модели ракеты) и летит уже туда, куда никто не предскажет(например вверх), она просто теряет управление. И вот здесь уже работает только авто-наведение ракеты дрона. Причем потеря управления прямо зависит от физ. характеристик модели(масса, трение, инерция, размер особенно длинна)
Такой код не у всех ракет, но у меня, особенно на старых проектах, он еще есть. Сейчас я эту недоработку убрал, конечная точка(при отсутствии цели) как правило, это именно точка прицеливания, и уже к ней и движется выпущенная ракета, даже если она и ушла с траектории по какой то причине, все равно конечной точкой будет точка прицеливания.

Добавлено через 6 минут
Здесь хочу объяснить что для меня значит "отсек физику".
Во первых самое главное, при включенной физике, вектор движения я получаю из углов 3D модели объекта, со всеми вытекающими от этого зависимостями.
Если же я хочу не иметь зависимость от физ.свойств объекта, вектор движения создаю от центра объекта до конечной точки.
Это самое простое объяснение, там еще много зависимостей но вот эти - это самые основные.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
11.04.2020, 05:04
Цитата Сообщение от tonline_kms65 Посмотреть сообщение
о меня только дошло! Я не знаю как повернуть вектор!
На матрицу поворота умножить которая из оси и угла строится
https://ru.wikipedia.org/wiki/Матрица_поворота
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
11.04.2020, 10:23
Цитата Сообщение от tonline_kms65 Посмотреть сообщение
Я не знаю как повернуть вектор!
Зададим 2 точки в 3д.
Координаты точки в 3д называют вектор, он идет из начала координат. Назовем target,rocket.
Название: ScreenShot00961.jpg
Просмотров: 39

Размер: 7.6 Кб
Ракете нужно направление полета и скорость.
Специальный вектор задающий и направление и скорость полета точки называют вектор скорости.
Этот вектор для удобства идет из начала координат.
Зададим его координаты отбалды и назовем осмысленно типа vecSpeedRocket.

Если нормализовать vecSpeedRocket то это будет только направление полета точки.
Если найти длину vecSpeedRocket то это будет только скорость полета точки.
Если к вектору rocket прибавить вектор скорости vecSpeedRocket то можно найти
координаты rocket в следующий шаг времени, при условии что вектор скорости тот же самый.
Т.е. точка летит по старому направлению полета и скорости или что тоже по старому вектору скорости.
Если не изменить вектор скорости то точка и будет так лететь по прямой бесполезно улетая вдаль…


Как получить координаты вектора rocket в следующий тик времени, назовем вектор rocket2?
Нужно к вектору rocket прибавить вектор скорости vecSpeedRocket.
rocket2=rocket+vecSpeedRocket
это даст положение rocket в 3д в следующий момент времени
Название: ScreenShot00964.jpg
Просмотров: 39

Размер: 13.5 Кб
Но такие координаты ракеты rocket2 были бы если бы ракета летела по старому вектору скорости.
А как же наведение на target?

Построим треугольник для наглядности на векторах rocket, rocket2,target, он же и задает мысленно плоскость поворота.

Вот эта та самая коварная плоскость треугольника в которой нужно повернуть вектор скорости vecSpeedRocket на хитро рассчитанный угол да еще и решить по часовой или против крутим…
и все это в сторону target чтобы ракета поменяла курс.

Центр поворота вектора rocket2 это вектор rocket. Для поиска оси поворота перпендикулярной этому треугольнику и торчащей из вершины rocket нужно получить два вектора "a,d"

Но нужны не они, а вектора построенные по ним идущие из начала координат.
тогда "a" это "e"
тогда "d" это "f"
e=rocket2- rocket
f=target-rocket
вот они удобно прилетели в начало координат.

Для получения оси нужно взять векторное произведение f на e.
Векторное произведение так часто используется в тригонометрии что его вообще вывели просто значком с крестиком.
Название: ScreenShot00970.jpg
Просмотров: 39

Размер: 2.0 Кб
Если у вас ее нет значит придется гуглить “формула векторного произведения”.
Эту ось поворота перпендикулярную треугольнику назовем axeRotation.
axeRotation=vector_product(f,e)
Название: ScreenShot00972.jpg
Просмотров: 40

Размер: 13.7 Кб
Дальше есть разные варианты как можно повернуть вектор "e" вокруг axeRotation.
Тут может быть у вас некий готовый метод поворота в одну строку.
Если метода поворота нет, то вот тут есть специальная матрица "поворота точки вокруг произвольной оси в 3д"
На вид она страшная но 95% там все одно и тоже...
https://ru.wikipedia.org/wiki/Матрица_поворота

В описании она требует ось вращения единичный вектор.
Значит нужно будет нормализовать axeRotation.
Точку в 3д которую крутим, там она названа V и ее x,y,z.
И самое главное, угол поворота Тета в радианах. Ну любят математики латинские буквы...
Дальше нужно будет рассчитать все элементы в матрице и умножить вектор "e" на матрицу.
Это может быть готовое в вашей проге или языке программирования.
Как вариант "с нуля" нужно снова погуглить формулу умножения вектора на матрицу 3 на 3.
крутим "e" вокруг оси axeRotation на угол 0.34907 радиан получаем вектор "e1".

Но повернули то вокруг начала координат, значит нужно прибавить к rocket вектор "e1".
Получаем вектор "h"
h=rocket+e1
Название: ScreenShot00973.jpg
Просмотров: 40

Размер: 13.9 Кб
"h" и есть очень хитрый поворот вектора rocket2 вокруг оси axeRotation на угол 0.34907 радиан
в плоскости этого треугольника по часовой стрелке.

Вот простые методы наведения все работают в плоскости этого треугольника. Разные только алгоритмы поиска угла поворота.


Fulcrum_013, напишите алгоритм расчета Proportional_navigation?
https://en.wikipedia.org/wiki/... navigation
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Так и не понял где там находят угол поворачивающий вектор скорости missle.
Очень сумбурно написано. Не вижу что в итоге ищем и главное зачем.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
11.04.2020, 11:09
Цитата Сообщение от Excalibur921 Посмотреть сообщение
апишите алгоритм расчета Proportional_navigation?
ну где угол визирования находят поняли? Где разницу между углами визирования на текущем шаге и на предыдущем надеюсь тоже. Ну а угол на который поворачивать - это разница домноженная на экспериментально подбираемый коэффициент.
т.е. RotationAngle = c * DeltaAngle

Добавлено через 8 минут
Цитата Сообщение от Excalibur921 Посмотреть сообщение
от простые методы наведения все работают в плоскости этого треугольника. Разные только алгоритмы поиска угла поворота.
C плоскостью треугольника лучше не связываться а спроецировать задачу на горизонтальную и вертикальную плоскости в СК ракеты - т.е на плоскости в которых работают рули, решить ее для каждого канала управления рулем раздельно. Причина - самонаведение не магия а просто математика. Поэтому пулять надо хотя бы примерно в сторону цели. При этом при стрельбе по неподвижной цели вектора курса и визировани становятся колинеарными - по ним плоскость не построишь. При стрельбе на встречных курсах или в догонку вектора тоже очень близки к колинеарным - т.е. плоскость точно построить проблематично. Проецирование же на коорддинатные плоскости СК ракеты таких проблем не имеет. Да и в реальных ракетах данные именно в такой форме приходят с координатора вращающегося в двух плоскостях. Ну и канал управления у каждого руля тоже свой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.04.2020, 11:09

Зависимость проекции вращательного момоента сил, действующей на тело, от угла поворота
Всем добрый вечер, ну или день! столкнулся с такой задачей, вроде бы как решил но сомневаюсь. На рисунке представлен график зависимости...

Как рассчитать поворот угла, зная координаты трех точек до поворота и после поворота угла
Как рассчитать поворот угла (в градусах), зная только координаты трех точек до поворота и после поворота данного угла? Заранее спасибо.

Найти зависимость скорости от угла
1.100 1) Слова "Здравствуйте", "Пожалуйста" и "Спасибо" вы уже проходили? Правило 3.1. Уважительно относитесь к другим участникам...

Изменение угла поворота объекта в 2D проекте Unity3D
Есть объект расположенный под углом (0, 0, -20), хочу сделать так, чтобы при нажатии кнопки "Вверх", объект стал параллелен...

Найти зависимость от времени угла α между векторами скорости и ускорения
Найти зависимость от времени угла α между векторами скорости и ускорения, его величину в момент времени t1, если известен закон изменения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru