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