Подобно параметру компонента вы объявляете каждый доменный параметр как значение с модулем. Однако различающиеся параметры компонента, основная цель доменных параметров состоит в том, чтобы распространить то же значение параметров ко всем или некоторым компонентам, соединенным с областью.
Цель доменных параметров состоит в том, чтобы распространить то же значение параметров ко всем или некоторым компонентам, соединенным с областью. Например, эта гидравлическая область содержит одну переменную 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® скрывает имена блока в диаграмме модели. Чтобы отобразить скрытые имена блока, выберите Display и снимите флажок Hide Automatic Names.
Удалите блок Simulink-PS Converter, потому что наша модель не будет иметь любые входные сигналы Simulink.
Перетащите Гидравлическую Температуру, Гидравлический Датчик температуры и Гидравлические Температурные Ссылочные блоки от THyd_lib
и соедините их можно следующим образом:
Моделируйте модель и заметьте, что осциллограф отображает значение доменного температурного параметра, когда это задано в файле hyd_temp.ssc
, 333 K.
Дважды кликните блок Hydraulic Temperature. Измените значение параметра Fluid temperature к 363
K.
Моделируйте модель снова и заметьте, что осциллограф теперь отображает новое значение доменного температурного параметра.