Моделирование гидропривода

Основное назначение данного текста – показать как создавать модели в SimInTech, зная математические уравнения физических процессов. В качестве примера использовались уравнения физических процессов в гидроприводе.

За основу, с любезного разрешения автора, было взято методическое пособие: Андреев М.А. Математическое моделирование гидропривода: Учебное пособие. — на правах рукописи, 2017. — 61 с.

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

Предисловие от Максима Андреева:

С 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) видно, что в качестве положительного направления выбрано перемещение плунжера вправо. Тогда сила со стороны жидкости в уравнении будет со знаком «плюс», сила со стороны пружины и демпфера со знаком «минус».

Создание нового проекта

Для создания нового проекта обще технического шаблона необходимо выполнить следующие действия:
  1. В главном окне SimInTech выбрать пункт «Файл» подпункт «Новый проект».
  2. В выпадающем меню выбрать пункт «Схема модели общего вида».

Откроется новое Рабочая область проекта «Схема модели общего вида», в котором будет проходить описание системы.

Требуется сохранить созданный проект. Для этого:
  1. В главном окне войти в меню «Файл», выбрать подпункт «Сохранить проект как...».
  2. В появившемся окне выбрать или при необходимости создать папку, в которую будет сохранен данный проект.
  3. В появившемся окне в поле «Имя файла» указать желаемое имя проекта, либо оставить имя проекта по умолчанию и нажать на кнопку «Сохранить».

Добавление блоков

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

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

Константы задаются через запятую, после последней ставится точка запятой (Рисунок 2). Все константы заданы в стандартных единицах измерений. Расчет площади проходного сечения рассчитывается в секции инициализации, которая выполняется только один раз при старте расчета. Константы и переменные, заданные в данном окне, доступны в любой части проекта.

Добавить на схему следующие блоки:
  • 1 блок «Ступенька» из вкладки «Источники»;
  • 1 блок «Язык программирования» из закладки «Динамические»;
  • 1 блок «Временной график» из закладки «Вывод данных»;
Разместить и соединить блоки на схеме согласно рисунку (Рисунок 3).

Рисунок 3. Рабочая область проекта со схемой модели плунжера

Перед тем, как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.

Задание свойств блокам на схеме

Перед началом моделирования необходимо задать свойства блокам на схеме. Блок «Ступенька» будет моделировать входное воздействие в виде давления для модели плунжера. Для этого необходимо, чтобы на 1 секунде расчета входное воздействие для модели плунжера менялось от 0 до 200 бар. Для этого необходимо открыть окно «Свойства» блока «Ступенька», через контекстное меню блока, и задать следующие значения, которые указаны на рисунке (Рисунок 4)

Рисунок 4. Окно «Свойства» блока «Ступенька» с измененными свойствами

Если запустить проект на моделирование, путем нажатия на кнопку «Пуск», то график отразит выходной сигнал блока «Ступенька», поскольку блок «Язык программирования» по умолчанию передает сигнал от входного порта в выходной без изменений:

Рисунок 5. Окно «График» с выходным сигналом блока «Ступенька»

В блоке «Язык программирования» имеется возможность записывать уравнения динамики объекта в форме Коши. Прежде чем перейти к записи модели преобразуем уравнение, в систему двух уравнений, добавив новую переменную – скорость v(t) = dx(t)/dt. Таким образом, уравнения движения примет вид:

Теперь из такой системы требуется создать модель. Входным параметром модели будет давление p(t), выходным параметром будет перемещение плунжера х(t). В модели будут две динамические переменные: х(t) и v(t), начальные значения которых приравнивается к нулю. Открыть блок «Язык программирования» и записать описанную систему уравнений, как показано на рисунке (Рисунок 6).

Рисунок 6. Окно блока «Язык программирования» с моделью плунжера с пружиной

input P; – вход в блок (давление).

оutput x; – выхода из блока.

init x = 0, v = 0; – объявление динамических переменных и присвоение им начальных значений.

Далее описаны уравнения, которые выполняются на каждом шаге моделирования. Записанные уравнения на языке программирования практически повторяет систему уравнений, где производные dx(t)/dt и dv(t)/dt обозначены как x’ и v’.

Перед тем, как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.

Настройка параметров расчета

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

Рисунок 7. Рабочая область проекта с выделенной кнопкой «Параметры расчета»

В появившемся окне параметров проекта на вкладке «Параметры расчета» установить значения свойств «Минимальный шаг», «Максимальный шаг» и «Конечное время расчета».
  • «Минимальный шаг» – «0.001».
  • «Максимальный шаг» – «0.001».
  • «Конечное время расчета» – «10».

Закрыть окно «Параметры расчета», при этом внесенные изменения будут сохранены автоматически.

Перед тем, как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.

Моделирование работы

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

Рисунок 8. Настройка шага интегрирования

После окончания процесса моделирования, двойным нажатием левой кнопкой мыши по блоку «Временной график» открыть график. График должен отображать затухающий колебательный процесс за счет наличия силы трения и выглядеть аналогично рисунку (Рисунок 9)

Рисунок 9. График колебательного процесса.

Результат расчета на рисунке (Рисунок 9) показывает, что в момент возникновения давления на 1 секунде происходит быстрый разгон плунжера, из-за инерции движения, плунжер проскакивает точку равновесия, пружина сжимается и возвращает поршень назад, возникают затухающие колебания за счет сопротивление трения.

Решение задачи по частям дает возможность проверить правильность физического моделирования, путем постановки численного эксперимента. Например, если уменьшить коэффициент вязкого трения в 10 раз, то колебания должны затухать дольше. Для этого требуется изменить данный параметр в основном скрипте модели (Рисунок 2), установив значение параметра «Btr» равным «100». В параметрах проекта уменьшить шаг интегрирования, установив значения свойств «Минимальный шаг», «Максимальный шаг»:
  • «Минимальный шаг» – «0.0001».
  • «Максимальный шаг» – «0.0001».
Запустить проект на моделирование, в результате получится следующий график (Рисунок 10):

Рисунок 10. График колебательного процесса при Btr = 100

Если увеличить массу плунжера в 10 раз, оставляя все остальные параметры заданными изначально, то колебания будут происходит с меньшей частотой, и время переходного процесса так же увеличится. Для этого требуется вернуть в скрипте проекта значение «Btr = 1000» и установить значение «m» равным «1000». Запустить проект на моделирование, в результате получится следующий график (Рисунок 11).

Рисунок 11. График колебательного процесса при m = 1000

Установить в скрипте проекта прежнюю массу плунжера равную 100 кг. Для этого требуется открыть скрипт проекта и изменить значение «m» на «100».

Еще одним способом проверки правильности модели будет сравнение конечного перемещения, полученного в модели и рассчитанного из условия равновесия системы. В случае равновесия сила, действующая на плунжер (Pst·Ap), уравновешивается силой сжатой пружины (Cpr·xst), где

Pst – давление статическое;

xst – перемещение поршня (сжатие пружины);

Pst ·Ap = Cpr·xst или xst = Pst·Ap/Cpr.

Запись расчета стационарного положения требуется внести в скрипт блока «Язык программирования», при этом расчет конечного положения плунжера выполняется также в окне блока «Язык программирования», для отображения всех значений переменных необходимо нажать на кнопку «Посмотреть все», которая выделена на рисунке (Рисунок 12). Добавить в скрипт блока «Язык программирования» строки, которые обозначены на рисунке (Рисунок 12) и, не закрывая окно скрипта блока «Язык программирования», произвести моделирование проекта

Рисунок 12. Окно скрипта блока «Язык программирования» с добавленными строками проверка конечного положения плунжера

Если двойным нажатием левой кнопки мыши по линии связи, соединяющей блоки «Язык программирования» и «Временной график», открыть окно просмотра значений на линии, то выходное значение будет совпадать с рассчитанным положением плунжера (Рисунок 13).

Рисунок 13. Рабочая область проекта с выведенным значением на линии связи

Результаты моделирования совпадают со статическим расчетом (Рисунок 12). Таким образом, модель выходит на правильные значения положения и при 150 бар и при 250 бар.

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

Моделирование камеры

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

где: — скорость изменения давления; E — приведенный объемный модуль упругости рабочей жидкости; V — объем сжимаемой рабочей жидкости; Q — расход, поступающий в рабочую камеру.

Это выражение выводится, путем разнесения дифференциалов давления и объема по разные стороны знака равенства, и продифференцировав обе части по времени, из формулы определения объемного модуля упругости:

Давление будет меняться тем быстрее, чем выше модуль упругости рабочей жидкости E, и тем медленнее, чем больше объем этой жидкости V. Поэтому модуль упругости в числителе, а объем — в знаменателе. В скобках - алгебраическая сумма расходов. В данном случае расход осуществляется через дроссель Q и с учетом геометрического расхода, связанного с перемещением плунжера. Положительное значение расхода Q при прочих равных будет приводить к росту давления (положительная скорость изменения давления), а положительная скорость перемещения плунжера к падению давления. Поэтому расход через дроссель в уравнении со знаком «плюс», а геометрический расход со знаком «минус».

Объем камеры описывается следующей формулой:

где V0 — объем жидкости при нулевом положении x(t) поршня.

Влияние изменения объема жидкости незначительно, и для предотвращения возможных ошибок (например, в случае отрицательных значений x), рекомендуется принять постоянный объем, который равен половине разницы между объемами в конечном и начальном положениях.

Требуется разработать модель камеры и подключить ее к испытанной и проверенной модели плунжера. Для разработки модели камеры необходимо добавить в скрипт проекта две новые величины:
  • «V0» – начальный объем камеры.
  • «Е = 13e8» – приведенный объемный модуль упругости.
Для этого необходимо открыть скрипт ранее созданного проекта с моделью плунжера с пружиной исправить и добавить следующие строки (Рисунок 14)

Рисунок 14. Окно скрипта проекта с исправленной строкой и добавленными константами

Прим.: знак «;» переместился . Все константы разделены запятыми, секция заканчивается точкой с запятой.
Входными параметрами для расчета является расход жидкости Q, положение поршня x и скорость перемещения v исходя из представленного уравнения. Для моделирования модели камеры необходимо разместить на схеме проекта блок «Язык программирования» из вкладки «Динамические». Двойным нажатием на установленный блок, открыть окно скрипта блока. Записать в окна скрипта блока «Язык программирования» следующие уравнения (уравнение и уравнение).

Рисунок 15. Модель камеры цилиндра

Выходной сигнал скорости перемещения плунжера ранее установленного блока «Язык программирования» с моделью плунжера с пружиной должен поступать на вход блока «Язык программирования» с моделью камеры цилиндра. Для этого необходимо открыть скрипт блока «Язык программирования» с моделью плунжера и добавить следующую запись (Рисунок 16).

Рисунок 16. Модель плунжера с добавленных выходом скорости перемещения плунжера

Соединить блоки на схеме и добавить к ним подписи согласно рисунку (Рисунок 17).

Рисунок 17. Рабочая область проекта с общей моделью цилиндра и камеры

Теперь необходимо настроить источник расхода в камеру. На модель плунжера с пружиной подавалось давление 200е5 Па (200 бар) с помощью блока «Ступенька». Теперь необходимо из блока с моделью плунжера подать такой расход, чтобы в камере сформировалось давление 200 бар. Если использовать блок «Ступенька», то при его включении начнется подача постоянного расхода, который будет поддерживаться на протяжении всего времени моделирования. Однако, для достижения требуемого повышения давления необходимо подать расход в камеру только на определенное время, достаточное для создания давления в 200 бар, а затем прекратить подачу.

Поскольку неизвестно, сколько жидкости необходимо закачать для достижения требуемого давления в 200 бар, рекомендуется использовать блок «Кусочно постоянная» из вкладки «Источники». В качестве примера работы с данным блоком требуется задать следующие свойства блока «Кусочно постоянная» (Рисунок 18).

Рисунок 18. Окно свойства блока «Кусочно постоянная»

Свойство «Массив временных интервалов» блока «Кусочно постоянная» задает 3 временных интервала по 1 секунде. Свойство «Массив значений» устанавливает, что на первом интервале расход будет равен 0, на втором интервале расход 1, на следующем и до конца расчета расход будет равен 0. Таким образом, моделируется накачка камеры расходом 1 м3/c в течение одной секунды. Однако, такой расход будет создавать невозможное давление.
Изменить схему проекта, согласно рисунку (Рисунок 19):
  • Заменить блок «Ступенька» на блок «Кусочно постоянная»
  • Добавить два блока «Задержка на шаг интегрирования» из вкладки «Нелинейные» для развязки алгебраической петли. Этот блок позволит во время моделирования брать значения с предыдущего шага, тем самым решая проблему алгебраической петли.
  • Для блоков «Задержка на шаг интегрирования» повернуть порты на 180 градусов, через контекстное меню блока.
  • Активировать кнопку «Показать значения на линия связи» для отображения всех текущих рассчитанных результатов моделирования, что позволит увидеть, какое давление создается для рассчитываемого объема жидкости.

Рисунок 19. Рабочая область проекта с установленным блоком «Кусочно постоянная» и выделенной кнопкой «Показать значения на линия связи»

Запустить проект на моделирование. Дождаться окончания процесса моделирования и открыть окно «График» блока «Временной график». График должен выглядеть аналогично рисунку (Рисунок 20)

Рисунок 20. График результатов моделирования

Результаты расчета показывают, что давление в камере установилось на уровне около 3.925е11 вместо необходимого 200е5 (200 бар) (Рисунок 21)

Рисунок 21. Рабочая область проекта с выделенным результатом давления в камере

Путем подбора значения свойства «Массива значений» блока «Кусочно постоянная» определено, что для создания давления в 200 бар необходимый расход составляет примерно 9.29e-7 в течение 1 секунды, таким образом необходимо установить для свойства «Массива значений» блока «Кусочно постоянная» значение «[[0 , 9.29E-7 , 0]]».

Рисунок 22. Рабочая область проекта с результатами моделирования при значение свойства «Массива значений» блока «Кусочно постоянная» равным «[[0 , 9.29E-7 , 0]]»

Открыть результаты моделирования, которые находятся в блоке «Временной график» открыть свойства графика и установить следующие значения на вкладке «Графики и оси»:
  • Для оси X:
    • «Максимум» - «3».
    • «Шаг сетки» - «0.2».
    • «Автомасштаб» - деактивирован.
  • Для оси Y:
    • «Максимум» - «0.01».
    • «Автомасштаб» - деактивирован.
В результате должен получится следующий график (Рисунок 23). На графике видно, что если расход подается равномерно в течение секунды, то на начальном этапе наблюдается рост с колебаниями, затем устанавливается практически равномерный процесс перемещения в течение секунды, пока подается расход в камеру. После этого происходит остановка с небольшими затухающими колебаниями после 2 секунд.

Рисунок 23. Результаты моделирования равномерной подачи в камеру

Теперь требуется сравнить ранее разработанную модель плунжера с пружиной и разработанную модель с камерой. Поскольку первая модель нагружалась ударной нагрузкой (ступенькой), для создания аналогичного импульса необходимо быстро подать в камеру объем, достаточный для создания такого же давления, но за более короткое время. Необходимо сократить время импульса, примерно, в 10 раз, и увеличить расход в 10 раз. Для этого необходимо:
  • Сделать копию блока «Язык программирования» с подписью «Плунжер с пружиной».
  • Добавить блок «Ступенька» из вкладки «Источники» и установить для свойства «Конечное состояние» значение «200e5» и для свойства «Время срабатывания» равным «1».
  • Добавить второй вход в блок «Временной график», путем установки значения свойства «Количество входных портов» равным «2».
  • Установить свойство «Массив временных интервалов» для блока «Кусочно постоянная» равным «[[1 , 0.1 , 1]]» и уставить свойство «Массив значений» равным «[[0 , 9.28E-6 , 0]]» для того чтобы на вход камеры подавался расход импульсом длительностью 0.1 секунды, а конечное давление было около 200 бар.
Соединить блоки линиями связи согласно рисунку (Рисунок 24).

Рисунок 24. Рабочая область проекта с моделью сравнения модели плунжера с камерой и без камеры

Запустить проект на моделирования. Дождаться окончания процесса моделирования. Открыть результаты моделирования, которые находятся в блоке «Временной график» открыть свойства графика и установить следующие значения на вкладке «Графики и оси»:
  • Для оси X:
    • «Минимум» - «0.9».
    • «Максимум» - «2.5».
    • «Автомасштаб» - деактивирован.
  • Графики:
    • Название графика «График 1» - «Камера + цилиндр».
    • Название графика «График 2» - «Цилиндр».
Результаты моделирования должны совпадать с результатами на рисунке (Рисунок 25).

Рисунок 25. Результаты моделирования со сравнением модели плунжера с камерой и без камеры

На графике видно, что в течении 0,1 секунды пока идет подача расхода в камеру идет перемещение плунжера, которое потом затухает быстрее, чем без камеры (с мгновенным ростом давления). Видно, что положение плунжера примерно соответствует полученному при отдельном моделировании.

Перед тем, как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.

Моделирование дросселя

Уравнение описывающее расход через дроссель:

где: f – площадь сечения дросселя; μ – коэффициент расхода; pn–давление нагнетания; p – давление в камере цилиндра.

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

Таким образом, в скрипт проекта необходимо добавить коэффициент расхода μ равным «0.62», плотность рабочей жидкости ρ равным «850» кг/м3 и расчет проходного сечения дросселя, а также добавить строки, которые обозначены на рисунке (Рисунок 26):

Рисунок 26. Окно скрипта проекта с добавленными строками

Для моделирования дросселя необходимо разместить на схеме проекта блок «Язык программирования» из вкладки «Динамические». Двойным нажатием на установленный блок, открыть окно скрипта блока. Записать в окна скрипта блока «Язык программирования» следующее уравнение согласно рисунку (Рисунок 27). На вход блока вначале подается давление в камере «pk», затем давление нагнетания «pn».

Рисунок 27. Окно скрипт блока «Язык программирования» с моделью расхода через дроссель

Изменить схему модели, разместить и соединить блоки на схеме согласно рисунку (Рисунок 28).:
  • Добавить блоку «Язык программирования» с моделью расхода через дроссель подпись «Дроссель».
  • Заменить блок «Кусочно постоянная» на ранее установленный блок «Ступенька», который подает на вход системы давление 200 бар.
  • Добавить блок «Задержка на шаг интегрирования» из вкладки «Нелинейные» и изменить отображение входных портов, повернув их на 180 градусов в контекстном меню блока.
  • Удалить блок «Язык программирования» с подписью «Плунжер с пружиной».
  • Изменить количество входных портов блока «Временной график», установив для свойства «Количество входных портов» значение «1».

Рисунок 28. Рабочая область проекта с добавленной моделью расхода через дроссель

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

  • Для оси X:
    • «Минимум» - «0.9».
    • «Максимум» - «2».
    • «Шаг сетки» - «0.1».
    • «Автомасштаб» - деактивирован.
  • Для оси Y:
    • «Максимум» - «0.01».
    • «Автомасштаб» - деактивирован.
  • Графики:
    • Название графика «Камера + цилиндр» - «График».
Результаты моделирования должны совпадать с результатами на рисунке (Рисунок 29)

Рисунок 29. График переходного процесса при увеличении давления нагнетания скачком с 0 до 200 бар.

Перед тем, как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.

Модель в виде стандартных блоков

Разработанную модель представленную в виде блоков «Язык программирования» возможно также представить в виде стандартных блоков, как это показано на рисунке (Рисунок 30).

Рисунок 30. Модель в виде схемы

Модель дросселя представляется в виде следующих блоков:
  • 1 блок «Абсолютное значение» из вкладки «Операторы».
  • 2 блока «Усилитель» из вкладки «Операторы».
  • 1 блок «Корень квадратный» из вкладки «Функции».
  • 1 блок «Знак» из вкладки «Операторы».
  • 1 блок «Перемножитель» из вкладки «Операторы».

В соответствии с уравнением для блоков «Усилитель» необходимо в свойствах указать в поле «Формула» значение свойства «Коэффициент усиления» равным «2/ro» и «my*f_dr».

Модель камеры цилиндра представляется в виде следующих блоков:
  • 1 блок «Сумматор» из вкладки «Операторы».
  • 1 блок «Делитель» из вкладки «Операторы».
  • 1 блок «Линейная функция» из вкладки «Функции».
  • 1 блок «Интегратор» из вкладки «Динамические».
  • 1 блок «Усилитель» из вкладки «Операторы».
В соответствии с уравнением для блока:
  • «Сумматор» необходимо в свойствах указать значение свойства «Весовые множители для каждого из входов» равным «[-1 , 1]».
  • «Интегратор» необходимо в свойствах указать в поле «Формула» значение свойства «Коэффициент усиления» равным «E».
  • «Линейная функция» необходимо в свойствах указать в поле «Формула» значение свойства «Свободный член, в формуле a+b·x» равным «V0» и значение свойства «Коэффициент при x» равным «Ap».
  • «Усилитель» необходимо в свойствах указать в поле «Формула» значение свойства «Коэффициент усиления» равным «Ap».
Модель плунжера с пружиной представляется в виде следующих блоков:
  • 3 блока «Усилитель» из вкладки «Операторы».
  • 1 блок «Сумматор» из вкладки «Операторы».
  • 2 блока «Интегратор» из вкладки «Динамические».
В соответствии с уравнением для блока:
  • «Усилитель» необходимо в свойствах указать в поле «Формула» значение свойства «Коэффициент усиления» равным «Ap», «Btr» и «Cpr» соответственно.
  • «Сумматор» необходимо в свойствах указать значение свойства «Весовые множители для каждого из входов» равным «[1 , -1 , -1]».
  • «Интегратор» оставить свойства по умолчанию.
Преимущества схемы – это наглядность и возможность видеть значения на каждой линии связи во время моделирования. Однако, для блока «Языка программирования» есть функция «Посмотреть все», которая отображает все рассчитанные значения выполненные при моделировании Рисунок 31.

Рисунок 31. Отладка программы в блоке «Язык программирования»

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

Разработка принципиальной схемы модели

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

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

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

Добавить для блока «Субмодель» с подписью «Гидроцилиндр» свойства и параметры, относящиеся к гидроцилиндру. Для этого необходимо выделить блок «Субмодель» с подписью «Гидроцилиндр», открыть контекстное меню блока и выбрать пункт «Изменить блок» для открытия окна редактирования блока. В открывшемся окне редактора блока добавить, с помощью кнопки «Добавить свойство», которая выделена на рисунке (Рисунок 32) следующие свойства и задать им параметры согласно рисунку (Рисунок 32):
  • «Масса плунжера, кг» - «100».
  • «Диаметр плунжера, м» - «10e-3».
  • «Жесткость пружины, Н/м» - «200e3».
  • «Коэффициент вязкого трения демпфера, Н/(м/с)» - «1000».
  • «Начальный объем камеры, м^3» - «20e-6».
  • «Приведенный объемный модуль упругости, Па» - «13e8».

Рисунок 32. Окно редактирования блока «Субмодель» с подписью «Гидроцилиндр» с добавленными свойствами

В окне редактирования блока перейти в закладку «Параметры» для добавления параметров, которыми блок будет оперировать. Добавить, с помощью кнопки «Добавить параметр», которая выделена на рисунке (Рисунок 33), следующие параметры и присвоить им параметры согласно рисунку (Рисунок 33):
  • «Текущий объем камеры».
  • «Давление в камере».
  • «Положение плунжера».
  • «Скорость плунжера»
  • «Площадь сечения плунжера».

Рисунок 33. Окно редактирования блока «Субмодель» с подписью «Гидроцилиндр» с добавленными параметрами

Войти в блок «Субмодель» с подписью «Гидроцилиндр» двойным нажатием по блоку. Разместить внутри субмодели следующие блоки:
  • Ранее подготовленные блоки «Язык программирования» с подписью «Камера цилиндра» и «Плунжер с пружиной».
  • Ранее размещенных два блока «Задержка на шаг интегрирования» в обратной связи блока «Язык программирования» с подписью «Камера цилиндра».
  • 1 блок «Порт входа» и 1 блок «Порт выхода» из вкладки «Субструктуры».
  • 1 блок «Двунаправленная шина (выход)» из вкладки «Субструктуры».
Изменить имя выходного порта, для этого необходимо двойным нажатием по блоку «Порт выхода» открыть окно «Порт субмодели» и переименовать имя порта субмодели из «out» в «Х», который отвечает за положением плунжера. Добавить подпись «Положение» для блока «Порт выхода». Разместить и соединить линиями связи блоки, согласно рисунку (Рисунок 34).

Рисунок 34. Рабочая область субмодели «Гидроцилиндр»

Выйти из субмодели с подписью «Гидроцилиндр» и войти в блок «Субмодель» с подписью «Дроссель» двойным нажатием по блоку. Разместить внутри субмодели следующие блоки:
  • Ранее подготовленные блоки «Язык программирования» с подписью «Дроссель».
  • Ранее размещенный блока «Задержка на шаг интегрирования» в контуре блока «Язык программирования» с подписью «Дроссель».
  • 1 блок «Порт входа» и 1 блок «Порт выхода» из вкладки «Субструктуры».
  • 1 блок «Двунаправленная шина (вход)» из вкладки «Субструктуры».
Изменить имя входного порта, для этого необходимо двойным нажатием по блоку «Порт входа» открыть окно «Порт субмодели» и переименовать имя порта субмодели из «in» в «P», который отвечает за входное давление. Разместить и соединить линиями связи блоки, согласно рисунку (Рисунок 35). Дроссель соединен с входом и выходом таким образом, чтобы он забирал давление из шины через контакт B и передавал расход через контакт А.

Рисунок 35. Рабочая область субмодели «Дроссель»

Блоки «Двунаправленная шина (вход)»/«Двунаправленная шина (выход)» позволяют объединить две или более линии связи с разными направлениями в одну «шину» для моделей, где двунаправленная связь определена однозначно. Дроссель рассчитывает расход и передает его в камеру через контакт А, но для своего расчета ему необходимо знать давление в камере. Поэтому через контакт B на вход поступает расход и передается на дроссель, при этом на схеме используется одна линия связи.

Выйти из субмодели с подписью «Дроссель». Добавить для блока «Субмодель» с подписью «Дроссель» свойства и параметры, относящиеся к дросселю. Для этого необходимо открыть окне редактора блока «Субмодель» с подписью «Дроссель» и добавить следующие свойства и задать им параметры согласно рисунку (Рисунок 36):
  • «Коэффициент расхода» - «0.62».
  • «Плотность рабочей жидкости, кг/м^3» - «850».
  • «Диаметр дросселя, м» - «d_dr».

Рисунок 36. Окно редактирования блока «Субмодель» с подписью «Дроссель» с добавленными свойствами

В окне редактирования блока перейти в закладку «Параметры» для добавления параметров, которыми блок будет оперировать. Добавить параметр площади проходного сечения и присвоить ему значения согласно рисунку (Рисунок 37)

Рисунок 37. Окно редактирования блока «Субмодель» с подписью «Дроссель» с добавленным параметром

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

Рисунок 38. Окно скрипта субмодели «Дроссель» с расчетом площади сечения дросселя

Аналогичным образом разместить расчет площади плунжера из скрипта проекта в скрипт субмодели «Гидроцилиндр».

Выйти на рабочую область проекта. Добавить на схему копию блока «Ступенька», размещенного ранее для подачи давления в дроссель. Добавить подписи к блокам, а также разместить и соединить блоки согласно рисунку (Рисунок 39).

Рисунок 39. Рабочая область проекта с расчетной и принципиальной схемой модели

При разработке блоков для принципиальной схемы использовались те же имена параметров, что и в скрипте проекта. Однако для блоков принципиальной схемы эти параметры теперь локальные, в то время как глобальные константы, заданные в скрипте проекта, остались неизменными. Теперь есть возможность задавать другие значения в свойствах блоков принципиальной схемы. Например, если изменить формулу для свойства «Диаметр плунжера, м» в блоке «Субмодель» с подписью «Гидроцилиндр» с «10e-3» на «d/2» с использованием глобальной константы, то после запуска проекта на моделирование диаметр уменьшится в два раза, а перемещении будет в 4 раза меньше (пропорционально квадрату диаметра).

Рисунок 40. Результаты моделирования при уменьшении диаметра плунжера в 2 раза

Перед тем, как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.

Решение задачи прямым программированием в SimInTech

Решение методом Эйлера

Было рассмотрено 3 способа моделирования:
  • Моделирование через блоки «Язык моделирования».
  • Моделирование через стандартные блоки SimInTech.
  • Моделирование с использование блоков «Субмодель».
Рассмотренные способы моделирования используют готовые методы интегрирования, предоставляемые SimInTech. Однако, если есть необходимость интегрировать вручную, SimInTech предлагает широкий выбор численных методов для решения подобных дифференциальных уравнений. Самый простой из них — метод Эйлера. Суть этого метода заключается в том, что сначала производная представляется не как предел отношения приращения функции к приращению ее аргумента, а как отношение разностей (т.е. переход к конечным разностям). Например, для первого уравнения системы:
уравнение преобразуется в уравнение вида:
где vi+1 и vi – скорости в моменты времени ti+1 и ti . Тогда решение становится простым: зная параметр в один момент времени, есть возможность рассчитать, каким он будет через промежуток времени Δt:
Видно, что в этом уравнении в правой части только известные величины. Аналогичным образом необходимо преобразовать остальные уравнения системы. Если более упрощенно, то система уравнений в форме Коши - это когда слева стоят производные (скорости изменения величин), а справа - формулы для их вычисления. Чтобы решить систему методом Эйлера, необходимо знать начальное состояние Х10 ... XN0.

Поскольку известны начальные состояния Х10 ... XN0, то из системы в форме Коши есть возможность рассчитать скорости изменений всех величин V10 ... VN0 в начальный момент времени. И если выбирать шаг Δt таким маленьким, чтобы все скорости в системе не менялись в течение шага интегрирования, то тогда любая величина на следующем шаге будет равна времени умноженному на скорость изменений: Х11 = Х10 + V10 × Δt.

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

Проведение расчетов методом Эйлера

Для расчета возможно использование цикла, написанного на языке C++ или Delphi. В данной лабораторной работе расчет будет производите в блоке «Язык программирования».

Создать новый проект и разместить в нем блок «Язык программирования». Открыть скрипт блока «Язык программирования» и создать в нем константы и переменные, необходимые для расчета, как показано на рисунке (Рисунок 41), при этом блок не будет иметь входов, а только выход. Расчет площади сечений будет происходить в секции инициализации, которая выполняется один раз после запуска проекта на моделирование, для возможности отладки скрипта, не запуская главное окно программы. В начале объявляются вектора, которые будут хранить результаты и присваиваются значения для нулевого шага (Рисунок 41). Далее выполняется цикл расчета.
Прим.: уравнения в форме Коши записываются без изменений, исключая штрих, который был записан при создании блоков в первой части.

Рисунок 41. Окно скрипта блока «Язык программирования»

В результате выполнения цикла инициализации на выходе два вектора: вектор T – вектор времен, вектор Х – вектор положения штока. Задача решена – для любого значения времени есть положение штока.

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

Рисунок 42. Расчет выходных значений блока «Язык программирования»

Запустить проект на моделирование. В SimInTech есть возможность запускать и отлаживать программу непосредственно в окне редактирования скрипта, и просматривать все значения переменных через меню «Расчет», нажатием на кнопку «Посмотреть все», а также просматривать результаты расчета в виде графиков через меню «Расчет», нажатием на кнопку «Построить зависимость» (Рисунок 43).

Рисунок 43. Окно скрипта блока «Язык программирования» с выделенными кнопками

Для построения зависимости положения плунжера во времени необходимо нажать на меню «Расчет» и выбрать кнопку «Построить зависимость». Откроется окно «Построение зависимости», где необходимо в поле «Имена массивов абсцисс» указать «T», в поле «Имена массивов ординат» указать «X». Подтвердить нажатием на кнопку «Ок» (Рисунок 44)

Рисунок 44. Окно «Построение зависимости»

Откроется окно «График» с построенной зависимостью положения плунжера во времени (Рисунок 45).

Рисунок 45. Результаты моделирования

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

Выбор допущений

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

При написании математической модели необходимо учитывать насколько подробно необходимо описать каждый элемент системы.

В данной лабораторной работе в модели плунжера возможно использование поршня, а вместо пружины - упругого элемента. Плунжер возможно представить как весомый или невесомый. Жидкость возможно моделировать как сжимаемую или несжимаемую. Объем камеры возможно считать изменяемым или постоянным. Дроссель возможно моделировать с учетом трубы, в которую он встроен, или без ее учета. Комбинация этих факторов дает как минимум 8 вариантов математической модели представленной схемы.

Если подробно остановиться на двух факторах: учет массы плунжера и сжимаемость жидкости, то тогда также нужно учесть и гравитацию Луны, и силу ветра в помещении. Однако, на практике инерция и сжимаемость жидкости не всегда оказывают значительное влияние на процесс перемещения плунжера. Например, при применении силы более 150 кГс и отсутствии пружины, учет массы плунжера необходим только в том случае, если она сравнима с этой силой. Учет массы в 100 г усложнит расчеты, но не повысит точность. То же самое относится и к давлению в системе, если оно не превышает 2–5 бар.

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

Структурная схема:

Рисунок 46. Структурная схема

В разработанную раннее модель необходимо внести изменения, поскольку необходимо рассмотреть не только перемещение X, но и давление жидкости P в рабочей камере. Ведь эффект сжимаемости проявляется не в мгновенном росте давления. Для этого необходимо открыть модель гидроцилиндра и добавить в блок «Порт выхода» еще один выходной сигнал P и соединить блоки линиями связи согласно рисунку (Рисунок 47)

Рисунок 47. Модель гидроцилиндра с добавленным выходным сигналом P

Добавить еще один входной порт для блока «Временной график», соединить выходной сигнал блока «Субмодель» с подписью «Гидроцилиндр» с появившемся входным портом блока «Временной график». Запустить проект на моделирование. Дождаться окончания процесса моделирования. Открыть результаты моделирования, которые находятся в блоке «Временной график» открыть свойства графика и установить следующие значения на вкладке «Графики и оси»:
  • Для оси X для графика «График 2» и «График»:
    • «Минимум» - «0.9».
    • «Максимум» - «2».
    • «Шаг сетки» - «0.1».
    • «Автомасштаб» - деактивирован.
  • Для оси Y для графика «График 2»:
    • «Максимум» - «0.01».
    • «Автомасштаб» - деактивирован.
  • Графики:
    • Название графика «График 2» - «Перемещение».
    • Название графика «График» - «Давление».
Закрыть окно свойств графика и открыть контекстное меню окна «График», активировать многошкальный режим и разделить шкалы по высоте. Результаты моделирования должны совпадать с результатами на рисунке (Рисунок 48)

Рисунок 48. Результат переходного процесса плунжера

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

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

Таким образом, вместо блока «Интегратор» с подписью «E», который определяет давление путем интегрирования, требуется установить блок «Нелинейное уравнение F(y) = 0» из вкладки «Операторы» для численного решения алгебраических уравнений. Работа блока заключается в использовании численного итерационного метода для постепенного изменения выходного значения, пока не будет достигнуто нулевое значение функции с заданной точностью. Иными словами, на каждом шаге решения блок будет изменять давление, пока сумма расходов не станет равной нулю с заданной точностью. Тогда структурная схема будет выглядеть так, как показано на рисунке (Рисунок 49):

Рисунок 49. Схема расчета без учета сжимаемости

Поскольку до 1 секунды процесса сигналы равны 0, то свойство «Начальное приближение» блока «Нелинейное уравнение F(y) = 0» устанавливается равным 0. Перед запуском проекта на моделирование необходимо настроить параметры проекта. Требуется установить параметр «Метод интегрирования» равным «Мерсона (модифицированный)», который был установлен эмпирическим путем.
Прим.: более подробную информацию о методах решения обыкновенных дифференциальных уравнений (ОДУ) и дифференциально-алгебраических уравнений (ДАУ) представлена в разделе Методы решения обыкновенных дифференциальных и дифференциально-алгебраических уравнений в SimInTech.

Рисунок 50. Окно параметров расчета проекта

Если запустить проект на моделирование, то получатся следующие результаты (Рисунок 51), при этом в окне сообщений появятся три предупреждения, что заданная точность не обеспечивается.

Рисунок 51. Результат моделирования без учета сжимаемости

Из результатов видно, что колебания, которые были связаны не только с инерцией плунжера, но и со сжимаемостью жидкости, исчезли. Однако, на 1 секундах расчета давление резко возросло до 200 бар, затем постепенно увеличилось до 200 бар. Такое давление должен компенсировать установленный дроссель, однако блок «Нелинейное уравнение F(y) = 0» определил, что в момент резкого возрастания давление в камере должно быть равно давлению нагнетания, а затем оно уменьшается сразу после начала движения поршня.

Если не учитывать влияние инерции, то скорость перемещения поршня v будет полностью определяться расходом, поступающим в полость:

Для расчета расхода через дроссель, необходимо знать давление p в полости, которое рассчитывается из уравнения равновесия:

Таким образом, необходимо удалить следующие блоки:
  • блок «Сумматор» с тремя входами;
  • блок «Нелинейное уравнение F(y) = 0»;
  • блок «Интегратор»;
И разместить блок «Задержка на шаг интегрирования» из вкладки «Нелинейные» для развязки алгебраической петли. Для блоков «Усилитель», размещенных в группе «Камера цилиндра» и «Плунжер с пружиной», с подписями «Ap» установить свойство «Коэффициент усиления» равным «1/Ap». Блок «Сумматор» необходимо зеркально отразить с помощью контекстного меню кнопки «Зеркальное отражение» и изменить значение свойства «Весовые множители для каждого из входов» на «[1 , 1]», а порты блока «Задержка на шаг интегрирования» повернуть на 180 градусов. Разместить и соединить блоки линиями связи согласно рисунку (Рисунок 52)

Рисунок 52. Структурная схема без сжимаемости и инерции

Перед запуском проекта на моделирование необходимо настроить параметры проекта. Требуется установить параметр «Метод интегрирования» равным «Эйлера», для увеличения скорости расчета. Запустить проект на моделирование. Дождаться окончания процесса моделирования. Открыть результаты моделирования, которые находятся в блоке «Временной график» открыть свойства графика и установить следующие значения на вкладке «Графики и оси»:
  • Для оси X:
    • «Минимум» - «0.95».
    • «Максимум» - «2».
    • «Автомасштаб» - деактивирован.
  • Для оси Y:
    • «Максимум» - «0.01».
    • «Автомасштаб» - деактивирован.
Закрыть окно свойств графика и открыть контекстное меню окна «График», активировать многошкальный режим и разделить шкалы по высоте. Результаты моделирования должны совпадать с результатами на рисунке (Рисунок 53)

Рисунок 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 есть так же библиотека «Механика», где содержатся элементы для моделирования механических систем.

Требуется создать новый проект и разместить в нем следующие блоки:
  • Из библиотеки «Гидро- и пневмосистемы»:
    • 1 блок «ГПС - Давление и температура жидкости» из подгруппы «Граничные условия».
    • 1 блок «ГПС - Гидравлический турбулентный дроссель постоянного сечения» из подгруппы «Дроссельные элементы».
    • 1 блок «ГПС - Гидравлическая полость переменного объема» из подгруппы «Полости».
    • 1 блок «ГПС - Гидромеханический преобразователь поступательного типа» из подгруппы «Гидро- и пневмомеханические преобразователи».
  • Из библиотеки «Механика» из подгруппы «Элементы поступательного движения»:
    • 1 блок «Механика - Инерция поступательного движения».
    • 1 блок «Механика - Фрикционный демпфер поступательного движения».
    • 1 блок «Механика - Пружина поступательного движения».
    • 1 блок «Механика - Заделка поступательного движения».
  • 1 блок «Ступенька» из вкладки «Источники».
  • 1 блок «Запись в список сигналов» из вкладки «Сигналы».
Зеркально отразить блоки «ГПС - Гидравлическая полость переменного объема» и «ГПС - Гидромеханический преобразователь поступательного типа». Разместить и соединить блоки линиями связи согласно рисунку (Рисунок 54):

Рисунок 54. Рабочая область проекта с использованием стандартных блоков

Особенностью данной схемы, является то, что изображенные на ней линии связи имеют различное значение: то есть если соединить полость с пружиной, то линия связи не будет соединять блоки:
  • Линии связи между блоками «ГПС - Давление и температура жидкости» и «ГПС - Гидравлическая полость переменного объема» – это каналы течения жидкости.
  • Линия связи между блоками «ГПС - Гидромеханический преобразователь поступательного типа» и «Механика - Заделка поступательного движения» – это линия механической связи.
  • Линия связи между блоками «Ступенька» и «Запись в список сигналов» – это линия передачи данных (одного сигнала).

Добавить в скрипт проекта константы и расчет площади плунжера и сечения дросселя, которые задавали в предыдущих моделях (Рисунок 26).

Поскольку блок «ГПС - Давление и температура жидкости» не имеет входных портов, на который нужно подать ступенчатый сигнал от блока «Ступенька» для имитации скачка давления, поэтому необходим блок «Запись в список сигналов», который будет принимать сигнал от блока «Ступенька» и передавать в сигналы проекта. Для начало создадим ступенчаты сигнал в блоке «Ступенька», для этого необходимо задать следующие свойства:
  • «Время срабатывания» - «1».
  • «Начальное состояние» - «0».
  • «Конечное состояние» - «200e5».
После задания ступенчатого сигнала необходимо создать сигнал, который будет принимать скачок давления. Для этого необходимо в главном окне SimInTech нажать на кнопку «Сигналы», которая выделена на рисунке (Рисунок 55) или нажать на меню «Сервис» в открывшемся списке выбрать «Сигналы».

Рисунок 55. Главное окно SimInTech c выделенными кнопками «Сигналы»

В открывшемся окне «Список сигналов проекта» добавить при помощи кнопки «Добавить сигнал» новый сигнал и задать ему параметры согласно рисунку (Рисунок 56).

Рисунок 56. Добавление нового сигнала в список сигналов проекта

Теперь необходимо установить привязку выходного сигнал блока «Ступенька» к созданному сигналу «Pn», для этого необходимо открыть свойства блока «Запись в список сигналов» и в строке свойства «Имена сигналов» задать в поле «Значение» значение «Pn». Теперь в окне проекта блок «Запись в список сигналов» отображает «Pn». Теперь сигнал «Pn» записывает значение выходного сигнала блока «Ступенька». Назначить для блока «ГПС - Давление и температура жидкости» входной сигнал «Pn», а также задать следующие свойства:
  • «Абсолютное давление рабочей среды в полости, Па» - «Pn».
  • «Температура рабочей среды в полости, градусы Цельсия» - «20».

Для оставшихся блоков также следует задать свойства. Поскольку плотность рабочей жидкости задать в блоках «ГПС - Гидравлический турбулентный дроссель постоянного сечения» и «ГПС - Гидравлический турбулентный дроссель постоянного сечения» нет возможности, то выбирается наиболее близкая среда АМГ-10, плотность которой равна 835,6 кг/м3.

Для блока «ГПС - Гидравлический турбулентный дроссель постоянного сечения» задать следующие свойства:
  • «Коэффициент массового расхода дросселя при прямом токе рабочей среды» - «my» = «0.62».
  • «Коэффициент массового расхода дросселя при обратном токе рабочей среды» - «my» = «0.62».
  • «Диаметр дросселя при прямом токе рабочей среды, м» - «d_dr» = «0.0002».
  • «Диаметр дросселя при обратном токе рабочей среды, м» - «d_dr» = «0.0002».
  • «Рабочая среда» - «масло АМГ-10».
Для блока «ГПС - Гидравлический турбулентный дроссель постоянного сечения» задать следующие свойства:
  • «Начальное абсолютное давление рабочей среды в полости, Па» - «200e5».
  • «Температура рабочей среды в полости, градусы Цельсия» - «20».
  • «Начальный объем полости, м^3» - «V0» = «20e-6».
  • «Рабочая среда» - «масло АМГ-10».
  • «Модуль объемной упругости рабочей среды» - «адиабатный».
  • «Нижнее ограничение по абсолютному давлению рабочей среды в полости, Па» - «0.001e6».
  • «Верхнее ограничение по абсолютному давлению, Па» - «200e6».
Для блока «ГПС - Гидромеханический преобразователь поступательного типа» задать следующие свойства:
  • «Площадь механического элемента, на которую действует давление в полости, м^2» - «Ap».
  • «Характер силы давления жидкости» - «движущая».
Для блока «Механика - Инерция поступательного движения» задать следующие свойства:
  • «Масса, кг» - «m» = «100».
  • «Начальная скорость, м/с» - «1».
  • «Цвет» - «46848».
Для блока «Механика - Фрикционный демпфер поступательного движения» задать следующие свойства:
  • «Коэффициент демпфирования, Н·с/м» - «Btr» = «1000».
  • «Цвет» - «46848».
Для блока «Механика - Пружина поступательного движения» задать следующие свойства:
  • «Коэффициент жесткости, Н/м» - «Cpr» = «200e3».
  • «Начальная деформация, м» - «0».
  • «Показывать» - «все».
  • «Цвет» - «46848».
Для блока «Механика - Заделка поступательного движения» задать следующие свойства:
  • «Цвет» - «46848».
Запустить проект на моделирование и дождаться окончания расчета. В проекте отобразятся заданные значения (Рисунок 57).

Рисунок 57. Рабочая область проект со значениями свойств и выделенной кнопкой «Менеджер данных»

Для получения графика сигнала нужного сигнала перемещения пружины, который рассчитывается в блоке «Механика - Пружина поступательного движения» необходимо:
  1. Открыть окно «Свойства» блока «Механика - Пружина поступательного движения».
  2. Перейти на вкладку «Параметры», где перечислены рассчитываемые величины блока.
  3. Выбирать параметр «Перемещение, м» и нажать на кнопку «Создать график» в нижней части окна.
После этого откроется окно «Перемещение, м (S) в объекте mech_TranslationalSpring_0», а также в менеджере данных, кнопка вызова которого выделена на рисунке (Рисунок 57), отобразится объект «Графики» с содержимым ««Перемещение, м (S) в объекте mech_TranslationalSpring_0»».Таким же образом можно построить график для любых параметров любого блока, а также перетаскивать на один график переменные из разных блоков.

Рисунок 58. Вызов графиков для стандартных объектов

Запустить проект на моделирование заново, чтобы в окне «Перемещение, м (S) в объекте mech_TranslationalSpring_0» построился график. Открыть свойства графика и установить следующие значения на вкладке «Графики и оси»:
  • Для оси X:
    • «Минимум» - «0.9».
    • «Максимум» - «2».
    • «Автомасштаб» - деактивирован.
  • Для оси Y:
    • «Максимум» - «0.01».
    • «Автомасштаб» - деактивирован.
  • Графики:
    • Название графика «Перемещение, м (S) в объекте mech_TranslationalSpring_0» - «Перемещение».

Рисунок 59. Результаты моделирования

Теперь дополним проект моделью гидропривода, построенного ранее при помощи блоков «Субмодель», для сравнения расчетов. Также добавить на схему блок «Константа», который будет принимать сигнал перемещения пружины с блока «Механика - Пружина поступательного движения». Для этого необходимо в свойствах блока «Константа» записать формулу «mech_TranslationalSpring_0.S» для свойства «Значение».Запись «mech_TranslationalSpring_0.S» означает следующее «mech_TranslationalSpring_0» - это уникальное имя блока «Механика - Пружина поступательного движения», которая обозначается в свойствах на вкладке «Общее» под свойством «Имя объекта», «S» - это параметр блока «Механика - Пружина поступательного движения», который отображается в свойствах блока во вкладке «Параметры» параметра «Перемещение, м». Тогда константа во время моделирования будет принимать значения параметра перемещение пружины. Разместить и соединить блоки линиями связи согласно рисунку (Рисунок 60):

Рисунок 60. Рабочая область проекта с моделью сравнения методов расчета

Запустить проект на моделирование. Дождаться окончания процесса моделирования. Открыть результаты моделирования, которые находятся в блоке «Временной график» открыть свойства графика и установить следующие значения на вкладке «Графики и оси»:
  • Графики:
    • Название графика «Камера + цилиндр» - «Блоки на языке программирования».
    • Название графика «Перемещение» - «Блоки библиотеки ГПС».

Рисунок 61. Результат сравнения методов

Видно, что значения расходятся в конце переходного процесса. Это связано с тем, что свойства рабочего тела в стандартной библиотеке берутся из справочника, тогда как в построенной ранее модели они задавались в виде констант. Однако данные параметры возможно изменить, если войти в субмодель блока «ГПС - Гидравлическая полость переменного объема». Для этого необходимо выделить блок «ГПС - Гидравлическая полость переменного объема», открыть контекстное меню и выбрать пункт «Действия» в открывшемся списке выбрать «Войти в субмодель» (Рисунок 62).

Рисунок 62. Рабочая область проекта с контекстным меню блока «ГПС - Гидравлическая полость переменного объема»

Откроется рабочая область субмодели блока «ГПС - Гидравлическая полость переменного объема»:

Рисунок 63. Рабочая область субмодели блока «ГПС - Гидравлическая полость переменного объема»

Блок «Язык программирования» с выходными портами «e_sr» и «ro_sr» отвечает за расчет свойств блока «ГПС - Гидравлическая полость переменного объема». Открыть скрипт блока «Язык программирования» и добавить вместо расчетных переменных глобальные константы, заданные в скрипте проекта(Рисунок 64).

Рисунок 64. Окно скрипта блока «Язык программирования» с отредактированным расчетом свойств

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

Рисунок 65. Сравнения моделей после редактирование блока «ГПС - Гидравлическая полость переменного объема»

Промежуточное резюме: Библиотека гидро- пневмосистем в SimInTech значительно ускоряет работу и обеспечивает большую наглядность модели. В отличие от других программ САЕ, SimInTech не скрывает от пользователя внутреннее содержание модели. Она не является "черным ящиком", а скорее практически открытым исходным кодом для математического моделирования гидравлики. Можно выбирать пакет и средство моделирования, а затем пытаться реализовать задачу с использованием специализированных инструментов. Или же можно использовать SimInTech и иметь возможность решать задачи любым удобным способом. SimInTech не ограничивает творческую свободу.