exponenta event banner

аннотации

Управление внешним видом блока Simscape на основе компонента

Синтаксис

annotations
   [Id1, Id2] : ExternalAccess=value;
   UILayout = [UIGroup("Title 1",p1,p2) UIGroup("Title 2",p3)] 
   Icon = 'filename';
   [port1, port2] : Side=value;
   [param1, param2] : UnitDropdown = common
end

Описание

annotations начинает раздел аннотаций, который завершается end ключевое слово. annotations раздел в файле компонента позволяет предоставлять аннотации, которые управляют различными косметическими аспектами блока Simscape™, созданного из этого компонента.

Используйте annotations раздел для:

  • Определение условной видимости элементов компонента, таких как параметры, переменные, узлы, входы и выходы, в значках блоков и диалоговых окнах. Возможные значения: modify, observe, и none.

  • Укажите компоновку интерфейса блока, определив именованные группы параметров компонентов, порядок этих групп и порядок параметров в каждой группе. При развертывании компонента в виде пользовательского блока Simscape эти группы преобразуются в вкладки диалоговых окон (и в узлы дерева Инспектора свойств). UILayout является аннотацией уровня класса, что означает, что она может отображаться только один раз для каждого файла компонента. Дополнительные сведения см. в разделе Группирование и изменение порядка параметров блоков с помощью аннотации.

  • Укажите пользовательский значок блока и измените его на основе варианта блока.

  • Управление расположением порта осуществляется путем его размещения на определенной стороне значка блока. Порты на значке блока соответствуют узлам, входам и выходам, объявленным в базовом файле компонента. Возможные значения: left, right, top, и bottom.

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

Примеры

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

component MyPipe
  parameters
    circular  = true;             % Circular pipe?
    d_in      = { 0.01, 'm' };    % Pipe internal diameter
    area      = { 1e-4, 'm^2' };  % Noncircular pipe cross-sectional area
    D_h       = { 1.12e-2, 'm' }; % Noncircular pipe hydraulic diameter
  end
  if circular 
  % Hide inapplicable parameters
    annotations
       [area, D_h] : ExternalAccess=none;
    end
    equations
       % First set of equations, for circular pipe 
    end
  else
  % Hide inapplicable parameter
    annotations
       d_in : ExternalAccess=none;
    end
    equations
       % Second set of equations, for noncircular pipe 
    end
  end
  [...] % Other parameters, variables, branches, equations
end

Следующий пример показывает тепловой порт H и изменяет значок настраиваемого блока на основе значения управляющего параметра.

parameters
    thermal_effects = false; % Model thermal effects?
end
nodes (ExternalAccess=none)
   H = foundation.thermal.thermal; 
end
if thermal_effects 
  % Use icon with additional thermal port
    annotations
       H : ExternalAccess=modify;
       Icon = 'pipe_thermal.jpg';
    end
end

В следующем примере настраиваются имена и расположения портов блоков. Блок содержит два электрических порта с метками + и -, расположенных на левой и правой сторонах значка блока соответственно, и тепловой порт H, расположенный на верхней стороне.

nodes
    H = foundation.thermal.thermal; 
    p = foundation.electrical.electrical; % +
    n = foundation.electrical.electrical; % -
end
annotations
    H : Side = top;
    p : Side = left;
    n : Side = right;
end

Примечание

Нельзя условно переключать стороны порта, то есть включать Side аннотации в ветвях условного оператора. Дополнительные сведения см. в разделе Управление расположениями портов с помощью аннотаций.

В следующем примере показано, что раскрывающийся список параметра «Усиление» содержит список общих единиц измерения, например, доступных в диалоговых окнах «Конвертер Simulink-PS» и «Блок преобразователя PS-Simulink».

annotations
    Gain : UnitDropdown = common
end
 
Представлен в R2019a