exponenta event banner

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

Подключение переменных компонентов к домену

После объявления переменных Through и Across компонента необходимо связать их с переменными Through и Across области. Это можно сделать, установив связь между переменными компонента и его узлами, которые несут переменные Через (Through) и Поперек (Across) для домена:

  • Чтобы установить связь между переменными Через (Through), используйте branches раздел файла компонента. Если компонент имеет несколько узлов, укажите ветви, записав несколько инструкций в branches раздел. Синтаксис и примеры см. в разделе branches справочная страница.

  • Чтобы установить связь между переменными Поперек, используйте equations раздел файла компонента. Добавьте уравнение, связывающее переменную Across компонента с соответствующими переменными в узлах компонента. Если существует несколько переменных Across, добавьте несколько уравнений, соединяющих каждую переменную с соответствующими узлами. equations также может содержать другие уравнения, определяющие действие компонента. Дополнительные сведения см. в разделе Определение уравнений компонентов.

Рабочий процесс из домена в компонент

Распространение переменных домена Через и Поперек в компонент.

  1. Объявите переменные Поперек и Через в файле домена (или используйте существующий домен; полный список доменов Foundation см. в разделе Типы доменов Foundation и структура каталогов).

    Например, следующий файл домена с именем rotational.ssc, объявляет угловую скорость, w, как Поперечная переменная и крутящий момент, t, в качестве переменной Through.

    domain rotational
    % Define the mechanical rotational domain
    % in terms of across and through variables
    
      variables
        w = { 1 , 'rad/s' }; % angular velocity
      end
    
      variables(Balancing = true)
        t = { 1 , 'N*m' }; % torque
      end
    
    end
    
    
  2. Объявите узлы в файле компонента и свяжите их с доменом, например:

    nodes
        node1 = MyPackage.rotational;
        node2 = MyPackage.rotational;
    end

    Как только узел связан с доменом, он:

    • Несет каждую из переменных области Поперек в качестве измеряемой величины. В этом примере каждый из узлов несет одну переменную Across, w.

    • Записывает уравнение сохранения для каждой из переменных Through области. В этом примере существует одна переменная Through, t, и поэтому каждый узел записывает одно консервативное уравнение. Сохраняющее уравнение - это сумма членов, которая равна нулю (node.t == 0). branches раздел в файле компонента устанавливает термины, которые суммируются до нуля в узле.

  3. Объявите соответствующие переменные в файле компонента, например:

    variables
        w = { 1 , 'rad/s' };   % angular velocity
        t = { 1 , 'N*m' };     % torque
    end

    Имена переменных компонента не обязательно должны совпадать с именами переменных домена Поперек и Через, но единицы измерения должны быть соизмеримыми. На данном этапе отсутствует связь между переменными компонента и переменными домена.

  4. Установить связь между переменными Through с помощью branches раздел файла компонента. Например:

    branches
        t : node1.t -> node2.t;    % t - Through variable from node1 to node2
    end
    

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

  5. Установить связь между переменными Across в equations раздел файла компонента, например, путем добавления следующего уравнения:

    equations
         w == node1.w - node2.w;       % w - Across variable between node1 and node2
         [...]      % more equations describing the component behavior, as necessary
    end

Соединение через и через переменную

В этом примере: r и c являются вращательными узлами, в то время как t и w - переменные компонента для крутящего момента и угловой скорости соответственно. Связь между переменными и узлами устанавливается в branches и equations разделы:

component spring
  nodes
    r = foundation.mechanical.rotational.rotational;
    c = foundation.mechanical.rotational.rotational;
  end
  [...]
  variables
    [...]
    t = { 0, 'N*m' };     % torque through
    w = { 0, 'rad/s' };   % velocity across
  end
  branches
    t : r.t -> c.t;       % t - Through variable from r to c
  end
  equations
    w == r.w - c.w;       % w - Across variable between r and c
    [...]                 % more equations here
  end
end

Соединение двух сквозных и двух поперечных переменных

В этом примере показана настройка поперечных и сквозных переменных компонента с двумя электрическими обмотками, такими как трансформатор или взаимный индуктор. Компонент имеет четыре электрических узла, а каждая обмотка имеет свои переменные напряжения и тока. Связь между переменными и узлами устанавливается в branches и equations разделы:

component two_windings
  nodes
    p1 = foundation.electrical.electrical;
    n1 = foundation.electrical.electrical;
    p2 = foundation.electrical.electrical;
    n2 = foundation.electrical.electrical;
  end
  [...]
  variables
    i1 = { 0, 'A' };
    v1 = { 0, 'V' };
    i2 = { 0, 'A' };
    v2 = { 0, 'V' };
  end
  [...]
  branches
    i1 : p1.i -> n1.i;   % Current through first winding
    i2 : p2.i -> n2.i;   % Current through second winding
  end
  equations
    v1 == p1.v - n1.v;   % Voltage across first winding
    v2 == p2.v - n2.v;   % Voltage across second winding
    [...]                % more equations here
  end
end