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