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.