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