Документация Engee

Порты языка физического моделирования Engee

В языке физического моделирования Engee порты — это интерфейсы, через которые физический компонент взаимодействует с другими блоками модели. Через порт могут передаваться:

  • Физические величины (напряжение, давление, температура);

  • Сигналы управления (например, числовые коэффициенты).

Порты физических компонентов (как и всей библиотеки Physical Modeling) могут соединяться только с другими блоками физического моделирования такого же домена (например, порт поступательной механики с портом поступательной механики другого блока).

Виды портов

В языке физического моделирования Engee есть два типа портов:

  • Ненаправленные порты (@nodes) — применяются для описания физических соединений. У них нет строгого деления на «вход» и «выход»: поток может течь в любую сторону. С их помощью моделируются реальные физические домены, например:

    • Электричество (напряжение и ток);

    • Поступательная механика (скорость и сила);

    • Тепло (температура и тепловой поток).

  • Направленные порты (@inputs, @outputs) — используются для передачи сигналов. У них всегда задано направление: вход (@inputs) или выход (@outputs). Такие порты чаще всего применяются в блоках управления, где нужно передавать управляющие или вычисленные значения.

Ненаправленные порты

Внутри компонента такие порты объявляются через конструкцию @nodes.

@engeemodel Resistor begin
    @parameters begin
        R = 1.0, [unit = "Ohm"]
    end
    @nodes begin
        p = EngeePhysicalFoundation.Electrical.Pin
        n = EngeePhysicalFoundation.Electrical.Pin
    end
    @variables begin
        v = 0.0, [unit = "V"]
        i = 0.0, [unit = "A"]
    end
    @branches begin
        i:(p.i, n.i)
    end
    @equations begin
        v ~ p.v - n.v
        v ~ R * i
    end
end

Здесь:

  • @nodes — добавляет два электрических порта p и n;

  • @branches — формулирует правило сохранения тока в ветви;

  • @equations — задает закон Ома: напряжение на резисторе равно произведению сопротивления на ток.

Ниже приведены встроенные в Engee типы ненаправленных портов. Используйте эти порты для соединения своего компонента с блоками из библиотеки Engee.

Физический домен Тип порта Переменные порта

Однофазное электричество

EngeePhysicalFoundation.Electrical.Pin

v — потенциал

i — ток (потоковая)

Трехфазное электричество

EngeeElectrical.ThreePhasePort

v — потенциал (вектор из 3 элементов)

i — ток (потоковая, вектор из 3 элементов)

Магнетизм

EngeePhysicalFoundation.Magnetic.Port

mmf — магнитодвижущая сила

Phi — магнитный поток (потоковая)

Тепло

EngeePhysicalFoundation.Thermal.Port

T — температура

Q — поток тепла (потоковая)

Поступательная механика

EngeePhysicalFoundation.Mechanical.Translational.Flange

v — скорость

F — сила (потоковая)

Вращательная механика

EngeePhysicalFoundation.Mechanical.Rotational.Flange

w — угловая скорость

T — крутящий момент (потоковая)

Изотермическая жидкость

EngeePhysicalFoundation.IsothermalLiquid.Port

p — давление

mdot — массовый расход (потоковая)

Теплопроводная жидкость

EngeePhysicalFoundation.ThermalLiquid.Port

p — давление

T — температура

mdot — массовый расход (потоковая)

Phi — поток энергии (потоковая)

Газ

EngeePhysicalFoundation.Gas.Port

p — давление

T — температура

mdot — массовый расход (потоковая)

Phi — поток энергии (потоковая)

Влажный воздух

EngeePhysicalFoundation.MoistAir.Port

p — давление

T — температура

q — удельная влажность

x_g — массовая доля примесного газа

mdot — массовый расход (потоковая)

Phi — поток энергии (потоковая)

mdot_w — массовый расход водяного пара (потоковая)

mdot_g — массовый расход примесного газа (потоковая)

Источник влажности и примесных газов

EngeePhysicalFoundation.MoistAir.SourcePort

T — температура

q — удельная влажность

x_g — массовая доля примесного газа

Phi — поток энергии (потоковая)

mdot_w — массовый расход водяного пара (потоковая)

mdot_g — массовый расход примесного газа (потоковая)

Двухфазная жидкость

EngeePhysicalFoundation.TwoPhaseFluid.Port

p — давление

u — удельная внутренняя энергия

mdot — массовый расход (потоковая)

Phi — поток энергии (потоковая)

Направленные порты

Сигнальные входы и выходы объявляются через конструкции @inputs и @outputs.

@engeemodel GainBlock begin
    @parameters begin
        k = 2.0
    end
    @inputs begin
        x = 0
    end
    @outputs begin
        y = 0
    end
    @equations begin
        y.u ~ k * x.u
    end
end

Здесь:

  • Направленные порты содержат переменную u, которая представляет значение сигнала;

  • В уравнениях нужно использовать не сам порт, а переменную u внутри него: x.u для входного сигнала, y.u для выходного;

  • Входной сигнал x.u умножается на коэффициент k;

  • Результат передается в выходной сигнал y.u.

Такие порты удобны для смешанных моделей, где часть элементов работает с физическими величинами, а часть — с сигналами управления.

Потенциальные и потоковые переменные в ненаправленных портах

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

  • Потенциальные — величины, приравнивающиеся при соединении портов (потенциал, температура, давление, скорость, угловая скорость). Для них не требуется специальная пометка.

  • Потоковые (connect = Flow) — величины переноса между компонентами (ток, тепловой поток, расход, сила, момент), сумма которых по всем соединенным портам равна нулю.

Пример объявления электрического порта:

@engeeconnector Pin2 begin
    @variables begin
        v = 2.0                    # потенциал (потенциальная переменная)
        i = 0.0, [connect = Flow]  # ток (потоковая переменная)
    end
end

Здесь:

  • v — потенциальная величина (напряжение);

  • i — потоковая величина (ток).