exponenta event banner

Определение основных системных объектов

В этом примере показано, как создать базовую системную object™, увеличивающую число на единицу. Файл определения класса, используемый в примере, содержит минимальные элементы, необходимые для определения объекта System.

Создать класс системных объектов

Можно создавать и редактировать MAT-файл или использовать редактор MATLAB ® для создания системного объекта. В этом примере описывается использование меню Создать (New) в редакторе MATLAB.

  1. В MATLAB на вкладке «Редактор» выберите «Создать» > «Системный объект» > «Базовый». Откроется простой шаблон объекта Система (System).

  2. Подкласс объекта из matlab.System. Заменить Untitled с AddOne в первой строке файла.

    classdef AddOne < matlab.System
    

    Системные объекты состоят из базового класса, matlab.System и может включать в себя один или более классов миксина. Базовый класс и смешанные классы указываются в первой строке файла определения класса.

  3. Сохраните файл и присвойте ему имя AddOne.m.

Определить алгоритм

stepImpl содержит алгоритм для выполнения при запуске объекта. Определите этот метод таким образом, чтобы он содержал действия, которые должен выполнять объект System.

  1. В созданном базовом системном объекте проверьте stepImpl шаблон метода.

    methods (Access = protected)
       function y = stepImpl(obj,u)
          % Implement algorithm. Calculate y as a function of input u and
          % discrete states.
          y = u;
       end
    end

    stepImpl для доступа к методу всегда установлено значение protected поскольку это внутренний метод, который пользователи не вызывают напрямую или не запускают.

    Для всех методов, кроме статических, в качестве первого входного аргумента требуется дескриптор объекта System. Значение по умолчанию, вставленное редактором MATLAB, obj. Для дескриптора объекта System можно использовать любое имя.

    По умолчанию количество входов и выходов равно одному. Входные и выходные данные можно добавлять с помощью параметров «Входные/выходные данные». Можно также использовать переменное количество входов или выходов, см. раздел Изменение количества входов.

    Кроме того, при создании системного объекта путем редактирования MAT-файла можно добавить stepImpl метод с помощью команды Вставить метод > Реализовать алгоритм.

  2. Изменение вычислений в stepImpl метод для добавления 1 к значению u.

    methods (Access = protected)
        
        function y = stepImpl(~,u)
          y = u + 1;
        end
    

    Совет

    Вместо прохождения в дескрипторе объекта можно использовать тильду (~), чтобы указать, что дескриптор объекта не используется в функции. Использование тильды вместо дескриптора объекта предотвращает появление предупреждений о неиспользуемых переменных.

  3. Удаление неиспользуемых методов, включенных по умолчанию в базовый шаблон.

    Эти методы можно изменить, чтобы добавить дополнительные действия и свойства объекта System. Можно также не вносить никаких изменений, и системный объект по-прежнему работает по назначению.

Файл определения класса теперь имеет весь код, необходимый для этого объекта System.

classdef AddOne < matlab.System
% ADDONE Compute an output value one greater than the input value
  
  % All methods occur inside a methods declaration.
  % The stepImpl method has protected access
  methods (Access = protected)
    
    function y = stepImpl(~,u)
      y = u + 1;
    end
  end
end

См. также

| | |

Связанные темы