exponenta event banner

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

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

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

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

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

  10. Перетащите блоки «Гидравлическая температура», «Датчик гидравлической температуры» и «Эталонный уровень гидравлической температуры» из THyd_lib и соедините их следующим образом:

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

  12. Дважды щелкните на блоке «Гидравлическая температура». Измените значение параметра Температура жидкости (Fluid temperature) на 363 K.

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