Подобно параметру компонента вы объявляете каждый доменный параметр как значение с модулем. Однако различающиеся параметры компонента, основная цель доменных параметров состоит в том, чтобы распространить то же значение параметров ко всем или некоторым компонентам, соединенным с областью.
Цель доменных параметров состоит в том, чтобы распространить то же значение параметров ко всем или некоторым компонентам, соединенным с областью. Например, эта гидравлическая область содержит одну переменную 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
.
При контакте с доменными параметрами существует три различных типов компонентов. Существуют некоторые компоненты, которые обеспечивают доменные значения параметров, используемые в большей модели, существуют некоторые, которые просто распространяют параметры, и существуют некоторые, которые не распространяют параметры.
Для полного примера создания библиотеки пользовательского блока на основе этого доменного определения и использования распространения доменных параметров в простой схеме, смотрите Пользовательскую Библиотеку с Распространением Доменных Параметров.
Исходные компоненты обеспечивают способ изменить доменные значения параметров. Вы объявляете параметр компонента, и затем используете прямое присвоение на доменный параметр в объявлении узла компонента. Это присвоение устанавливает связь, которая позволяет параметру исходного компонента управлять доменным значением параметров.
Следующее является примером исходного компонента, соединенного с гидравлическим доменным 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 K.
Дважды кликните блок Hydraulic Temperature. Измените значение параметра Fluid temperature к 363
K.
Симулируйте модель снова и заметьте, что осциллограф теперь отображает новое значение доменного температурного параметра.