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

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

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

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

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

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

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

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

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

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

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