Подобно параметру компонента, каждый параметр домена объявляется как значение с единицей измерения. Однако, в отличие от параметров компонента, основной целью параметров домена является распространение одного и того же значения параметра на все или некоторые компоненты, связанные с доменом.
Назначение параметров домена состоит в распространении одного и того же значения параметра на все или некоторые компоненты, подключенные к домену. Например, эта гидравлическая область содержит одну переменную Поперек, p, одна сквозная переменная, qи один параметр, t.
domain t_hyd
variables
p = { 1e6, 'Pa' }; % pressure
end
variables(Balancing = true)
q = { 1e-3, 'm^3/s' }; % flow rate
end
parameters
t = { 303, 'K' }; % fluid temperature
end
end
Все компоненты с узлами, подключенными к этому домену, будут иметь доступ к параметру температуры жидкости t. Примеры компонентов в следующих разделах предполагают, что этот файл домена, t_hyd.ssc, находится в пакете с именем +THyd.
При работе с параметрами домена существует три различных типа компонентов. Есть некоторые компоненты, которые предоставляют значения параметров домена, используемые в модели большего размера, есть некоторые, которые просто распространяют параметры, и есть некоторые, которые не распространяют параметры.
Полный пример создания пользовательской библиотеки блоков на основе этого определения домена и использования распространения параметров домена в простой цепи см. в разделе Пользовательская библиотека с распространением параметров домена.
Исходные компоненты обеспечивают способ изменения значений параметров домена. Объявляется параметр компонента, а затем используется прямое назначение параметру домена в объявлении узла компонента. Это назначение устанавливает соединение, которое позволяет параметру исходного компонента управлять значением параметра домена.
Ниже приведен пример компонента источника, подключенного к гидравлической области t_hyd, определенный в разделе Распространение параметров домена. Этот компонент предоставляет значение параметра температуры остальной части модели.
component hyd_temp
% Hydraulic Temperature
% Provide hydraulic temperature to the rest of the model
parameters
t = { 333, 'K' }; % Fluid temperature
end
nodes
a = THyd.t_hyd(t=t); % t_hyd node with direct parameter assignment
end
end
При создании блока Simscape™ из этого файла компонента в диалоговом окне блока появится параметр Температура жидкости (Fluid temperature). Затем ее можно использовать для ввода значения температуры гидравлической жидкости, используемой в модели. К цепи не может быть подключено более одного блока, управляющего одним и тем же параметром домена, если различные сегменты цепи не разделены блокирующим компонентом.
Настройка по умолчанию для Propagation атрибут компонента - propagates. Большинство компонентов используют этот параметр. Если компонент настроен на распространение параметров домена, то все открытые узлы, подключенные к этому домену, имеют одинаковый набор параметров домена. Эти параметры доступны в уравнениях и других разделах файла компонента.
Ниже приведен пример распространяющегося компонента. h_temp_sensor, подключенный к гидравлической области t_hyd, определенный в разделе Распространение параметров домена. Он выдает температуру жидкости в виде физического сигнала T. В этом примере показано, как можно получить доступ к параметрам домена в разделе уравнений компонента.
component h_temp_sensor
% Hydraulic Temperature Sensor
% Measure hydraulic temperature
outputs
T = { 0, 'K' }; % T:right
end
nodes
a = THyd.t_hyd; % t_hyd node
end
equations
T == a.t; % access parameter from node in equations
end
end
Блокирующие компоненты - это компоненты, которые не распространяют параметры домена. Эти компоненты имеют свои Propagation атрибут имеет значение blocks. Если модель требует различных значений параметра домена в различных сегментах одной цепи, используйте блокирующие компоненты для разделения этих сегментов и соединения каждого сегмента с собственным компонентом-источником. Дополнительные сведения см. в разделе Списки атрибутов.
В следующем примере показано, как можно проверить распространение параметров домена, объединив простую схему. В этом примере будут выполнены следующие действия:
Создайте необходимые файлы домена и компонентов и упорядочьте их в пакет. Дополнительные сведения см. в разделе Организация файлов Simscape.
Создайте пользовательскую библиотеку блоков на основе этих файлов Simscape. Дополнительные сведения см. в разделе Преобразование файлов Simscape.
Эти пользовательские блоки используются для построения модели и тестирования распространения параметров домена.
Чтобы выполнить перечисленные выше задачи, выполните следующие действия.
В каталоге, расположенном по пути MATLAB ®, создайте каталог с именем+THyd. Это каталог пакета, в котором хранятся все файлы Simscape, созданные следующим образом.
Создание файла домена t_hyd.ssc, как описано в разделе Распространение параметров домена.
domain t_hyd
variables
p = { 1e6, 'Pa' }; % pressure
end
variables(Balancing = true)
q = { 1e-3, 'm^3/s' }; % flow rate
end
parameters
t = { 303, 'K' }; % fluid temperature
end
end
Создание файла компонента hyd_temp.ssc, как описано в разделе Исходные компоненты. Этот компонент предоставляет значение параметра температуры остальной части модели.
component hyd_temp
% Hydraulic Temperature
% Provide hydraulic temperature to the rest of the model
parameters
t = { 333, 'K' }; % Fluid temperature
end
nodes
a = THyd.t_hyd(t=t); % t_hyd node with direct parameter assignment
end
end
Создание файла компонента h_temp_sensor.ssc, как описано в разделе Распространение компонентов. Этот компонент измеряет значение температурного параметра и выводит его как физический сигнал.
component h_temp_sensor
% Hydraulic Temperature Sensor
% Measure hydraulic temperature
outputs
T = { 0, 'K' }; % T:right
end
nodes
a = THyd.t_hyd; % t_hyd node
end
equations
T == a.t; % access parameter from node in equations
end
end
Для создания рабочей цепи потребуется опорный блок, соответствующий типу области, как описано в разделе «Правила заземления». Создание ссылочного компонента для t_hyd домен, следующим образом (имя компонента h_temp_ref.ssc):
component h_temp_ref
% Hydraulic Temperature Reference
% Provide reference for thermohydraulic circuits
nodes
a = THyd.t_hyd; % t_hyd node
end
connections
connect(a, *);
end
end
При необходимости можно определить другие компоненты, ссылающиеся на t_hyd , но этого базового набора компонентов достаточно для создания рабочей цепи. Теперь необходимо создать пользовательскую библиотеку блоков на основе этих файлов Simscape. Для этого в командной строке MATLAB введите:
ssc_build THyd;
Эта команда создает файл с именем THyd_lib в каталоге, который содержит +THyd пакет. Перед использованием этой библиотеки перезапустите MATLAB для регистрации нового домена. Затем откройте пользовательскую библиотеку, введя:
THyd_lib

Создайте новую модель Simscape. Для этого введите:
ssc_new
Эта команда создает новую модель, предварительно заполненную следующими блоками:

Удалите блок преобразователя Simulink-PS, поскольку в нашей модели не будет входных сигналов Simulink ®.
Перетащите блоки «Гидравлическая температура», «Датчик гидравлической температуры» и «Эталонный уровень гидравлической температуры» из THyd_lib и соедините их следующим образом:

Смоделировать модель и заметить, что в области отображается значение параметра температуры домена, как оно определено в hyd_temp.ssc файл, 333 К.
Дважды щелкните на блоке «Гидравлическая температура». Измените значение параметра Температура жидкости (Fluid temperature) на 363 K.

Снова смоделируйте модель и обратите внимание, что теперь в области отображается новое значение параметра температуры домена.