www.gusucode.com > control_featured 案例源码程序 matlab代码 > control_featured/ReduceModelOrderUsingModelReducerExample.m

    %% Reduce Model Order Using the Model Reducer App
% This example shows how to reduce model order while preserving important
% dynamics using the *Model Reducer* app.  This example illustrates the 
% Balanced Truncation method, which eliminates states based on
% their energy contributions to the system response.

%% Open Model Reducer With a Building Model
% This example uses a model of the Los Angeles University Hospital
% building. The building has eight floors, each with three degrees of
% freedom: two displacements and one rotation. The input-output
% relationship for any one of these displacements is represented as a
% 48-state model, where each state represents a displacement or its rate of
% change (velocity). Load the building model and open *Model Reducer* with
% that model.

load build.mat
modelReducer(G)

%%
% Select the model in
% the Data Browser to display some information about the model in the
% Preview section. Double-click the model to see more detailed
% information.
%
% <<../ReduceModelOrderUsingModelReducerExample1.png>>
% 

%% Open the Balanced Truncation Tab
% *Model Reducer* has three model reduction methods: Balanced Truncation,
% Mode Selection, and Pole/Zero Simplification. For this example, click
% *Balanced Truncation*. 
%
% <<../ReduceModelOrderUsingModelReducerExample2.png>>
 
%% 
% *Model Reducer* opens the *Balanced Truncation* tab and automatically
% generates a reduced-order model. The top plot compares the original and
% reduced model in the frequency domain. The bottom plot shows the energy
% contribution of each state, where the states are sorted from high energy to
% low energy.  The order of the reduced model, 14, is highlighted in the bar
% chart. In the reduced model, all states with lower energy contribution
% than this one are discarded.

%% Compute Multiple Approximations
% Suppose that you want to preserve the first, second, and third peaks of
% the model response, around 5.2 rad/s, 13 rad/s, and 25 rad/s. Try other
% model orders to see whether you can achieve this goal with a lower
% model order.  Compute a 5th-order and a 10th-order approximation in one
% of the following ways:
% 
%%
% 
% * In the *Reduced model orders* text box, enter |[5 10]|.
% * In the state-contribution plot, ctrl-click the bars for state 5 and
% state 10.
% 
% *Model Reducer* computes two new reduced-order models and displays them
% on the response plot with the original model |G|. To examine the three
% peaks more closely, Zoom in on the relevant frequency range.
% The 10th-order model captures the three peaks
% successfully, while the 5th-order model only approximates the first two
% peaks.  (For information about zooming and other interactions with the
% analysis plots, see <docid:control_ug.bu7d6e6>.)
%
% <<../ReduceModelOrderUsingModelReducerExample3.png>>
% 

%% Compare Reduced Models With Different Visualizations
% In addition to the frequency response plot of all three models, *Model
% Reducer* lets you examine the absolute and relative error between the
% original and reduced models. Select *Absolute error plot* to see the
% difference between the building and reduced models.
%
% <<../ReduceModelOrderUsingModelReducerExample4.png>>
% 

%%
% The 5th-order reduced model has at most -60dB error in the frequency
% region of the first two peaks, below about 30 rad/s. The error increases
% at higher frequencies. The 10th-order reduced model has smaller error
% over all frequencies.

%% Create Reduced Models in Data Browser
% Store the reduced models in the Data Browser
% by clicking *Create Reduced Model*. The 5th-order and 10th-order reduced
% models appear in the Data Browser with names |GReduced5| and
% |Greduced10|.
%
% <<../ReduceModelOrderUsingModelReducerExample5.png>>
% 
%%
% You can continue to change the model-reduction parameters and generate
% additional reduced models. As you do so, |GReduced5| and |Greduced10|
% remain unchanged in the Data Browser.

%% Focus on Dynamics at Particular Frequencies
% By default, balanced truncation in *Model Reducer* preserves DC gain,
% matching the steady-state response of the original and reduced models.
% Clear the *Preserve DC Gain* checkbox to better approximate
% high-frequency dynamics. *Model Reducer* computes new reduced models. The
% error in the high-frequency region is decreased at the cost of a slight
% increase in error at low frequencies.
%
% <<../ReduceModelOrderUsingModelReducerExample6.png>>
% 

%%
% You can also focus the balanced truncation on the model dynamics in a
% particular frequency interval. For example, approximate only the second
% peak of the building model around 13 rad/s. First, select the *Model
% response* plot to see the Bode plots of models. Then check *Select
% frequency range* checkbox. *Model Reducer* analyzes state contributions
% in the highlighted frequency interval only.
%
% You can drag the boundaries to change the frequency range interactively.
% As you change the frequency interval, the Hankel Singular Value plot
% reflects the changes in the energy contributions of the
% states. 
% 
% Enter the frequency limits |[10 22]| into the text box next to *Select
% frequency range*. The 5th-order reduced model captures the essential
% dynamics.  The 10th-order model has almost the same dynamics as the
% original building model within this frequency range.
%
% <<../ReduceModelOrderUsingModelReducerExample7.png>>
% 

%%
% Optionally, store these additional models in the Data Browser by clicking
% *Create Reduced Model*.
% 

%% Compare Models In Time Domain
% 
% You can compare time-domain responses of the stored reduced models and
% the original in the *Plots* tab. In the Data Browser, control-click to
% select the models you want to compare, |G|, |GReduced5|, and
% |GReduced10|.  Then, click |Step|. *Model Reducer* creates a step plot
% with all three models.
%
% Zooming on the transient behavior of this plot shows that |GReduced10|
% captures the time domain behavior of the original model well. However,
% the response of |GReduced5| deviates from the original model after about 3
% seconds. 
%
% <<../ReduceModelOrderUsingModelReducerExample8.png>>
%
%% Export Model for Further Analysis
% Comparison of the reduced and original models in the time and frequency
% domains shows that |GReduced10| adequately
% captures the dynamics of interest. Export that model to the MATLAB(R)
% workspace for further analysis and design.  In the *Model Reducer* tab,
% click *Export Model*.  Clear the check boxes for |G| and |Greduced5|, and
% click *Export* to export |Greduced10|.
%
% <<../ReduceModelOrderUsingModelReducerExample10.png>>
%%
% |Greduced10| appears in the MATLAB workspace as a state-space (|ss|)
% model.