variables

Задайте переменные области или компонента

Синтаксис

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.highHigh
priority = priority.lowLow
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
Введенный в R2008b