Balanced model truncation for normalized coprime factors
GRED = ncfmr(G) GRED = ncfmr(G,order) [GRED,redinfo] = ncfmr(G,key1,value1,...) [GRED,redinfo] = ncfmr(G,order,key1,value1,...)
ncfmr
returns a reduced order model GRED
formed by a set of balanced normalized coprime factors and a struct array redinfo
containing the left and right coprime factors of G and their coprime Hankel singular
values.
Hankel singular values of coprime factors of such a stable system indicate the respective “state energy” of the system. Hence, reduced order can be directly determined by examining the system Hankel SV's.
With only one input argument G
, the function will show a Hankel
singular value plot of the original model and prompt for model order number to
reduce.
The left and right normalized coprime factors are defined as [1]
where there exist stable Ur(s), Vr(s), Ul(s) and Vl(s) such that
The left/right coprime factors are stable, hence implies Mr(s) should contain as RHP-zeros all the RHP-poles of G(s). The coprimeness also implies that there should be no common RHP-zeros in Nr(s) and Mr(s), i.e., when forming , there should be no pole-zero cancellations.
This table describes input arguments for ncmfr
.
Argument | Description |
---|---|
G | LTI model to be reduced (without any other inputs will plot its Hankel singular values and prompt for reduced order) |
ORDER | (Optional) Integer for the desired order of the reduced model, or optionally a vector packed with desired orders for batch runs |
A batch run of a serial of different reduced order models can be generated by
specifying order = x:y
, or a vector of integers. By default, all the
anti-stable part of a system is kept, because from control stability point of view,
getting rid of unstable state(s) is dangerous to model a system. The
ncfmr
method allows
the original model to have jω-axis singularities.
'
MaxError
'
can be
specified in the same fashion as an alternative for
'
ORDER
'
.
In this case, reduced order will be determined when the sum of the tails of the Hankel
singular values reaches the
'
MaxError
'
.
Argument | Value | Description |
---|---|---|
' MaxError ' | A real number or a vector of different errors | Reduce to achieve H∞ error. When present,
|
' Display ' |
| Display Hankel singular plots (default
|
' Order ' | integer, vector or cell array | Order of reduced model. Use only if not specified as 2nd argument. |
Weights on the original model input and/or output can make the model reduction algorithm focus on some frequency range of interests. But weights have to be stable, minimum phase, and invertible.
This table describes output arguments.
Argument | Description |
---|---|
GRED | LTI reduced order model, that becomes multi-dimensional array when input is a serial of different model order array. |
REDINFO | A STRUCT array with 3 fields:
|
G
can be stable or unstable, continuous or discrete.
Given a continuous or discrete, stable or unstable system, G
, the following commands can get a set of reduced order models based on your selections:
rng(1234,'twister'); G = rss(30,5,4); G.D = zeros(5,4); [g1, redinfo1] = ncfmr(G); % display Hankel SV plot % and prompt for order (try 15:20) [g2, redinfo2] = ncfmr(G,20); [g3, redinfo3] = ncfmr(G,[10:2:18]); [g4, redinfo4] = ncfmr(G,'MaxError',[0.01, 0.05]); for i = 1:4 figure(i) eval(['sigma(G,g' num2str(i) ');']); end
Given a state space (A,B,C,D) of a system and k, the desired reduced order, the following steps will produce a similarity transformation to truncate the original state-space system to the kth order reduced model.
where
Nl(:= Ac, Bn, Cc, Dn)
Ml := (Ac, Bm, Cc, Dm)
Cl = (Dm)–1Cc
Dl = (Dm)–1Dn
[1] M. Vidyasagar. Control System Synthesis - A Factorization Approach. London: The MIT Press, 1985.
[2] M. G. Safonov and R. Y. Chiang, “A Schur Method for Balanced Model Reduction,” IEEE Trans. on Automat. Contr., vol. AC-2, no. 7, July 1989, pp. 729-733.