Моделирование и сочетание компьютерных рисунков с движением. Моделирование свободного движения автомобилей по двухполосным автомобильным дорогам. Тема урока: Моделирование движения в среде ЛогоМиры

Раздел программы: “Формализация и моделирование”.

Тема урока: “Моделирование движения”.

Тип урока: урок изучения нового материала.

Вид урока: комбинированный.

Технология: личностно-ориентированная.

Время проведения: второй урок по теме “Моделирование графических объектов”.

Цели урока:

  • развитие представлений о моделировании как методе познания;
  • формирование системно-информационного подхода к анализу окружающего мира;
  • формирование общеучебных и общенаучных навыков работы с информацией.

Задачи урока:

  • Воспитательная – развитие познавательного интереса, воспитание информационной культуры, воспитание умения четко организовать самостоятельную работу.
  • Учебная – изучить и закрепить прием моделирования динамических объектов.
  • Развивающая – развитие системно-конструктивного мышления, расширение кругозора.

Методы: словесные, наглядные, практические.

Организационные формы работы: фронтальные, индивидуальные.

Материально-техническая база:

  • презентация “Моделирование движение”;
  • комплекс: демонстрационный экран и компьютер с ОС Windows-9x с установленным MS Office 2000;
  • компьютеры с программной средой Turbo Pascal 7.0.

Межпредметная связь : математика.

1. Подготовка к уроку

Для урока подготовлена презентация с помощью Power Point с целью визуализации информации по ходу объяснения нового материала. (Приложение1.ppt)

План урока:

Содержание этапа урока Вид и формы работы
1. Организационный момент Приветствие
2. Мотивационное начало урока Постановка цели урока.
Фронтальный опрос
3. Изучение нового материала Использование слайдов, работа в тетради
4. Этап закрепления, проверки полученных знаний Практическая работа: компьютерный эксперимент по проверке программы
5. Этап систематизации, обобщения изученного Самостоятельная работа за компьютером: компьютерный эксперимент по исследованию модели.
Работа в тетради
6. Подведение итогов, домашнее задание Работа в тетради

Ход урока

2. Организационный момент

3. Мотивационное начало урока. Постановка цели урока

Учитель: На прошлом занятии мы строили статичное изображение.

Вопрос: Какая модель называется статической? Какая модель называется динамической?

Ответ: Модель, описывающая состояние объекта, называется статической. Модель, описывающая поведение объекта, называется динамической.

Учитель: Сегодня продолжим тему построение изображений, но уже в динамике, т.е. объект будет изменять свое положение на плоскости во времени. Начну с демонстрации имеющейся у меня копилки программ, которые хорошо иллюстрируют тему сегодняшнего урока. (Начинается показ через запуск программ на ЯП Паскаль “Хаотичное движение” , “Полет в космосе” , “Движение колеса” (Приложение2.pas, Приложение3.pas, Приложение4.pas). Изучение модели движения мы и посвятим сегодняшний урок.

В классе на экране тема урока “Моделирование движения”.

Запишите тему сегодняшнего урока.

Учитель: Условие задачи зафиксируйте в тетради.

Для решения задачи смоделируем процесс движения сначала через описательную модель, затем формализованную и, наконец, компьютерную, чтоб можно было реализовать модель на компьютере.

Для начала давайте обсудим вопрос, что значит создать анимацию (иллюзию движения какого-либо объекта)?

Обсуждение. Заслушивание всех вариантов ответов, вплоть до невозможных.

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

Учитель: Хорошо.

4. Изучение нового материала

Словесную описательную модель нашей задачи можно сформулировать так:

Учитель вслух комментирует описательную модель, просит учащихся зафиксировать ее в тетради.

Учитель: Перейдем к формализованной модели, и раз это изображение, то воспользуемся системой координат компьютера и схематично изобразим, как это должно выглядеть.

Учащиеся фиксируют эту модель в тетрадь.

Учитель: А вот как это будет выглядеть на экране (слайд выполнен с анимацией, круг проделывает движение слева на право).

Учащиеся наблюдают.

Учитель: Запишем словесный алгоритм реализации нашей модели. Ясно, что для повторения многократного изображений круга каждый раз в новой точке экрана понадобится цикл.

Вопрос: Какой цикл лучше использовать?

Ответ: For-To-Do.

Вопрос: Какая процедура поможет нам нарисовать круг белого цвета? Черного цвета?

Ответ: SetColor(15) и Circle(X,Y,R), затем SetColor(0) и Circle(X, Y, R).

Вопрос: Как осуществить задержку времени на пример на 100 м/сек?

Ответ: Delay(100).

Учитель: Правильно.

Демонстрируем слайды с 8 по 10. Учащиеся сверяют свои ответы с правильными.

Учитель: А теперь запишите всю программу целиком у себя в тетради.

Выдерживаем паузу 5–7 минут. Затем даем возможность свериться с образцом.

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

где - вектор ускорения центра масс автомобиля; m - масса автомобиля; fi - вектор силы сопротивления прямолинейному движению i-го колеса; i - вектор взаимодействия с грунтом i-го колеса; w - вектор силы сопротивления воздуха; J z - момент инерции автомобиля относительно оси z; M nki - момент сопротивления повороту i-го колеса.

Ускорение определяется как

где dV/dt - относительная производная скорости центра масс автомобиля. Проекции скоростей в координатах x`, y`, z`:

Учитывая, что:

можно записать следующую систему уравнений:

Данную систему уравнений решим с помощью пакета DEE (Differential Equation Editor) входящего в состав Simulink. Для этого записываем уравнения в нормальной форме Коши и настраиваем входные данные:

Рисунок 6. Решатель систем дифференциальных уравнений

Входными данными будут являться выходы с предыдущих блоков. Общий вид модели представлен на следующем рисунке:


Рисунок 7. Модель транспортного средства с колесной формулой 4х4

Результаты моделирования представим графически:

Рисунок 8. Траектория движения автомобиля

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

Моделирование движения заключается в искусственном воспроизведении процесса движения физическими или математическими методами, например, с помощью ЭВМ.

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

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

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

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

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

Следует отметить, что в настоящее время область моделирования транспортных потоков находится в стадии формирования. Различные аспекты моделирования исследуются в МАДИ, ВНИИБД, НИИАТ и других организациях.

К этому уроку прилагается 3D-сцена

Краткое предисловие

Собственно говоря, в предыдущих уроках уже были упомянуты отдельные аспекты физики в Cinema 4D: так, например, в самом первом уроке на данном сайте мы с вами роняли шар на плоскую поверхность , позже физическую модель Cinema 4D рассматривали как один из способов моделирования генератора бесконечного движения . Но до сих пор это были лишь частные, крайне поверхностные и самые примитивные аспекты физики.

В данном же уроке мы с вами перейдём к самому интересному: к углублённому изучению физики в Cinema 4D на основе конкретного примера - мы попробуем создать и настроить (хотя бы в самом примитивном варианте) вполне работоспособную физическую модель движения автомобиля по пересечённой местности, имитирующую в общих чертах те же принципы, по которым автомобиль движется в реальном мире.

Необходимость применения физической модели перемещения автомобиля кроется в словах «по пересечённой местности». В большинстве случаев при моделировании автомобильного движения нет никакой необходимости в использовании физической модели: автомобили равномерно движутся по траектории (именно такой транспортный поток мы с вами учились создавать из одной модели автомобиля , помните?), визуально практически никак не взаимодействуя с окружающей обстановкой, и это легко и просто изобразить простыми средствами, не прибегая к физике. Однако как только речь заходит о сложном рельефе местности, по которой едет автомобиль, или о неординарном поведении самого автомобиля (дрифт, заносы или столкновения) - вот тут-то и настаёт черёд физики, если только мы с вами не хотим вручную расставлять огромное количество ключей и править кривые поведения трёхмерной модели для каждой секунды поведения последней (и это без гарантии визуального праводоподобия финального рендера).

Цели и задачи

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

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

Приступаем?

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

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

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

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

Почему именно так, спросите вы? Почему это не может быть NULL-объект или сплайн?

Потому что созданный нами весовой центр по определению и в силу своего наименования предназначен для активного участия в физической модели внедорожника. Ни сплайны, ни NULL-объекты, будучи наделены физическими характеристиками, не используют последние, так как не имеют физической поверхности.

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

Именно для такого вида крепления в Cinema 4D предусмотрены объекты типа «Connector» (от англ. «connect» - «соединять»). Переходим в верхнее меню, ищем пункт «Simulation», в выпадающем из этого пункта меню выбираем подпункт «Dynamics» и в выпадающем подменю жмём «Connector».

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

Теперь нужно настроить коннектор. Выделяем его наименование в менеджере объектов и видим открывшееся ниже окно свойств.

Первый параметр, значение которого нам следует изменить - это тип соединения (параметр «Type»), от него зависит, по каким закономерностям будет смещаться колесо относительно кузова. Очевидно, наиболее подходящим типом соединения в нашем случае будет «Wheel Suspension». В поле напротив слов «Object A» перетаскиваем из менеджера объектов наименование весового центра, на изображении ниже он обозначен как «Base» - это объект, к которому мы с вами прикрепляем колесо. В поле напротив слов «Object B» перетаскиваем наименование колеса (на изображении обозначено как «Wheel_FR», от сокращения «Wheel Front Right») - это объект, который мы с вами прикрепляем. Параметры «Attachment A» и «Attachment B» трогать не будем - они обозначают, где у объектов находятся центры масс, и выставленные по умолчанию значения в данном случае нас вполне устраивают.

Переходим к тонкой настройке коннектора.

Параметр «Ignore Collisions» («игнорировать взаимодействие») предназначен для случая, когда вы хотите избежать физического взаимодействия колеса с весовым центром - например, если параметры коннектора позволяют колесу отклоняться на угол до 45 градусов, но колесо при этом упирается в объект, к которому прикреплено, и не может отклониться на максимально разрешённый угол, то эта настройка может помочь. Параметр «Steering Angle» («Угол поворота») - это и есть тот самый максимально разрешённый угол отклонения колеса от своего первоначального положения. Параметр «Suspension Rest Position» определяет смещение колеса по вертикали в состоянии покоя (то есть в те моменты, когда колесо ни с чем не взаимодействует). В нашем с вами случае значение составляет -15 см. - если изменить его до -25, то кузов внедорожника будет поднят по отношению к колёсам ещё выше, нежели в данный момент, и дорожный просвет увеличится, но при этом понизится устойчивость внедорожника, так как весовой центр окажется выше - не правда ли, это уже напоминает баланс устойчивости автомобилей в реальном мире? От значения параметра «Suspension Stiffness» зависит мягкость подвески. Чем меньше значение, тем мягче будет подвеска. Параметр «Suspension Dumping» определяет «прыгучесть» подвески. Ну и наконец, при желании можно активировать параметры «Lower Limit Y» и «Upper Limit Y» и указать для них значения дистанций, на расстояния больше которых колесо отклониться не сможет.

Закончив настройку коннектора, повторяем ту же операцию - начиная с создания нового коннектора - для второго переднего колеса, на сей раз левого. Вместо путешествий по верхнему меню, как вы, вероятно, уже сообразили, можно просто найти созданный нами ранее коннектор правого переднего колеса, и изо всех сил вдавив и не отпуская клавишу «Ctrl» на клавиатуре, перетащить наименование коннектора на свободное место в менеджере объектов - после выполнения этой операции мы с вами получим новую копию коннектора, да к тому же унаследовавшую от своего оригинала все настройки. Главное - не забудьте сменить в поле «Object B» свойств нового коннектора наименование правого колеса на наименование левого.

С передними колёсам закончили. Переходим к задним.

И сразу же сталкиваемся с несколько неочевидным на первый взгляд вопросом: сколько двигателей должно быть у нашего внедорожника? Что за странный вопрос, скажете вы - один, естественно.

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

Таким образом, у нас с вами имеется два альтернативных решения: если нам позарез требутся изобразить раздельную тягу двух ведущих колёс , мы можем добавить в виртуальную конструкцию два отдельных двигателя, каждый из которых будет крутить «своё» колесо. Если же моделирование раздельной тяги нам с вами не нужно, то наиболее эффективным и простым способом привести автомобиль в движение будет создание так называемой «колёсной пары» - два наглухо сцементированных вместе колеса, которые приводятся в движение одним мотором.

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

Итак, решено - создаём колёсную пару: выделяем два задних колеса - можно в рабочем окне, можно в менеджер объектов, где вам удобнее - затем уже именно в менеджере объектов щёлкаем на любом из них правой клавишей мыши и в выпадающем контекстном меню ищем пункт «Connect+Delete» («Соединить и удалить»). Строкой выше в том же контекстном меню есть пункт «Connect» - он при объединении элементов создаёт новый объект, оставляя нетронутыми оригиналы объединяемых моделей, нам же с вами оригиналы раздельных задних колёс не понадобятся.

Мы видим, что задние колёса внедорожника стали одним трёхмерным элементом - то, что нам и требовалось.

Создаём ещё один коннектор - на сей раз для задней колёсной пары, и учитывая её монолитность, всего один, после чего настраиваем его. Располагаем его, естественно, в центре колёсной пары.

Теперь создаём мотор: верхнее меню, снова пункт «Simulation», выпадающее меню, подпункт «Dynamics», в выпадающем меню подпункт «Motor».

Располагаем созданный мотор там же, где коннектор для колёсной пары - посерединке между задними колёсами (или, выражаясь научно, в геометрическом центре задней колёсной пары), затем выделяем его наименование в менеджере объектов, плавно премещаем взгляд в открывшееся ниже окно свойств мотора и приступаем к настройке.

В поле рядом со словами «Object A» перетаскиваем из менеджера объектов наименование задней колёсной пары (на изображении оно обозначено как «Back Wheels»). В поле рядом со словами «Object B» ничего не перетаскиваем. Для параметра «Type» («Тип») выбираем значение «Angular» («угловой») - всё правильно, ведь для движения внедорожника созданный нами мотор должен непрерывно поворачивать ведущую колёсную пару на определённый угол. В качестве значения для параметра «Mode» («Режим») указываем «Regulate Speed» («Постоянная скорость»). Ну и наконец указываем числовые значения для параметров «Angular Target Speed» («скорость вращения цели») и «Torque» («крутящий момент»).

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

Приступаем к настройке физических характеристик внедорожника. А заодно и выстраиваем иерархическую структуру элементов, из которых он состоит. Первым делом создаём группу, в которой будут собраны все элементы автомобиля (если этого ещё не сделано) - это можно сделать, объединив несколько первых попавшихся под руку элементов при помощи комбинации клавиш Alt+G (напоминаю, что в отличие от общепринятого в Cinema 4D способа последовательного раздельного нажатия клавиш, эта комбинация нажимается одновременно!), либо создав NULL-объект.

Далее обзываем созданную группу неким уникальным, неповторимым и незабываемым словом (к примеру, автор назвал её «CAR») и запихиваем в неё все относящиеся к внедорожнику элементы: кузов, колёса, коннекторы, весовой куб и мотор.

Теперь обозначаем элементы группы как участников физического взаимодействия с окружающей физической моделью: выделяем наименование группы, щёлкаем на нём правой клавишей мыши, в выпадающем меню наводим курсор мыши на пункт «Dynamics Tags» («Теги динамики») и в выпадающем из последнего подменю выбираем единственный пункт - «Dynamics Body».

Если до сих пор вы внимательно знакомились с данным уроком, то, возможно, спросите: как группа «CAR», будучи NULL-объектом, может физически взимодействовать в физической модели? Верно, сам NULL-объект - никак. Зато свойства динамики могут унаследовать от него все подчинённые ему элементы, при этом отпадает необходимость назначать тег динамики каждому элементу индивидуально. Главное - правильно настроить тег динамики группы. Настраиваем: выделяем тег и в открывшемся ниже окне свойств выбираем вкладку «Dynamics», в которой активируем параметр «Enabled» (тем самым включая физику взаимодействия) и выбираем значение «On» для параметра «Dynamic» (тем самым указывая участие группы во всех общих для сцены физических правилах, типа гравитации и пр.)...

После чего переходим во вкладку «Collision» («Соприкосновение») в том же окне свойств и указываем значения, заставляющие элементы группы наследовать правила динамики: «Apply Tag to Children» («распространять действие тега на дочерние элементы») для параметра «Inherit Tag» («Наследование»), «All» («всё») для «Individual Elements» («Отдельные элементы»), галочку напротив «Self Collisions» («Собственное взаимодействие») и «Automatic (MoDynamics)» для «Shape» («Контур»). Остальные параметры настраиваем на свой вкус.

Тут будет уместно наконец-то вспомнить про кузов внедорожника. По нашей задумке, он также должен взаимодействовать с окружающей физической моделью трёхмерной сцены - например, разбрасывать носовой частью стену из картонных ящиков, - но при этом не должен взаимодействовать с другими элементами своей же группы - с весовым кубом и колёсами. Чтобы добиться такого результата, мы с вами подчиним его весовому кубу и назначим кузову индивидуальный тег динамики - точно так же, как группе элементов автомобиля, - но в теге динамики кузова отключим параметр «Dynamic» (укажем для него значение «Off») во вкладке «Dynamics» (обратите внимание, параметр «Enabled» остаётся активированным, иначе кузов вообще перестанет участвовать в физической модели сцены, и любое оказавшееся на пути внедорожника препятствие свободно пройдёт насквозь через кузов!). Во вкладке «Collision» назначенного кузову тега динамики для параметров «Inherit Tag» и «Individual Elements» можно указать соответственно «None» и «Off» - у кузова нет подчинённых элементов, которым следовало бы передавать динамические свойства кузова.

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

В заключение

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

Финальный результат в виде анимации.


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

Основанием для моделирования свободного движения автомобиля явились:

Уравнения теории эксплуатационных свойств автомобиля:

а) тягово-скоростные и тормозные свойства автомобиля;

б) уравнения криволинейного движения и устойчивости автомобиля.

Натурные наблюдения за параметрами движения автомобилей на двухполосных дорогах.

Математическая модель свободного движения автомобиля имеет следующую концептуальную основу:

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

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

Если базовая скорость движения автомобиля на следующем участке дороги отличается от базовой скорости на текущем участке, то водитель заранее изменяет скорость движения автомобиля таким образом, чтобы к моменту въезда на новый участок скорость движения достигла величины базовой скорости на новом участке.

Водитель может через органы управления автомобиля воздействовать на параметры движения следующими способами:

а) изменить скорость движения и ускорение нажатием на педаль тормоза или акселератора (выдвижением рейки);

б) изменить передаточное число КПП, что позволяет изменить диапазон значений скорости движения автомобиля;

в) изменить направление движения автомобиля, вращением рулевого колеса.

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

С точки зрения обеспечения базовой скорости движения автомобиля в конкретных дорожных условиях могут возникнуть следующие характерные обстоятельства:

возможность водителя увеличить скорость движения автомобиля до базовой скорости ограничена тягово-динамическими характеристиками автомобиля;

возможность водителя уменьшить скорость движения автомобиля в режиме торможения (экстренное торможение) ограничена коэффициентом сцепления шины с дорогой и/или тормозными характеристиками автомобиля;

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

Рассмотрим подробнее, каким образом моделируется движение автомобиля в перечисленных выше случаях.

В первом случае движение автомобиля моделируется на основе известных в теории автомобиля дифференциальных уравнений, полученными на основе уравнения силового баланса автомобиля:

P т = P п + P к + P в + P и, (2.5)

где P т - тяговая сила при установившейся скорости автомобиля;

P п - сила сопротивления подъему;

P к - сила сопротивления качению;

P в - сила сопротивления воздуху;

P и - сила сопротивления разгону (приведенная сила инерции).

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

где N e , N max - соответственно, мощность и максимальная мощность двигателя, квт;

M k - крутящий момент двигателя, Нм;

M kN - крутящий момент двигателя, при максимальной мощности, Нм;

a, b, c - постоянные коэффициенты для данного двигателя;

n - угловая скорость коленчатого вала двигателя, об/мин;

n N - угловая скорость коленчатого вала при максимальной мощности двигателя, об/мин.

После замены всех членов уравнения (2.5) на соответствующие значения и некоторых преобразований получается:

Где m a - масса автомобиля, кг;

m 0 - масса автомобиля, с номинальной нагрузкой, кг;

u k i - передаточное число коробки передач;

v - скорость движения автомобиля, м/с;

тр - коэффициент полезного действия трансмиссии;

k p - коэффициент коррекции двигателя;

Номинальная скорость движения автомобиля при i-й передаче, м/c;

G a - сила тяжести, действующий на автомобиль, Н;

k f - параметр учета влияния скорости движения на коэффициент сопротивления качению колеса;

W - фактор обтекаемости автомобиля, кг/м;

f 0 - коэффициент сопротивления качению при малой скорости движения;

б - продольный уклон дороги.

Уравнение (2.8) определяет ускорение автомобиля в зависимости от скорости движения. Для рассматриваемой имитационной модели зависимости вида “ускорение - скорость”, “путь разгона - скорость” и т. д. непригодны, поскольку при пересчете векторов-координат автомобилей через интервал времени t min (см. блок 12 на рис 2.16) возникает необходимость определения этих параметров в зависимости от времени.

С целью определения зависимости скорости движения от времени при полной подаче топлива можно проинтегрировать выражение (2.8). Пусть начальным условием будет v = v 0 при t=0. Тогда после интегрирования получим:

Проинтегрируем (2.13) еще раз, при начальных условиях t=0 и s=s 0 . Получим:

где v 0 - начальная скорость движения автомобиля;

s 0 - начальное положение автомобиля;

v 1 и v 2 - корни уравнения.

Для того чтобы получить зависимость a = a(t) нужно найти производную выражения (2. 13) по времени. Получим:

Выражения (2.13) - (2.15) позволяют пересчитать параметры движения автомобиля через произвольный промежуток времени t min , в условиях ограничения параметров движения тягово-динамическими характеристиками автомобиля.

Во втором случае моделирование движения автомобиля осуществляется при следующих допущениях:

силы реакции R x достигают максимального значения одновременно для всех колес;

коэффициенты сцепления x всех колес с дорогой, а следовательно, и ускорение автомобиля j з остаются неизменными за весь период установившегося замедления.

При таких допущениях процесс торможения может быть описан тормозной диаграммой j з = j(t) (рис. 2.3) . Весь процесс торможения с момента обнаружения опасности до полной остановки автомобиля состоит из следующих этапов:

время реакции водителя t рв;

время запаздывания t з;

время нарастания тормозного усилия t н;

время установившегося замедления t уст;

время растормаживания t р.

В случае торможения при полном использовании сил сцепления (экстренное торможение) j уст зависит только от коэффициента сцепления шин с дорогой и продольного уклона дороги, а значение ускорения можно считать постоянным:

Скорость движения и пройденный путь автомобиля в произвольный момент времени t легко определяются интегрированием выражений (2.16) и (2.17):

Рис. 2.3 Тормозная диаграмма автомобиля

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

j уст < a < a max , (2. 20)

и определяется водителем.

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

Теперь рассмотрим движение автомобиля в условиях изменения направления движения.

В модели предусмотрены следующие виды траекторий движения автомобилей:

прямолинейное движение;

круговое движение (угол поворота управляемых колес не изменяется);

криволинейное движение при постоянной угловой скорости поворота управляемых колес;

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

Криволинейное движение автомобиля в рассматриваемой имитационной модели определяется:

координатами расчетной точки автомобиля относительно неподвижной системе координат;

курсовым углом движения автомобиля;

углом поворота управляемых колес автомобиля;

угловой скоростью поворота управляемых колес.

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

В модели движение автомобиля рассматривается как чередование прямолинейного движения, кругового движения и криволинейного движения переменного радиуса. Первые два достаточно хорошо описываются сравнительно простыми аналитическими выражениями. Рассмотрим подробней криволинейное движение (рис. 2.4). В дальнейшем будем принимать следующие допущения:

углы поворота обоих управляемых колес автомобиля равны между собой;

у колес автомобиля отсутствует боковой увод;

угловая скорость поворота управляемых колес постоянна;

расчетная точка автомобиля движется с постоянным ускорением;

автомобиль движется на плоскости (плоское движение);

отсутствует буксование колес;

крен автомобиля не влияет на траекторию.

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

на несколько участков, на каждом из которых значения указанных величин принимается постоянными.

Рис. 2.4

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

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

где x в, y в - координаты середины задней оси автомобиля;

C 1 и C 2 - постоянные, определяемые начальными условиями;

Угол поворота управляемых колес автомобиля;

v o - скорость движения автомобиля;

k - угловая скорость поворота управляемых колес автомобиля;

L 0 - база автомобиля;

k p - режимный параметр, характеризующий режим криволинейного движения:

Аналогичные формулы, но относительно движения центра масс автомобиля приведены в работе:

где x ц.м. , y ц.м. - координаты центра масс автомобиля;

C 1 , C 2 , C 3 - постоянные, определяемые начальными условиями;

v a - скорость движения автомобиля;

v y - скорость бокового смещения центра масс автомобиля;

a - угловая скорость продольной оси автомобиля в горизонтальной плоскости.

Траектории точек автомобиля, находящихся на продольной оси, могут быть заданы зависимостью ее кривизны от времени. Однако, моделирование криволинейного движения автомобиля в неподвижной системе координат через x в, и y в, а также угла гораздо удобнее.

В уравнениях (2.23) - (2.26) скорость движения автомобиля предполагается постоянной величиной. В реальном процессе движения автомобиля в транспортном потоке часто сочетаются криволинейное движение с изменением скорости движения. Это происходит, в частности, в следующих ситуациях:

перед остановкой автомобиль одновременно уменьшает скорость движения и криволинейным движением приближается к правой кромке проезжей части;

после трогания с места автомобиль увеличивает скорость движения и по криволинейной траектории приближается к середине полосы движения;

во время обгона, особенно в первой фазе обгона с ожиданием, автомобиль меняет полосу движения и одновременно увеличивает скорость движения;

на перекрестках, после запрещающего сигнала светофора, или после пропуска помехи справа, поворачивающие автомобили двигаются криволинейно и с ускорением и т.д.

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

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

Пусть автомобиль движется с постоянным ускорением a. Тогда выражение (2.23) принимает следующий вид:

Разложим в степенной ряд подынтегральное выражение, содержащееся в правой части (2.30) и возьмем столько членов, сколько требуется для обеспечения необходимой точности. Обозначим

Тогда (2.30) можно переписать в следующем виде:

Приближенные аналитические решения уравнений (2.24) и (2.25) также будем искать, разлагая в степенной ряд функции f()=cos(()) и g()=sin(()), где курсовой угол определяется из выражения (2.31). Производные от упомянутых функций первых нескольких порядков приведены в табл. 2.1.

Пусть в начале криволинейного движения курсовой угол автомобиля 0 =0. Тогда:

Теперь можно определить траекторию движения точки B автомобиля (рис. 2.4). Выражения (2.24) и (2.32) позволяют после интегрирования (2.24) получить

Аналогично, из выражений (2.25) и (2.33) после интегрирования (2.25) можно получить

Выражения (2.34) и (2.35) вполне приемлемы для расчета траектории движения автомобиля, если за время криволинейного движения курсовой угол автомобиля изменяется не более чем на 90°. В реальных дорожных условиях такое изменение практически никогда не превышает

Таблица 2.1

Производные от функций f(и) и g(и) первых нескольких порядков

Порядок производной n

f(n)(и), при и=0

g(n)(и), при и=0

105 B4-588 B2-896 D2

420 B3-272 B+1120 B D2

2520 B3 D+8160 B D

8064 B2 D-2240 D3+2176 D

6300 B4-18960 B2+25200 B2 D2-31104 D2

945 B5+16380 B3-7936 B+57120 B D2

Таблица 2.2

Значения функций f(и) и g(и), описывающие процесс поворота автомобиля ГАЗ-24 при v 0 =10 м/с, k =0,05 рад/с, L 0 =2,8 м, 45°.

г(и), по формуле (2.23), град

f(и), по формуле (2.23)

f(и), по формуле (2.32)

g(и), по формуле (2.23)

g(и), по формуле (2.33)

В табл. 2.2 приведены значения функций f() и g(), которые описывают процесс поворота автомобиля ГАЗ-24 при v 0 =10 м/с, k =0,05 рад/с, L 0 =2,8 м. Вычисления проводились с одной стороны с применением выражения (2.23), а с другой стороны - выражений (2.32) и (2.33). При <90° расхождения в значениях функций не превышает 0,1%, что вполне обеспечивает требуемую точность вычислений.

Координаты любой другой точки E автомобиля (рис. 2.4), находящейся от точки B на расстояниях a и b, соответственно по продольной и поперечной оси автомобиля, можно определить следующим образом:

Рассмотрим, каким образом происходит процесс поворота в имитационной модели в режиме свободного движения. До начала криволинейного движения водитель уменьшает скорость движения до значения базовой скорости свободного движения v св на участке поворота. С такой скоростью он завершает поворот, а после поворота при необходимости опять увеличивает скорость движения. Значение скорости движения v св определяется на основе натурных наблюдений.

Модель процесса поворота представляет собой последовательность трех этапов (рис. 2.5):

водитель с постоянной угловой скоростью р1 вращает рулевое колесо по/против направления часовой стрелки, при правом/левом повороте. Управляемые колеса совершают поворот с угловой скоростью k1 . Автомобиль совершает криволинейное движение. Радиус кривизны траектории движения уменьшается от + до R п (участок E 1);

водитель держит рулевое колесо в неподвижном состоянии. Автомобиль двигается по круговой траектории с постоянным радиусом поворота R п относительно центра поворота С. Этот этап в процессе поворота может отсутствовать (участок E 2);

водитель вращает рулевое колесо в обратном направлении с постоянной угловой скоростью р2 . Управляемые колеса поворачиваются с угловой скоростью k2 . Автомобиль снова движется по криволинейной траектории. Радиус кривизны траектории движения увеличивается от R п до + (участок E 3).

Первая часть неравенства (2.38) объясняется стремлением водителя удержать автомобиль на своей полосе движения. При < S 0min водитель не в состоянии предотвратить выезд автомобиля за пределы своей полосы движения, если ускорение не изменять (если ускорение изменится, то S 0min тоже изменится).

Рис. 2.5 Схема к описанию модели процесса поворота автомобиля

Вторая часть неравенства объясняется тем, что, если в начале поворота > S 0max , и в дальнейшем водитель не изменит параметры движения автомобиля (k и a), то автомобиль либо выедет за пределы проезжей части дороги, либо пересечет биссектрису OC угла ц под острым углом, т.е. в дальнейшем опять-таки выедет за пределы полосы движения. Поэтому, для предотвращения этого, водитель вынужден приближаться к повороту до тех пор, пока не выполнится второе условие неравенства (2.38) и только после этого начинать поворот.

Водитель начинает поворот на некотором расстоянии до центра O перекрестка. является случайной величиной. При принятых выше ограничениях значение величины находится в пределах:

S 0min < < S 0max (2.38)

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

определяется минимальное значение kmin угловой скорости поворота управляемых колес, при котором автомобиль в процессе поворота не выедет за пределы полосы движения с противоположной стороны от центра поворота С (рис. 2.6а);

определяется максимальное значение kmax угловой скорости поворота управляемых колес, при котором автомобиль в процессе поворота не выедет за пределы полосы движения со стороны центра поворота (рис. 2.6б);

определяются значения р min и р max угловой скорости поворота рулевого колеса, соответствующие значениям kmin и kmax ;

между значениями р min и р max генератором случайных чисел по заранее заданному закону распределения разыгрывается случайное число k ", которое и является значением угловой скорости поворота управляемых колес на первом этапе поворота.

Рис. 2.6 Схема к вычислению угловой скорости поворота управляемых колес автомобиля в процессе поворота

Закон распределения случайной величины k ", определяется в результате натурных наблюдений (см. п. 3.2, рис. 3.12). На третьем этапе значение угловой скорости поворота управляемых колес k "" определяется аналогично.