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

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

Задайте алгоритм

The 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

    The 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

См. также

| | |

Похожие темы