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

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

09.04.2020, 07:27. Показов 9893. Ответов 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
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
12.04.2020, 19:20
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
догнать того у кого больше скорость по определению невозможно.
А если цель потом развернется? Куда принято направлять медленную ракету? Эта рекурсивная формула куда направит если цель быстрей ракеты?
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
12.04.2020, 19:34
Цитата Сообщение от Excalibur921 Посмотреть сообщение
А если цель потом развернется? Куда принято направлять медленную ракету? Эта рекурсивная формула куда направит если цель быстрей ракеты?
Она будет поворачиваться в точку встречи. Если цель быстрее ракеты и отворачивает от нее то естественно что ракета выйдет на траекторию строго за целью и просто выработает топливо не догнав цель. Но как бы ракеты всегда быстрее и маневреннее самолетов. Причина банальна - ракета легче, время полета гораздо меньше а значит тяговооруженность можно сделать гораздо выше, и гораздо маневренней - на борту нет пилота а значит маневрировать можно с гораздо большими перегрузками. К примеру ракеты ПЗРК способны догнать цель летящую со скоростью до 500 м/с. На высоте досягаемости - до 3,5 км ни один самолет с такой скоростью летать не может.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
12.04.2020, 19:44
Как бы чисто для эксперимента по наведению найти положение тела по дуге зная 3 фрейма+найти закон скорости на кривой? Как называется эта задача? Экстраполяция траектории? Может есть спец названия этому или готовые методы? Может аппроксимация траектории если взять пусть N фреймов истории?
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
12.04.2020, 19:56
Excalibur921, Та в ряд Тейлора разлаживаете да и все - нужны всего то 2 производные. Только этот метод хорош для космических кирпичей естественного происхождения, не способных менять свою траекторию от слова совсем. А для цели способной маневрировать коррекцию придется делать опять же каждый фрейм.

Добавлено через 5 минут
т.е. банально школьная формула x = x0+ V0*t + 0.5* a * t ^2 - это и есть разложение в ряд Тейлора. V0- это первая производная, a - вторая.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
12.04.2020, 20:00
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
этот метод хорош для космических кирпичей естественного происхождения, не способных менять свою траекторию от слова совсем.
Я ж это и хочу попробовать, коррекция каждый фрейм. Это намного круче примитивной линейной экстраполяции в одну строку. Я такое наверно могу решить только численно.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
в ряд Тейлора разлаживаете да и все - нужны всего то 2 производные.
Нет у меня уровня как это сделать. Не подкинете формул? А может есть известный алгоритм поиска упреждения для сбивания таких тел? Как найти угол упреждения чтобы сбивать такое?
Может есть расчеты для сбивания космического мусора или что-то такое?
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
12.04.2020, 20:17
Цитата Сообщение от Excalibur921 Посмотреть сообщение
А может есть известный алгоритм поиска упреждения для сбивания таких тел? Как найти угол упреждения чтобы сбивать такое?
Пропорциональная навигация. Чем больше дистанция тем точнее нужно позиционировать ствол/направляющие при запуске некорректируемого боеприаса и тем точнее нужен измеритель угла для прицела. Т.е. соответсвенно тем больше рассеивание вносимое как ошибками позиционирования/замера так и факторами не поддающимися замеру - ветер и т.д. А соответственно коррекция траектории необходима. При этом если измеритель находится на самом боеприпасе то при подлете к цели точность наведения будет возрастать в следствие возрастания относительной точности замера угла.
Вообще в реальной жизни не то что летящие по криволинейной траектории цели а, просто неподвижную цель на расстоянии 15-20 км накрыть - ну это или несколько залпов артдивизиона или один корректируемый хотя бы на терминальном участке боеприпас - т.е. что то в духе "Краснополь" или американских M982 "Excalibur".

Добавлено через 2 минуты
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Не подкинете формул?
ну школьная формула - x = x0+ V0*t + 0.5* a * t ^2
Как V0 и a определить по координатам трех последовательных точек надеюсь знаете?
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
12.04.2020, 20:45
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Как V0 и a определить по координатам трех последовательных точек надеюсь знаете?
Нет, но подозреваю вычитать вектора а потом вычесть скорости вроде так. Намного лучше если бы вы написали их это в 100500 раз ускорит процесс. Кто такой x0? V0? может это функции от t? Иначе как и закон скорости соблюсти. А снаряды или мины идущие по параболам сбивают? Может там есть свои алгоритмы в пару строк? Задача очень похожая.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
12.04.2020, 20:55
Excalibur921, точки последовательно p1 p2 p3 замерены с шагом по времени dt
x0 = p1
v0 = (p2-p1)/ dt
a = (p1 -2 *p2 + p3) / dt^2

Добавлено через 7 минут
Цитата Сообщение от Excalibur921 Посмотреть сообщение
x0
x0 - начальная координата
V0 - начальная скорость
a - ускорение
Цитата Сообщение от Excalibur921 Посмотреть сообщение
А снаряды или мины идущие по параболам сбивают?
Они не по парабалам идут. Атмосфера свое влияние вносит и значительное. Эта траектория в аналитическом виде не выражается. Только численное моделирование. Про то чтобы эффективно сбивали не слышал. Научились разве что определяь место пуска и примерную точку падения. Реально даже ракеты воздух-воздух не то что сбить, их обнаруживают только по облучению радара носителя или бортового радара ракеты с АРГСН. Ракеты с пассивным наведением обнаружить практически нереально.
Сбивать разве что на танках в этом плане какие то эксперементы эксперементируют. Но там никто ничего не наводит. Просто по верху стоит круг с секторными зарядами картечи которая при подлете снаряда на близкой дистанции накрывает сектор с которого подлетает снаряд/ПТУР.
1
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
12.04.2020, 21:06
не проходит через точки
dt=1
t от 0 до 2
Название: ScreenShot01020.jpg
Просмотров: 47

Размер: 3.4 Кб
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
12.04.2020, 21:09
Цитата Сообщение от Excalibur921 Посмотреть сообщение
не проходит через точки
ну давайте искать где оно не так.
для начала поставьте a = 0
если остальное правильно должно пройти через первую и вторую точки.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
12.04.2020, 21:15
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
должно пройти через первую и вторую точки.
проходит
x0 = p1
v0 = (p2-p1)/ dt
a = (p1 - 2 *p2 + p3) / dt^2
x = x0+ v0*t + 0.5* a * t ^2 // было V0 исправил v0
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
12.04.2020, 21:17
Excalibur921, ага нашел что не так
надо или
x0 = p2
v0 = (p2 - p1) /(2*dt)
или
x0 = p1
v0 = (-3*p1+4*p2-p3)/ (2*dt)
1
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
12.04.2020, 21:38
Интересный интерполятор...я таких не видел. На нем можно запилить сглаживание графиков и много чего. И не колбасит как Лагранжа и Ньютона. Обычно строил только Безье или кутмул ром или b сплайны. Круто, я думал придется мне изобретать сложные велосипеды чтобы сделать такое…а тут в одну строку.

работает.
p1,p2,p3
x0 = p1
v0 = (-3*p1+4*p2-p3)/ (2*dt)
a = (p1 - 2 *p2 + p3) / dt^2
x = x0+ v0*t + 0.5* a * t ^2

Когда t=3 это экстраполяция положения цели фрейма 4?
Это только траектория цели или уже и закон движения цели по 3 фреймам? А как на ней найти точку встречи с ракетой зная скорость ракеты?

Я думаю нужно брать много точек после фрейма 3 на кривой как предполагаемое место встречи и зная скорость ракеты находить координаты ракеты в такое t. Это будет массив из квадратов расстояний где искать ближайший. А…так и ракета ускоряется.

Может и ракете нужно экстраполировать координаты по 3 фреймам?
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
12.04.2020, 22:06
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Интересный интерполятор...я таких не видел
Это экстраполятор. Причем принцип тот же что у Лагранжа/Ньютона. При увеличении количества точек - т.е. росте степени полинома его начнет точно так же кичкать. Ньютон все свои математические изделия изобретал именно с этой целью - вычисление траектории светил. А они как известно по полиномам второго порядка бегают. Т.е.экстраполяционный полином 2-ой степени и все гладко. До 6-ой более менее норм. Дальше начнутся скачки. Вообще обычно интерполирующие/аппроксимирующие полиномы со степенью больше 3 не используют. Для этого есть кусочная аппроксимация - т.е. режут на куски которые аппроксимируют гладко состыкованными полиномами степени не выше 3.

Добавлено через 5 минут
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Может и ракете нужно экстраполировать координаты по 3 фреймам?
Она корректируется. Т.е. активно изменяет траекторию. При этом в реальности и при поворотах скорость падает в следствие возрастания сопротивления, и заряд в двигателе горит с колебаниями тяги и т.д. И именно все это регулятор и компенсирует. Т.е. ему вообще не важно какие силы и какой природы действуют на ракету и насколько они известны/неизвестны. Он действует по факту если идем в точку встречи угол постоянный. Если нет поворачиваем. А чем вызвано отклонение не важно. Важно то что он в любом случае его скомпенсирует. В этом и суть регуляции.

Добавлено через 13 минут
И именно поэтому от нее практически невозможно уклонится - неважно как изменит свою траекторию пилот цели, ракета это все равно скомпенсирует - маневренность у нее выше.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
12.04.2020, 22:15
А вот и ошибка, по кривой видно что цель замедляется, а кривая экстраполирует опять разгон цели.
Название: ScreenShot01021.jpg
Просмотров: 29

Размер: 4.1 Кб
Нужно вычитать координаты точек по кривой...как-то так. Похоже тут очень сложный матан идет…
По идее нужно знать маневренность тела чтобы предсказать траектории.

А почему нет алгоритмов наведения по 3 фреймам с этой формулой где есть учет ускорения? Вот же где настоящая p5 против p4, намного точней. Считать p5 упреждающей точкой.
Название: ScreenShot01022.jpg
Просмотров: 29

Размер: 3.9 Кб
Такой алгоритм что-то среднее между прямым наведением и пропорциональной навигацией, как буд-то k имеет малые значения. По идее вполне рабочий вариант.

А если взять например 20 фреймов и посчитать где будет цель в каждом и найти куда правильней идти ракете? Это ж лучше линейного упреждения.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
12.04.2020, 22:32
Цитата Сообщение от Excalibur921 Посмотреть сообщение
а кривая экстраполирует опять разгон цели.
Да все правильно. Формула - парабола. Т.е. чем дальше от экстремума тем быстрее. В космосе для пассивного объекта все будет именно так.

Добавлено через 6 минут
Вообще почему бы не использовать тот же регулятор для траектории цели (ну или трехточку)? Все автопилоты работают именно так. Да и ручное самолетовождение по радиомаякам по факту та же самая трехточка.
Т.е. при достижении навпоинта меняете на следующий и цель просто поворачивает на заданную точку. Ну только переключать точки на следующую по маршруту надо с некоторым недолетом - на поворот тоже надо время.

Добавлено через 5 минут
Цитата Сообщение от Excalibur921 Посмотреть сообщение
А почему нет алгоритмов наведения по 3 фреймам с этой формулой где есть учет ускорения?
И сколько это ускорение может продолжаться то? Самолет не может разгоняться вечно. Точно так же как и при постоянном тангенциальном ускорении будет полет по кругу - при этом регулятор ракеты как раз и рожден был чтобы его на кругу подрезать даже если это не круг а эллипс или нисходящая спираль, которая была одним из основных маневров ухода из под огня до появления корректируемых ракет.
Причем чем все это мерять? Угол меряется банально качающимся в двух плоскостях датчиком. В точке всплеска сигнала просто открываются транзисторы которые дают управляющий сигнал с устройства качания на регуляторы но двум каналам регуляторы преобразовывают его в выходной сигнал передаваемый на рули.
Все просто как молоток. А чем проще тем надежней.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
12.04.2020, 22:36
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
чем дальше от экстремума тем быстрее. В космосе для пассивного объекта все будет именно так.
Но пройденное расстояние p2 p3 вдоль кривой визуально говорит что цель тормозит и точка p4 должна быть вдоль кривой ближе чем расстояние между p2 p3 вдоль кривой.
Название: ScreenShot01025.jpg
Просмотров: 28

Размер: 3.6 Кб
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
12.04.2020, 22:38
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Но пройденное расстояние p2 p3 вдоль кривой визуально говорит что цель тормозит и точка p4 должна быть вдоль кривой ближе чем расстояние между p2 p3 вдоль кривой.
тормозит - означает имеет отрицательное ускорение. т.е. после того как зависнет в высшей точке начнет ускоряться в противоположном направлении. Это банальная парабола.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
12.04.2020, 23:19
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
после того как зависнет в высшей точке начнет ускоряться в противоположном направлении. Это банальная парабола.
Это если цель не летательный аппарат а камень. А этот случай совсем другой. Может эта формула дает только удобную траекторию движения, а точку встречи нужно искать численно подбирая t?

Добавлено через 2 минуты
Кстати, нужно чтобы пройденный путь вдоль кривой был в линейной зависимости от параметра t, иначе как искать время t? Никак.

Добавлено через 19 минут
Надо подумать как правильно, скорей всего так и надо разделять задачу на две. Один алгоритм дает только удобную и гладкую траекторию, второй алгоритм должен правильно экстраполировать положение тела от времени с учетом ускорения. А ведь еще и ракета не движется с постоянной скоростью, а ускоряется тоже по сложной функции от времени… Похоже это сильно заумный подход. Хз как такое решать.

Наверно правильней взять один из методов наведения и не страдать.

Добавлено через 9 минут
tonline_kms65, повернули вектор правильно? Получился простейший алгоритм наведения? Вот тут уже еще 2 алгоритма которые с настройками фактически примерно 3 похожих.
Один рекурсивный я еще не пробовал и один из книги.
0
 Аватар для tonline_kms65
-16 / 0 / 0
Регистрация: 17.09.2016
Сообщений: 232
13.04.2020, 06:08  [ТС]
Цитата Сообщение от Excalibur921 Посмотреть сообщение
tonline_kms65, повернули вектор правильно? Получился простейший алгоритм наведения? Вот тут уже еще 2 алгоритма которые с настройками фактически примерно 3 похожих.
Один рекурсивный я еще не пробовал и один из книги.
Я что-то сделал, но математик из меня никакой, поэтому не могу точно сказать, не могу утверждать что что-то получилось так как визуально не заметно особых изменений, но изломов вектора стало больше, это явно. Я даже другую(большую модель ракеты использую что бы было видно)
Вот здесь моя же тема, там тоже она вызвала нездоровый интерес у народа, видимо тема наболевшая - не ожидал.
Заинтересовала одна из предложенных формул:

Если тебе не понятно, что написано в #26, то я могу расписать:
> V - текущее направление ракеты (нормализованное),
> T - нормализованное направление на цель.
> Теперь вычисляешь вектор N:
Python
1
2
3
 Nx = Vx + (Tx - Vx) * Kp
 Ny = Vy + (Ty - Vy) * Kp
 Nz = Vz + (Tz - Vz) * Kp
> Следующее направление ракеты V = norm(N). Если Kp равно 1, то получится тот же
> самый алгоритм, что есть у тебя сейчас, когда она уходит на цель резко.
> Изменением этого коэффициента от 0 до 1 можно добиться любой плавности
> поворота.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.04.2020, 06:08

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
100
Ответ Создать тему
Новые блоги и статьи
Скрипты 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