Всем доброго дня. В данной статье хочу показать один из графических методов построения математических моделей для динамических систем, который называется Bond graph («bond» — связи, «graph» — граф). В русской литературе, описания данного метода, я нашел только в Учебном пособии Томского политехнического университета, А.В. Воронин «МОДЕЛИРОВАНИЕ МЕХАТРОННЫХ СИСТЕМ» 2008 г. Также показать классический метод через уравнение Лагранжа 2 рода.



Метод Лагранжа


Я не буду расписывать теорию, покажу этапы расчётов и с небольшими комментариями. Лично мне легче учиться на примерах, чем 10 раз читать теорию. Как мне показалось, в русской литературе, объяснение данного метода, да и вообще математики или физики, очень насыщено сложными формулами, что соответственно требует серьезного математического бэкграунда. Во время изучения метода Лагранжа (учусь в Туринском политехническом университет, Италия), я изучал русскую литературу, чтобы сопоставить методики расчётов, и мне было тяжело следить за ходом решения данного метода. Даже вспоминая курсы по моделированию в «Харьковском авиационном институте», вывод подобных методов был очень громоздким, и никто не затруднял себя в попытке разобраться в этом вопросе. Вот этому я решил написать, методичку для построения мат моделей по Лагранжу, как так оказалось это совсем не сложно, достаточно знать как считать производные по времени и частные производные. Для моделей по сложнее еще добавляются матрицы поворота, но в них тоже нет ничего сложного.

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

  • Ньютона-Эйлера: векторные уравнения, основанные на динамическом равновесии сил (force) и моментов (moments)
  • Лагранжа: скалярные уравнения, основанные на функция состояния связанных с кинетической и потенциальной энергией (energies)
  • Бонд-граф: метод основанный на течении мощности (power) между элементами системы


Начнем с простого примера. Масса с пружиной и демпфером. Пренебрегаем силой тяжести.


Рис 1. Масса с пружиной и демпфером

Первым делом обозначаем:

  • начальную системы координат (НСК) или неподвижную ск R0(i0,j0,k0). Где? Можно тыкнуть пальцем в небо, но подёргав кончиками нейронов в мозгу, проходит идея поставить НСК на линии движения тела М1.
  • системы координат для каждого тела с массой (у нас М1 R1(i1,j1,k1)), ориентация может быть произвольной, но зачем усложнять себе жизнь, ставим с минимальным отличием от НСК
  • обобщеные координаты q_i (минимальное количество переменные которыми можно описать движение), в данном примере одна обобщенная координата, движение только вдоль оси j


Рис 2. Проставляем системы координат и обобщенные координаты

Далее найдем положение и скорости всех тел. В данном примере одно тело М1:

Рис 3. Позиция и скорость тела М1

После найдем кинетическую (С) и потенциальную (Р) энергии и диссипативную функцию (D) для демпфера по формулам:

Рис 4. Полная формула кинетической энергии

В нашем примере вращения нет, вторая составляющая равна 0.



Рис 5. Расчет кинетической, потенциальной энергии и диссипативной функции

Уравнение Лагранжа имеет следующий вид:

Рис 6. Уравнение Лагранжа и Лагранжиан

Дельта W_i это виртуальная работа совершенная приложенными силами и моментами. Найдем ее:

Рис 7. Расчет виртуальной работы

где дельта q_1 виртуальное перемещение.

Подставляем всё в уравнение Лагранжа:

Рис 8. Полученная модель массы с пружинной и демпфером

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

Метод Bond graph


Сразу покажу так выглядит модель в bond-graph для примера с массой пружиной и демпфером:

Рис 9. Bond-graph массы с пружинной и демпфером

Здесь придётся рассказать немного теории, которой хватит для построения простых моделей. Если кто нибудь заинтересован можете почитать книгу ([Wolfgang Borutzky] Bond Graph Methodology) или (Воронин А.В. Моделирование мехатронных систем: учебное пособие. – Томск: Изд-во Томского политехнического университета, 2008).

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

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



Как видно из таблицы выражение мощности везде практически одинаковое. В обобщении, Мощность — это произведение «потока — f» на «усилия — e».

Усилие (англ. effort) в электрическом домене это напряжение (e), в механическом — сила (F) или момент (T), в гидравлике – давление (p).

Поток (англ. flow) в электрическом домене это ток (i), в механическом — скорость (v) или угловая скорость (omega), в гидравлике – поток или расход жидкости (Q).

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


Рис 10. Формула мощности через мощностные переменные

В языке bond-graph соединение между двумя подсистемами которые обмениваются мощностью представлена связью (англ. bond). По этому и называется данный метод bond-graph или граф-связей, связной граф. Рассмотрим блок-диаграмму связей в модели с электродвигателем (это еще не bond-graph):

Рис 11. Блок-диарамма потока мощности между доменами

Если у нас источник напряжения, то соответственно он генерирует напряжение и отдает его двигателю на отмотки (по этому стрелка направлена в сторону двигателя), в зависимости от сопротивления обмотки появляется ток по закону Ома (направлен от двигателя к источнику). Соответственно одна переменная является входом в подсистему, а вторая необходима должна быть выходом из подсистемы. Здесь напряжение (effort) – вход, ток (flow) – выход.

Если использовать источник тока, как поменяется диаграмма? Правильно. Ток будет направлен к двигателю, а напряжение к источнику. Тогда ток (flow) – вход, напряжение (effort) – выход.

Рассмотрим пример в механике. Сила, действующая на массу.

Рис 12. Сила приложенная к массе

Блок-Диаграмма будет следующей:

Рис 13. Блок-диаграмма

В этом примере, Сила (effort) – входная переменная для массы. (Сила приложена к массе)
По второму закону Ньютона:

Масса отвечает скоростью:


В этом примере если одна переменная (сила effort) является входом в механический домен, то другая мощностная переменная (скорость flow) – автоматически становится выходом.

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

Рис 14. Обозначение причинной связи

Эта вертикальная линия показывает какая подсистема получает усилие (effort) и как следствие производить поток (flow). В примере с массой будет так:

Рис 14. Причинна связь для силы действующей на массу

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

Следующий важный момент. Обобщённый импульс (количество движения) и перемещение (энергетические переменные).

Таблица мощностных и энергетический переменных в разных доменах


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

Рис 15. Связь между мощностными и энергетическими переменными

В электрическом домене:

Исходя из закона Фарадея, напряжение на концах проводника равняется производной от магнитного потока через этот проводник.

А Сила тока — физическая величина, равная отношению количества заряда Q, прошедшего за некоторое время t через поперечное сечение проводника, к величине этого промежутка времени.

Механический домен:

Из 2 закона Ньютона, Сила – производная по времени от импульса

И соответственно, скорость — производная по времени от перемещения:

Обобщим:


Базовые элементы


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

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

Рис 16. Причинные связи и обозначение источников

Компонент R – диссипативный элемент


Компонент I – инерциальный элемент



Компонент C – емкостной элемент


Как видно из рисунков, разные элементы одного типа R,C,I описываться одинаковыми уравнениями. ТОЛЬКО есть отличие для электрической емкости, это нужно просто запомнить!

Четырёхполюснике компоненты:

Рассмотрим два компонента трансформатор и гиратор.

  1. Идеальный Трансформатор (TF) связывает величины одного типа между входом и выходом

    Формулы описывающая трансформатор из рисунка а и b соответственно:


    Причинные знаки ставиться только как показано ниже


    Вот так нельзя:


    Примеры трансформатора в механическом домене может быть зубчатая передача, Рычаг


    Обычный трансформатор — в электричестве. Гидравлический поршень – в гидравлике.

  2. Гиратор (GY). Идеальный Гиратор связывает поток с одной стороны с усилием с другой.

    Формулы:

    Допустимая причинность для гиратора:

    Ошибочная причинность:

    Примеры гираторов: в механике это двигатель постоянного тока, в электронике — соленоид (линейный актуатор).


Последними важными компонентами в методе bond-graph выступают соединения. Существует два типа узлов:


  • Узел типа 0 (а) – они имеют общее усилие и только одна причинная связь должна входить в 0-узлу, остальные должны выходить.

    Рассмотрим пример расчетов 0-узла:

    а) 0 значит все усилия равны

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

    Учитываю предыдущее уравнение получим

    b) Для второго варианты получим

  • Узел типа 1 (b) – они имеют общий поток и только одна причинная связь должна выходить, остальные должны входить в 1-узел.

    Рассмотри расчет 1-узла

    а) 1 узел имеет общий поток, значит

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

    Учитывая предыдущее уравнение получим:

    b) Здесь будет:


На этом с компонентами закончили.

Основные этапы для проставления причинных связей после построения bond-graph:

  1. Проставить причинные связи всем источникам
  2. Пройтись по всем узлам и проставить причинные связи после пункта 1
  3. Для компонентов I присвоить входную причинную связь (усилие входит в этот компонент), для компонентов С присваиваем выходную причинную связь (усилие выходит из этого компонента)
  4. Повторить пункт 2
  5. Проставить причинные связи для компонентов R

На этом мини-курс по теории закончим. Теперь у нас есть все необходимое для построения моделей.
Давайте решим пару примеров. Начнем с электрической цепь, лучше понять аналогию построения bond-graph.

Пример 1

Начнем построение bond-graph с источника напряжения. Просто пишем Se и ставим стрелку.


Видите все просто! Смотрим далее, R и L соединены последовательно, значить в них течет одинаковый ток, если говорить в мощностных переменных – одинаковый поток. Какой узел имеет одинаковый поток? Правильный ответ 1-узел. Присоединяем к 1-узлу источник, сопротивление (компонент — R) и индуктивность (компонент — I).

Далее у нас емкость и сопротивление в параллели, значить они имеют одинаковое напряжение или усилие. 0-узел подойдет как никто другой. Соединяем емкость (компонент С) и сопротивление (компонент R) к 0-узлу.


Узлы 1 и 0 тоже соединяем между собой. Направление стрелок выбирается произвольное, направление связи влияет только на знак в уравнениях.

Получиться следующий граф связей:


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

  1. Мы имеем источник напряжения (усилия), такой источник имеет только один вариант причинности – выходную. Ставим.
  2. Далее есть компонент I, смотрим что рекомендуют. Ставим
  3. Проставляем для 1-узла. Есть
  4. 0-узел должен иметь один вход и все выходные причинные связи. У нас есть пока одна выходная. Ищем компоненты С или I. Нашли. Ставим
  5. Проставляем что осталось


Вот и все. Bond-graph построен. Ура, Товарищи!

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

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


Составив таблицу определим переменные состояния, их в данном примере 2, p3 и q5. Далее нужно записать уравнения состояния:


Вот и все модель готова.

Пример 2. Сразу хочу извениться за качество фото, главное что можно прочитать
Решим еще один пример для механической системы, тот же что мы решали методом Лагранжа. Я показу решение без комментариев. Проверим какой из данных методов проще, легче.



В матбале были составлены обе мат модели с одинаковыми параметрами, полученые методом Лагранжа и bond-graph. Результат ниже:


Итог: для меня bond-graph показался интереснее. По моим наблюдениям, его лучше использовать для комплексных систем (мульти-доменных систем, мехатронных систем). Например, мощный симулятор мульти-доменных систем AMESim, использует этот метод для построения мат моделей. В робототехнике, скорее всего, легче будет метод Лагранжа. Кто пользуется данными методами, буду рад услышать ваши выводы, комментарии.

PS: ссылка на материалы курса. (слайды только по лагранжу, по bond-graph — пользовался в основном, книгой и конспектами, которые только на бумаге)
Поделиться с друзьями
-->

Комментарии (7)


  1. Kolyuchkin
    16.08.2016 13:50
    -2

    Потрудитесь ошибки (грамматические, орфографические) исправить, пожалуйста.


    1. Keyten
      16.08.2016 17:51
      +1

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


  1. R9A_019
    16.08.2016 17:16
    +3

    По методам: В электромеханике, как и в инженерии в целом, методов составления математических моделей дохрена, однако есть основные, которые вытекают из физики: Уравнения математической физики [5]: это методом не является, однако этот раздел физики включает в себя все необходимые СДУЧП (системы дифференциальных уравнений в частных производных), на все случаи жизни и работы Инженера, также необходимо знать как верно записать задачу Коши [6,7] для СДУЧП и решить её либо методом сеток [8] или вариационным [9,10] — этот метод является последней инстанцией куда обращается Инженер, допустим когда задачи связаны с нахождением полей в динамике. Принцип наименьшего действия или Лагранжа [1], метод Гамильтона [2], эти методы универсальны, они используются в "запущенных случаях" где на глаз модель не составишь (однако автор в статье ловко выдал классический пример из механики, где "возмите формулу "а" положите в рот "б" получите "с", а вот чтоб применить этот метод для другого энергетического домена, вот тут начинается веселье, так как кинетических и потенциальных энергий уже явно не выделяется и нужно уметь правильно составлять Лагранжиан). Есть метод "динамических аналогий" [3], которое тут назвали Bond graph approach, этот метод вытекает как частный случай из аналогов уравнений матфизики, в которой имеется "теория подобия" [4] и рассматривает ДУЧП применительно к системам из разных энергетических доменов, кстати говоря, этот метод называют как хотят, вот допустим сайт: http://model.exponenta.ru/lectures/sml_ix.htm. Кроме того: во всей статье модели являются с сосредоточенными параметрами, ведь динамические системы бывают и распределенные и смешанные и еще множество разных, следует всегда описывать границы применимости тех моделей, которые вы ваяете, иначе все приведет к путанице.


    1. Л.Д. Ландау и Е.М. Лифшиц Механика, Наука .: М 1965г.
    2. В.И. Арнольд Математические методы классической механики, Наука .: М 1974г.
    3. Г. Ольсон Динамические аналогии, ГИИЛ .: М 1947г.
    4. А.А. Гухман Введение в теорию аналогий, ВШ .: М 1973г.
    5. А.Н. Тихонов, А.А. Самарский Уравнения математической физики, ИЗМУ .: М 2004г.
    6. В.В. Степанов Курс дифференциальных уравнений, УРСС .: М 2006г.
    7. Э. Камке Справочник по дифференциальным уравнениям в частных производных первого порядка, Наука .: М 1966г.
    8. С.К. Годунов, В.С. Рябенький Разностные схемы, Наука .: М 1973г.
    9. Р. Шехтер Вариационный метод в инженерных расчетах, Мир .: М 1971г.
    10. С.Г. Михлин Вариационные методы в математической физике, Наука .: М 1970г.


  1. OYTIS
    17.08.2016 14:02

    Спасибо!
    Было бы круто, если бы вы добавили еще несколько ссылок на ту литературу по которой вас учат (если в открытом доступе есть учебные материалы — вообще шикарно).


    1. lggswep
      17.08.2016 15:15

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


      1. lggswep
        18.08.2016 01:47

        Обновил ссылку! Теперь работает


  1. Danov
    17.08.2016 19:51

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