|
1 / 1 / 0
Регистрация: 06.05.2021
Сообщений: 242
|
|
Движение тела с учётом сопротивления воздуха01.09.2023, 12:49. Показов 4587. Ответов 31
Метки нет (Все метки)
Добрый день, вопрос скорее по математике и физике. Моя программа рисует траекторию движения снаряда с учётом сопротивления воздуха. Изначально задаётся скорость и угол, затем она через косинус и синус раскладывается на составляющие по оси Х и У. Затем для каждой оси каждый кадр считается скорость по формуле Vx = Vx - a. Где "a" ускорение создаваемое сопротивлением воздуха. Для оси У Vy = Vy - a - g, если тело перестаёт лететь вверх и начинает падать, то Vy = Vy + a - g, так как скорость меняет знак. В одном из тестов я отключил силу тяжести. По логике вещей, тела должны лететь по прямой, постепенно замедляясь, но вышло всё совсем не так.
Суть проблемы - сопротивление воздуха пропорционально квадрату скорости. Соответственно, если, например, по оси Х скорость больше, чем по оси У, то по оси Х сопротивление воздуха сильнее и скорость падает быстрее. В итоге, тело начинает скривлять траекторию в сторону оси Х. Если же вертикальная составляющая скорости больше, чем горизонтальная, то тело начинает скривлять траекторию в сторону оси У. Этот эффкет выражен тем больше, чем меньше отношение массы тела к его сопротивлению воздуха и чем больше одна из составляющих скорости. Под углом 45 градусов, соответственно, обе составляющих скорости равны и тело летит прямо. Формулы вроде бы я написал правильно. Возникает вопрос - неужели такой эффект есть и в реальности? Мне почему-то кажется что нет и где то всё же кроется ошибка. Ведь сила сопротивления воздуха должна иметь вектор направленный ровно в противоположную сторону вектору скорости.
0
|
|
| 01.09.2023, 12:49 | |
|
Ответы с готовыми решениями:
31
Движение тела, брошенного под углом к горизонту, с учетом сопротивления воздуха Моделирование полета тела с учетом сопротивления воздуха Баллистическое движение с учетом сопротивления воздуха |
|
6353 / 3524 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|||
| 03.09.2023, 15:15 | |||
|
Ballantrae, например, вы сами пишете, что у вас там минимум две силы и они не всегда сонаправленны, поэтому менять направление вектора скорости удобнее через операции над векторами, а не через операции над углами.
Добавлено через 5 минут Не по теме:
Сила и скорость, величины разного порядка. Сила может превышать по модулю скорость, ваше "подсечь" делает вычисления не корректными и эту проблему не решает, т.к. проблема "развернуть тело" лежит в плоскости численного интегрирования.
0
|
|||
| 03.09.2023, 17:29 | |||
|
Не по теме:
Вообще здесь это ненужные тонкости, пусть товарищ вектора освоит
0
|
|||
| 03.09.2023, 17:59 | ||
|
Не по теме:
Решение этой проблемы зависит от потребности задачи. Если это не вычисления реального времени для какой-то физической симуляции, то можно выбрать подходящий метод интегрирования (Рунге-Кутта, например). Если нужно вычислять в реальном времени, то силу сопротивления среды следует выделить отдельно, и интегрировать не классическое уравнение движения Ньютона, а решить дифур и интегрировать V(t) = K*tanh((F*t)/(m*K)+tanh-1(V0/K)), где K=sqrt((2*F)/(p*C*S)), а F - все остальные силы, не зависящие от скорости. В игровых физ. движках упрощают еще больше, просто применяя дэмпинг скорости после интегрирования других сил(что вообще говоря не корректно): V=V0/(1 + K*V0*t), где K=(p*C*S)/(2*m). Часто отбрасывают V0 в знаменателе, делая дэмпинг константным (в реальности сила вязкого трения не способна остановить тело, на бесконечно большом интервале времени скорость будет стремиться к нулю, но тело пройдет бесконечно большое расстояние).
0
|
||
| 03.09.2023, 19:16 | ||
|
Не по теме:
Ну и вряд ли решение дифура сведется к "сопротивление пропорционально квадрату скорости", это наверняка упрощение. И что, при скорости напр 100 объект тормозится с ускорением -200? НЕ ВЕРЮ :) (хотя конечно доказать не могу). Кстати кто такие p, C, S ? (последнее наверно лобовая площадь?). Спасибо
0
|
||
| 03.09.2023, 19:26 | ||||
|
Не по теме:
Решение дифура без учета остальных сил(естественное торможение) - вторая формула.
0
|
||||
| 03.09.2023, 20:19 | ||
|
Не по теме:
zayats80888, возможно эта тема ускользнула от Вашего внимания, там Ваши познания в физике были бы очень кстати. Спасибо
0
|
||
|
1 / 1 / 0
Регистрация: 06.05.2021
Сообщений: 242
|
||
| 07.04.2024, 19:19 [ТС] | ||
|
По крайней мере, у меня получается ситуация, при которой время полёта тела, почему то увеличивается от величины скорости. Особенно хорошо это заметно, если одному телу задать начальную скорость 0, а второму большое значение по направлению вдоль оси X. По идее, два тела должны упасть одновременно. Просто одно из них ещё улетит в сторону. Тем не менее, тело, которое летит вдоль оси X падает на 3 секунды позже. А этого явно быть не должно.
0
|
||
|
6353 / 3524 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|||
| 07.04.2024, 19:29 | |||
|
Добавлено через 2 минуты
0
|
|||
|
1 / 1 / 0
Регистрация: 06.05.2021
Сообщений: 242
|
|||
| 07.04.2024, 20:01 [ТС] | |||
|
Vx сопр = PCS * V *Vx \ 2. Vy сопр = PCS * V *Vy \ 2. Вот допустим, что у меня Vx = 1000 м/с, а Vy = 10м/с. V в этот момент времени равна sqrt(1000^2 + 10^2) = 1000.05 м/с. Получается Vx сопр = PCS * 1000.05 * 1000 \ 2. Vy сопр = PCS * 1000.05 * 10 \ 2. Если увеличить значение скорости в 10 раз по оси X, то V = sqrt(10000^2 + 10^2) = 10000.05 м/с. И: Vx сопр = PCS * 10000.05 * 1000 \ 2. Vy сопр = PCS * 10000.05 * 10 \ 2. Так вот и получается, что от горизонтальной составляющей зависит вертикальная составляющая силы сопротивления. Добавлено через 6 минут
0
|
|||
|
6353 / 3524 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||
| 07.04.2024, 20:07 | ||
|
Если хотите расчитывать достовернее, то интегрируйте линейные дифуры, о чем я уже писал. Если для вас это вызывает трудности, то смиритесь с тем, что есть. Не по теме: Кстати, спутник, сходя с орбиты, за счет трения об атмосферу приобретает энергию и может "отскакивать" назад. Так что не удивляйтесь.
1
|
||
| 08.04.2024, 15:30 | ||
|
0
|
||
|
6353 / 3524 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||
| 08.04.2024, 15:49 | ||
|
Кликните здесь для просмотра всего текста
Там конечно механизм сложнее, но величина силы отталкивания так же пропорциональна квадрату скорости, поэтому такой эффект.
0
|
||
| 08.04.2024, 15:49 | |
|
Расчет траектории движении тела с учетом сопротивления воздуха Траектория движения тела, брошенного под углом к горизонту с учетом сопротивления воздуха
Движение тела брошенного под углом к горизонту с учетом сопротивления Программа "падение тела с учетом сопротивления воздуха" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|