MATLAB Examples

# Estimate Frequency Response at the Command Line

This example shows how to estimate the frequency response of a Simulink® model at the MATLAB® command line.

```mdl = 'scdplane'; open_system(mdl) ```

For more information on the general model requirements for frequency response estimation, see docid:slcontrol_ug.br9u7cb.

Specify input and output points for frequency response estimation using analysis points. Avoid placing analysis points on bus signals.

```io(1) = linio('scdplane/Sum1',1); io(2) = linio('scdplane/Gain5',1,'output'); ```

Linearize the model and create a sinestream signal based on the dynamics of the resulting linear system. For more information, see docid:slcontrol_ug.br7o17k-1 and docid:slcontrol_ug.br6xgx8-1.

```sys = linearize('scdplane',io); input = frest.Sinestream(sys); ```

If your model has not reached steady state, initialize the model using a steady-state operating point before estimating the frequency response. You can check whether your model is at steady state by simulating the model. For more information on finding steady-state operating points, see docid:slcontrol_ug.bsns8b2-1.

Find all source blocks in the signal paths of the linearization outputs that generate time-varying signals. Such time-varying signals can interfere with the signal at the linearization output points and produce inaccurate estimation results.

```srcblks = frest.findSources('scdplane',io); ```

To disable the time-varying source blocks, create an frestimateOptions option set and specify the BlocksToHoldConstant option.

```opts = frestimateOptions; opts.BlocksToHoldConstant = srcblks; ```

Estimate the frequency response.

```[sysest,simout] = frestimate('scdplane',io,input,opts); ```

sysest is the estimated frequency response. simout is a Simulink.Timeseries object representing the simulated output.

To speed up your estimation or decrease its memory requirements, see docid:slcontrol_ug.bscm3us.

Open the Simulation Results Viewer to analyze the estimated frequency response.

```frest.simView(simout,input,sysest) ```

You can also compare the estimated frequency response, sysest, to an exact linearization of your system, sys.

```frest.simView(simout,input,sysest,sys) ```

The Bode Diagram plot shows the response sys as a blue line.