Уравнение движения в интегральной форме

Уравнение движения в интегральной форме

Динамическая модель машинного агрегата.

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

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

Рассмотрим сложную механическую систему (рис.6.1), состоящую из n подвижных звеньев из которых r — звеньев совершают вращательное движение, j — плоское, k — поступательное. Основная подвижность системы равна W=1 . На систему действуют: f — внешних сил и m — внешних моментов. Движение этой системы определяется изменением одной независимой обобщенной координаты. Такую систему при решении задач динамики можно заменить более простой динамической моделью. Положение звена этой модели определяется обобщенной координатой, а динамические параметры заменяются: инерционные — суммарным приведенным моментом инерции I пр å , силовые — суммарным приведенным моментом М пр å . Эти параметры динамической модели рассчитываются по критериям подобия модели и объекта, которые определяются соответственно из равенства правых и левых частей уравнений изменения кинетической энергии для модели и объекта, т.е.

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

Уравнения движения динамической модели

Уравнение движения динамической модели в интегральной форме.

Запишем для динамической модели теорему о изменении кинетической энергии

где

и уравнение движения динамической модели в интегральной или энергетической форме

Из этого уравнения после преобразований

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

Для машин работающих в режиме пуск-останов

формула принимает вид

Уравнение движения динамической модели в дифференциальной форме.

Продифференцируем полученное выше уравнение по обобщенной координате

где

После подстановки получим

уравнение движения динамической модели в дифференциальной форме.

Из этого уравнения после преобразований

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

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

Определение параметров динамической модели машины (приведение сил и масс) .

Рассмотрим изображенную на рис. 6.1 механическую систему и ее динамическую модель. Запишем для них уравнение изменения кинетической энергии. Кинетическая энергия:

  • для механической системы
  • для модели

Суммарная работа внешних сил:

  • для механической системы
  • для модели

Модель будет энергетически эквивалентна рассматриваемой механической системе, если правые и левые части уравнений изменения кинетической энергии для модели и для системы будут соответственно равны. То есть для левых частей выполняется условие Т с = Т м , а для правых — A å c = A å м . Для того чтобы второе равенство выполнялось в течение всего диапазона изменения обобщенной координаты, необходимо обеспечить не равенство интегралов, а равенство подынтегральных выражений dA å c =dA å м . Подставляя в равенства, записанные ранее выражения для кинетических энергий и работ получим:

для левых частей

для правых частей

Из уравнения для левых частей получаем формулу для определения приведенного суммарного момента инерции динамической модели

Из уравнения для правых частей получаем формулу для определения приведенного суммарного момента динамической модели

Механические характеристики машин.

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

Рассмотрим примеры механических характеристик различных машин.


    Двигатели внутреннего сгорания (ДВС):

    четырехтактный ДВСРис 6.2

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

Рис 6.3

Электродвигатели

    асинхронный электродвигатель переменного тока На диаграмме: М дп — пусковой момент; М дн — номинальный крутящий момент; М дк или М дmax — критический или максимальный момент; w дн — номинальная круговая частота вращения вала двигателя; w дхх или w дс — частота вращения вала двигателя холостого хода или синхронная. Уравнение статической характеристики асинхронного электродвигателя на линеаризованном участке устойчивой части

    где М д — движущий момент на валу двигателя,

    w д — круговая частота вала двигателя ,

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

    Рис 6.4
  • двигатель постоянного тока с независимым возбуждением

Рис 6.5

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

где k = М дн ( w дхх — w дн ).

В электрических параметрах характеристика записывается в следующем виде

где k M = M дн /I ян — коэффициент момента, k w = (U ян — R ян Ч I ян ) / w дн — коэффициент противоэлектродвижущей силы, U я — напряжение в цепи якоря, R я — сопротивление цепи якоря
Рабочие машины

    поршневой насос


поршневой компрессор

Рис 6.7

Линии bc и ad — линии сжатия и расширения газа (воздуха) определяются параметрами газа (объемом, давлением и температурой) и в общем виде описываются уравнением политропы p × V n = const , где n — показатель политропы ( 1 n 0 ).
строгальный станок

Рис 6.8

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

Пример на определение параметров динамической модели (на приведение сил и масс ).

Дано: Кинематическая схема механизма поршневого насоса( l i , j i ) , М д , F c , m i , I Si ;

Рис 6.8
Рис 6.9

1. Определение сил веса G i = m i × g.

2.Определение кинематических передаточных функций.

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

Передаточные функции:

По этим формулам строятся цикловые диаграммы передаточных функций для рассматриваемого механизма ( см. рис. 6.10 ).

3. Определение суммарного приведенного момента М пр å

Для определения суммарного приведенного момента необходимо просуммировать приведенные моменты от всех внешних сил, действующих на рассматриваемую систему. Приведенный момент от силы равен скалярному произведению вектора силы на вектор передаточной функции точки ее приложения, от момента — произведению момента на передаточное отношение от звена приложения момента к звену приведения. На рассматриваемую систему действуют силы веса звеньев G i , сила сопротивления F с и движущий момент М д . Приведенный момент от этих сил рассчитывается по формуле:

4. Определение суммарного приведенного момента инерции I пр å .

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

Таким образом выполнена поставленная задача — определены параметры динамической модели поршневого насоса: приведенный суммарный момент М пр å и приведенный суммарный момент инерции I пр å .

1. Определите прямую задачу динамики машин ? (стр. 1)

2. Сформулируйте теорему о изменении кинетической энергии для идеальной механической системы ? (стр.1)

3. Запишите уравнения движения динамической модели в интегральной и дифференциальной форме ? (стр. 2-3)

4. Что называется динамической моделью машины ? (стр. 1)

5. Какие параметры характеризуют динамическую модель машины ? (стр.3-4)

6. Что называется механической характеристикой машины ? (стр.4)

7. Изобразите механические характеристики (д.в.с., асинхронного электродвигателя, поршневого компрессора) и укажите их основные параметры ? (стр. 4-8)

8. Изложите алгоритм определения параметров динамической модели для поршневого насоса ? (стр.8-12)

УРАВНЕНИЕ ДВИЖЕНИЯ МЕХАНИЗМА

После выполнения приведения сил и масс, любой механизм с одной степенью подвижности можно заменить его динамической моделью (рисунки 4.1; 4.5). Эта модель имеет переменный приведенный момент инерции Iпр и приведенный момент Мпр. Закон движения модели такой же, как и закон движения начального звена (уравнение 4.1).

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

, (4.8)

где υ – скорость в конце движения, υо – скорость в начале движения, Адв – работа движущих сил, Асс – работа сил сопротивления. При этом работу совершают все силы и моменты, а также силы трения.

Уравнение движения в энергетической форме. Если привести все силы и массы к звену приведения, то уравнение примет вид

, (4.9)

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

Обычно удобнее в левую часть уравнения вводить работу приведенных моментов АМдв и МРсс, а правую часть выражать через приведенные моменты инерции Iпр и Iпр0. Тогда выражение (4.9) примет вид

. (4.10)

Уравнение движения в дифференциальной форме.Уравнение движения механизмов машинного агрегата запишем через приведенные силы и массы, для чего продифференцируем уравнение (4.9)

, (4.11)

где Рдв – движущая силы, Рс – сила сопротивления.

То же самое уравнение можно записать, если воспользоваться приведенным моментом и приведенным моментом инерции, для чего продифференцируем уравнение (4.10)

. (4.12)

Уравнение движения в интегральной форме.В дифференциальное уравнение движения механизма машинного агрегата входят приведенные моменты движущих сил и сил сопротивления. Эти моменты могут быть функциями обобщенной координаты φ или ее первой производной φ’ = ω, или времени t. Тогда уравнение (4.12) запишем в виде

. (4.13)

Интегрируя данное выражение по обобщенной координате, получим

. (4.14)

Интегрирование уравнений движения

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

Темой этой статьи как раз и будет реализация такого интегрирования.

Интегрирование уравнений движения

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

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

Ускорение — это темп изменения скорости от времени:

Аналогично, скорость — это темп изменения позиции от времени:

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

Численное интегрирование

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

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

Но как нам найти изменение скорости и позиции на каждом шаге?

Ответ лежит в уравнениях движения.

Давайте назовём наше текущее время t, а шаг времени dt или «delta time».

Теперь мы можем представить уравнения движения в понятном всем виде:

Интуитивно это понятно: если вы находитесь в автомобиле, движущемся со скоростью 60 км/ч, то за один час вы проедете 60 км. Аналогично, автомобиль, ускоряющийся на 10 км/ч в секунду, через 10 секунд будет двигаться на 100 км/ч быстрее.

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

Давайте представим это в коде. Начнём с стационарного объекта массой один килограмм и приложим к нему постоянную силу в 10 кН (килоньютонов) и сделаем шаг вперёд, принимая, что один временной шаг равен одной секунде:

Вот каким будет результат:

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

Явный метод Эйлера

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

Он назван в честь швейцарского математика Леонарда Эйлера, впервые открывшего эту технику.

Интегрирование Эйлера — это простейшая техника численного интегрирования. Она точна на 100% только когда темп изменений в течение шага времени постоянен.

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

Но насколько велика эта ошибка? Давайте выясним!

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

Через 10 секунд объект должен был переместиться на 500 метров, но явным метод Эйлера даёт нам результат 450. То есть погрешность в целых 50 метров всего за 10 секунд!

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

Если задать шаг dt = 1 ⁄100, то мы получим гораздо лучший результат:

Как вы видите, это достаточно хороший результат, определённо вполне достаточный для игры.

Почему явный метод Эйлера не (всегда) так уж хорош

С достаточно малым шагом времени явный метод Эйлера при постоянном ускорении даёт вполне достойные результаты, но что будет, если ускорение не постоянно?

Хорошим примером переменного ускорения является система пружинного амортизатора.

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

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

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

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

Вот входные параметры системы масса-пружина:

  • Масса: 1 килограмм
  • Исходная позиция: 1000 метров от исходной точки
  • Коэффициент упругости по закону Гука: k = 15
  • Коэффициент затухания по закону Гука: b = 0.1

И вот график точного решения:

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

Вместо затухания и сближения с исходной точкой, система со временем набирает энергию!

При интегрировании явным методом Эйлера и с dt= 1 ⁄100 такая система нестабильна.

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

Симплектический метод Эйлера

Мы можем рассмотреть ещё один интегратор — симплектический метод Эйлера.

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

Переход от явного к симплектическому методу Эйлера заключается только в замене:

Использование симплектического интегратора Эйлера при dt = 1 ⁄100 для системы пружинного амортизатора даёт стабильный результат, очень близкий к точному решению:

Даже несмотря на то, что симплектический метод Эйлера имеет ту же степень точности, что и явный метод (степень 1), при интегрировании уравнений движения мы получаем намного лучший результат, потому что оно является симплектическим.

Существует множество других методов интегрирования

И теперь нечто совершенно другое.

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

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

Существует целое семейство интеграторов, называемое методами Рунге-Кутты. На самом деле, явный метод Эйлера считается частью этого семейства, но в него входят интеграторы и более высокого порядка, самым классическим из которых является метод Рунге-Кутты порядка 4 (Runge Kutta order 4) или просто RK4.

Это семейство интеграторов названо в честь открывших их немецких физиков: Карла Рунге и Мартина Кутты.

RK4 — это интегратор четвёртого порядка, то есть накапливаемая ошибка имеет порядок четвёртой производной. Это делает метод очень точным, гораздо более точным, чем явный и неявный методы Эйлера, имеющие только первый порядок.

Но хотя он более точен, нельзя сказать, что RK4 автоматически становится «лучшим» интегратором, или даже что он лучше симплектического метода Эйлера. Всё гораздо сложнее. Тем не менее, это довольно интересный интегратор и его стоит изучить.

Реализация RK4

Существует уже много объяснений математики, используемой в RK4. Например: здесь, здесь и здесь. Я настоятельно рекомендую изучить его выведение и понять, как и почему он работает на математическом уровне. Но я понимаю, что целевая аудитория этой статьи — программисты, а не математики, поэтому мы здесь будем рассматривать только реализацию. Так что давайте приступим.

Прежде чем приступить, давайте зададим состояние объекта как struct в C++, чтобы можно было удобно хранить позицию и скорость в одном месте:

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

Теперь нам нужна функция для вычисления состояния физики из t в t+dt с помощью одного набора производных, а после этого для вычисления производных в новом состоянии:

Функция ускорения управляет всей симуляцией. Давайте используем её в системе пружинного амортизатора и вернём ускорение для единичной массы:

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

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

Интегратор RK4 делает выборку производной в четырёх точках, чтобы определить кривизну. Заметьте, как производная a используется при вычислении b, b используется при вычислении c, и c для d. Эта передача текущей производной в вычисление следующей и даёт интегратору RK4 его точность.

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

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

Сравнение симплектического метода Эйлера и RK4

Давайте подвергнем проверке интегратор RK4.

Очевидно, что поскольку он является интегратором более высокого порядка (четвёртый против первого) он наглядно будет более точен, чем симплектический метод Эйлера, правда?

Неправда. Оба интегратора так близки к точному результату, что при таком масштабе почти невозможно найти между ними разницу. Оба интегратора стабильны и очень хорошо повторяют точное решение при dt= 1 ⁄100.

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

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

Вот точный результат, к которому мы будем стремиться:

Чтобы усложнить интеграторам задачу, давайте увеличим шаг времени до 0,1 секунды.

Теперь запустим интеграторы на 90 секунд и увеличим масштаб:

Через 90 секунд симплектический метод Эйлера (оранжевая кривая) сдвинулся по фазе относительно точного решения, потому что его частота немного отличалась, в то время как зелёная кривая RK4 соответствует частоте, но теряет энергию!

Мы чётко можем это заметить, увеличив шаг времени до 0,25 секунды.

RK4 сохраняет верную частоту, но теряет энергию:

А симплектический метод Эйлера в среднем намного лучше сохраняет энергию:

Но от сдвигается от фазы. Какой интересный результат! Как вы видите, если RK4 имеет более высокий порядок точности, то он не обязательно «лучше». В этом вопросе есть множество нюансов.

Заключение

Мы реализовали три различных интегратора и сравнили результаты.

  1. Явный метод Эйлера
  2. Симплектический метод Эйлера
  3. Метод Рунге-Кутты порядка 4 (RK4)

Так какой же интегратор стоит использовать в игре?

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

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

И наконец, если вы всё ещё пишете в игре такое:

То потратьте секунду и замените эти строки на:


источники:

http://helpiks.org/3-67748.html

http://habr.com/ru/post/341986/