Параметры компонента позволяют вам задать регулируемые параметры для блока Simscape™, сгенерированного из файла компонента. Параметры появятся в диалоговом окне блока и могут быть изменены при построении и симуляции модели.
Каждый параметр объявляется как значение с модулем. Установка дополнительного комментария позволяет управлять именем параметра в диалоговом окне блока. Для получения дополнительной информации смотрите Задать значимые имена для параметров блоков и переменных.
В следующем примере объявляется параметр k
, со значением по умолчанию 10 N*m/rad
, задающий скорость пружины вращения пружины. В диалоговом окне блока этот параметр будет назван Spring rate.
parameters k = { 10, 'N*m/rad' }; % Spring rate end
Когда вы объявляете параметр компонента, используйте модули, которые имеют смысл в контексте приложения блока. Например, если вы моделируете соленоид, пользователю блока удобнее вводить штрих в миллиметрах, а не в метрах. Когда параметр используется в уравнениях и других разделах файла компонента, менеджер модулей Simscape обрабатывает преобразования.
Однако с модулями измерения температуры возникает дополнительная проблема применения линейного или аффинного преобразования (см. «Преобразования тепловых модулей»). Поэтому, когда вы объявляете параметр с модулями измерения температуры, можно задать только неаффинные модули (kelvin или rankine). Когда пользователь блока вводит значение параметров в аффинных модулях (Цельсий или Фаренгейт), это значение автоматически преобразуется в модули, заданные в объявлении параметра. По умолчанию применяется преобразование аффина. Если параметр задает относительную, а не абсолютную температуру (другими словами, изменение температуры), задайте ее Conversion
атрибут к relative
(для получения дополнительной информации см. «Атрибуты представителя»).
Примечание
Атрибуты представителя применяются к целому блоку объявлений. Если некоторые из ваших параметров относительны, а другие абсолютны, объявите их отдельными блоками. В файле Simscape можно иметь несколько блоков объявлений того же типа представителя.
Язык Simscape чувствителен к регистру. Это означает, что имена представителей могут отличаться только в зависимости от случая. Однако Simulink® программное обеспечение не учитывает регистр. Имена параметров Simulink (то есть имена параметров в диалоговом окне блока) должны быть уникальными независимо от случая. Поэтому, если вы объявляете два параметра, имена которых различаются только в зависимости от случая, таких как
component MyComponent parameters A = 0; a = 0; end end
вы не сможете сгенерировать блок из этого компонента.
Однако, если один из параметров является частным или скрытым, то есть не появляется в диалоговом окне блока,
component MyComponent parameters(Access=private) A = 0; end parameters a = 0; end end
тогда в пространстве имен Simulink нет конфликта и нет проблем с генерацией блока из источника компонента.
Переменные общего компонента также появляются в диалоговом окне блока, на вкладке Variables, потому что они используются для инициализации модели. Поэтому эти переменные конкурируют друг с другом и с именами параметров блоков в пространстве имен Simulink. Если у компонента есть общая переменная и параметр, имена которых различаются только в зависимости от случая, например,
component MyComponent variables A = 0; end parameters a = 0; end end
вы не сможете сгенерировать блок из этого компонента. В качестве возможного обходного пути можно объявить переменную частной или скрытой. В этом случае переменная не появляется на вкладке Variables получившегося диалогового окна блока, и поэтому конфликта пространства имен нет. Однако, если вы хотите иметь возможность использовать переменную в процессе инициализации модели, оставьте ее открытой и измените ее имя или имя параметра.
Ограничение чувствительности к регистру применяется только к параметрам компонента и переменным общего компонента, поскольку другие типы представителей не имеют связанной сущности Simulink и поэтому полностью чувствительны к регистру.