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

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

Создайте класс системного объекта

Можно создать и отредактировать MAT-файл или использовать Редактор MATLAB®, чтобы создать Системный объект. Этот пример описывает, как использовать меню New в редакторе MATLAB.

  1. В MATLAB, на вкладке Editor, выбирают New> System Object> Basic. Простой шаблон Системного объекта открывается.

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

    classdef AddOne < matlab.System
    

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

  3. Сохраните файл и назовите его AddOne.m.

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

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

  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, потому что это - внутренний метод, который пользователи непосредственно не вызывают или запускают.

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

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

    Также, если вы создаете свой Системный объект путем редактирования MAT-файла, можно добавить метод stepImpl с помощью Insert Method> Implement algorithm.

  2. Измените вычисление в методе stepImpl, чтобы добавить 1 в значение u.

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

    Совет

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

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

    Можно изменить эти методы, чтобы добавить больше действий Системного объекта и свойств. Вы не можете также внести изменения, и Системный объект все еще действует, как предназначено.

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

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

Смотрите также

| | |

Похожие темы