Всем доброго дня. В данной статье хочу показать один из графических методов построения математических моделей для динамических систем, который называется 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 описываться одинаковыми уравнениями. ТОЛЬКО есть отличие для электрической емкости, это нужно просто запомнить!
Четырёхполюснике компоненты:
Рассмотрим два компонента трансформатор и гиратор.
Идеальный Трансформатор (TF) связывает величины одного типа между входом и выходом
Формулы описывающая трансформатор из рисунка а и b соответственно:
Причинные знаки ставиться только как показано ниже
Вот так нельзя:
Примеры трансформатора в механическом домене может быть зубчатая передача, Рычаг
Обычный трансформатор — в электричестве. Гидравлический поршень – в гидравлике.
Гиратор (GY). Идеальный Гиратор связывает поток с одной стороны с усилием с другой.
Формулы:
Допустимая причинность для гиратора:
Ошибочная причинность:
Примеры гираторов: в механике это двигатель постоянного тока, в электронике — соленоид (линейный актуатор).
Последними важными компонентами в методе bond-graph выступают соединения. Существует два типа узлов:
Узел типа 0 (а) – они имеют общее усилие и только одна причинная связь должна входить в 0-узлу, остальные должны выходить.
Рассмотрим пример расчетов 0-узла:
а) 0 значит все усилия равны
Так как узел не аккумулирует и не рассеивает энергию, тогда алгебраическая сумма входящий мощностей должна равняться нулю.
Учитываю предыдущее уравнение получим
b) Для второго варианты получим
Узел типа 1 (b) – они имеют общий поток и только одна причинная связь должна выходить, остальные должны входить в 1-узел.
Рассмотри расчет 1-узла
а) 1 узел имеет общий поток, значит
Так как узел не аккумулирует и не рассеивает энергию, тогда алгебраическая сумма входящий мощностей должна равняться нулю.
Учитывая предыдущее уравнение получим:
b) Здесь будет:
На этом с компонентами закончили.
Основные этапы для проставления причинных связей после построения bond-graph:
Проставить причинные связи всем источникам
Пройтись по всем узлам и проставить причинные связи после пункта 1
Для компонентов I присвоить входную причинную связь (усилие входит в этот компонент), для компонентов С присваиваем выходную причинную связь (усилие выходит из этого компонента)
Повторить пункт 2
Проставить причинные связи для компонентов R
На этом мини-курс по теории закончим. Теперь у нас есть все необходимое для построения моделей.
Давайте решим пару примеров. Начнем с электрической цепь, лучше понять аналогию построения bond-graph.
Пример 1
Начнем построение bond-graph с источника напряжения. Просто пишем Se и ставим стрелку.
Видите все просто! Смотрим далее, R и L соединены последовательно, значить в них течет одинаковый ток, если говорить в мощностных переменных – одинаковый поток. Какой узел имеет одинаковый поток? Правильный ответ 1-узел. Присоединяем к 1-узлу источник, сопротивление (компонент — R) и индуктивность (компонент — I).
Далее у нас емкость и сопротивление в параллели, значить они имеют одинаковое напряжение или усилие. 0-узел подойдет как никто другой. Соединяем емкость (компонент С) и сопротивление (компонент R) к 0-узлу.
Узлы 1 и 0 тоже соединяем между собой. Направление стрелок выбирается произвольное, направление связи влияет только на знак в уравнениях.
Получиться следующий граф связей:
Теперь нужно проставить причинные связи. Следуя указаниям по последовательности их проставления, начнем с источника.
Мы имеем источник напряжения (усилия), такой источник имеет только один вариант причинности – выходную. Ставим.
Далее есть компонент I, смотрим что рекомендуют. Ставим
Проставляем для 1-узла. Есть
0-узел должен иметь один вход и все выходные причинные связи. У нас есть пока одна выходная. Ищем компоненты С или I. Нашли. Ставим
Проставляем что осталось
Вот и все. Bond-graph построен. Ура, Товарищи!
Осталось дело за малым, написать уравнения, описывающие нашу систему. Для этого составим таблицу с 3 столбцами. В первом будут все компоненты системы, во втором входная переменная для каждого элемента, а в третьем – выходная переменная, для токого же компонента. Вход и выход мы уже определили причинностнными связями. Так что проблем возникнуть не должно.
Прономеруем каждую связь для удобства записи уровнений. Уравнения для каждого элемента берем из перечня компонентов C,R,I.
Составив таблицу определим переменные состояния, их в данном примере 2, p3 и q5. Далее нужно записать уравнения состояния:
Вот и все модель готова.
Пример 2. Сразу хочу извениться за качество фото, главное что можно прочитать
Решим еще один пример для механической системы, тот же что мы решали методом Лагранжа. Я показу решение без комментариев. Проверим какой из данных методов проще, легче.
В матбале были составлены обе мат модели с одинаковыми параметрами, полученые методом Лагранжа и bond-graph. Результат ниже:
Итог: для меня bond-graph показался интереснее. По моим наблюдениям, его лучше использовать для комплексных систем (мульти-доменных систем, мехатронных систем). Например, мощный симулятор мульти-доменных систем AMESim, использует этот метод для построения мат моделей. В робототехнике, скорее всего, легче будет метод Лагранжа. Кто пользуется данными методами, буду рад услышать ваши выводы, комментарии.