Свойства настройки процесса

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

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

Управление, когда генерируется интерполяционная таблица

Этот пример processTunedPropertiesImpl вызывает pLookupTable будет регенерирован, когда либо NumNotes или MiddleC изменения свойств.

methods  (Access = protected)
   function processTunedPropertiesImpl(obj)
      propChange = isChangedProperty(obj,'NumNotes')||...
         isChangedProperty(obj,'MiddleC')
      if propChange
         obj.pLookupTable = obj.MiddleC *...
           (1+log(1:obj.NumNotes)/log(12));
      end
    endend

Полный файл определения класса с настроенной обработкой свойств

classdef TuningFork < matlab.System
  % TuningFork Illustrate the processing of tuned parameters
  %
  
  properties
    MiddleC = 440
    NumNotes = 12
  end
  
  properties (Access = private)
    pLookupTable
  end
  
  methods (Access = protected)
    function resetImpl(obj)
      obj.MiddleC = 440;
      obj.pLookupTable = obj.MiddleC * ...
         (1+log(1:obj.NumNotes)/log(12));
    end
    
    function hz = stepImpl(obj,noteShift)
      % A noteShift value of 1 corresponds to obj.MiddleC
      hz = obj.pLookupTable(noteShift);
    end
    
    function processTunedPropertiesImpl(obj)
      propChange = isChangedProperty(obj,'NumNotes')||...
         isChangedProperty(obj,'MiddleC')
      if propChange
         obj.pLookupTable = obj.MiddleC *...
           (1+log(1:obj.NumNotes)/log(12));
      end
  end
end

См. также