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

Можно получить доступ к исходному коду MATLAB, используемому блоком MATLAB System путем нажатия на гиперссылку "Source Code" от диалогового окна блока. Системный объект CustomDialog реализует getPropertyGroupsImpl и getHeaderImpl методы, которые используются, чтобы настроить внешний вид диалогового окна блока и организовать свойства Системного объекта.
PropertyDefault - Свойство без индивидуальной настройки
PropertyCustomPrompt - Свойство с пользовательской подсказкой
PropertyEnum - Свойство Enumeration с конечным списком опций
PropertyLogical - Валидация свойства с logical создать флажок
PropertyInDifferentTab - Свойство, показанное на различной вкладке диалогового окна
getPropertyGroupsImpl метод использует matlab.system.display. Разделите и matlab.system.display. Классы SectionGroup, чтобы создать разделы свойства и вкладки в диалоговом окне. getPropertyGroupsImpl также создает кнопку в разделе "Group 2", который вызывает visualize метод Системного объекта.
classdef CustomDialog < matlab.System
% CustomDialog Customize System block dialog
properties
PropertyDefault = 10
% For PropertyDefault, with no comment above, property name is used
% as prompt
% PropertyCustomPrompt Use comment above property for custom prompt
PropertyCustomPrompt = 20
% PropertyEnum Use enumeration to limit values to finite list
PropertyEnum (1,1) ColorValues = ColorValues.blue
% PropertyInDifferentTab Use getPropertyGroupsImpl to create tabs
PropertyInDifferentTab = 30
end
properties(Nontunable)
% PropertyLogical Use logical property validation to create a checkbox
% Logical properties need to be Nontunable for use in Simulink
PropertyLogical (1,1) logical = true
end
methods(Access = protected)
function y = stepImpl(~, u)
y = u;
end
end
methods (Static, Access = protected)
function groups = getPropertyGroupsImpl
% Use getPropertyGroupsImpl to create property sections in the
% dialog. Create two sections with titles "Group1" and
% "Group2". "Group1" contains PropertyDefault and
% PropertyCustomPrompt. "Group2" contains PropertyEnum,
% PropertyLogical, and a Visualize button.
group1 = matlab.system.display.Section(...
'Title','Group 1',...
'PropertyList',{'PropertyDefault','PropertyCustomPrompt'});
group2 = matlab.system.display.Section(...
'Title','Group 2',...
'PropertyList',{'PropertyEnum','PropertyLogical'});
% Add a button that calls back into the visualize method
group2.Actions = matlab.system.display.Action(@(actionData,obj)...
visualize(obj,actionData),'Label','Visualize');
tab1 = matlab.system.display.SectionGroup(...
'Title', 'Tab 1', ...
'Sections', [group1, group2]);
tab2 = matlab.system.display.SectionGroup(...
'Title', 'Tab 2', ...
'PropertyList', {'PropertyInDifferentTab'});
groups = [tab1, tab2];
end
function header = getHeaderImpl
header = matlab.system.display.Header(mfilename('class'), ...
'Title','AlternativeTitle',...
'Text','Customize dialog header using getHeaderImpl method.');
end
end
methods
function visualize(obj, actionData)
% Use actionData to store custom data
f = actionData.UserData;
if isempty(f) || ~ishandle(f)
f = figure;
actionData.UserData = f;
else
figure(f); % Make figure current
end
d = 1:obj.PropertyCustomPrompt;
plot(d);
end
end
end