Определение переменных домена или компонента
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.high | High |
priority = priority.low | Low |
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