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