Управление внешним видом блока 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
inputs | nodes | outputs | parameters | variables