Моделирование гидропривода
Автор: Андреев М. А. (на основе методического пособия: Андреев М.А. Математическое моделирование гидропривода: Учебное пособие. — на правах рукописи, 2017. — 61 с)
Введение
Существует достаточно большое количество литературы, посвященной расчету гидропривода, включая описание физических процессов и математическое моделирование. Однако вопросы практической реализации и использования уравнений системы зачастую описываются недостаточно.
В данной лабораторной работе показано, как создавать модели в SimInTech, зная математические уравнения физических процессов, на примере уравнений физических процессов в гидроприводе. В работе представлена общая методология создания математической модели гидропривода различной сложности: начиная с расчетной схемы и записи уравнений, и заканчивая реализацией в SimInTech.
После ознакомления с этим руководством возможно самостоятельно, без использования каких-либо шаблонов, моделировать работу гидропривода с учетом основных физических процессов и понимать специализированную литературу, и извлекать из нее способы описания более сложных процессов.
Принципы создания моделей гидропривода можно применять к любым другим системам, чьи дифференциальные уравнения известны.
Объект исследования

- прохождение рабочей жидкости через дроссель (дросселирование)
- сжатие жидкости в рабочей полости плунжера
- перемещение массы с учетом взаимодействия с пружиной и демпфером
Для получения графика зависимости перемещения плунжера x от времени t необходимо воспользоваться уравнением движения плунжера:
- m - масса плунжера
- Ap – площадь плунжера
- cpr – жесткость пружины
- btr – коэффициент вязкого трения
- p – давление в камере
Необходимо обратить внимание на выбор положительного направления перемещения и на знаки действующих сил. На рисунке (Рис. 1) видно, что в качестве положительного направления выбрано перемещение плунжера вправо. Тогда сила со стороны жидкости в уравнении будет со знаком "плюс", сила со стороны пружины и демпфера со знаком "минус".
Разработка модели плунжера с пружиной
- В главном окне SimInTech выбрать пункт Файл подпункт Новый проект
- В выпадающем меню выбрать пункт Схема модели общего вида
Откроется новое окно проекта Схема модели общего вида, в котором будет проходить описание системы.
- В главном окне войти в меню Файл, выбрать подпункт Сохранить проект как
- В появившемся окне выбрать или при необходимости создать папку, в которую будет сохранен данный проект
- В появившемся окне в поле Имя файла указать желаемое имя проекта, либо оставить имя проекта по умолчанию и нажать на кнопку Сохранить
Добавление блоков на схему
const
m = 100, // масса плунжера (кг)
d = 10e-3, // диаметр плунжера (м)
Cpr = 200e3, // жесткость пружины (Н/м)
Btr = 1000; // коэффициент вязкого трения демпфера (Н/(м/с))
Initialization
Ap = pi*d^2/4; // площадь плунжера
end; Константы
задаются через запятую, после последней ставится точка запятой (скрипт). Все константы заданы в
стандартных единицах измерения. Расчет площади проходного сечения рассчитывается в
секции инициализации, которая выполняется только один раз при старте расчета.
Константы и переменные, заданные в данном окне, доступны в любой части проекта.- 1 блок Ступенька из вкладки Источники
- 1 блок Язык программирования из вкладки Динамические
- 1 блок Временной график из вкладки Вывод данных

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


В блоке Язык программирования имеется возможность записывать уравнения динамики объекта в форме Коши. Прежде чем перейти к записи модели необходимо преобразовать уравнение в систему двух уравнений, добавив новую переменную – скорость v(t) = dx(t) / dt. Таким образом, уравнения движения примет вид:
input p;
output x;
init x = 0, v = 0;
v' = (P*Ap-Cpr*x-Btr*v)/m;
x' = v; Здесь: input P;– вход в блок (давление)оutput x;– выход из блокаinit x = 0, v = 0;– объявление динамических переменных и присвоение им начальных значений
Далее описаны уравнения, которые выполняются на каждом шаге моделирования. Записанные
уравнения на языке программирования практически повторяет систему уравнений, где
производные dx(t)/dt и dv(t)/dt обозначены
как x’ и v’.
Перед тем, как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.
Настройка параметров расчета

- "Минимальный шаг" – "0.001"
- "Максимальный шаг" – "0.001"
- "Конечное время расчета" – "10"
Закрыть окно Параметры проекта, при этом внесенные изменения будут сохранены автоматически.
Перед тем, как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.
Запуск моделирования и построение графика


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


Установить в скрипте проекта прежнюю массу плунжера равную 100 кг. Для этого требуется открыть скрипт проекта и изменить значение "m" на "100".
Еще одним способом проверки правильности модели будет сравнение конечного перемещения, полученного в модели и рассчитанного из условия равновесия системы. В случае равновесия сила, действующая на плунжер:
уравновешивается силой сжатой пружины:
- Pst – давление статическое
- xst – перемещение поршня (сжатие пружины)


Результаты моделирования совпадают со статическим расчетом (Рис. 10). Таким образом, модель выходит на правильные значения положения и при 150 бар, и при 250 бар.
Получив и проверив модель плунжера с пружиной, нужно переходить к модели камеры. Перед тем, как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.
Разработка модели камеры
Входным сигналом для модели плунжера является давление в рабочей камере. В гидроприводе жидкость сжимается с давлением от 160 бар и выше. Сжимаемость жидкости описывается следующим образом:
- ṗ — скорость изменения давления
- E — приведенный объемный модуль упругости рабочей жидкости
- V — объем сжимаемой рабочей жидкости
- Q — расход, поступающий в рабочую камеру
Это выражение выводится путем разнесения дифференциалов давления и объема по разные стороны знака равенства. Продифференцировав обе части по времени, из формулы определения объемного модуля упругости:
Давление будет меняться тем быстрее, чем выше модуль упругости рабочей жидкости E, и тем медленнее, чем больше объем этой жидкости V. Поэтому модуль упругости в числителе, а объем — в знаменателе. В скобках - алгебраическая сумма расходов. В данном случае расход осуществляется через дроссель Q и с учетом геометрического расхода, связанного с перемещением плунжера. Положительное значение расхода Q при прочих равных будет приводить к росту давления (положительная скорость изменения давления), а положительная скорость перемещения плунжера к падению давления. Поэтому расход через дроссель в уравнении со знаком "плюс", а геометрический расход со знаком "минус".
Объем камеры описывается следующей формулой:
где V0 — объем жидкости при нулевом положении x(t) поршня.
Влияние изменения объема жидкости незначительно, и для предотвращения возможных ошибок (например, в случае отрицательных значений x), рекомендуется принять постоянный объем, который равен половине разницы между объемами в конечном и начальном положениях.
- "V0" – начальный объем камеры
- "Е = 13e8" – приведенный объемный модуль упругости
const
m = 100, // масса плунжера (кг)
d = 10e-3, // диаметр плунжера (м)
Cpr = 200e3, // жесткость пружины (Н/м)
Btr = 1000; // коэффициент вязкого трения демпфера (Н/(м/с))
V0 = 20e-6, //Начальный объем камеры (м^3)
E = 13e8; // приведенный объемный модуль упругости (Па)
Initialization
Ap = pi*d^2/4; // площадь плунжера
end; ; переместился . Все константы разделены запятыми, секция
заканчивается точкой с запятой.input Q, x, v;
output p;
init p = 0;
Vk = V0 + Ap*x;
p' = (E/Vk)*(Q - Ap*v); Выходной сигнал скорости перемещения
плунжера ранее установленного блока Язык
программирования с моделью плунжера с пружиной должен
поступать на вход блока Язык программирования
с моделью камеры цилиндра. Для этого необходимо открыть скрипт блока
Язык программирования с моделью плунжера
и добавить следующую запись:
input p;
output x, v;
init x = 0, v = 0;
v' = (P*Ap-Cpr*x-Btr*v)/m;
x' = v;
Pst = 200e5;
x_st = Pst*Ap/Cpr; Соединить блоки на схеме и добавить к
ним подписи согласно рисунку (Рис. 12).
Теперь необходимо настроить источник расхода в камеру. На модель плунжера с пружиной подавалось давление 200е5 Па (200 бар) с помощью блока Ступенька. Теперь необходимо из блока с моделью плунжера подать такой расход, чтобы в камере сформировалось давление 200 бар. Если использовать блок Ступенька, то при его включении начнется подача постоянного расхода, который будет поддерживаться на протяжении всего времени моделирования. Однако, для достижения требуемого повышения давления необходимо подать расход в камеру только на определенное время, достаточное для создания давления в 200 бар, а затем прекратить подачу.

- Заменить блок Ступенька на блок Кусочно постоянная
- Добавить два блока Задержка на шаг интегрирования из вкладки Нелинейные для развязки алгебраической петли. Этот блок позволит во время моделирования брать значения с предыдущего шага, тем самым решая проблему алгебраической петли
- Для блоков Задержка на шаг интегрирования повернуть порты на 180 градусов через контекстное меню блока
- Активировать кнопку Показать значения на линиях связи для отображения всех текущих рассчитанных результатов моделирования, что позволит увидеть, какое давление создается для рассчитываемого объема жидкости




- Для оси X:
- "Максимум" - "3"
- "Шаг сетки" - "0.2"
- "Автомасштаб" - деактивирован
- Для оси Y:
- "Максимум" - "0.01"
- "Автомасштаб" - деактивирован

Сравнение моделей плунжера с камерой и без камеры
- Сделать копию блока Язык программирования с подписью "Плунжер с пружиной"
- Добавить блок Ступенька из вкладки Источники и установить для свойства "Конечное состояние" значение "200e5" и для свойства "Время срабатывания" равным "1"
- Добавить второй вход в блок Временной график путем установки значения свойства "Количество входных портов" равным "2"
- Установить свойство "Массив временных интервалов" для блока Кусочно постоянная равным "[[1 , 0.1 , 1]]" и уставить свойство "Массив значений" равным "[[0 , 9.28E-6 , 0]]", для того чтобы на вход камеры подавался расход импульсом длительностью 0.1 секунды, а конечное давление было около 200 бар

- Для оси X:
- "Минимум" - "0.9"
- "Максимум" - "2.5"
- "Автомасштаб" - деактивирован
- Графики:
- Название графика "График 1" - "Камера + цилиндр"
- Название графика "График 2" - Цилиндр

На графике видно, что в течение 0.1 секунды, пока идет подача расхода в камеру, идет перемещение плунжера, которое потом затухает быстрее, чем без камеры (с мгновенным ростом давления). Видно, что положение плунжера примерно соответствует полученному при отдельном моделировании.
Перед тем, как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.
Разработка модели дросселя
Уравнение, описывающее расход через дроссель:
- f – площадь сечения дросселя
- μ – коэффициент расхода
- pn–давление нагнетания
- p – давление в камере цилиндра
Однако необходимо учесть теоретическую возможность обратного тока рабочей жидкости в случае отрицательной разницы давлений. Это возможно, если на поршень действует сила, превышающая силу, которую может создать рабочая жидкость. В таком случае возникает риск появления отрицательного значения под корнем в выражении.
const
m = 100, // масса плунжера (кг)
d = 10e-3, // диаметр плунжера (м)
Cpr = 200e3, // жесткость пружины (Н/м)
Btr = 1000, // коэффициент вязкого трения демпфера (Н/(м/с))
V0 = 20e-6, // начальный объем камеры (м^3)
E = 13e8; // Приведенный объемный модуль упругости (Па)
my = 0.62, // коэффициент расхода
ro = 850, // плотность рабочей жидкости (кг/м^3)
d_dr - 2e-4 //диаметр дросселя (м)
Initialization
Ap = pi*d^2/4; // площадь плунжера
f_dr = pi*d_dr^2/4; // площадь сечения дросселя
end; input pk, pn;
output q;
q = (my*f_dr) * sqrt((2/ro)*(abs(pn - pk))) * sign(pn - pk);- Добавить блоку Язык программирования с моделью расхода через дроссель подпись Дроссель
- Заменить блок Кусочно постоянная на ранее установленный блок Ступенька, который подает на вход системы давление 200 бар
- Добавить блок Задержка на шаг интегрирования из вкладки Нелинейные и изменить отображение входных портов, повернув их на 180 градусов в контекстном меню блока
- Удалить блок Язык программирования с подписью "Плунжер с пружиной"
- Изменить количество входных портов блока Временной график, установив для свойства "Количество входных портов" значение "1"

- Для оси X:
- "Минимум" - "0.9"
- "Максимум" - "2"
- "Шаг сетки" - "0.1"
- "Автомасштаб" - деактивирован
- Для оси Y:
- "Максимум" - "0.01"
- "Автомасштаб" - деактивирован
- Графики:
- Название графика "Камера + цилиндр" - "График"

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

В соответствии с уравнением для блоков Усилитель необходимо в свойствах указать в поле "Формула" значение свойства "Коэффициент усиления" равным "2/ro" и "my*f_dr".
- Сумматор необходимо в свойствах указать значение свойства "Весовые множители для каждого из входов" равным "[-1 , 1]"
- Интегратор необходимо в свойствах указать в поле "Формула" значение свойства "Коэффициент усиления" равным "E"
- Линейная функция необходимо в свойствах указать в поле "Формула" значение свойства "Свободный член, в формуле a+b·x" равным "V0" и значение свойства "Коэффициент при x" равным "Ap"
- Усилитель необходимо в свойствах указать в поле "Формула" значение свойства "Коэффициент усиления" равным "Ap"
- Усилитель необходимо в свойствах указать в поле "Формула" значение свойства "Коэффициент усиления" равным "Ap", "Btr" и "Cpr" соответственно
- Сумматор необходимо в свойствах указать значение свойства "Весовые множители для каждого из входов" равным "[1 , -1 , -1]"
- Интегратор оставить свойства по умолчанию

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

- "Текущий объем камеры"
- "Давление в камере"
- "Положение плунжера"
- "Скорость плунжера"
- "Площадь сечения плунжера"

- Ранее подготовленные блоки Язык программирования с подписью "Камера цилиндра" и "Плунжер с пружиной"
- Ранее размещенные два блока Задержка на шаг интегрирования в обратной связи блока Язык программирования с подписью "Камера цилиндра"
- 1 блок Порт входа и 1 блок Порт выхода из вкладки Субструктуры
- 1 блок Двунаправленная шина (выход) из вкладки Субструктуры

- Ранее подготовленные блоки Язык программирования с подписью Дроссель
- Ранее размещенный блока Задержка на шаг интегрирования в контуре блока Язык программирования с подписью Дроссель
- 1 блок Порт входа и 1 блок Порт выхода из вкладки Субструктуры
- 1 блок Двунаправленная шина (вход) из вкладки Субструктуры

Блоки Двунаправленная шина (вход)/Двунаправленная шина (выход) позволяют объединить две или более линии связи с разными направлениями в одну "шину" для моделей, где двунаправленная связь определена однозначно. Дроссель рассчитывает расход и передает его в камеру через контакт "А", но для расчета ему необходимо давление в камере. Поэтому через контакт "B" на вход поступает расход и передается на дроссель, при этом на схеме используется одна линия связи.
- "Коэффициент расхода" - "0.62"
- "Плотность рабочей жидкости, кг/м^3" - "850"
- "Диаметр дросселя, м" - "d_dr"


Initialization
f_dr = pi*d_dr*2/4; // площадь сечения дросселя
end; Аналогичным образом разместить
расчет площади плунжера из скрипта
проекта в скрипт субмодели "Гидроцилиндр".
Запуск моделирования и построение графика

Перед тем, как приступать к выполнению следующего пункта лабораторной работы, необходимо сохранить проект.
Решение задачи прямым программированием в SimInTech
- Моделирование через блоки Язык программирования
- Моделирование через стандартные блоки 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. В данной лабораторной работе расчет будет производите в блоке Язык программирования.
output y;
const
m = 100, // масса плунжера (кг)
d = 10e-3, // диаметр плунжера (м)
Cpr = 200e3, // жесткость пружины (Н/м)
Btr = 1000, // коэффициент вязкого трения демпфера (Н/(м/с))
V0 = 20e-6, // начальный объем камеры (м^3)
E = 13e8, // приведенный объемный модуль упругости (Па)
my = 0.62, // коэффициент расхода
ro = 850, // плотность рабочей жидкости (кг/м*3)
d_dr = 2e-4, // диаметр дросселя (м)
dt = Зе-3, // шаг интегрирования
t_end = 2, // конечное время
x0 = 0, // начальное положение
v_0 = 0, // начальная скорость
Pn = 200e5, // давление в нагнетателе
P0= 0; // начальное давление
var P_old, v_old; // переменные для хранения скорости давления
initialization
N = trunc(t_end/dt); // определение количества точек
T = vector1(N); // создание вектора точек по времени
X = vector1(N); // создание вектора результатов
Ap = pi*d^2/4; // расчет площади плунжера
f_dr = pi*d_dr^2/4; // расчет площади сечения дросселя
T[1] = 0; // первое значение в векторе времени
X[1] = x0; // первое значение в векторе перемещения
P_old = P0; // давление в начале расчета
v_old = v_0; // скорость в начале расчета
for (i = 2, N) // Повторять n раз, начиная со второй точки
begin
//Расчет расхода по предыдущему состоянию по давления P_old
Q = (my*f_dr) * sqrt((2/ro)*(abs(Pn - P_old))) * sign(Pn - P_old);
Vk = V0 + Ap*X[i-1]; //Расчет объема камеры на предыдущем шаге
dP = (E/Vk)*(Q - Ap*v_old); //Расчет скорости изменение давления
P_new = P_old + dP*dt; //Расчет давления
a_new =(P_new*Ap - Cpr*X[i-1]- Btr*v_old)/m; //Расчет ускорения
v_new = v_old + a_new*dt; //Расчет скорость для шага
//Расчет положения плунжера по времени и сохранение в массивы
X[i] = X[i-1] + v_new* dt;
T[i] = T[i-1] + dt;
//Обновить скорость и давление для следущего шага
v_old = v_new;
P_old = P_new;
end;
end; В результате выполнения цикла инициализации на выходе два вектора: вектор T – вектор времен, вектор Х – вектор положения штока. Задача решена – для любого значения времени есть положение штока.
if time < 1 then y = 0
else y = interpol(T, X, time-1);



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

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


- Для оси X для графика "График 2" и График:
- "Минимум" - "0.9"
- "Максимум" - "2"
- "Шаг сетки" - "0.1"
- "Автомасштаб" - деактивирован
- Для оси Y для графика "График 2":
- "Максимум" - "0.01"
- "Автомасштаб" - деактивирован
- Графики:
- Название графика "График 2" - "Перемещение"
- Название графика "График" - "Давление"

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



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

- Для оси X:
- "Минимум" - "0.95"
- "Максимум" - "2"
- "Автомасштаб" - деактивирован
- Для оси Y:
- "Максимум" - "0.01"
- "Автомасштаб" - деактивирован

Теперь практически отсутствует скачок давления в начальный момент времени переходного процесса (при 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 блок Плунжерный гидроцилиндр из подгруппы Гидравлические машины
- Из вкладки Механика из подгруппы
Элементы поступательного движения:
- 2 блока Поступательная заделка
- 1 блок Масса
- 1 блок Поступательный демпфер
- 1 блок Поступательная пружина
- Из вкладки Механика из подгруппы Механические датчики блок Датчик поступательного движения
- 1 блок Ступенька из вкладки Источники
- 1 блок Блок записи свойств из вкладки Субструктуры
- 1 блок Временной график из вкладки Вывод данных

- Линии связи между блоками Гидравлический бак и Гидравлический регулируемый дроссель – это каналы течения жидкости (гидравлическая связь)
- Линия связи между блоками Поступательная пружина и Поступательная заделка – это линия механической связи
- Линия связи между блоками Ступенька и Блок записи свойств – это математическая линия связи для передачи данных
Добавить в скрипт проекта константы и расчет площади плунжера и сечения дросселя, которые задавали в предыдущих моделях (скрипт).
- "Время срабатывания" - "1"
- "Начальное состояние" - "0"
- "Конечное состояние" - "20".
После задания ступенчатого сигнала необходимо связать свойства блока Гидравлический бак и Блок записи свойств. В свойствах блока Блок записи свойств для свойства "Имя свойства" задать значение "p_src". Теперь выходное значение блока Ступенька записывается в свойство "Давление, МПа" блока Гидравлический бак .
Для оставшихся блоков также следует задать свойства.
Для блока Гидравлический регулируемый дроссель задать для свойства "Диаметр отверстия, м" значение "d_dr".
- "Диаметр цилиндра, мм" = "sqrt((V0-self.Vdead)*4/pi/self.Stroke_max+(self.d_r*1e-3)^2)*1e3"
- "Диаметр плунжера, мм" = "d*10^3"
- "Максимальный ход плунжера, м" = "0.05"
- "Мертвый объем, м³" - "5e-6"
- "Масса, кг" = "m"
- "Начальная скорость, м/с" = "1"
Для блока Поступательный демпфер задать для свойства "Коэффициент демпфирования, Н·с/м" значение "Btr".
Для блока Поступательная пружина задать для свойства "Коэффициент жесткости, Н/м" значение "Cpr".
Поскольку плотность рабочей жидкости задать в блоках Гидросистемы нет возможности, то выбирается наиболее близкая среда АМГ-10, плотность которой равна 835,6 кг/м3. Для этого необходимо открыть Параметры проекта и в подгруппе "Свойства рабочей жидкости" выбрать значение "Авиационная жидкость AeroShell Fluid 41 - аналог АМГ-10".
Запуск моделирования и построение графика
- на вкладке Графики и оси для оси X:
- "Минимум" - "0.9"
- "Максимум" - "2"
- "Автомасштаб" - деактивирован
- для оси Y:
- "Максимум" - "0.01"
- "Автомасштаб" - деактивирован
- на вкладке Общие:
- название графика "Деформация пружины, м"
- "Показывать легенду" - деактивирован

Сравнение методов моделирования


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