Подобно параметру компонента, вы объявляете каждый параметр области как значение с модулем. Однако, в отличие от параметров компонента, основное назначение параметров области состоит в том, чтобы распространить одно и то же значение параметра на все или некоторые компоненты, соединенные с областью.
Цель параметров области состоит в том, чтобы распространить то же значение параметров на все или некоторые компоненты, подключенные к области. Для примера эта гидравлическая область содержит одну переменную Across, p
, одна Переменная Through, 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
.
При работе с параметрами области существует три различных типа компонентов. Существуют некоторые компоненты, которые обеспечивают значения параметров области, используемые в большей модели, есть некоторые, которые просто распространяют параметры, и есть некоторые, которые не распространяют параметры.
Полный пример создания библиотеки пользовательского блока на основе этого определения области и использования распространения параметров области в простой схеме см. в Пользовательской библиотеке с распространением параметров Области.
Исходные компоненты обеспечивают способ изменить значения параметров области. Вы объявляете параметр компонента, а затем используете прямое назначение параметру области в объявлении узла компонента. Это назначение устанавливает соединение, которое позволяет параметру компонента source управлять областью значения параметров.
Следующий пример исходного компонента, соединенного с гидравлической областью 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 Converter, потому что наша модель не будет иметь никакого Simulink® входные сигналы.
Перетащите блоки Гидравлическая Температура, Датчик Гидравлической Температуры и Гидравлическая Температура из THyd_lib
и соединить их следующим образом:
Симулируйте модель и заметьте, что в возможности отображается значение параметра температуры области, как это определено в hyd_temp.ssc
файл, 333 К.
Дважды кликните блок «Гидравлическая температура». Измените значение параметра Fluid temperature на 363
K.
Симулируйте модель еще раз и заметьте, что область возможностей теперь отображает новое значение параметра температуры области.