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

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

Задайте параметры составного компонента путем объявления соответствующего параметра в parameters верхнего уровня объявление блока, а затем назначение его требуемому параметру представителя компонента. Синтаксис объявления аналогичен описанному в Declare Component Parameters.

Для примера в следующий код входит блок Foundation library Resistor в файле с собственным компонентом, с возможностью управления сопротивлением на верхнем уровне и сопротивлением по умолчанию 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 function, обновить его, чтобы использовать назначение параметров в 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 section, использовать последующее 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

Похожие примеры

Подробнее о