Работа с доменными параметрами

Объявление доменных параметров

Подобно параметру компонента вы объявляете каждый доменный параметр как значение с модулем. Однако различающиеся параметры компонента, основная цель доменных параметров состоит в том, чтобы распространить то же значение параметров ко всем или некоторым компонентам, соединенным с областью.

Распространение доменных параметров

Цель доменных параметров состоит в том, чтобы распространить то же значение параметров ко всем или некоторым компонентам, соединенным с областью. Например, эта гидравлическая область содержит одну переменную 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.

  • Используйте эти авторские блоки, чтобы создать модель и тестовое распространение доменных параметров.

Чтобы выполнить упомянутые выше задачи, выполните эти шаги:

  1. В директории, расположенной на пути MATLAB®, создайте директорию под названием +THyd. Это - ваша директория пакета, где вы храните все файлы Simscape, созданные в следующих шагах.

  2. Создайте доменный файл 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
    
    
  3. Создайте файл компонента 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
    
    
  4. Создайте файл компонента 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
    
    
  5. В порядке создать рабочую схему, вам будет нужен ссылочный блок, соответствующий доменному типу, как описано в Основании Правил. Создайте ссылочный компонент для своей области 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
    
    
  6. Можно опционально задать другие компоненты, ссылающиеся на область t_hyd, но этого основного набора компонентов достаточно, чтобы создать рабочую схему. Теперь необходимо создать библиотеку авторского блока на основе этих файлов Simscape. Для этого, в подсказке команды MATLAB, введите:

    ssc_build THyd;
    
  7. Эта команда генерирует файл под названием THyd_lib в директории, которая содержит ваш пакет +THyd. Перед использованием этой библиотеки перезапустите MATLAB, чтобы указать новую область. Затем откройте пользовательскую библиотеку путем ввода:

    THyd_lib 
    

  8. Создайте новую модель Simscape. Для этого введите:

    ssc_new
    

    Эта команда создает новую модель, предварительно заполненную со следующими блоками:

    Примечание

    По умолчанию Редактор Simulink® скрывает имена блока в диаграмме модели. Чтобы отобразить скрытые имена блока, выберите Display и снимите флажок Hide Automatic Names.

  9. Удалите блок Simulink-PS Converter, потому что наша модель не будет иметь любые входные сигналы Simulink.

  10. Перетащите Гидравлическую Температуру, Гидравлический Датчик температуры и Гидравлические Температурные Ссылочные блоки от THyd_lib и соедините их можно следующим образом:

  11. Моделируйте модель и заметьте, что осциллограф отображает значение доменного температурного параметра, когда это задано в файле hyd_temp.ssc, 333 K.

  12. Дважды кликните блок Hydraulic Temperature. Измените значение параметра Fluid temperature к 363 K.

  13. Моделируйте модель снова и заметьте, что осциллограф теперь отображает новое значение доменного температурного параметра.