branches

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

Синтаксис

branches a : node1.a -> node2.a; end

Описание

branches начинает раздел ветвей, который завершается end ключевое слово. Этот раздел содержит одни или несколько операторов ветви, которые устанавливают связь между переменными Through компонента и областью.

Например, объявление области содержит переменную Through a:

variables(Balancing=true)
    a = { 0, 'N' }
end

и компонент объявляет два узла, node1 и node2, связанная с этой областью, и переменная a:

variables
    a = { 0, 'N' };    
end

Имя переменной компонента не должно совпадать с именем переменной области, но модули должны быть соразмерными (в этом примере 'N', 'kg*m/s^2', 'lbf', и так далее).

Чтобы установить соединение между переменной компонента a и переменную область Through (balancing) a, написать оператор ветви, например:

branches
    a : node1.a -> node2.a;    
end

node1.a и node2.a идентифицировать сохраняющиеся уравнения на node1 и node2, и переменной компонента a - термин, участвующий в тех, кто сохраняет уравнения. Оператор ветви объявляет, что a течет из node1 на node2. Поэтому a вычитается из уравнения, идентифицированного node1.a, и a добавляется к уравнению, идентифицированному node2.a.

Компонент может использовать каждый идентификатор уравнения несколько раз. Для примера компонент объявляет следующие переменные и ветви:

variables
  a1 = { 0, 'N' }
  a2 = { 0, 'N' }
  a3 = { 0, 'N' }
end

branches
  a1 : node1.a -> node2.a;
  a2 : node1.a -> node2.a;
  a3 : node2.a -> node1.a;
end

Тогда, принимая, что node1 и node2 не указаны никакими другими branch или connect операторы, сохраняющие уравнения в этих узлах:

  • Для node1

    - a1 - a2 + a3 == 0
    
  • Для node2

    a1 + a2 - a3 == 0
    

Применяются следующие правила:

  • Каждое уравнение принадлежит узлу, сопоставленному с областью. Все переменные, участвующие в этом уравнении, должны иметь соразмерные модули.

  • Узел создает одно уравнение для каждого из переменных Through (балансировка) в связанной области. Операторы ветви не создают новых уравнений. Они складывают и вычитают условия в существующих уравнениях в узлах.

  • Второй и третий аргументы не должны быть связаны с одной и той же областью. Для примера один может быть связан с газовой областью, а другой - с тепловой областью, с тепловым потоком, заданным оператором ветви.

  • Можно заменить второй или третий аргумент на * для указания узла ссылки. Когда вы используете *переменная, обозначенная первым аргументом, все еще добавляется к уравнению, обозначенному другим идентификатором, или вычитается из него, но никакое уравнение не затронуто *.

Примеры

Если раздел объявления компонента содержит два электрических узла, p и n, и переменной i = { 0, 'A' }; задавая ток, можно установить следующую связь в branches раздел:

branches
   i : p.i -> n.i;
end 

Этот оператор задает текущие i как переменная Through, вытекающая из узла p к узлу n.

Для компонента заземления, который имеет один электрический узел V, задайте текущие i как переменная Through, вытекающая из узла V в узел ссылки:

branches
   i : V.i -> *;
end 

Для взаимного индуктивности или трансформатора с первичной и вторичной обмотками branches раздел должен содержать два оператора, по одному для каждой обмотки:

branches
    i1 : p1.i -> n1.i;
    i2 : p2.i -> n2.i;
end 

Для компонента, такого как пневматическая ёмкость постоянного объема, где необходимо установить тепловой обмен между пневматической и тепловой областями, раздел объявления содержит два узла и переменную теплового потока:

nodes
   A = foundation.pneumatic.pneumatic; 
   H = foundation.thermal.thermal; 
end 
variables
   h = { 0 , 'J/s' };
end

и branches раздел устанавливает тепловой обмен между двумя областями:

branches
   h : A.Q -> H.Q;
end 

Этот оператор задает тепловой поток h как переменная Through, вытекающая из пневматического узла A, сопоставленный с входным отверстием ёмкость, с тепловым узлом H, сопоставленный с тепловой массой газа в ёмкости.

Введенный в R2013b