Основное назначение данного текста – показать как создавать модели в SimInTech, зная математические уравнения физических процессов. В качестве примера использовались уравнения физических процессов в гидроприводе.
За основу, с любезного разрешения автора, было взято методическое пособие: Андреев М.А. Математическое моделирование гидропривода: Учебное пособие. — на правах рукописи, 2017. — 61 с.
ВКонтакте: https://vk.com/max.andreev.
Предисловие от Максима Андреева:
С SimInTech я столкнулся будучи студентом еще в те времена, когда она называлась «МВТУ» (Моделирование В Технических Устройствах). Так что, свои первые неловкие попытки моделировать гидропривод я предпринимал именно в ней. Скажу честно, что после того как у меня появилась возможность работать в MATLAB Simulink, я постарался забыть об этом опыте как о страшном сне (впрочем, после пары лет работы в программе SimulationX я и об опыте моделирования в Simulink (включая Simscape) предпочитаю лишний раз не вспоминать).
Тем не менее, мои глубинные патриотические чувства не может не трогать тот факт, что команда разработчиков в последние годы активно принялась за совершенствование этого важного для отечественной инженерной отрасли наследия советских инженеров и существенно продвинулась в этом деле (об этом говорит хотя бы то, что модели, созданные в SimInTech, используются для моделирования работы АЭС, в т.ч. и в Германии). Поэтому, когда ко мне обратились за разрешением адаптировать текст моего учебного пособия для SimInTech, я конечно же согласился.
В советское время было написано достаточно много литературы, посвященной расчету гидропривода, в том числе описанию физических процессов и математическому моделированию. Однако возникает проблема: чтобы эти книги были полезны читателю, необходимо уже уметь писать математические модели. В лучшем случае авторы подробно описывают, откуда берутся уравнения в огромной системе, но что с ними дальше делать, обычно не совсем ясно.
Здесь будет представлена общая методология создания математической модели гидропривода различной сложности, начиная с расчетной схемы и записи уравнений, и заканчивая реализацией в SimInTech.
После ознакомления с этим руководством возможно самостоятельно, без использования каких-либо шаблонов, моделировать работу гидропривода с учетом основных физических процессов и понимать специализированную литературу, из которой сможете извлекать способы описания более сложных процессов.
Принципы создания моделей гидропривода можно применять к любым другим системам, чьи дифференциальные уравнения известны.
Объектом исследования является система, состоящая из цилиндрического плунжера диаметром 10 мм с приведенной массой 100 кг. Плунжер работает на пружину жесткостью 200 Н/мм и демпфер с коэффициентом вязкого трения 1000 Н/(м/с). Если в полость с начальным объемом 20 см3 подать ступенчато давление 200 бар, то для предотвращения деформации плунжера необходимо установить дроссель диаметром 0,2 мм между источником давления и камерой.
Рисунок 1. Гидравлическая схема для моделирования.
Для получения графика зависимости перемещения плунжера x от времени t необходимо воспользоваться уравнением движения плунжера:
где m - масса плунжера, Ap – площадь плунжера, cpr – жесткость пружины, btr – коэффициент вязкого трения, p – давление в камере.Необходимо обратить внимание на выбор положительного направления перемещения и на знаки действующих сил. На рисунке (Рисунок 1) видно, что в качестве положительного направления выбрано перемещение плунжера вправо. Тогда сила со стороны жидкости в уравнении будет со знаком «плюс», сила со стороны пружины и демпфера со знаком «минус».
Откроется новое Рабочая область проекта «Схема модели общего вида», в котором будет проходить описание системы.
Рисунок 2. Рабочая область проекта с выделенной кнопкой скрипт и окно скрипта проекта с заданными глобальными параметрами расчета
Константы задаются через запятую, после последней ставится точка запятой (Рисунок 2). Все константы заданы в стандартных единицах измерений. Расчет площади проходного сечения рассчитывается в секции инициализации, которая выполняется только один раз при старте расчета. Константы и переменные, заданные в данном окне, доступны в любой части проекта.
Рисунок 3. Рабочая область проекта со схемой модели плунжера
Перед тем, как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.
Рисунок 4. Окно «Свойства» блока «Ступенька» с измененными свойствами
Рисунок 5. Окно «График» с выходным сигналом блока «Ступенька»
В блоке «Язык программирования» имеется возможность записывать уравнения динамики объекта в форме Коши. Прежде чем перейти к записи модели преобразуем уравнение, в систему двух уравнений, добавив новую переменную – скорость v(t) = dx(t)/dt. Таким образом, уравнения движения примет вид:
Рисунок 6. Окно блока «Язык программирования» с моделью плунжера с пружиной
input P; – вход в блок (давление).
оutput x; – выхода из блока.
init x = 0, v = 0; – объявление динамических переменных и присвоение им начальных значений.
Далее описаны уравнения, которые выполняются на каждом шаге моделирования. Записанные уравнения на языке программирования практически повторяет систему уравнений, где производные dx(t)/dt и dv(t)/dt обозначены как x’ и v’.
Перед тем, как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.
Рисунок 7. Рабочая область проекта с выделенной кнопкой «Параметры расчета»
Закрыть окно «Параметры расчета», при этом внесенные изменения будут сохранены автоматически.
Перед тем, как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.
Рисунок 8. Настройка шага интегрирования
Рисунок 9. График колебательного процесса.
Результат расчета на рисунке (Рисунок 9) показывает, что в момент возникновения давления на 1 секунде происходит быстрый разгон плунжера, из-за инерции движения, плунжер проскакивает точку равновесия, пружина сжимается и возвращает поршень назад, возникают затухающие колебания за счет сопротивление трения.
Рисунок 10. График колебательного процесса при Btr = 100
Рисунок 11. График колебательного процесса при m = 1000
Установить в скрипте проекта прежнюю массу плунжера равную 100 кг. Для этого требуется открыть скрипт проекта и изменить значение «m» на «100».
Еще одним способом проверки правильности модели будет сравнение конечного перемещения, полученного в модели и рассчитанного из условия равновесия системы. В случае равновесия сила, действующая на плунжер (Pst·Ap), уравновешивается силой сжатой пружины (Cpr·xst), где
Pst – давление статическое;
xst – перемещение поршня (сжатие пружины);
Pst ·Ap = Cpr·xst или xst = Pst·Ap/Cpr.
Рисунок 12. Окно скрипта блока «Язык программирования» с добавленными строками проверка конечного положения плунжера
Рисунок 13. Рабочая область проекта с выведенным значением на линии связи
Результаты моделирования совпадают со статическим расчетом (Рисунок 12). Таким образом, модель выходит на правильные значения положения и при 150 бар и при 250 бар.
Получив и проверив модель плунжера с пружиной, нужно переходить к модели камеры. Перед тем, как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.
Входным сигналом для модели плунжера является давление в рабочей камере. В гидроприводе жидкость сжимается с давлением от 160 бар и выше. Сжимаемость жидкости описывается следующим образом:
где: ṗ — скорость изменения давления; E — приведенный объемный модуль упругости рабочей жидкости; V — объем сжимаемой рабочей жидкости; Q — расход, поступающий в рабочую камеру.Это выражение выводится, путем разнесения дифференциалов давления и объема по разные стороны знака равенства, и продифференцировав обе части по времени, из формулы определения объемного модуля упругости:
Давление будет меняться тем быстрее, чем выше модуль упругости рабочей жидкости E, и тем медленнее, чем больше объем этой жидкости V. Поэтому модуль упругости в числителе, а объем — в знаменателе. В скобках - алгебраическая сумма расходов. В данном случае расход осуществляется через дроссель Q и с учетом геометрического расхода, связанного с перемещением плунжера. Положительное значение расхода Q при прочих равных будет приводить к росту давления (положительная скорость изменения давления), а положительная скорость перемещения плунжера к падению давления. Поэтому расход через дроссель в уравнении со знаком «плюс», а геометрический расход со знаком «минус».
Объем камеры описывается следующей формулой:
где V0 — объем жидкости при нулевом положении x(t) поршня.Влияние изменения объема жидкости незначительно, и для предотвращения возможных ошибок (например, в случае отрицательных значений x), рекомендуется принять постоянный объем, который равен половине разницы между объемами в конечном и начальном положениях.
Рисунок 14. Окно скрипта проекта с исправленной строкой и добавленными константами
Рисунок 15. Модель камеры цилиндра
Рисунок 16. Модель плунжера с добавленных выходом скорости перемещения плунжера
Рисунок 17. Рабочая область проекта с общей моделью цилиндра и камеры
Теперь необходимо настроить источник расхода в камеру. На модель плунжера с пружиной подавалось давление 200е5 Па (200 бар) с помощью блока «Ступенька». Теперь необходимо из блока с моделью плунжера подать такой расход, чтобы в камере сформировалось давление 200 бар. Если использовать блок «Ступенька», то при его включении начнется подача постоянного расхода, который будет поддерживаться на протяжении всего времени моделирования. Однако, для достижения требуемого повышения давления необходимо подать расход в камеру только на определенное время, достаточное для создания давления в 200 бар, а затем прекратить подачу.
Рисунок 18. Окно свойства блока «Кусочно постоянная»
Рисунок 19. Рабочая область проекта с установленным блоком «Кусочно постоянная» и выделенной кнопкой «Показать значения на линия связи»
Рисунок 20. График результатов моделирования
Рисунок 21. Рабочая область проекта с выделенным результатом давления в камере
Рисунок 22. Рабочая область проекта с результатами моделирования при значение свойства «Массива значений» блока «Кусочно постоянная» равным «[[0 , 9.29E-7 , 0]]»
Рисунок 23. Результаты моделирования равномерной подачи в камеру
Рисунок 24. Рабочая область проекта с моделью сравнения модели плунжера с камерой и без камеры
Рисунок 25. Результаты моделирования со сравнением модели плунжера с камерой и без камеры
На графике видно, что в течении 0,1 секунды пока идет подача расхода в камеру идет перемещение плунжера, которое потом затухает быстрее, чем без камеры (с мгновенным ростом давления). Видно, что положение плунжера примерно соответствует полученному при отдельном моделировании.
Перед тем, как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.
Уравнение описывающее расход через дроссель:
где: f – площадь сечения дросселя; μ – коэффициент расхода; pn–давление нагнетания; p – давление в камере цилиндра.Однако необходимо учесть теоретическую возможность обратного тока рабочей жидкости в случае отрицательной разницы давлений. Это возможно, если на поршень действует сила, превышающая силу, которую может создать рабочая жидкость. В таком случае возникает риск появления отрицательного значения под корнем в выражении.
Рисунок 26. Окно скрипта проекта с добавленными строками
Рисунок 27. Окно скрипт блока «Язык программирования» с моделью расхода через дроссель
Рисунок 28. Рабочая область проекта с добавленной моделью расхода через дроссель
Запустить проект на моделирование. Дождаться окончания процесса моделирования. Открыть результаты моделирования, которые находятся в блоке «Временной график» открыть свойства графика и установить следующие значения на вкладке «Графики и оси»:
Рисунок 29. График переходного процесса при увеличении давления нагнетания скачком с 0 до 200 бар.
Перед тем, как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.
Рисунок 30. Модель в виде схемы
В соответствии с уравнением для блоков «Усилитель» необходимо в свойствах указать в поле «Формула» значение свойства «Коэффициент усиления» равным «2/ro» и «my*f_dr».
Рисунок 31. Отладка программы в блоке «Язык программирования»
Также разработанную модель возможно сгенерировать в код Си, с последующим использованием его, как для ускорения расчета, так и для использования модели без SimInTech.
Камера и плунжер с пружиной должны быть объединены в один элемент, поскольку площадь сечения плунжера используется и в уравнениях камеры, и в уравнениях плунжера.
Для преобразования расчетной схемы в принципиальную необходимо использовать блок «Субмодель» из вкладки «Субструктуры». В разработанном проекте со схемой модели гидропривода добавить два блока «Субмодель» из вкладки «Субструктуры» и добавить к ним подписи «Гидроцилиндр» и «Дроссель».
Рисунок 32. Окно редактирования блока «Субмодель» с подписью «Гидроцилиндр» с добавленными свойствами
Рисунок 33. Окно редактирования блока «Субмодель» с подписью «Гидроцилиндр» с добавленными параметрами
Рисунок 34. Рабочая область субмодели «Гидроцилиндр»
Рисунок 35. Рабочая область субмодели «Дроссель»
Блоки «Двунаправленная шина (вход)»/«Двунаправленная шина (выход)» позволяют объединить две или более линии связи с разными направлениями в одну «шину» для моделей, где двунаправленная связь определена однозначно. Дроссель рассчитывает расход и передает его в камеру через контакт А, но для своего расчета ему необходимо знать давление в камере. Поэтому через контакт B на вход поступает расход и передается на дроссель, при этом на схеме используется одна линия связи.
Рисунок 36. Окно редактирования блока «Субмодель» с подписью «Дроссель» с добавленными свойствами
Рисунок 37. Окно редактирования блока «Субмодель» с подписью «Дроссель» с добавленным параметром
Рисунок 38. Окно скрипта субмодели «Дроссель» с расчетом площади сечения дросселя
Аналогичным образом разместить расчет площади плунжера из скрипта проекта в скрипт субмодели «Гидроцилиндр».
Рисунок 39. Рабочая область проекта с расчетной и принципиальной схемой модели
Рисунок 40. Результаты моделирования при уменьшении диаметра плунжера в 2 раза
Перед тем, как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.
Поскольку известны начальные состояния Х10 ... XN0, то из системы в форме Коши есть возможность рассчитать скорости изменений всех величин V10 ... VN0 в начальный момент времени. И если выбирать шаг Δt таким маленьким, чтобы все скорости в системе не менялись в течение шага интегрирования, то тогда любая величина на следующем шаге будет равна времени умноженному на скорость изменений: Х11 = Х10 + V10 × Δt.
Таким образом, получатся новые значения Х11 .. XN1, и тогда из уравнений Коши получатся, в том числе, новые значения скорости. В результате, выполняя такие шаги, есть возможность рассчитать весь процесс.
Для расчета возможно использование цикла, написанного на языке C++ или Delphi. В данной лабораторной работе расчет будет производите в блоке «Язык программирования».
Рисунок 41. Окно скрипта блока «Язык программирования»
В результате выполнения цикла инициализации на выходе два вектора: вектор T – вектор времен, вектор Х – вектор положения штока. Задача решена – для любого значения времени есть положение штока.
Рисунок 42. Расчет выходных значений блока «Язык программирования»
Рисунок 43. Окно скрипта блока «Язык программирования» с выделенными кнопками
Рисунок 44. Окно «Построение зависимости»
Рисунок 45. Результаты моделирования
Таким образом, SimInTech позволяет внутри каждого блока иметь свое рабочее пространство Matlab. Теперь возможно выводить все варианты на один график и производить сравнения и численные эксперименты. Перед тем, как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.
При написании математической модели необходимо учитывать насколько подробно необходимо описать каждый элемент системы.
В данной лабораторной работе в модели плунжера возможно использование поршня, а вместо пружины - упругого элемента. Плунжер возможно представить как весомый или невесомый. Жидкость возможно моделировать как сжимаемую или несжимаемую. Объем камеры возможно считать изменяемым или постоянным. Дроссель возможно моделировать с учетом трубы, в которую он встроен, или без ее учета. Комбинация этих факторов дает как минимум 8 вариантов математической модели представленной схемы.
Если подробно остановиться на двух факторах: учет массы плунжера и сжимаемость жидкости, то тогда также нужно учесть и гравитацию Луны, и силу ветра в помещении. Однако, на практике инерция и сжимаемость жидкости не всегда оказывают значительное влияние на процесс перемещения плунжера. Например, при применении силы более 150 кГс и отсутствии пружины, учет массы плунжера необходим только в том случае, если она сравнима с этой силой. Учет массы в 100 г усложнит расчеты, но не повысит точность. То же самое относится и к давлению в системе, если оно не превышает 2–5 бар.
Теперь требуется представить математическую модель плунжера при различных допущениях. Исходная система уравнений с учетом сжимаемости жидкости выглядит следующим образом:
Рисунок 46. Структурная схема
Рисунок 47. Модель гидроцилиндра с добавленным выходным сигналом P
Рисунок 48. Результат переходного процесса плунжера
Перед тем как переходить к моделям с другими допущениями, необходимо предположить, что жидкость в системе сжимается, то несильно. Тогда давление рассчитывается исходя из равенства расходов:
Теоретически, в уравнение возможно подставить уравнение расхода через дроссель, перенести геометрический расход вправо и возвести все в квадрат, поскольку в системе присутствует всего два расхода. Таким образом, получится уравнение, которое позволяет определить давление через скорость поршня. Если бы в был еще один дроссель (например, на сливе), то требовалось бы возводить в квадрат дважды, при трех дросселях — трижды и так далее. Таким образом, если в дальнейшем постоянно выражать давление через расход, то в конечном итоге есть возможность столкнуться с невозможностью найти аналитическое решение для подобной задачи. Поэтому даже этот простой пример в SimInTech будет рассчитываться численно.
Рисунок 49. Схема расчета без учета сжимаемости
Рисунок 50. Окно параметров расчета проекта
Рисунок 51. Результат моделирования без учета сжимаемости
Из результатов видно, что колебания, которые были связаны не только с инерцией плунжера, но и со сжимаемостью жидкости, исчезли. Однако, на 1 секундах расчета давление резко возросло до 200 бар, затем постепенно увеличилось до 200 бар. Такое давление должен компенсировать установленный дроссель, однако блок «Нелинейное уравнение F(y) = 0» определил, что в момент резкого возрастания давление в камере должно быть равно давлению нагнетания, а затем оно уменьшается сразу после начала движения поршня.
Если не учитывать влияние инерции, то скорость перемещения поршня v будет полностью определяться расходом, поступающим в полость:
Для расчета расхода через дроссель, необходимо знать давление p в полости, которое рассчитывается из уравнения равновесия:
Рисунок 52. Структурная схема без сжимаемости и инерции
Рисунок 53. Результат моделирования без учета инерции и сжимаемости
Теперь практически отсутствует скачок давления в начальный момент времени переходного процесса (при t = 1 с), хотя давление не начинается с нуля. Это объясняется тем, что в начальный момент времени из-за перепада давления в системе сразу же возникает расход через дроссель. Следовательно, скорость в начальный момент времени также не равна нулю, что приводит к появлению ненулевой силы вязкого трения в уравнении равновесия. В результате возникает небольшой скачок давления в начале переходного процесса.
Параметр | С учетом сжимаемости и инерции | Без учета сжимаемости | Без учета сжимаемости и инерции |
Метод интегрирования | Эйлера | Эйлера | Мерсона (модифицированный) |
Минимальный шаг | 0.0001 | 0.0001 | 0.0001 |
Максимальный шаг | 0.0001 | 0.0001 | 0.0001 |
Максимально возможное ускорение | 9,712 раз | 39.89 раз | 3.677 раз |
Число шагов | 100000 | 100000 | 100000 |
Таким образом, в задаче необходимо учитывать сжимаемость рабочей жидкости, так как колебания системы связаны именно с этим свойством. В моделях, в которых учитывается только инерция, но не сжимаемость не оправдались. Видно, что при таких допущениях решатель выдает «рваный» график давления, что может быть связано с разными порядками расходов (1e-3) и давлений (1e+6). Кроме того, это приводит к большей вычислительной трудоемкости, даже без учета внутренних итераций.
Невозможно однозначно рекомендовать, в каких случаях нужно учитывать сжимаемость жидкости, а в каких - нет. Постоянная времени сжимаемого объема жидкости зависит от многих факторов. Общая рекомендация состоит в том, чтобы лучше учитывать сжимаемость везде, хотя это может увеличить время расчета. Однако, если известно, что масса пренебрежимо мала, то можно не учитывать ни сжимаемость, ни инерцию, что позволит упростить систему дифференциальных уравнений для каждого элемента на два порядка. В остальных случаях следует разрабатывать несколько математических моделей с различными допущениями и выбирать наиболее подходящую на основе фактических данных.
Разработка математических моделей для разных допущений, а также разработка соответствующей структурной схемы в разы увеличивает время. Для упрощения задачи многие производители программ CAE улучшают пользовательский интерфейс, где математическая модель разрабатывается подобно сборке физической системы, а также используются готовые блоки физических элементов, что значительно облегчает процесс.
Разработка моделей собственными блоками в SimInTech, по известным уравнениям было рассмотрено в разделе (Разработка принципиальной схемы модели). Теперь требуется разработать модель из уже готовых блоков в SimInTech. В SimInTech есть библиотека «Гидро- и пневмосистемы», которая постоянно дорабатывается и расширяется. В ней уже содержатся готовые элементы, в которых подготовлены порты для соединения элементов в принципиальные гидравлические схемы. В SimInTech есть так же библиотека «Механика», где содержатся элементы для моделирования механических систем.
Рисунок 54. Рабочая область проекта с использованием стандартных блоков
Добавить в скрипт проекта константы и расчет площади плунжера и сечения дросселя, которые задавали в предыдущих моделях (Рисунок 26).
Рисунок 55. Главное окно SimInTech c выделенными кнопками «Сигналы»
Рисунок 56. Добавление нового сигнала в список сигналов проекта
Для оставшихся блоков также следует задать свойства. Поскольку плотность рабочей жидкости задать в блоках «ГПС - Гидравлический турбулентный дроссель постоянного сечения» и «ГПС - Гидравлический турбулентный дроссель постоянного сечения» нет возможности, то выбирается наиболее близкая среда АМГ-10, плотность которой равна 835,6 кг/м3.
Рисунок 57. Рабочая область проект со значениями свойств и выделенной кнопкой «Менеджер данных»
Рисунок 58. Вызов графиков для стандартных объектов
Рисунок 59. Результаты моделирования
Рисунок 60. Рабочая область проекта с моделью сравнения методов расчета
Рисунок 61. Результат сравнения методов
Рисунок 62. Рабочая область проекта с контекстным меню блока «ГПС - Гидравлическая полость переменного объема»
Рисунок 63. Рабочая область субмодели блока «ГПС - Гидравлическая полость переменного объема»
Рисунок 64. Окно скрипта блока «Язык программирования» с отредактированным расчетом свойств
Рисунок 65. Сравнения моделей после редактирование блока «ГПС - Гидравлическая полость переменного объема»
Промежуточное резюме: Библиотека гидро- пневмосистем в SimInTech значительно ускоряет работу и обеспечивает большую наглядность модели. В отличие от других программ САЕ, SimInTech не скрывает от пользователя внутреннее содержание модели. Она не является "черным ящиком", а скорее практически открытым исходным кодом для математического моделирования гидравлики. Можно выбирать пакет и средство моделирования, а затем пытаться реализовать задачу с использованием специализированных инструментов. Или же можно использовать SimInTech и иметь возможность решать задачи любым удобным способом. SimInTech не ограничивает творческую свободу.