BGMod Документация / v3

Безразмерные сигналы, MR и бак

Источники сигналов

Выберите Dimensionless Signal → Primitives. Сигнал передаёт одно безразмерное число (единица 1), без мощности. Соедините выход out со входом u. Выход может управлять несколькими входами, но каждый вход принимает только один источник. Розовая пунктирная линия имеет стрелку без штриха энергетической причинности.

Блок / типПоведение
Constant / SignalConstantКонечное число value, по умолчанию 1.
Boolean Schedule / BooleanSchedule1–200 точек, числовые значения 0 или 1; по умолчанию 1.
Piecewise Constant / PiecewiseConstant1–200 точек с конечными значениями; по умолчанию 1.
Piecewise Linear / PiecewiseLinear2–200 точек, линейная интерполяция; по умолчанию от 1 в 0 с до 0 в 1 с.

Точки имеют вид {time, value}. Начало в t = 0, времена строго возрастают. В момент ступени применяется новое значение. После последней точки значение постоянно. Предпросмотр показывает форму сигнала. Допускается расчёт схемы только из источников сигналов.

Диапазон MR: 0…1; распределителя: −1…1; насоса: строго 0 или 1. Недопустимые значения отклоняются без ограничения диапазоном. Линейный переход от 0 к 1 недопустим для дискретного насоса.

Эти четыре источника являются информационными блоками, без энергетических портов и внутреннего классического bond graph. Они не эквивалентны Se/Sf: источники Se/Sf обмениваются мощностью с физической сетью.

MR — модулируемое однопортовое сопротивление

Hydraulics → Primitives. Один гидравлический энергетический порт H и безразмерный вход u. Как у примитива R, усилие определяется положением в bond graph. Портов H1/H2 у MR нет.

f_local = u e / R_open; 0 ≤ u ≤ 1
P_loss = u e²/R_open ≥ 0

Параметр R_open > 0 [Па·с/м³], по умолчанию 10⁷. При u = 1 совпадает с обычным R; при u = 0 расход строго равен нулю. Поток может менять направление. Энергия привода в идеальной модели не учитывается.

Классический связный граф

Классический связный графОдна энергетическая связь H соединена с MR; отдельный пунктирный сигнал u управляет проводимостью.HMRe, f_localu ∈ [0, 1]G(u) = u/R_open; f_local = G(u) e
Модулируемый однопортовый R, реализованный напрямую. При u > 0 R_eff = R_open/u; при u = 0 проводимость строго нулевая. Сигнал не является вторым энергетическим портом. Для управляемого перепада между двумя узлами давления подключите MR к 1-сопряжению по схеме сопротивления линии. Полустрелки задают положительное направление мощности; пунктирные розовые стрелки передают только сигнал. Штрихи причинности опущены: они зависят от всей подключённой модели.

MR2 — двухпортовое модулируемое сопротивление

Hydraulics → Advanced → Two-port modulated resistance. Гидравлический символ обозначает регулируемое сопротивление. Порты IN и OUT передают гидравлическую мощность; Signal — безразмерный управляющий вход (в JSON: u). Соедините выход out источника сигнала с Signal.

Q_IN = u (p_IN − p_OUT)/R_open; Q_OUT = −Q_IN
P_loss = (p_IN − p_OUT) Q_IN = u (p_IN − p_OUT)²/R_open ≥ 0

R_open > 0 [Па·с/м³], по умолчанию 10⁷. Команда: 0 ≤ u ≤ 1. При u = 1 сопротивление равно R_open; при u > 0 эффективное сопротивление равно R_open/u; при u = 0 оба расхода строго нулевые. IN/OUT задают положительное направление расхода; обратный перепад давления вызывает обратный поток.

Внутренний связный граф

IN → 1 → OUT
     ↓
     MR ← Signal

1-сопряжение с общим расходом уравновешивает перепад давлений и усилие управляемого однопортового сопротивления. Исходный MR остаётся однопортовым элементом. MR2 не имеет состояния; утечки, инерция и турбулентный закон дросселя не моделируются. При закрытии оба давления должны оставаться определёнными; несовместимый заданный расход или неопределённое давление вызывают диагностику решателя.

Результаты: перепад давления, сквозной расход, рассеиваемая мощность и команда. Пример: p_IN = 200000 Па, p_OUT = 100000 Па, R_open = 10⁷, u = 0.5 дают Q_IN = 0.005 м³/с и потери 500 Вт. Поворот изменяет только рисунок, сохраняя смысл портов и уравнений.

Открытый бак с жидкостью

Hydraulics → Advanced. Один нижний энергетический порт H. Свободная поверхность находится под опорным давлением, давление на H — избыточное.

h = V/A; p = ρgh; dV/dt = Q_внутрь
E = ρgV²/(2A); g = 9.80665 м/с²

Параметры по умолчанию: A = 0.01 м², h_max = 1 м, h_init = 0.8 м, rho = 1000 кг/м³. Все положительны; 0 < h_init < h_max. Пустой или полный бак останавливает расчёт с корректной частью траектории. Результаты: объём, уровень, давление, расход, гравитационная энергия.

Минимальная схема: Tank.H напрямую соединён с MR.H, сигнал out — с MR.u. Сопротивление отводит жидкость к неявному нулевому избыточному давлению; отдельный источник давления или сопряжение не нужны. Четыре примера показывают четыре формы сигнала. При линейном сопротивлении уровень приближается к нулю асимптотически.

Классический связный граф

Классический связный графОдин гидравлический порт H соединён с накопителем C.HC = A/(ρg)p_H, Q_Hq = V; p = V/C; V(0) = A h_init
Эквивалент по определяющему уравнению: линейный однопортовый C = A/(ρg), q = V. Свободная поверхность находится под опорным давлением, дополнительный Se не нужен. OpenTank добавляет вывод уровня и физические границы 0 < V < A h_max; простой C этих ограничений не содержит. Уравнение реализовано напрямую. Полустрелки задают положительное направление мощности; пунктирные розовые стрелки передают только сигнал. Штрихи причинности опущены: они зависят от всей подключённой модели.

Распределитель и расчёт

Пропорциональный распределитель проверяется на прежней схеме насос–распределитель–цилиндр без добавления MR. Знак команды выбирает проходы, модуль масштабирует проводимость. См. распределитель 4/3.

Сигнал вычисляется в текущий момент времени решателя. Интегрирование разделяется в моменты ступеней, узлах интерполяции и переходах команды клапана через ноль. Состояния непрерывны. Сигналы и команды доступны на графиках и в CSV; ступени изображаются ступенями. Изменение параметров, расписаний и связей делает результат устаревшим, перемещение блоков — нет.

JSON v3 и совместимость

Элементы и энергетические связи сохраняют прежний формат. У источников сигналов domain: "signal". Управление хранится отдельно в signal_connections:

{"id":"s1","from":{"element":"Control","port":"out"},"to":{"element":"MR","port":"u"}}

При импорте v1/v2 расписание насоса превращается в Boolean Schedule (false → 0, true → 1), расписание клапана — в Piecewise Constant (retract → −1, hold → 0, extend → 1). ID компонентов и энергетические соединения сохраняются. Новые ID не конфликтуют с прежними; ошибочные старые расписания отклоняются. Сохранение использует v3 без встроенных расписаний насоса и клапана. Черновики допустимы, анализ требует подключения управляющих входов. Лимит связей учитывает энергетические и сигнальные соединения вместе.

Датчики, обратная связь, регуляторы, арифметические блоки, переменные C/I и турбулентные дроссели в эту версию не входят.