Управляйте внешним видом блока 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, эти группы переводят во вкладки диалогового окна (и в узлы дерева Property Inspector). 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 аннотации в ветвях условного оператора. Для получения дополнительной информации смотрите, что Местоположения Порта управления Используют Аннотации.
Следующий пример указывает, что выпадающий список для параметра Gain включает список общих модулей, таких как доступные в Simulink-PS Converter и диалоговых окнах блока PS-Simulink Converter.
annotations
Gain : UnitDropdown = common
end
inputs | nodes | outputs | parameters | variables