Задайте переменные области или компонента
variables var1 = {value ,'unit'}; end
variables
начинает блок объявления переменных, который завершается end
ключевое слово:
В файле компонента этот блок содержит объявления для всех переменных, связанных с компонентом.
В файле области этот блок содержит объявления для всех переменных Across, сопоставленных с областью. Кроме того, файлы области должны иметь отдельный блок объявления переменных с Balancing
для атрибута задано значение true
, который содержит объявления для всех переменных Through, связанных с областью.
В файле компонента следующий синтаксис задает переменную Across, Through или внутреннюю comp_var1
, как значение с модулем. value
- начальное значение. unit
- допустимая строка модулей измерения, заданная в реестре модулей.
variables comp_var1 = {value,'unit'}; end
Для переменных компонента можно дополнительно задать приоритет инициализации, допустимую область значений инициализации и номинальное значение и модуль путем объявления переменной как массива полей.
variables comp_var2 = {value = {value,'unit'}, priority = priority.value, imin={value,'unit'},imax={value,'unit'}, nominal = {value,'unit'}}; end
Первое поле массива value
(значение с модулем). Другие поля являются необязательными и могут выполняться в любом порядке.
The priority
поле может быть одним из трех значений, перечисленных в следующей таблице:
Поле приоритета на Simscape™ языке | Результат приоритета по умолчанию в диалоговом окне блока |
---|---|
priority = priority.high | High |
priority = priority.low | Low |
priority = priority.none (это значение по умолчанию) | None |
Примечание
Рекомендуется, чтобы вы использовали priority
атрибут скупо. Значение приоритета по умолчанию, priority.none
(что эквивалентно исключению priority
атрибут полностью), подходит в большинстве случаев. Пользователь блока может изменять значение переменного приоритета, при необходимости, на вкладке Variables диалогового окна блока перед симуляцией.
The imin
и imax
поля позволяют вам задать минимальное и максимально допустимое значения для переменной инициализации, например:
variables x = {value={0,'deg'},imin={0,'deg'},imax={360,'deg'}}; end
Когда существует несколько решений инициализации, этот синтаксис позволяет вам направить решатель к предпочтительному решению. Для получения дополнительной информации см. Раздел «Инициализация переменной уровня блоков» Если заданная область не может быть удовлетворен во время инициализации, решатель выдает ошибку. Решатель пытается удовлетворить область значений инициализации для переменной независимо от того, является ли его приоритет инициализации высоким, низким или нет.
Инициализация по умолчанию область значений (-inf,inf)
. Поэтому вам не нужно задавать оба значения, чтобы задать область значений, этого достаточно, чтобы задать только imin
или imax
. Для примера используйте этот синтаксис, чтобы ограничить температуру положительными значениями:
variables T = {value={293.15,'K'},imin={0,'K'}}; end
Когда вы задаете imin
или imax
, эти значения определяют открытую область значений.
Примечание
Пользователь блока не имеет контроля над областью значений инициализации переменной. Только автор блока может задать приемлемые минимальное и максимальное значения для инициализации переменной в файле компонента как для непрерывных, так и для переменных события.
The nominal
поле должно быть значением с модулем, где value
- номинальное значение, то есть ожидаемая величина переменной. unit
- допустимая строка модулей измерения, заданная в реестре модулей.
Примечание
Рекомендуется, чтобы вы использовали nominal
атрибут скупо. Номинальные значения по умолчанию, которые поступают из таблицы единиц измерения модели, подходят в большинстве случаев. Пользователь блока может также изменить номинальные значения и модули для отдельных блоков с помощью Property Inspector или set_param
и get_param
функций, при необходимости. Для получения дополнительной информации смотрите Изменение номинальных значений для основной переменной.
Можно также задать имя переменной, способ ее отображения на вкладке Variables диалогового окна блока в качестве комментария:
variables comp_var1 = {value,'unit'}; % Variable name end
В файле области следующий синтаксис задает переменную Across, domain_across1
, как значение с модулем. value
- начальное значение. unit
- допустимая строка модулей измерения, заданная в реестре модулей.
variables domain_across_var1 = {value,'unit'}; end
Можно задать области значений инициализации для переменных Across области, например, чтобы исключить отрицательные значения для давления или температуры. Синтаксис такой же, как и для переменных компонента:
variables domain_across_var1 = {{value,'unit'},imin={value,'unit'},imax={value,'unit'}}; end
В файле области следующий синтаксис задает переменную Through, domain_through1
, как значение с модулем. value
- начальное значение. unit
- допустимая строка модулей измерения, заданная в реестре модулей.
variables(Balancing = true) domain_through_var1 = {value,'unit'}; end
Этот пример инициализирует переменную w
(скорость вращения) 0 рад/с:
variables w = {0,'rad/s'}; % Angular velocity end
Этот пример инициализирует переменную x
(деформация пружины) в виде 0 мм, с высоким приоритетом:
variables x = {value = {0,'mm'},priority = priority.high}; % Spring deformation end
Этот пример инициализирует переменную Through t
(крутящий момент) 1 Н * м:
variables(Balancing = true) t = {1,'N*m'}; end