Когда вы генерируете пользовательский блок из файла компонента 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'; end
annotations
раздел также позволяет вам задать условные пользовательские значки. Это особенно полезно, если количество портов изменяется для различных вариантов. Например:
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
указывает, что пружинный размер изображения масштабируется к половине его размера по умолчанию и всегда остается в его ориентации по умолчанию, независимо от вращения блока.