Параметризация составных компонентов

Составьте композит параметры компонента позволяют вам настроить желаемые параметры базовых компонентов члена от диалогового окна блока верхнего уровня при создании и симуляции модели.

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

Связанные примеры

Больше о