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

Можно получить доступ к исходному коду 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
end
properties(Logical, Nontunable)
% PropertyLogical Use Logical attribute to create checkbox
% Logical properties need to be Nontunable for use in Simulink
PropertyLogical = true
end
properties
% PropertyInDifferentTab Use getPropertyGroupsImpl to create tabs
PropertyInDifferentTab = 30
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