От непонятной модели к понятной принципиальной схеме

Чем хороша принципиальная схема? Каждый элемент этой схемы, это устройство, которое описывается паспортными данными завода-изготовителя если конечно производитель их знает и предоставляет (розовая мечта разработчика).

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

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

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

Поместим 2 блока на схему. Один из них подпишем «Гидроцилиндр», другой «Дроссель».

Выделим субмодель «Гидроцилиндр», и из меню главного окна Правка → Изменить блок, вызовем окно редактирования свойств (см. Рисунок 1):

Рисунок 1. Настройка свойств блока

В закладку «Свойства» нашего блока мы добавляем все, что относится к гидроцилиндру из главного окна программы (см. Рисунок 1). Кнопка добавления находится внизу. Сохраняя имена переменных и их значения. В способе расчета указываем, что это константы.
В закладку «Параметры» добавляем то, что этот блок рассчитывает, и к чему нам возможно придется обратится, в качестве способа расчета указываем это переменные (см. Рисунок 2).

Рисунок 2. Настройка параметров блока

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

Рисунок 3. Схема блока «Гидроцилиндр»

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

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

Ответная внутренняя часть блока дроссель будет выглядеть как показано на рисунке (Рисунок 4).

Рисунок 4. Схема блока дроссель

Мы скопировали блок дроссель и соединили его с входами и выходами так, чтобы он забирал давление из шины по контакту B, и отдавал расход по контакту А.
В качестве свойств для блока Дроссель нужно задать те свойства из глобального списка, которые относятся к блоку (см. Рисунок 5).

Рисунок 5. Свойства блока дроссель

В качестве параметров блока дроссель задается площадь проходного сечения (см. Рисунок 6).

Рисунок 6. Параметры блока дроссель

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

Рисунок 7. Расчет площади сечения дросселя в его модели

В итоге, а зачем нужно было так мучатся? Ответ на рисунке (Рисунок 8).

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

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

Рисунок 8. Расчётная схема, приведенная к принципиальной

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

Рисунок 9. Диаметр через объявленную константу d

Тогда при моделировании будет подставлен диаметр в два раз меньший, и перемещении буде в 4 раза меньше (пропорционально квадрату диаметра)

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