Этот пример показывает вам, как настроить диалоговое окно блока для блока 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