Составьте композит параметры компонента позволяют вам настроить желаемые параметры базовых членских компонентов от диалогового окна блока верхнего уровня при создании и симуляции модели.
Задайте составные параметры компонента путем объявления соответствующего параметра в блоке объявлений parameters
верхнего уровня, и затем присвоения его желаемому параметру членского компонента. Синтаксис объявления эквивалентен описанный в, Объявляют Параметры Компонента.
Например, следующий код включает библиотеку Foundation блок 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
, обновляете его, чтобы использовать присвоение параметра в блоке 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