Main Content

Simulink Control Design Checks

Identify time-varying source blocks interfering with frequency response estimation

Identify all time-varying source blocks in the signal path of any output linearization point marked in the Simulink® model.

Description

Frequency response estimation uses the steady-state response of a Simulink model to a specified input signal. Time-varying source blocks in the signal path prevent the response from reaching steady-state. In addition, when such blocks appear in the signal path, the resulting response is not purely a response to the specified input signal. Thus, time-varying source blocks can interfere with accurate frequency response estimation.

This check finds and reports all the time-varying source blocks which appear in the signal path of any output linearization output points currently marked on the Simulink model. The report:

  • Includes blocks in subsystems and in referenced models that are in normal simulation mode

  • Excludes any blocks specified as BlocksToHoldConstant in the frestimateOptions object you enter as the input parameter

For more information about the algorithm that identifies time-varying source blocks, see the frest.findSources reference page.

Available with Simulink Control Design™.

Input Parameters

FRESTIMATE options object to compare results against

Provide the paths of any blocks to exclude from the check. Specify the block paths as an array of Simulink.BlockPath objects. This array is stored in the BlocksToHoldConstant field of an option set you create with frestimateOptions. See the frestimateOptions reference page for more information.

Results and Recommended Actions

ConditionRecommended Action

Source blocks exist whose output reaches linearization output points currently marked on the model.

Consider holding these source blocks constant during frequency response estimation.

Use the frest.findSources command to identify time-varying source blocks at the command line. Then use the BlocksToHoldConstant option of frestimateOptions to pass these blocks to the frestimate command. For example,

% Get linearization I/Os from the model.
mdl = 'scdengine';
io = getlinio(mdl);
% Find time-varying source blocks.
blks = frest.findSources(mdl,io); 
% Create options set with blocks to hold constant.
opts = frestimateOptions; 
opts.BlocksToHoldConstant = blks; 
% Run estimation with the options.
in = frest.Sinestream;
sysest = frestimate(mdl,io,in,opts); 

For more information and examples, see the frest.findSources and frestimateOptions reference pages.

Tip

Sometimes, the model includes referenced models containing source blocks in the signal path of an output linearization point. In such cases, set the referenced models to normal simulation mode to ensure that this check locates them. Use the set_param command to set SimulationMode of any referenced models to Normal before running the check.

See Also