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

В этом примере показано, как создать базовую систему 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

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

| | |

Похожие темы