В этом примере показано, как настроить внешний вид блока MATLAB System.
Системные объекты позволяют вам реализовывать алгоритмы с помощью MATLAB. Системные объекты являются специализированным видом объекта MATLAB, специально разработанного для реализации и симуляции динамических систем с входными параметрами то изменение в зависимости от времени.
После того, как вы зададите Системный объект, можно включать его в модель Simulink с помощью блока MATLAB System.
В этой модели существует три Системных блока MATLAB. Первый блок не имеет никакой индивидуальной настройки для внешнего вида блока и по умолчанию показывает имя Системного объекта на блоке. Метки порта для этого блока получены из имени аргументов в stepImpl метод Системного объекта. Второй блок показывает пользовательский текст и пользовательские метки порта на значке блока. Третий блок показывает изображение значка пользовательского блока.

Можно получить доступ к исходному коду MATLAB, используемому блоком MATLAB System путем нажатия на гиперссылку "Source Code" от диалогового окна блока. TimesTwo Системный объект, используемый в первом блоке, не имеет никакой индивидуальной настройки и реализует только stepImpl метод. CustomBlockIconExample Системный объект реализует следующие методы для настройки внешнего вида блока.
getInputNamesImpl - Настройте метки входного порта
getOutputNamesImpl - Настройте метки выходного порта
getIconImpl - Отобразите текст или изображение на блоке
Системный объект имеет DisplayImage свойство выбрать между текстом и изображением для отображения на блоке.
TimesTwo Системный объект
classdef TimesTwo < matlab.System
%TimesTwo Multiply input by 2
% obj = TimesTwo returns a System object, obj, that
% multiples its input by two.
methods(Access = protected)
function y = stepImpl(~, u)
y = 2 * u;
end
end
end
CustomBlockIconExample Системный объект
classdef CustomBlockIconExample < matlab.System
% SystemObjectBlockIconExample Customize Block Icon
properties(Nontunable)
% DisplayImage Select to display image as block icon
DisplayImage (1,1) logical = false
end
methods(Access = protected)
function y = stepImpl(~, u)
y = u;
end
function inputName = getInputNamesImpl(~)
inputName = "MyIn";
end
function outputName = getOutputNamesImpl(~)
outputName = "MyOut";
end
function icon = getIconImpl(obj)
% Return text or image to be displayed on the block icon
% Use array of strings to display multiple lines of text
if obj.DisplayImage
% Display image
icon = matlab.system.display.Icon('slexngc6543aPix.jpg');
else
% Display text
icon = ["Block icon", "with custom text"];
end
end
end
end
matlab.system.display.Icon | getIconImpl