exponenta event banner

Параметризация составных компонентов

Параметры составного компонента позволяют корректировать требуемые параметры нижележащих компонентов элемента из диалогового окна блока верхнего уровня при построении и моделировании модели.

Укажите параметры составного компонента, объявив соответствующий параметр на верхнем уровне parameters блок объявления, а затем назначение его требуемому параметру компонента-члена. Синтаксис объявления аналогичен описанному в разделе «Объявить параметры компонента».

Например, следующий код включает блок резистора библиотеки Foundation в файле пользовательского компонента с возможностью управления сопротивлением на верхнем уровне и сопротивлением по умолчанию 10 Ом:

component MyCompositeModel
[...]
  parameters
     p1 = {10, 'Ohm'};
     [...]
  end
  components(ExternalAccess=observe)
     r1 = foundation.electrical.elements.resistor(R = p1);
     [...]
  end
[...]
end

Нет необходимости назначать все параметры блоков-членов параметрам верхнего уровня. Если параметр блока элемента не имеет соответствующего параметра верхнего уровня, композитная модель использует значение этого параметра по умолчанию, указанное в компоненте элемента.

Осторожность при использовании setup Параметризация составных компонентов

Можно установить соединение параметра верхнего уровня с параметром компонента элемента в components блок объявления или более поздняя версия в setup раздел. Начиная с R2019a, используя setup не рекомендуется. При наличии устаревшего кода с помощью setup , обновите его, чтобы использовать назначение параметров в components вместо этого блокировать. Например, этот код эквивалентен приведенному выше примеру:

component MyCompositeModel
[...]
  parameters
     p1 = {10, 'Ohm'};
     [...]
  end
  components(ExternalAccess=observe)
     r1 = foundation.electrical.elements.resistor;
     ...
  end
   [...]
   function setup
      r1.R = p1;
   end
   [...]
end

Примечание

В случае конфликта назначения в setup раздел переопределяет разделы, выполненные в разделе объявления.

Компоненты создаются с использованием значений параметров по умолчанию в разделе объявления до setup выполняется. Поэтому при внесении изменений в параметры в setup раздел, используйте последующий setup назначение раздела для установления правильного соединения между параметром верхнего уровня и параметром компонента элемента, как показано в следующем примере:

component RC
  nodes
    p = foundation.electrical.electrical; % :right
    n = foundation.electrical.electrical; % :left
  end
  parameters
    R = {1 , 'Ohm'}; % Resistance
    tc = {1 , 's'};  % RC time constant
  end
  parameters(ExternalAccess=observe)
    C = {1 , 'F'};
  end
  components(ExternalAccess=observe)
    c1 = foundation.electrical.elements.capacitor(c=C);
    r1 = foundation.electrical.elements.resistor(R=R);
  end
  function setup
    C = tc/R;
    c1.c = C; % This assignment ensures correct operation
  end
  connections
    connect(c1.p, p);
    connect(c1.n, r1.p);
    connect(r1.n, n);
  end
end

Связанные примеры

Подробнее