exponenta event banner

Определение атрибутов свойств

Атрибуты свойств, которые добавляют сведения к свойству, обеспечивают слой управления для свойств. В дополнение к атрибутам свойств MATLAB ® и проверке свойств, системные объекты могут использоватьNontunable или DiscreteState. Чтобы задать несколько атрибутов, разделите их запятыми.

Укажите свойство как не настраиваемое

По умолчанию все свойства настраиваются, что означает, что значение свойства может изменяться в любое время.

Используйте Nontunable атрибут для свойства, когда алгоритм зависит от значения, которое является постоянным после начала обработки данных. Определение свойства как неперестраиваемого может повысить эффективность алгоритма, устранив необходимость проверки или реагирования на изменяющиеся значения. При создании кода определение свойства как неперестраиваемого позволяет оптимизировать память, связанную с этим свойством. Необходимо определить все свойства, влияющие на количество входных или выходных портов, как неперестраиваемые.

При использовании системного object™ можно изменить неперестраиваемые свойства только перед вызовом объекта или после вызова release функция. Например, определяется InitialValue как не настраиваемое и установите для него значение 0.

properties (Nontunable)
   InitialValue = 0;
end

Определите собственность как DiscreteState

Если алгоритм использует свойства, удерживающие состояние, можно назначить эти свойства DiscreteState атрибут. Свойства с этим атрибутом отображают свои значения состояния через getDiscreteStateImpl когда пользователи звонят getDiscreteState. Следующие ограничения применяются к свойству с DiscreteState атрибут,

  • Числовое, логическое или значение fi, но не масштабированное двойное значение fi

  • Не имеет следующих атрибутов: Nontunable, Dependent, Abstract, Constant.

  • Нет значения по умолчанию

  • Не поддается публичному урегулированию

  • GetAccess = Public по умолчанию

  • Значение устанавливается только через setupImpl при вызове объекта System. (См. раздел Сводка последовательности вызовов)

Например, определяется Count свойство как дискретное состояние:

properties (DiscreteState)
   Count;
end

Пример класса с различными атрибутами свойств

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

classdef Counter < matlab.System
% Counter Increment a counter to a maximum value

  % These properties are nontunable. They cannot be changed 
  % after the setup method has been called or while the
  % object is running.
  properties (Nontunable)
      % The initial value of the counter
      InitialValue = 0
      % The maximum value of the counter, must be a positive integer scalar
      MaxValue (1, 1) {mustBePositive, mustBeInteger} = 3
  end
  
  properties
      % Whether to increment the counter, must be a logical scalar
      Increment (1, 1) logical = true
  end
   
  properties (DiscreteState)
      % Count state variable
      Count
  end
      
  methods (Access = protected)
      % Increment the counter and return its value
      % as an output
  
      function c = stepImpl(obj)
          if obj.Increment && (obj.Count < obj.MaxValue)
              obj.Count = obj.Count + 1;
          else
              disp(['Max count, ' num2str(obj.MaxValue) ' ,reached'])
          end
          c = obj.Count;
      end
      
      % Setup the Count state variable
      function setupImpl(obj)
          obj.Count = 0;
      end
      
      % Reset the counter to one.
      function resetImpl(obj)
          obj.Count = obj.InitialValue;
      end
  end
end

Связанные темы