Этот пример показывает, как создать базовую систему object™, который постепенно увеличивает номер одним. Файл определения класса, используемый в примере, содержит минимальные элементы, требуемые задавать Системный объект.
Можно создать и отредактировать MAT-файл или использовать Редактор MATLAB®, чтобы создать Системный объект. Этот пример описывает, как использовать меню New в редакторе MATLAB.
В MATLAB, на вкладке Editor, выбирают New> System Object> Basic. Простой шаблон Системного объекта открывается.
Разделите свой объект на подклассы от matlab.System Система. Замените Untitled на AddOne в первой строке вашего файла.
classdef AddOne < matlab.System
Системные объекты состоят из базового класса, matlab.System и могут включать один или несколько классов mixin. Вы задаете базовый класс и классы mixin на первой строке вашего файла определения класса.
Сохраните файл и назовите его AddOne.m m.
Метод stepImpl содержит алгоритм, чтобы выполниться, когда вы запускаете свой объект. Задайте этот метод так, чтобы он содержал действия, которые вы хотите, чтобы Системный объект выполнил.
В объекте базовой системы вы создали, осмотрите шаблон метода 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. Можно использовать любое имя для указателя Системного объекта.
По умолчанию, количество вводов и выводов оба один. Вводы и выводы могут быть добавлены с помощью Вводов/Выходных параметров. Можно также использовать переменное количество вводов или выводов, видеть Изменение Количество Вводов.
Также, если вы создаете свой Системный объект путем редактирования MAT-файла, можно добавить, что использование метода stepImpl Вставляет Метод> алгоритм Реализации.
Измените вычисление в методе stepImpl, чтобы добавить 1 к значению u.
methods (Access = protected)
function y = stepImpl(~,u)
y = u + 1;
end
Вместо того, чтобы передать в указателе на объект, можно использовать тильду (~), чтобы указать, что указатель на объект не используется в функции. Используя тильду вместо указателя на объект предотвращает предупреждения о неиспользуемых переменных.
Удалите неиспользованные методы, которые включены по умолчанию в основном шаблоне.
Можно изменить эти методы, чтобы добавить больше действий Системного объекта и свойств. Вы не можете также внести изменения, и Системный объект все еще действует, как предназначено.
Файл определения класса теперь имеет весь код, необходимый для этого Системного объекта.
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
getNumInputsImpl | getNumOutputsImpl | matlab.system | stepImpl