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

Продолжаем серию статей по автоматизации выполнения фигур пилотажа на малом ДПЛА. Настоящая статья имеет, прежде всего, образовательную цель: здесь мы покажем, как можно создать простейшую систему автоматического управления (САУ) на примере задачи выполнения фигуры пилотажа «бочка» при управлении летательным аппаратом только элеронами. Статья является второй в цикле публикаций «Пилотажный ДПЛА», рассказывающем о процессе постройки аппаратной и программной частей САУ в обучающей форме.

Введение

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

Так как при небольших углах атаки и скольжения самолёта его движение по крену практически не связано с движением в двух других каналах: путевом и продольном - для выполнения простой «бочки» достаточно будет построить модель движения только вокруг одной оси - оси ОХ связанной СК. По этой же причине, закон управления элеронами не будет существенно изменяться, когда дело дойдет до создания полной системы управления.

Модель движения

Уравнение движения ЛА вокруг продольной оси ОХ связанной СК крайне простое:

Где - момент инерции относительно оси ОХ , а момент состоит из нескольких составляющих, из которых для реалистичного описания движения нашего самолёта достаточно рассмотреть только две:

Где - момент, обусловленный вращением ЛА вокруг оси ОХ (демпфирующий момент), - момент, обусловленный отклонением элеронов (управляющий момент). Последнее выражение записано в линеаризованной форме: момент крена линейно зависит от угловой скорости и угла отклонения элеронов с постоянными коэффициентами пропорциональности и соответственно.

Как известно (например, из Вики), линейному дифференциальному уравнению

Соответствует апериодическое звено первого порядка

Где - передаточная функция, - оператор дифференцирования, - постоянная времени, а - коэффициент усиления.

Как перейти от дифференциального уравнения к передаточной функции?

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




Для апериодического звена постоянная времени равна времени, за которое выходная величина при единичном ступенчатом воздействии входной величины принимает значение, отличающееся от установившегося на величину ~5%, а коэффициент усиления численно равен установившемуся значению выходной величины при единичном ступенчатом воздействии:


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

Таким образом, если известен момент инерции , то, определив параметры модели, по ним можно восстановить параметры системы.

Параметры модели. Момент инерции

Наш летательный аппарат состоит из следующих частей: крыло, фюзеляж с оперением, двигатель, аккумулятор (АКБ) и БРЭО:

К БРЭО относятся: плата автопилота, плата приёмника СНС, плата радиомодема, плата приёмника сигнала от управляющей аппаратуры, два регулятора напряжения, регулятор оборотов двигателя, а также соединительные провода.

В силу малого веса БРЭО, его вкладом в общий момент инерции можно пренебречь.

Как проводилась оценка величины момента инерции?

Оценку момента инерции можно провести следующим образом. Посмотрим на самолёт вдоль оси ОХ :

А затем представим его в виде следующей упрощённой модели:


Схема для расчёта момента инерции . Слева вверху - аккумулятор, справа внизу - двигатель. Двигатель и аккумулятор располагаются на оси фюзеляжа

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


Общее значение момента инерции ЛА относительно оси ОХ получим сложением моментов инерции частей:

Оценив вклад каждой из частей ЛА в общий момент инерции , получилось следующее:

  • крыло - 96.3%,
  • фюзеляж - 1.6 %,
  • двигатель и аккумулятор - 2%,
Видно, что основной вклад в общий момент инерции вносит крыло. Это связано с тем, что крыло имеет довольно большой поперечный размер (размах крыла - 1 м):

Поэтому, несмотря на скромный вес (около 20% от общей взлётной массы ЛА), крыло имеет значительный момент инерции.

Параметры модели. Производные момента крена и

Вычисление производных момента крена – довольно трудная задача, связанная с расчётом аэродинамических характеристик ЛА численными методами или с помощью инженерных методик. Применение первых и вторых требует значительных временных, интеллектуальных и вычислительных затрат, которые оправданы при разработке систем управления большими самолётами, где стоимость ошибки всё же превышает затраты на построение хорошей модели. Для задачи управления БПЛА, масса которого не превосходит 2 кг, такой подход вряд ли оправдан. Другой способ вычисления этих производных - лётный эксперимент. Учитывая дешевизну нашего самолёта, а также близость подходящего поля для проведения такого эксперимента, для нас выбор был очевиден.

Записав в автопилот прошивку для ручного управления и регистрации параметров, мы собрали самолёт и подготовили его к испытаниям:

В лётном эксперименте удалось получить данные по углу отклонения элеронов и угловой скорости вращения ЛА. Пилот управлял самолётом в ручном режиме, выполняя полёт по кругу, развороты и «бочки», а бортовое оборудование регистрировало и отправляло необходимую информацию на наземную станцию. В результате были получены необходимые зависимости: (град/с) и (б/р). Величина представляет собой нормированный угол отклонения элеронов: значение 1 соответствует максимальному отклонению, а значение −1 - минимальному:

Как теперь определить и из полученных данных? Ответ - измерить параметры переходного процесса по графикам и .

Как определялись коэффициенты k и T?

Коэффициент усиления определялся путём отнесения величины установившегося значения угловой скорости к величине отклонения элерона:


Зависимости угла отклонения элеронов и угловой скорости крена от времени, полученные в лётном эксперименте

На предыдущем рисунке участкам установившегося значения угловой скорости приблизительно соответствуют, например, отрезки вблизи моментов времени 422, 425 и 438 с (отмечены тёмно-красным на рисунке).
Постоянная времени определялась из тех же графиков. Для этого найдены участки резкого изменения угла отклонения элерона, а затем измерено время, за которое угловая скорость принимает значение, отличающееся от установившегося значения на 5%.


Результат определения значений постоянной времени и коэффициента усиления следующий: , . Этим значениям коэффициентов при известном значении момента инерции соответствуют следующие значения производных момента крена:

Верификация модели

Итак, построив модель, основой которой является апериодическое звено

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

Как проводилось моделирование?

Инструмент для проведения моделирования мы выбирали, прежде всего, основываясь на возможности повторения результатов широким кругом читателей: это прежде всего означает, что программа должна быть в общественном доступе. В принципе задачу моделирования поведения апериодического звена первого порядка можно решить и создав свой собственный инструмент с нуля. Но так как в дальнейшем модель будет усложняться, то создание своего инструмента может отвлечь от основной задачи - создания САУ пилотажного ДПЛА. С учётом принципа открытости инструмента мы выбрали JSBsim .

В предыдущем разделе мы получили значения коэффициентов и . Используем их для моделирования движения самолета. Из прошлой статьи мы помним, что конфигурация модели самолета в JSBsim задается при помощи XML файла. Создадим собственную модель:
0.2 1.0 0.2 0.03 0.5 0.03 0.5 -0.025 0 0.05 0.018 0.018 0.018 1.2 0 0 0 fcs/aileron-cmd-norm -1 1 Roll_moment_due_to_roll_rate velocities/p-aero-rad_sec -0.24 Roll_moment_due_to_aileron fcs/aileron-cmd-norm 2.4 Velocities/vc-kts Aero/alphadot-deg_sec Aero/betadot-deg_sec Fcs/throttle-cmd-norm OFF OFF OFF ON ON ON OFF OFF ON OFF OFF ON OFF
Так как мы строим модель движения аппарата только по крену, оставим многие из секций файла пустыми. В файле модели последовательно задаются следующие характеристики.

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

Массовые характеристики самолёта задаются в секции mass_balance : тензор инерции самолета, вес пустого самолета, положение центра масс.

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

В следующей секции, ответственной за систему управления , заполним канал, ответственный за управление по крену: укажем единственный вход fcs/aileron-cmd-norm , величина которого будет нормирована от -1 до 1.

Аэродинамические характеристики задаются в секции aerodynamics : силы задаются в скоростной системе координат, моменты - в связанной. Нас интересует момент по крену. В секции axis name=«ROLL» задаются функции, которые определяют момент сил от различных составляющих проекции момента аэродинамических сил на ось OX связанной системы координат. В нашей модели таких составляющих две. Первая составляющая - демпфирующий момент, который равен произведению угловой скорости на определенный ранее коэффициент . Вторая составляющая - это момент от элеронов при фиксированной скорости полёта: он равен произведению ранее определенного коэффициента на величину отклонения элеронов.

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

Проверить созданную модель можно на экспериментальных данных, полученных при лётных испытаниях. Для этого создаем скрипт следующего содержания:
sim-time-sec ge 0.0 Provide a time history input for the aileron sim-time-sec ge 0

sim-time-sec 0 0.00075 0.1 0.00374 0.2 -0.00075 0.3 -0.00075 0.4 -0.00075 0.5 -0.00075 0.6 0.00075 0.7 0.00075 ... 48.8 -0.00075 48.9 0.00000 49 -0.00075

где точками обозначены пропущенные данные. В знакомом нам по предыдущей статье файле скрипта появился новый тип события («Time Notif» ), который позволяет задавать непрерывное изменение параметра по времени. Зависимость параметра от времени задана табличной функцией. JSBSim линейно интерполирует значение функции между табличными данными. Процедура верификации модели движения по крену заключается в исполнении данного скрипта на созданной модели и сравнения результатов с экспериментальными.


Результат верификации показан на рисунке:


Как видно из рисунка, совпадение модели с реальностью чуть менее, чем полное.

Синтез управления для выполнения «бочки»

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



Наличие отрезков длительностью по 0.1 с в начале и в конце алгоритма отклонения элеронов моделирует инертность сервопривода, который не может отклонить поверхности мгновенно. Модель показывает, что при таком законе отклонения элеронов ЛА должен выполнить один полный оборот вокруг оси ОХ , проверим?

Лётный эксперимент

Полученный закон управления элеронами был запрограммирован в автопилот, установленный на самолёт. Идея эксперимента проста: вывести самолёт в горизонтальный полёт, после чего задействовать полученный закон управления. В случае если реальное движение ЛА по крену соответствует созданной модели, то самолёт должен выполнить «бочку» - один полный оборот на 360 градусов.

Отдельно выражаем благодарность нашему верному пилоту за труд, профессионализм и удобный багажник на приоре-универсал!

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


А на следующем рисунке показаны зарегистрированные в лётном эксперименте сигналы на элероны, руль высоты (РВ) и руль направления (РН):


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

Замечания

Выводы

В результате проведённой работы мы показали один из способов создания модели движения ДПЛА по угловой скорости . В лётном эксперименте было доказано, что созданная модель движения вполне соответствует моделируемому объекту. На основании разработанной модели получен закон программного управления, позволяющий выполнять «бочку» в автоматическом режиме. Также мы убедились, что выполнить правильную «бочку» одними элеронами не получится, а также наглядно это продемонстрировали.

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

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

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

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

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

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

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

Цели урока:

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

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

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

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

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

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

  • презентация “Моделирование движение”;
  • комплекс: демонстрационный экран и компьютер с ОС 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 минут. Затем даем возможность свериться с образцом.

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

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

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

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

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

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

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

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

Что мы знаем о самобалансировании велосипедов

Современный велосипед не очень сильно отличается от безопасного велосипеда — одной из первых конструкций, появившейся в 80-х годах XIX века. По прошествии более ста лет ученые все еще пытаются выяснить, за счет каких эффектов велосипед становится самобалансируемым. Другими словами, как неуправлемый велосипед сохраняет равновесие в вертикальном положении? Описанию движения велосипеда с помощью аналитических уравнений посвящено множество опубликованных работ. Одной из первых важных публикаций по этой теме была статья Фрэнсиса Уиппла, в которой он получил общие нелинейные уравнения динамики велосипеда, управляемого велосипедистом без использования рук.

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

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

Положение велосипеда в разные моменты времени.

Многотельная модель велосипеда

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


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

Используются следующие ограничения: Отсутствие проскальзывания в прямом направлении:

{\frac{d\bold{u}}{dt}.\bold{e}_{2}=r\frac{d\bold{\theta}_s}{dt}}

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

\frac{d\bold{u}}{dt}.\bold{e}_{3}=r\frac{d\bold{\theta}_{l}}{dt}

Отсутствие проскальзывания перпендикулярно поверхности контакта с землей:

\frac{d\bold{u}}{dt}.\bold{e}_{4}=0

где \bold{e}_{2} , \bold{e}_{3} , and \bold{e}_{4} — мгновенное направление (наклонная ось), поперечное направление (ось вращения) и нормаль к поверхности контакта (\bold{e}_{4}=\bold{e}_{2} \times\bold{e}_{3}) , соответственно;

\frac{d\bold{u}}{dt} — поступательная скорость движения; r — радиус колеса; \frac{d\bold{\theta}_{s}}{dt} — угловая скорость вращения; \frac{d\bold{\theta}_{l}}{dt} — угловая наклонная скорость.

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

(\bold{u}-\bold{u}_{p}).\bold{e}_{2}=r(\bold{\theta}_{s}-\bold{\theta}_{sp})

(\bold{u}-\bold{u}_{p}).\bold{e}_{3}=r(\bold{\theta}_{l}-\bold{\theta}_{lp})

(\bold{u}-\bold{u}_{p}).\bold{e}_{4}=0

где \bold{u}_{p} , \bold{\theta}_{sp} и\bold{\theta}_{lp} — это вектор смещения, угол вращения и наклона в предыдущий момент времени, соответственно.

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

Моделирование движения самобалансирующегося велосипеда

Для анализа мы выбрали велосипед, угол наклона руля которого составляет 18°. Начальное значение скорости велосипеда составляет 4.6 м/с. Через 1 секунду после начала движения на велосипед в течение очень короткого периода времени воздействует сила 500 Н. Под действием силы велосипед отклоняется от прямолинейной траектории движения в заданном направлении.

В течении первой секунды велосипед движется вперед вдоль первоначально заданного направления с постоянной скоростью. Затем боковое усилие вызывает отклонение. Отметим, что велосипедист не держит руки на руле и не может управлять балансом велосипеда. Что происходит дальше? Мы можем заметить, что как только велосипед начинает наклоняться, руль поворачивается в направлении падения. Корректировка положения руля при падении приводит к восстановлению равновесия велосипеда.

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

Движение велосипеда на ровной поверхности при отклонении от прямолинейного движения. Стрелка показывает наклон велосипеда.

Результаты расчета углов наклона и поворота руля (слева) и относительная угловая скорость (справа) велосипеда.

Проведение анализа устойчивости

Таким образом, мы узнали, что велосипед может самобалансироваться. Исследование показало, что невозможно выделить какой-то один параметр, определяющий устойчивость велосипеда. Конструкция велосипеда, распределение массы и скорость движения — все эти факторы влияют на устойчивость. Чтобы лучше понять это явление, мы провели дополнительный анализ для изучения влияния двух параметров — начальной скорости и наклона рулевой оси. Мы использовали описанную выше модель велосипеда с углом наклона оси руля 18° и начальной скоростью 4.6 м/с в качестве исходной конфигурации и провели параметрический анализ влияния этих двух факторов.

Различные значения начальной скорости

Велосипед не может оставаться в строго вертикальном положении, когда стоит на месте. Мы изменяли скорость движения от 2.6 м/с до 6.6 м/с с шагом 1 м/с, чтобы оценить влияние этого параметра. В диапазоне 2.6–3.6 м/с велосипед наклоняется слишком сильно и неустойчив. На скорости 5.6 м/с скорость наклона стремится к нулю, но сам угол наклона приобретает ненулевое значение. Хотя данная конфигурация устойчива, велосипед будет двигаться по кругу с небольшим наклоном. На 6.6 м/с наклон и угол поворота руля увеличиваются со временем, делая движение неустойчивым.

Неустойчивое Устойчивое Неустойчивое
2.6 м/с 3.6 м/с 4.6 м/с 5.6 м/с 6.6 м/с

Устойчивый случай соответствует скорости 5.6 м/с (слева), а неустойчивый — скорости 6.6 м/с (справа).

Угол поворота руля

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

Чтобы проанализировать влияние поворота оси руля на устойчивость велосипеда, мы изменяли углы поворота руля от 15° до 21° с шагом 1°. При угле в 15° наклон и угол поворота руля увеличиваются со временем, что делает данную конфигурацию неустойчивой. Велосипед устойчив в диапазоне от 16° до 19° и неустойчив для больших углов. При значениях поворота больше 19°, наклон и угол поворота колеблются, и эти осцилляции со временем возрастают, что приводит к потере устойчивости.

В этой публикации мы рассказали, как смоделировать движение неуправляемого самобалансирующегося велосипеда с помощью модуля Динамика многотельных систем (Multibody Dynamics) в COMSOL Multiphysics. Мы продемонстрировали, как реализовать ограничения на проскальзывание на жестком колесе через уравнения, а затем объединили эти ограничения с многотельной моделью велосипеда. Затем мы проанализировали влияние начальной скорости и поворота оси на устойчивость велосипеда. Оценив эти параметры, мы увидели, что велосипед может сохранять устойчивость в одной конфигурации и терять ее в другой.

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

Цели урока:

Обучающие (конечные результаты урока):

Знание: знать, что представляют собой процесс движения, как его организовать в Qbasic.

Понимание: уметь привести примеры движения, которые можно смоделировать на ЭВМ.

Применение: уметь составить программу, реализующую движение по заданной траектории, проверить ее на ЭВМ.

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

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

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

Развивающие: развитие общеучебных умений и навыков, воображения и фантазии.

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

Оборудование:

компьютерный класс, язык программирования Qbasic, презентация по теме урока, проектор к ЭВМ, экран, карты урока, карточки с правильными ответами для самоконтроля, демонстрационные программы.

Ход урока:

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

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

Говоря о движении, сразу вспоминается крылатое выражение «Движение – это жизнь». И действительно, кто не хотел, чтобы неподвижная картинка на экране «ожила». Например, на ней пошел бы «настоящий» снег, неподвижный кораблик поплыл, а стрелки часов начали бы свой ход. Этому «волшебству» мы можем научиться сегодня на уроке.

Итак, вы узнаете,

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

Рассмотрите примеры программ;

Научитесь «оживлять» объекты;

Проанализируете готовые программы;

Сравните процесс движения в графическом и текстовом режимах.

Что такое движение? С физической точки зрения движение – это изменение положения тела с течением времени. Для начала мы будем моделировать движение простых объектов– точки, окружности, линий. Вспомним их форматы записи.

У каждого объекта выбирается точка с координатой (x,y), положение которой будет меняться. Если для окружности – это координата центра, то у линии (прямоугольника) - это только одна из точек.

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

Каковы правила моделирования движения?

1) Выберем координаты.

2) Изобразим объект.

3) Сделаем паузу.

4) Сотрем объект (закрашивая его цветом фона, или на месте удаляемых символов будем печатать пробелы).

5) Выберем следующие координаты.

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

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

Тренинг 1. Движение по горизонтали.

Определите по приведенным траекториям следующие данные и занесите в таблицу:

номер графика

координата X меняется

координата Y

Тренинг 2. Движение по вертикали.

Определите по приведенным траекториям следующие данные и занесите в таблицу:

номер графика

координата X

координата Y меняется

Составьте программу, моделирующую движение точки по траектории графика №_____.

Тренинг 3.

Определите по приведенным строкам программы направление, в котором движется объект (вверх, вниз, вправо или влево по экрану), обозначьте направление стрелками:

1) FOR Y= 5 TO 100 STEP 10 _____________________________

2) FOR X= 1 TO 400 STEP 1 _____________________________

3) FOR X= 300 TO 40 STEP -10 _____________________________

4) FOR Y= 200 TO 10 STEP -10 _____________________________

5) FOR Y= 105 TO 3 STEP 10 _____________________________

6) FOR X= а TO a-100 STEP -10_____________________________

Тренинг 4.

Определите результат выполнения программы:

CLS
SCREEN 12
FOR Y= 5 TO 25 STEP 1
X=10
LOCATE Y,X
PRINT “ *”
SLEEP 1
LOCATE Y,X
PRINT “ ”
NEXT Y
FOR Х= 10 TO 60 STEP 1
Y= 25
LOCATE Y,X
PRINT “ *”
SLEEP 1
LOCATE Y,X
PRINT “ ”
NEXT Х
END

Упражнения

  1. В предложенной программе внести следующие изменения:
    1. чтобы точка двигалась по заданной траектории из тренинга 1;
    2. чтобы точка двигалась по заданной траектории из тренинга 2;
    3. чтобы двигалась не точка, а окружность (радиус = 30);
    4. чтобы окружность двигалась в обратном направлении;
    5. чтобы двигался закрашенный прямоугольник со сторонами 50 и 30.

Подсказка. Форматы записи:

окружность CIRCLE (X, Y), R, C

закрашенный прямоугольник LINE (X,Y) – (X1,Y1), C, BF

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

Домашнее задание:

1) Смоделируйте на компьютере сюжет русской народной сказки «Колобок». Изобразите дорогу-лабиринт и колобка, который ее успешно преодолевает.

2) Действие одного из компьютерных вирусов на экране проявлялось тем, что напечатанные символы «ссыпались» вниз. Составьте программу, которая моделировала бы данный процесс.

3) Видоизмените программу, так, чтобы пользователь печатал слово в произвольном месте экрана, но его «постигала бы та же участь».

Подведение итогов урока.

Ответьте на вопросы:

1) Как организуется движение по горизонтальной траектории?

2) Как смоделировать движение по вертикали?

3) В чем отличие моделирования движения графических объектов и текстовых символов?

4) Какие процессы можно смоделировать, пользуясь полученными на уроке знаниями?