В этом примере показано, как реализовать алгоритм с настраиваемыми параметрами при помощи блока MATLAB System.
Системные объекты позволяют вам реализовывать использование алгоритмов MATLAB. Системные объекты являются специализированным видом объекта MATLAB, специально разработанного для реализации и симуляции динамических систем с входными параметрами то изменение в зависимости от времени.
После того, как вы зададите Системный объект, можно включать его в модель Simulink с помощью блока MATLAB System.
Блок MATLAB System реализует Системный объект TunableNontunableProperties то, что множители вводятся Gain параметр и добавляет Bias параметр к входу. Вход с блоком MATLAB System обеспечивается блоком Constant, и блок Display показывает результат применения усиления и смещения. Gain параметр является настраиваемым и может быть изменен, когда симуляция запускается. Bias параметр является ненастраиваемым и не может быть изменен во время симуляции. Когда модель запускается, можно изменить настраиваемые свойства, но вы не можете изменить ненастраиваемые свойства.

Можно получить доступ к исходному коду MATLAB, используемому блоком MATLAB System путем нажатия на гиперссылку "Source Code" от диалогового окна блока. Системный объект TunableNontunableProperties реализует setupImplstepImpl и processTunedPropertiesImpl методы. Системный объект имеет два публичных свойств: Gain и Bias. Bias свойство имеет Ненастраиваемый атрибут, который делает это свойство только для чтения в процессе моделирования. Gain свойство не имеет никаких атрибутов, так по умолчанию, это является настраиваемым и может быть изменено во время симуляции.
Системный объект имеет частную собственность под названием pGain. pGain хранит значение общедоступного Gain свойство после области значений Gain ограничивается между 1 и 2. Можно инициализировать pGain путем копирования значения Gain в setupImpl метод. В этом примере, pGain используется в stepImpl метод, чтобы вычислить выход. В Системном объекте, каждый раз, когда общедоступные настраиваемые свойства изменяются, processTunedPropertiesImpl называется. В этом примере, processTunedPropertiesImpl обновляет частную собственность pGain на основе значения от общедоступного Gain свойство.
classdef TunableNontunableProperties < matlab.System
% TunableNontunableProperties Multiply input by Gain and add Bias
properties
Gain = 1.5
end
properties(Nontunable)
Bias = 0.1
end
properties(Access = private)
pGain
end
methods(Access = protected)
function setupImpl(obj, ~)
% Copy public property value Gain to private property pGain and
% restrict its range between 1 and 2
obj.pGain = obj.Gain;
if obj.pGain < 1
obj.pGain = 1;
elseif obj.pGain > 2
obj.pGain = 2;
end
end
function y = stepImpl(obj, u)
y = u * obj.pGain + obj.Bias;
end
function processTunedPropertiesImpl(obj)
% Update private property pGain from the public Gain property
% and restrict its range between 1 and 2.
obj.pGain = obj.Gain;
if obj.pGain < 1
obj.pGain = 1;
elseif obj.pGain > 2
obj.pGain = 2;
end
end
end
end