Составные параметры компонента позволяют вам настроить требуемые параметры базовых компонентов представителя из диалогового окна блока верхнего уровня при построении и симуляции модели.
Задайте параметры составного компонента путем объявления соответствующего параметра в 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