Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];

Вниз

Как моделируются физические законы ? Например, падение шарика на   Найти похожие ветки 

 
Кен   (2003-01-24 06:53) [0]

на стол под действием силы тяжести с учётом трения ? Чтобы он как настоящий прыгал по столу постепенно уменьшая амплитуду подпрыгивания ? Может есть какие нибудь готовые программы или примеры ? А если он ещё и вращается, то как рассчитать его движение ?

Дело в том, что физ. законы то я знаю. Но на компе же нет постоянного времени. Есть только таймер по которому просчитываются кадры. А как рассчитывать, если один кадр это ещё до удара об стол, а другой уже после удара ? Или как быть с массой ? Или её вообще не учитывать ?

Может есть какие готовые примеры посмотреть ?


 
MBo   (2003-01-24 06:59) [1]

>если один кадр это ещё до удара об стол, а другой уже после удара
В мультипликации при этом принято делать кадр, в котором шарик касается стола, иначе будет впечатление, что он зависает, не долетая.

>постепенно уменьшая амплитуду подпрыгивания
просто рассчитывать скорость отскока, уменьшая ее на какую-то долю (например, на 1/10) или считать, что при каждом отскоке теряется какая-то доля энергии (видимо, это ближе к правде)


 
Sha   (2003-01-24 07:17) [2]

Ускорение свободного падения не зависит от массы - можно не учитывать :)


 
OxOTHuK   (2003-01-24 07:20) [3]

когда мы моделировали физические процессы - мы составляли дифуры.

2 Sha: прально, но только вблизи поверхности земли.


 
Skyle   (2003-01-24 07:27) [4]

Если есть желание моделировать процессы во времени, то стоит все нужные характеристики поиметь как функции от времени и каждый раз их рассчитывать. Может и неоптимально, зато близко к правде...:)


 
Кен   (2003-01-24 07:32) [5]

2Sha ©
А отскок от стола при вращении зависит от массы ?
Как это можно сделать ?


2MBo ©
>>если один кадр это ещё до удара об стол, а другой уже после удара
>В мультипликации при этом принято делать кадр, в котором шарик касается стола, иначе будет впечатление, что он зависает, не долетая.
Тогда непонятно что с таймером делать ? Как то менять интервал что ли ? Но как ? И главное всё равно ведь точно не подгадаешь. Будет с каким то допуском.


Skyle ©
А есть какие нибудь уже готовые примеры, чтоб не мучиться ?


 
Думкин   (2003-01-24 07:40) [6]


> Кен (24.01.03 07:32)

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

> А есть какие нибудь уже готовые примеры, чтоб не мучиться ?

Иногда помучится стоит.


 
Suntechnic   (2003-01-24 08:19) [7]

>Sha ©
Ты ж утверждаешь, что физические законы знаешь, чего ж тогда спрашиваешь чего учитывать, а чего не нет? :)

Как это ты собрался массу не учитывать? Позвольте тогда поинтересоваться за счёт чего мячик на стол упал и почему он от стола отскочит?
Это конечно замечательно, что ускорение свободного падения не зависит от массы, но мячик то до стола добрался под воздействием силы тяжести, а вот при расчёте силы тяжести без массы ну никак не обойтись.

И вообще при чём тут вращение? Кто заставил мячик вращаться? Какая сила? Если рассмотреть академическое "отпускание" мячика с высоты, то оно должен по той же траектории попрыгать и на том же самом месте(в котором первый раз приземлился) остановиться.


 
Suntechnic   (2003-01-24 08:21) [8]

Простите, в последний пост закралась ошибка. Он конечно же адресован господину Кен, а не Sha ©. Ещё раз прошу простить.


 
alexnmsk   (2003-01-24 08:27) [9]

Кстати, если быть точным, ускорение свободного падения не зависит от массы. А воздушное сопротивление - зависит. Т.е. если шарик падает не в вакууме, массу надо учитывать.


 
Думкин   (2003-01-24 08:33) [10]


> alexnmsk © (24.01.03 08:27)
> Кстати, если быть точным, ускорение свободного падения не
> зависит от массы. А воздушное сопротивление - зависит

В этом месте немного поподробнее, пожалуйста.
> Suntechnic © (24.01.03 08:19)
> Это конечно замечательно, что ускорение свободного падения
> не зависит от массы, но мячик то до стола добрался под воздействием силы тяжести, а вот при расчёте силы тяжести без массы ну никак не обойтись.

А зачем нужно знание силы для того чтобы добраться до стола?


 
Viktor Kushnir   (2003-01-24 08:41) [11]

Люди, человек вас не законы спрашивал, а методику реализации. Может куда проще заранее все расчитать а тем просто на экран результат выводить? Расчет-то быстро пройдет.


 
Suntechnic   (2003-01-24 08:49) [12]

>Думкин © (24.01.03 08:33)
А зачем нужно знание силы для того чтобы добраться до стола?
Для того чтобы составить уравнения движения согласно законам Ньютона. Или у Вас есть другие варианты?


 
Думкин   (2003-01-24 08:56) [13]

штука в том, составив его и имея только силу тяжести - мы массу просто сможем сократить - она здесь не нужна. Это один из моментов натолкнувших Эйнштейна на создание ОТО.

ну и сразу по
> Думкин © (24.01.03 08:33)
> > alexnmsk © (24.01.03 08:27)
> В этом месте немного поподробнее, пожалуйста.

А тут другая ситуация - сила от массы не зависит - поэтому при расчете ускорения из силы масса вылезет и от нее никуда не денешься.


 
Suntechnic   (2003-01-24 09:02) [14]

Думкин © (24.01.03 08:56)
штука в том, составив его и имея только силу тяжести - мы массу просто сможем сократить - она здесь не нужна.


Штука в том, что просто массу сократить вам не получиться. Вам придётся попотеть попытавшись увязать массу с тем расстоянием, на которое отскочит мячик, приняв за единицу какие-нибудь попугаи. Или вы будете спорить с тем, что потенциальная энергия упругой деформации мячика (а именно за счёт этой енергии мячик отскочит назад) не зависит от силы тяжести? А от этой энергии зависит та высота, на которую отскочит мячик.


 
Думкин   (2003-01-24 09:12) [15]


> Suntechnic © (24.01.03 09:02)

Ну пошло.

> Suntechnic © (24.01.03 08:19)
> Это конечно замечательно, что ускорение свободного падения
> не зависит от массы, но мячик то до стола добрался под воздействием силы тяжести, а вот при расчёте силы тяжести без массы ну никак не обойтись.

Здесь о кинетической энергии и упругости - ну ни слова. Перед этим вы конечно написали об отпрыгивании, но эти два параграфа у вас плохо связаны. То что вы хотите сказать я прекрасно понимаю - просто надо слегка точнее выражаться и не нервничать.
В момент соприкосновения достаточно знать скорость мяча, а для этого (в вакууме) до массы - по барабану.


 
Suntechnic   (2003-01-24 09:23) [16]

>Думкин © (24.01.03 09:12)
Да я вообще то нервничать и не собирался :) Ну а на счёт точности выражений... уж как могу так и выражаюсь :)

Может в момент соприкосновения и по барабану чего там за сила тяжести, но товарищ вроде пытался описАть процесс скачащего мячика вот мне и стало интересно как он собирается просто принебречь массой.

И что вас так смутило во фразе " при расчёте силы тяжести без массы ну никак не обойтись"? Ведь и вправду то не обойтись: P = mg :)

А вообще нас скоро в потрепаться отправят :)


 
Думкин   (2003-01-24 09:26) [17]


> И что вас так смутило во фразе "при расчёте силы тяжести
> без массы ну никак не обойтись"? Ведь и вправду то не обойтись:
> P = mg :)

Да - это не смутило, просто лишнее в том контексте.
В остальном, согласен - нужно завязывать. %-)


 
Kair   (2003-01-24 09:39) [18]

x=x0+v0*t+g*t^2/2


 
Юрий Зотов   (2003-01-24 09:41) [19]

Попробую и я бросить свои три копейки. Все же 20 лет этим занимался, наверное, что-то еще помню.

> Как моделируются физические законы?

Моделируются процессы, а не законы. Делается это точно так же, как решаются физические задачи и на бумаге - анализируется задача, на основе физических законов составляется и решается система уравнений (математическая модель). Если процесс слишком сложный (а практически все они такие и есть), то сначала могут вводитьсяя допущения, которые позволяют пренебречь чем-либо, при этом не слишком огрубляя модель (очень важный этап, грамотная система допущений - это целое искусство, требует глубоких знаний и большого опыта). Если система уравнений получается слишком сложной и не имеет аналитического решения (а при серьезной постановке задачи это практически всегда так), то используется ее численное решение - лишь для этого и нужен компьютер (об аналоговых машинах умолчу за их редкостью). Сам по себе он, конечно, ничего не моделирует, а просто решает составленные нами уравнения по составленной нами же (или готовой) программе. При этом запросто может и соврать - все зависит от численного метода и от того, как он реализован в программе. Тонкостей там тоже очень много.


> Может есть какие нибудь готовые программы или примеры?

Думаю, они должны быть в комплекте Mathcad"а.


> Но на компе же нет постоянного времени. Есть только таймер по
> которому просчитываются кадры.

Да, так и есть. Это называется "дискретность времени" (во временнЫх задачах), или "расчетная сетка" (в пространственных) - что, по сути, одно и тоже (дискретность аргумента). На цифровых машинах задача всегда решается пошагово - на то они и цифровые. Что налагает дополнительные сложности, связанные с грамотным выбором шага, либо алгоритма его коррекции. Большой шаг - грубое решение, "проскакиваются" нюансы, запросто может возникнуть неустойчивость решения и т.д. Малый шаг - большое время счета, накопление ошибок и т.д.

> А как рассчитывать, если один кадр это ещё до удара об стол,
> а другой уже после удара?

При численном решении ТОЧНО этот момент удара поймать нельзя (на то она и модель, а не реальность, да еще модель дискретная). На каждом шаге нужно смотреть - не проскочит ли на следующем шаге шарик "через стол" (проверять координату). Если да - то нужно скорректировать последний шаг и после его просчета МЕНЯТЬ РАСЧЕТ - переходить с модели полета на модель упругого удара. Только она позволит рассчитать отскок шарика. А после его отрыва от стола - снова на модель полета, и т.д. Вот и получится, что шарик прыгает. Теоретически, он будет прыгать бесконечно, а в модели нужно ввести какое-то условие, когда дальнейший счет уже неинтересен. Сразу скажу, что задача расчета серии отскоков шара получится не такая уж простая.


> Или как быть с массой? Или её вообще не учитывать?

Что учитывать, а что нет - зависит от Вас и от того, что Вы хотите получить. Если считать просто свободное падение, как в школе, то можно не учитывать. Если учитывать сопротивление воздуха, то придется учесть размер шара (вообще, при учете сопротивления воздуха придется считать гидравлику - а тогда задача может резко усложниться, причем без заметного выигрыша в точности). Если же Вы хотите считать еще и отскок шара, то без его массы ну никак не обойтись - он же отскакивает за счет упругой деформации (как пружина), а ее величина зависит от инерции шара при соударении - значит, и от массы. Более того, не исключено, что придется еще и считать деформацию крышки стола (в том числе, неупругую), ее прогиб и пр. Все это надо оценивать, а потом уж решать, что влияет сильно, а чем можно пренебречь.

В общем, заниматься подобными задачами не просто, но для тех, кто любит физику - жутко интересно. Дерзайте, успехов Вам.

P.S.
Без чтения серьезных книг - даже и не мечтайте добиться чего-то приличного.


 
SuperUmnik   (2003-01-24 11:14) [20]

тут многое что говорили, советую книжку прочитать про математическое моделирование сложных процессов. я вот примерно таким же делом занимаюсь (составляю физические модели) достичь 100% точности как в природе не удасттся ни когда, поэтому обычно на модель накладываются ограничения ограничения делятся на ограничения физические и ограничения метода и пр.
Большинство процессов описываются диф.уравнениями. в т.ч. и ветерок влияющий на шарик и закручивание и сила тяжести и сопротивление воздуха и пр. А для моделирования наиболее распространен пакет Mathlab. Но я моделирую на дельфях.
Покрайней мере сделана модель буровой установки которая бурит скважину, опускает долото, качает нефть и пр. моделируем все процессы в буровой (электрические, газодинамические, гидравлические, и пр.) так вот на описание такой модели ушло полтора года коллектива из 7 ми чел.
Вот так вот учите математику и физику!


 
Кен   (2003-01-26 02:29) [21]

В общем вот что получилось :


procedure TForm1.DummyCube1Progress(Sender: TObject; const deltaTime,
newTime: Double);
begin
CollisionManager1.CheckCollisions;
k := deltaTime*1; // - ход времени.
y0 := y; // - Запомнить предыдущую позицию для вычисления скорости.
y := y0 + v*k*col - g*k*k/2; // Вычисляем новое положение по Y
v := (y - y0)/k*ktorm; // Вычисляем новую скорость.
col := 1;
DummyCube1.Position.Y := y;
end;

procedure TForm1.CollisionManager1Collision(Sender: TObject; object1, object2: TGLBaseSceneObject);
begin
if ( v <= 0 ) then begin col := -1; end;
end;


Это на GLScene . Проблема только с тем, что когда предмет окончательно падает, то он начинает медленно просачиваться через поверхность на которую упал. Как бы этого избежать ?

ktorm - коф. торможения. Чуть меньше единицы.

------------
Теперь новый вопрос, а какой будет отскок, если предмет ударится не центром тяжести, а боком ? Например падение карандаша, когда он бьётся сначала одним концом об пол, потом другим, и так далее.
Как это рассчитывается ?


 
Stager   (2003-01-26 03:29) [22]

Эх, поздновато я залез в эту дискуссию. Впредь буду расторопней. :) Полностью согласен с Юрием Зотовым.

2 Кен

> Теперь новый вопрос, а какой будет отскок, если предмет
> ударится не центром тяжести, а боком ?

А будет вот что: Вам придется помимо импульса и скорости учитывать момент импульса и угловую скорость. Для того, чтобы их учесть, потребуется задать непрерывное объемное распределение массы по всему объекту, или плотности, что одно и то же. Для случая карандаша Вас, скорее всего, устроит одномерный случай с постоянной плотностью по всей длине, то есть центр масс будет совпадать с геометрическим центром. При соударении Вам потребуется расчитать равнодействующую, исходя из которой вычислить изменение импульса центра масс и момента импульса объекта. Как это сделать - см. школьный курс физики + классическая механика. Иллюстрировать это здесь не возьмусь - рисовать надо.

С уважением, Алексей.


 
Кен   (2003-01-26 07:18) [23]

2Stager ©
Не изучают это в школе.

Я пытался в поисковике найти что нибудь и не нашёл. Где нибудь описывается формулами поведение падающего карандаша вообще ? Известен центр тяжести, известна длинна, скорость падения, угол наклона. Всё известно. Как рассчитывается отскок ?


 
Думкин   (2003-01-26 07:34) [24]


> k := deltaTime*1; // - ход времени.
> y0 := y; // - Запомнить предыдущую позицию для вычисления
> скорости.
> y := y0 + v*k*col - g*k*k/2; // Вычисляем новое положение
> по Y
> v := (y - y0)/k*ktorm; // Вычисляем новую скорость.

Нет, ну мы тут чуть друг другу горло не перегрызли, а надо то было. В общем, итог - бери учебники физики(в частности по механике) и вперед.


 
Кен   (2003-01-26 08:03) [25]

Думкин ©
Вот и я удивляюсь, тоже.

А совращением как быть ? Вращающийся стрежень падает на плоскость. Как рассчитывается его отскок ?


 
Sha   (2003-01-26 10:29) [26]

> Кен (24.01.03 07:32)
> А отскок от стола при вращении зависит от массы ?

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

> Как это можно сделать ?

Все можно рассчитать по учебнику физики. Подобных задач полно в любом задачнике.
Еще вариант для сложных тел - натурная ускоренная съемка.


 
Юрий Зотов   (2003-01-26 11:36) [27]

> Sha © (26.01.03 10:29)
Модель абсолютно упругого удара здесь, увы, не проходит, придется рассматривать что-то посложнее. Иначе при ударе нет потерь энергии, шарит отскочит на ту же высоту и т.д. - в незатухающем цикле. Теряется весь смысл задачи.

> All
Как учитывается вращение и прочее.
Как обычно - соответствующими членами в уравнениях движения и энергии. Только сразу могу сказать - замучаешься его учитывать. Сложность задачи возрастет чуть ли не на порядок. А если еще учитывается и воздух, то придется учесть и то, что на вращающийся шарик со стороны обтекающего его потока будет действовать боковая сила (эффект Флетчера, насколько помню). Все это нужно сначала оценивать - стоит вводить такие усложнения, или нет.


 
Кен   (2003-01-27 02:46) [28]

Sha ©
>Отскок шарика при абсолютно упругом ударе не зависит от массы, вращение меняется на противоположное.
А если это не шарик, а конец стержня, а вращени уже и так было в противоположенную сторону ?


 
Думкин   (2003-01-27 05:40) [29]


> Юрий Зотов © (26.01.03 11:36)
со стороны обтекающего его потока будет действовать боковая сила (эффект Флетчера, насколько помню).

Это сила Магнуса.


> Кен (27.01.03 02:46)

По тому, как вы удовлетворились простыми формулами и из того какие вопросы задаете - видно, что физика пока не ваш конек. Если вы хотите простых мультиков - то это одно, но если все серьезней - то учите физику и математику, весьма интересно. Моделирование падения стержня на стол - непростая задача для новичка, даже с массой допущений. Есть много явлений (даже внешне простых) но приводящих к огромным трудностям в описании и тем более в численной реализации.
Для начала простая(классическая) задача: На двух опорах лежит доска, причем имеется зеркальная симметрия - масса доски 100 кг, длина 10 м, опоры отстаят от краев на 1 м. Все на Земле и т.д. Теперь быстро одну опору убирают. Найти мнгновеннцую реакцию второй.
Задача классическая и выглядит весьма просто, но решите ее. Если решите верно - то хорошо, - учите физику и у вас все станет на место с вашим моделированием.
Люди которые Вам пишут, занимались или занимаются подобным (сам 6 лет гидродинамил) и вам на протяжении всей ветки дают ценный совет, хотите моделировать - учитесь(и компы с программированием тут ни причем). Понимание происходящего много ценнее кратковременных справочных выдержек.
Хотя моделирующие программы есть - но стоят они...., особенно буржуйские.


 
Мышь   (2003-01-28 00:29) [30]

Господа, о чем разговор?!! Есть такая наука - теормех, между прочим не особо сложная для понимания, вопреки расхожему мнению. Учиться нужно! Книгу в зубы и вперед, особенно, если действительно интересно. Само моделирование в смысле написания программы - это 3% времени, все остальное - физика, физика и еще раз физика... Ну, может еще чуть-чуть математики :)
Всем привет!


 
Впервые   (2003-01-28 04:45) [31]

слышу о "такой науке - ТЕОРМЕХ". Было когда-то мучался (как и многие другие) с термех"ом, но врядли он бы помог мне в сабже. Но с замечанием "все остальное - физика, физика и еще раз физика... Ну, может еще чуть-чуть математики" согласен на 100.


 
Кен   (2003-01-28 06:35) [32]

Давайте говорить языком формул ? И не предлагать друг другу изучить всё и вся на белом свете.

Ведь если вы у меня спросите как включить телевизор, я же не буду вам советовать изучить всю эллектроннику и разобраться в его схемах. Я скажу просто. Жми на красную кнопку. И всё. И это правильный подход.


 
Jeer   (2003-01-28 09:43) [33]

>Кен (28.01.03 06:35)
> Я скажу просто. Жми на красную кнопку. И всё. И это правильный >подход

Это правильный подход для пользоавтеля, но не для разработчика, который должен знать и спроектировать все процессы происходящие при нажатии на кнопку.
Присоединяюсь к мнению тех, кто советует Вам начать с книжек.

Мне приходилось много и много чего моделировать на ЦВМ.
Так, что тему знаю не понаслышке.

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


 
Ketmar   (2003-01-28 10:50) [34]

>Кен (26.01.03 02:29)
а не проще ли взять готовую библиотеку для физики (благо в Сети есть, и притом бесплатно)? только не надо спрашивать: "где?" в гугле.

Satanas Nobiscum! 28-Jan-XXXVIII A.S.


 
Кен   (2003-01-29 06:22) [35]

Ketmar ©
А как называется эта бесплатная библиотека для физики ?


 
danilka   (2003-01-29 09:05) [36]

>Кен (26.01.03 08:03)
>А совращением как быть ? Вращающийся стрежень падает на плоскость. Как рассчитывается его отскок ?

хе-хе, совращать надо девок а не стержень... :)


 
Ketmar   (2003-01-29 10:21) [37]

>Кен (29.01.03 06:22)
не помню, естественно. помнил бы - написал бы. ищем по ключевым словам в гугле и на сайте GLScene.

Satanas Nobiscum! 29-Jan-XXXVIII A.S.


 
Jeer   (2003-01-29 10:51) [38]

>Кен (29.01.03 06:22)
>Ketmar ©
>А как называется эта бесплатная библиотека для физики ?

Большая публичная, с книжками и картинками в них:))



 
Кен   (2003-01-30 05:41) [39]

Все такие мне рассказывают, какие они крутые, как они круто во всём разбираются. И никто не пишет формул. Одно самолюбование какое то. ... Фи.


 
David   (2003-01-30 09:24) [40]


> Кен (30.01.03 05:41)
> Все такие мне рассказывают, какие они крутые, как они круто
> во всём разбираются. И никто не пишет формул. Одно самолюбование
> какое то. ... Фи.

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



Страницы: 1 2 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.59 MB
Время: 0.014 c
1-87419
ArtemB
2003-02-18 13:20
2003.02.27
Перемещение столбцов в DBGrid


14-87635
HOOCH-C3M
2003-01-29 21:59
2003.02.27
ПОМОГИТЕ .


14-87654
SergeN
2003-02-10 14:27
2003.02.27
Не понимаю я!


1-87368
Tundra
2003-02-17 16:26
2003.02.27
ТThread не работает так как надо.


7-87730
FoxSW
2002-12-26 19:55
2003.02.27
Работа с памятью на низком уровне





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский