exponenta event banner

переменные

Определение переменных домена или компонента

Синтаксис

variables var1 = {value ,'unit'}; end

Описание

variables начинает блок объявления переменных, который завершается end ключевое слово:

  • В файле компонента этот блок содержит объявления для всех переменных, связанных с компонентом.

  • В файле домена этот блок содержит объявления для всех переменных Across, связанных с доменом. Кроме того, файлы домена должны иметь отдельный блок объявления переменных с Balancing атрибут имеет значение true, который содержит объявления для всех переменных 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 (значение с единицей измерения). Другие поля являются необязательными и могут находиться в любом порядке.

priority поле может быть одним из трех значений, перечисленных в следующей таблице:

Поле приоритета на языке Simscape™Результирующий приоритет по умолчанию в диалоговом окне блока
priority = priority.highHigh
priority = priority.lowLow
priority = priority.none (это значение по умолчанию)None

Примечание

Рекомендуется использовать priority атрибут разреженно. Значение приоритета по умолчанию, priority.none (что эквивалентно исключению priority атрибут полностью), подходит в большинстве случаев. При необходимости пользователь блока может изменить значение приоритета переменной на вкладке «Переменные» диалогового окна блока перед моделированием.

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, эти значения определяют открытый диапазон.

Примечание

Пользователь блока не может управлять диапазоном инициализации переменной. Только автор блока может указать допустимые минимальные и максимальные значения для инициализации переменных в файле компонента как для непрерывных переменных, так и для переменных событий.

nominal поле должно быть значением с единицей измерения, где value - номинальное значение, то есть ожидаемая величина переменной. unit - допустимая строка единиц, определенная в реестре единиц.

Примечание

Рекомендуется использовать nominal атрибут разреженно. Номинальные значения по умолчанию, полученные из таблицы единиц измерения модели, в большинстве случаев являются подходящими. Пользователь блока может также изменять номинальные значения и единицы измерения для отдельных блоков с помощью инспектора свойств или set_param и get_param функции, при необходимости. Дополнительные сведения см. в разделе Изменение номинальных значений для переменной блока.

Можно также указать имя переменной, способ ее отображения на вкладке «Переменные» диалогового окна блока в качестве комментария:

variables
    comp_var1 = {value,'unit'}; % Variable name
end

Переменные домена

В файле домена следующий синтаксис определяет переменную Across: domain_across1, как значение с единицей измерения. value - начальное значение. unit - допустимая строка единиц, определенная в реестре единиц.

variables
    domain_across_var1 = {value,'unit'};
end

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

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