Когда вы генерируете пользовательский блок из файла компонента Simscape™, имени блока и параметра, и имена переменных в диалоговом окне блока выведены из элементов файла компонента. Значок блока по умолчанию является прямоугольником, отображающим имя блока. Порты основаны на узлах, входных параметрах и выходных параметрах, заданных в файле компонента.
Следующий пример показывает файл компонента, названный spring.ssc, и получившийся библиотечный блок и диалоговое окно.
component spring
nodes
r = foundation.mechanical.rotational.rotational;
c = foundation.mechanical.rotational.rotational;
end
parameters
k = { 10, 'N*m/rad' };
end
variables
theta = { 0, 'rad' };
t = { 0, 'N*m' };
w = { 0, 'rad/s' };
end
branches
t : r.t -> c.t;
end
equations
assert(k>0)
w == r.w - c.w;
t == k * theta;
w == theta.der;
end
end



Если вы щелкаете по ссылке Source code, spring.ssc файл открывается в окне Editor MATLAB®.
Следующие разделы показывают вам, как аннотировать файл компонента, чтобы улучшить косметику блока. Можно обеспечить понятные имена для самого блока и для его параметров и переменных в диалоговом окне, а также предоставить краткое описание его цели. Можно также заменить значком пользовательского блока изображение по умолчанию и поменять имена и ориентацию по умолчанию портов.
Чтобы обеспечить более описательное имя для блока, чем имя файла компонента, поместите его на отдельную строку с комментариями чуть ниже component объявление. Строка с комментариями должна начаться с % символ. Целое содержимое этой линии, после % символ, интерпретирован как имя блока и появляется точно как этот в значке блока и наверху диалогового окна блока.
Например, если у вас есть следующий файл компонента:
component spring %Rotational Spring ... end
это получившийся значок блока и диалоговое окно:


Предыдущий раздел описывает как строка с комментариями сразу после component объявление интерпретировано как имя блока. Любые дополнительные комментарии ниже той линии интерпретированы как описание блока. У вас может быть больше чем одна линия комментариев описания. Каждая линия больше не должна быть, чем 80 символов и должна начаться с % символ. Целое содержимое комментариев описания появится в диалоговом окне блока и в Браузере Библиотеки.
Например, если у вас есть следующий файл компонента:
component spring %Rotational Spring % This block implements a simple rotational spring. ... end
это - получившееся диалоговое окно блока:

Чтобы создать конец абзаца в описании блока, используйте пробел, прокомментировала линия:
% end of one paragraph % % beginning of the next paragraph
Можно задать имя параметров блоков, способ, которым вы хотите, чтобы оно появилось в диалоговом окне блока как комментарий сразу после объявления параметра. Это может быть расположено на той же линии или на отдельной линии. Комментарий должен начаться с % символ.
Например, если у вас есть следующий файл компонента:
component spring
%Rotational Spring
% This block implements a simple rotational spring.
...
parameters
k = { 10, 'N*m/rad' }; % Spring rate
end
...
end
это - получившееся диалоговое окно блока:

Используйте тот же метод, чтобы задать понятные имена для общедоступных переменных верхнего уровня компонента. Эти переменные появляются на вкладке Variables диалогового окна блока и давании им, описательные имена помогают с инициализацией переменной блочного уровня до симуляции.
Например, если у вас есть следующий файл компонента:
component spring
%Rotational Spring
% This block implements a simple rotational spring.
...
variables
theta = { value = { 0 , 'rad' }, priority = priority.high }; % Deformation
t = { 0, 'N*m' }; % Torque
w = { 0, 'rad/s' }; % Angular velocity
end
...
end
получившаяся вкладка Variables диалогового окна блока выглядит так:

Блокируйте порты, и сохранение и Физический сигнал, основаны на узлах, входных параметрах и выходных параметрах, заданных в файле компонента. Метка порта по умолчанию соответствует имени узла, входа или выхода, как задано в блоке объявлений. Местоположение по умолчанию всех портов находится на левой стороне значка блока. Порты распространены equidistantly вдоль стороны блока.
Чтобы управлять меткой порта и местоположением в значке блока, добавьте комментарий сразу после соответствующего узла, введите или выведите объявление. Это может быть на той же линии или на отдельной линии. Комментарий должен начаться с % символ и быть формата label:location, где label строка, соответствующая имени входного порта в блок-схеме и location одна из следующих строк: left, right, top, bottom. Можно определить местоположение всех портов или на одной стороне блока или на двух противоположных сторонах, например, левых и правых, или верхних и нижних. Можно не использовать местоположение, если вы хотите сохранить местоположение по умолчанию порта (на левой стороне).
Можно также оставить поле метки порта пустым и задать только местоположение. В этом случае порту не отобразят его имя. Например, следующий синтаксис подавляет метку порта и определяет местоположение ее на верхней части значка блока:
r = foundation.mechanical.rotational.rotational; % :top
Если вы зададите пустую строку комментария после узла, введете или выведете объявление, соответствующий порт не будет помечен и будет расположен на левой стороне значка блока.
Следующее является примерами объявлений узла и получившихся значков блока.
| Синтаксис | Блокируйте значок |
|---|---|
nodes r = foundation.mechanical.rotational.rotational; c = foundation.mechanical.rotational.rotational; end |
|
nodes r = foundation.mechanical.rotational.rotational; % rod c = foundation.mechanical.rotational.rotational; % case end |
|
nodes r = foundation.mechanical.rotational.rotational; c = foundation.mechanical.rotational.rotational; % c:right end |
|
nodes r = foundation.mechanical.rotational.rotational; % rod c = foundation.mechanical.rotational.rotational; % case:right end |
|
nodes r = foundation.mechanical.rotational.rotational; % rod c = foundation.mechanical.rotational.rotational; % :right end |
|
nodes r = foundation.mechanical.rotational.rotational; % c = foundation.mechanical.rotational.rotational; % case:right end |
|
Значок блока по умолчанию является прямоугольником, отображающим имя блока. Можно заменить этот значок по умолчанию на файл пользовательского изображения. Для получения информации о поддерживаемых форматах файлов и свойствах изображения, смотрите Поддерживаемые Форматы файлов.
Существует два способа задать значок пользовательского блока:
Явным образом, использование annotations разделите в файле компонента. Это - рекомендуемый путь, потому что он обеспечивает больше гибкости. Можно сохранить файлы изображений в отдельной папке и задать относительные пути для значков блока. Можно также задать условные пользовательские значки для различных вариантов блока. Для получения дополнительной информации смотрите Используя Аннотации.
Неявно, с помощью соглашений о присвоении имен файла. Этот метод удобен, если вы поставляете полные пакеты библиотеки клиентам. Для получения дополнительной информации смотрите Используя Соглашения о присвоении имен Файла.
Используйте annotations разделите в файле компонента, чтобы задать имя значка пользовательского блока. Имя файла должно содержать расширение файла. Например:
annotations
Icon = 'custom_spring.jpg';
endИмя файла может включать относительный путь от папки, содержащей файл компонента к папке, содержащей файл изображения, например:
annotations
Icon = '../../block_icons/custom_spring.jpg';
endannotations раздел также позволяет вам задать условные пользовательские значки. Это особенно полезно, если количество портов изменяется для различных вариантов. Например:
component MyPipe
parameters
thermal_variant = false; % Model thermal effects?
end
if thermal_variant
% Use icon with additional thermal port
annotations
Icon = 'pipe_thermal.jpg';
end
else
% Use regular icon, with two fluid ports
annotations
Icon = 'pipe.jpg';
end
end
[...] % Other parameters, variables, nodes, branches, equations
end
Вместо того, чтобы явным образом задать значок пользовательского блока с помощью annotations разделите, можно сделать это неявно путем размещения файла изображения с тем же именем как компонент в папке, содержащей файл компонента.
Этот метод удобен, если вы поставляете полные пакеты библиотеки клиентам. Например, если подпакет, содержащий файл компонента spring.ssc также содержит файл с именем spring.jpg, затем тот файл изображения автоматически используется в значке, представляющем этот блок в пользовательской библиотеке.
Неявные правила для использования значков пользовательского блока:
Если annotations раздел явным образом не задает изображение пользовательского значка, или если то изображение не найдено, взгляды программного обеспечения в папке, содержащей файл компонента для файла изображения с тем же именем как компонент.
Если существуют файлы повторного изображения с тем же именем, форматы более приоритетны в порядке, перечисленном в Поддерживаемых Форматах файлов. Например, если подпакет содержит оба spring.jpg и spring.bmp, spring.jpg изображение, которое появится в пользовательской библиотеке.
Следующие форматы файла изображения поддерживаются для значков пользовательского блока:
svg
jpg
bmp
png
Используя svg формат вместе с проблемно-ориентированными стилями линии может привести к неожиданным результатам, потому что доменные стили линии и цвета могут распространить к частям значка пользовательского блока. Для получения дополнительной информации о включении и выключении проблемно-ориентированных стилей линии смотрите Проблемно-ориентированные Стили линии.
Тип изображения должен быть RGB (истинный цвет) изображение, сохраненное как m- n- 3 массива данных. Для получения дополнительной информации смотрите RGB (Истинный цвет) Изображения (MATLAB).
Когда вы используете файл изображения, чтобы представлять компонент в библиотеке пользовательского блока, следующий синтаксис в файле компонента позволяет вам задать свойства масштабирования и вращения файла изображения:
component name % [ CustomName [ : scale [ : rotation ] ] ] ...
где
| Имя компонента |
| Индивидуально настраиваемое имя блока, заданное как описано в, Настраивает Имя блока. Продвижение и конечные пробелы удалено. |
| Скалярный номер, например, Вы не можете задать выражения MATLAB для шкалы, только числа. |
| Задает, вращается ли значок блока с блоком:
|
Например, следующий синтаксис
component spring % Rotational Spring : 0.5 : fixed
указывает, что пружинный размер изображения масштабируется к половине его размера по умолчанию и всегда остается в его ориентации по умолчанию, независимо от вращения блока.