Порты языка физического моделирования Engee
|
Страница в процессе разработки. |
В языке физического моделирования Engee порты — это интерфейсы, через которые физический компонент взаимодействует с другими блоками модели. Через порт могут передаваться:
-
Физические величины (напряжение, давление, температура);
-
Сигналы управления (например, числовые коэффициенты).
Порты физических компонентов (как и всей библиотеки Физическое моделирование) могут соединяться только с другими блоками физического моделирования такого же домена (например, порт поступательной механики с портом поступательной механики другого блока).
Виды портов
В языке физического моделирования 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— задает закон Ома: напряжение на резисторе равно произведению сопротивления на ток.
Направленные порты
Сигнальные входы и выходы объявляются через конструкции @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— потоковая величина (ток).