Задайте отношение между переменными компонента и узлами

Соединение переменных компонента к области

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

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

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

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

Распространите доменные переменные Through и Across на компонент.

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

    Например, следующий доменный файл, названный rotational.ssc, объявляет скорость вращения, w, как переменная Across и крутящий момент, 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 как измеримое количество. В этом примере каждый из узлов несет одну переменную Across, w.

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

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

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

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

  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

Соединение два через и два через переменные

Этот пример показывает подготовку переменных Across и Through компонента с двумя электрическими обмотками, такими как трансформатор или взаимный индуктор. Компонент имеет четыре электрических узла, и каждая обмотка имеет свое собственное напряжение и текущие переменные. Отношение между переменными и узлами устанавливается в 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