В этом примере показано, как настроить диалоговое окно блоков для блока MATLAB System.
Системные объекты позволяют вам реализовать алгоритмы с помощью MATLAB. Системные объекты являются специализированным видом объекта MATLAB, разработанным специально для реализации и симуляции динамических систем с входами, которые изменяются с течением времени.
После того, как вы задаете Системный объект, можно включить его в модель Simulink с помощью блока MATLAB System.
Этот пример содержит системный блок MATLAB, который реализует системный объект CustomDialog
. Для изменения свойств диалогового окна блока используйте Системный объект MATLAB System. В этом примере показано, как настроить запрос на свойство и как создать флажки, списки, группы, вкладки и кнопки в диалоговом окне.
Вы можете получить доступ к исходному коду MATLAB, используемому блоком MATLAB System, нажав гиперссылку «Source Code» из диалогового окна блока. Системный объект CustomDialog
реализует getPropertyGroupsImpl
и getHeaderImpl
методы, которые используются для настройки внешнего вида диалогового окна блока и организации свойств системного объекта.
PropertyDefault
- Свойство без индивидуальной настройки
PropertyCustomPrompt
- Свойство с пользовательским приглашением
PropertyEnum
- Свойство перечисления с конечным списком опций
PropertyLogical
- валидация свойств с logical
чтобы создать флажок
PropertyInDifferentTab
- Свойство, показанное на другой вкладке диалогового окна
The getPropertyGroupsImpl
метод использует классы matlab.system.display.Section и matlab.system.display.SectionGroup, чтобы создать разделы свойств и вкладки в диалоговом окне. getPropertyGroupsImpl
также создает кнопку в разделе «Группа 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