www.gusucode.com > slcontrol 案例源码程序 matlab代码 > slcontrol/EstimateFrequencyResponseAtTheCommandLineExample.m

    %% Estimate Frequency Response at the Command Line
% This example shows how to estimate the frequency response of a
% Simulink(R) model at the MATLAB(R) command line.

%%
% Open the Simulink model.
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
% linearization I/O points. Avoid placing I/O points on bus signals.
io(1) = linio('scdplane/Sum1',1);
io(2) = linio('scdplane/Gain5',1,'output');

%%
% For more information about linearization I/O points, see
% <docid:slcontrol_ug.bsw97v9> and <docid:slcontrol_ug.f70641>.

%%
% 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 represeting 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.