Работа с параметрами области

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

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

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

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

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

Полный пример создания библиотеки пользовательского блока на основе этого определения области и использования распространения параметров области в простой схеме см. в Пользовательской библиотеке с распространением параметров Области.

Исходные компоненты

Исходные компоненты обеспечивают способ изменить значения параметров области. Вы объявляете параметр компонента, а затем используете прямое назначение параметру области в объявлении узла компонента. Это назначение устанавливает соединение, которое позволяет параметру компонента source управлять областью значения параметров.

Следующий пример исходного компонента, соединенного с гидравлической областью 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 К.

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

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