Documentation

processTunedPropertiesImpl

Class: matlab.System
Package: matlab

Action when tunable properties change

Syntax

processTunedPropertiesImpl(obj)

Description

processTunedPropertiesImpl(obj) specifies the actions to perform when one or more tunable property values change. This method is called as part of the next call to the step method after a tunable property value changes. A property is tunable only if its Nontunable attribute is false, which is the default.

processTunedPropertiesImpl is called by the step method.

    Note:   You must set Access = protected for this method.

    You cannot modify any tunable properties in this method if its System object™ will be used in the Simulink® MATLAB System block.

Tips

Use this method when a tunable property affects the value of a different property.

To check if a property has changed since stepImpl was last called, use isChangedProperty within processTunedPropertiesImpl.

In MATLAB® when multiple tunable properties are changed before running the System object, processTunedPropertiesImpl is called only once for all the changes. isChangedProperty returns true for all the changed properties.

In Simulink, when a parameter is changed in a MATLAB System block dialog, the next simulation step calls processTunedPropertiesImpl before calling stepImpl. All tunable parameters are considered changed and processTunedPropertiesImpl method is called for each of them. isChangedProperty returns true for all the dialog properties.

Input Arguments

obj

System object

Examples

expand all

Specify Action When Tunable Property Changes

Use processTunedPropertiesImpl to recalculate the lookup table if the value of either the NumNotes or MiddleC property changes before the next call to the step method. propChange indicates if either property has changed.

methods (Access = protected)
   function processTunedPropertiesImpl(obj)
      propChange = isChangedProperty(obj,obj.NumNotes) ||...
         isChangedProperty(obj,obj.MiddleC)
      if propChange
         obj.pLookupTable = obj.MiddleC * (1+log(1:obj.NumNotes)/log(12));
      end
    end
end
Was this topic helpful?