SDT-base Contents   Functions      PDF Index |
The pole/residue representation is often not the desired format. Access to transformations is provided by the post-processing tab in the idcom properties figure. There you can select the desired output format and the name of the variable in the base MATLAB workspace you want the results to be stored in.
The id_rm algorithm is used for the creation of minimal and/or reciprocal pole/residue models (from the command line use sys=id_rm(ci.Stack{'IdMain'})). For the extra step of state-space model creation use sys=res2ss(ci.Stack{'IdMain'}).
nor=res2nor(ci.Stack{'IdMain'}) or nor=id_nor(ci.Stack{'IdMain'}) allow transformations to the normal mode form. Finally direct conversions to other formats are given by struct=res2xf(ci.Stack{'IdMain'},w) with w=ci.Stack'Test'.w, and [num,den]=res2tf(ci.Stack{'IdMain'}).
These calls are illustrated in demo_id.
Theory
As mentioned under res , the residue matrix of a mode can be written as the product of the input and output shape matrices, so that the modal contribution takes the form
(2.9) |
For a single mode, the product {cψj}{ψjTb} has rank 1. Thus for a truly MIMO test (with more than one input and output), the residue matrix found by id_rc usually has full rank and cannot be written as shown in (2.9). In some cases, two poles of a structure are so close that they can be considered as a multiple pole λj =λj+1, so that
(2.10) |
In such cases, the residue matrix [Rj] has rank two. Minimality (i.e. rank constraint on the residue matrix) is achieved by computing, for each mode, the singular value decomposition of the residue matrix Rj=UΣ VT. By definition of the singular value decomposition
(2.11) |
is the best rank 1 approximation (in the matrix norm sense) of Rj. Furthermore, the ratio σ2/σ1 is a measure of the relative error made by retaining only the first dyad. This ratio gives, for MIMO tests, an indication of the coherence of estimated mode shapes and occasionally an indication of the pole multiplicity if two poles are sufficiently close to be considered as identical (see the example below).
Minimal pole/residue models are directly linked to a state-space model of the form
(2.12) |
which can then be transformed to a real valued state-space model (see res2ss) or a second order normal mode model (see section 2.9.3).
Practice
id_rm builds a rank constrained approximation of the residue matrix associated to each pole. When not enforcing reciprocity, the output of the call
ci=demosdt('Demo demo_id') ci.IDopt.nsna=[5 2]; ci.IDopt.reci='no'; RES = id_rm(ci.Stack{'IdMain'},[1 2 1 1]); % or low level call [pb,cp,new_res]=id_rm(ci.Stack{'IdMain'}.res,ci.Stack{'IdMain'}.po, ... ci.IDopt,[1 2 1 1]);
returns an output that has has the form
The system has 5 sensors and 2 actuators FRF 7 (actuator 2 sensor 2) is collocated Po # freq mul Ratio of sing. val. to max 1 7.10e+02 2 : 0.3000 k 0.0029 2 9.10e+02 1 : 0.1000 0.0002 3 1.20e+03 1 : 0.0050 0.0001 4 1.50e+03 1 : 0.0300 0.0000
where the first three columns indicate pole number, frequency and retained multiplicity and the following give an indication of the difference between the full rank residue matrix and the rank constrained one (the singular value ratio should be much smaller than 1).
In the result show above, pole 1 is close to being rank 2 since the difference between the full order residue matrix and a rank 1 approximation is of the order of 30% while the difference with a rank 2 approximation is only near 0.2%.
The fact that a rank 1 approximation is not very good can be linked to actual multiplicity but more often indicates poor identification or incoherent data. For poor identification the associated pole should be updated as shown in section 2.6. For incoherent data (for example modes slightly modified due to changing shakers during sequential SIMO tests), one should perform separate identifications for each set of coherent measurements. The rank constrained approximation can then be a way to reconcile the various results obtained for each identification.
If the rank of the residue matrix is truly linked to pole multiplicity, one should try to update the identification in the vicinity of the pole: select a narrow frequency range near this pole, then create and optimize a two or more pole model as shown section 2.2.3. True modal multiplicity being almost impossible to design into a physical structure, it is generally possible to resolve such problems. Keeping multiple poles should thus only remain an intermediate step when not having the time to do better.
Theory
In many cases, the structures tested are assumed to be reciprocal (the transfers force at A/response at B and force at B/response at A are equal) and one wants to build a reciprocal model. For modal contributions of the form (2.9), reciprocity corresponds to the equality of collocated input and output shape matrices
(2.13) |
For reciprocal structures, the residue matrix associated to collocated FRFs should be symmetric. id_rm thus starts computing the symmetric part of the collocated residues . This matrix being symmetric, its singular value decomposition is given by which leads to the reciprocal input and output shape matrices
(2.14) |
Typically, there are many more sensors than inputs. The decomposition (2.14) is thus only used to determine the collocated input shape matrices and the output shape matrices at all sensors are found as solution of a least square problem {cψj}=[Rj]{ψjTb col}+ which does require that all inputs have a collocated sensor.
Reciprocity provides scaled input and output shape matrices. This scaling is the same as that obtained with the analytical scaling condition (5.24). The interest of using reciprocal models is to predict non measured transfer functions.
Practice
When collocated transfer functions are declared and ci.IDopt.Reciprocity='1 FRF' or MIMO, id_rm seeks a minimal and reciprocal approximation to the model. For the call
ci=demosdt('Demo demo_id') ci.IDopt.nsna=[5 2]; ci.IDopt.Col=[1 7]; ci.IDopt.reci='mimo'; RES = id_rm(ci.Stack{'IdMain'},[1 1 1 1]); ci.Stack{'curve','IIxh'}=res2xf(RES,ci.Stack{'Test'}.w); iicom('IIxhOn') % or low level call [pb,cp,new_res,new_po]=id_rm(ci.Stack{'IdMain'}.res,ci.Stack{'IdMain'}.po, ... ci.IDopt,[1 1 1 1]); ci.Stack{'curve','IIxh'} = ... res2xf(struct('res',new_res,'po',new_po,'idopt',ci.IDopt),ci.Stack{'Test'}.w); iicom('IIxhOn')
id_rm shows information of the form
The system has 5 sensors and 2 actuators FRF 1 (actuator 1 sensor 1) is collocated FRF 7 (actuator 2 sensor 2) is collocated Reciprocal MIMO system Po# freq mul sym. rel.e. 1 1.13e+02 1 : 0.0001 0.0002 2 1.70e+02 1 : 0.0020 0.0040 3 1.93e+02 1 : 0.0003 0.0005 4 2.32e+02 1 : 0.0022 0.0044
where the output indicates the number of sensors and actuators, the collocated FRFs, the fact the resulting model will enforce MIMO reciprocity, and details the accuracy achieved for each mode.
The algorithm first enforces symmetry on the declared collocated transfer functions the symmetry error sym. shows how asymmetric the original residue matrices where. If for a given mode this number is not close to zero, the mode is poorly identified or the data is far from verifying reciprocity and building a reciprocal model makes no sense.
The algorithm then seeks a rank constrained approximation, the relative error number rel. e. shows how good an approximation of the initial residue matrix the final result is. If this number is larger than .1, you should go back to identifying a minimal but non reciprocal model, determine the actual multiplicity, and update the pole, if it is not very well identified, or verify that your data is really reciprocal.
You can check the accuracy of FRF predicted with the associated model using the synthesized FRFs (IIxh/ci.Stack{'IIxh'} in the example above). An alternate FRF generation call would be
[a,b,c,d]=res2ss(res,po,idopt); IIxh=qbode(a,b,c,d,IIw*2*pi);
This more expensive computationally, but state-space models are particularly useful for coupled system analysis and control synthesis.
You can also use reciprocal models to predict the response of untested transfer functions. For example the response associated to a shaker placed at the uind sensor (not a collocated one) can be computed using
ci=demosdt('Demo demo_id') [psib,cpsi]=id_rm(ci.Stack{'IdMain'}.res,ci.Stack{'IdMain'}.po, ... ci.IDopt,[1 1 1 1]); uind=3; res_u = (cpsi*diag(cpsi(uind,:))).'; RES=struct('res',res_u,'po',ci.Stack{'IdMain'}.po,'idopt',ci.IDopt); ci.Stack{'curve','IdFrf'}=res2xf(RES,ci.Stack{'Test'}.w); iiplot
You should note that the res_u model does not contain any residual terms, since reciprocity does not give any information on those. Good predictions of unmeasured transfers are thus limited to cases where residual terms can be neglected (which is very hard to know a priori).
While the most accurate viscous damping models are obtained with a full damping matrix Γ (supported by psi2nor and id_nor as detailed in the next section), modal damping (where Γ is assumed diagonal which is valid assumption when (2.19) is verified) is used in most industrial applications and is directly supported by id_rc, id_rm and res2nor. The use of this functionality is demonstrated in demo_id.
For a modally damped model (diagonal modal damping matrix Γ), the normal mode model (5.4) can be rewritten in a rational fraction form (with truncation and residual terms)
(2.15) |
This parameterization, called normal mode residue form, has a symmetric pole pattern and is supported by various functions (id_rc, id_rm, res2xf , ...) through the use of the option ci.IDopt.Fit='Normal'. As for the complex residues (5.30), the normal mode residue matrix given by id_rc and used by other functions is stacked using one row for each pole or asymptotic correction term and, as the FRFs (see the xf format), a column for each SISO transfer function (stacking NS columns for actuator 1, then NS columns for actuator 2, etc.)
Assuming that the constraint of proportional damping is valid, the identified residue matrix Tj is directly related to the true normal modes
(2.16) |
and the dyadic decomposition of the residue matrix can be used as in the complex mode case (see section 2.9.1 and the function id_rm) to obtain a minimal and/or reciprocal models (as well as scaled input and output shape matrices).
The scaling implied by equations (2.15) and (2.16) and used in the functions of the Toolbox is consistent with the assumption of unit mass normalization of the normal modes (see details under nor ). This remains true even for multiple modes. A result rarely obtained by other methods.
When a complex mode identification has been performed (ci.IDopt.Fit='Complex' or 'Posit'), the function res2nor also provides a simple approximation of the complex residue model by a normal mode residue model.
Theory
The complex modes of a minimal/reciprocal model are related to the mass / damping / stiffness matrices by (see Ref. [19])
(2.17) |
if and only if the complex modes are also proper. That is, they verify verify
(2.18) |
The transformation id_nor is thus done in two stages. id_rm is used to find a minimal and reciprocal approximation of the identified residue model of the form (2.12). psi2nor then determines c and such that the verify the condition (2.18) and is "optimally" close to the cψ resulting from id_rm. Using the complex modes and the identified poles λ, the matrices are then computed and the model transformed to the standard normal mode form with no further approximation.
The possibility to perform the transformation is based on the fact that the considered group of modes is not significantly coupled to other modes by damping [19]. Groups of modes which can be approximated by a second order non proportionally damped model can be easily detected using the frequency separation criterion which must be verified between modes j in the group and modes k outside the group
(2.19) |
If there does not exist a normal mode model that has complex modes close to the identification result c ψ, the algorithm may not work. This will happen in particular if cψΛψTcT=cM−1cT does not have NQ positive eigenvalues (estimated mass not positive definite).
Practice
For comparisons with undamped FE models, it is essential to obtain estimates of normal modes. The most accurate results are obtained using a non-proportionally damped normal mode model obtained with id_nor. A coarse approximation is given by res2nor(useful if the identification is not good enough to build the minimal and reciprocal model used by id_nor). In such cases you can also consider using id_rc with the assumption of proportional damping which directly identifies normal modes (see more details in section 2.9.3).
Scaling problems are often encountered when using the reciprocity to condition to scale the complex modes in id_rm. The function id_nor allows an optimization of collocated residues based on a comparison of the identified residues and those linked to the normal mode model. You should be aware that id_nor only works on very good identification results, so that trying it without spending the time to go through the pole update phase of id_rc makes little sense.
The use of this functionality is demonstrated in the following example.
ci=demosdt('demodemo_id') % load data and identify f=ci.Stack{'Test'}.w; nor = id_nor(ci.Stack{'IdMain'}); nor2xf(nor,f,'hz iiplot "IdFrf"'); % Compute response % compute residual effects and add normal model contributions res2xf(ci.Stack{'IdMain'},f,ci.IDopt,[5 6],'iiplot "Nor+Stat"');% residues ci.Stack{'Nor+Stat'}.xf=ci.Stack{'Nor+Stat'}.xf+nor2xf(nor,f,'hz'); iicom('ch1');
The normal mode input nor.pb and output nor.cp matrices correspond to those of an analytical model with mass normalized modes. They can be compared (ii_mac) or combined (fe_exp) with analytical models and the modal frequencies nor.freq and damping matrix nor.ga can be used for predictions (see more details in section 3.4).
The id_nor and res2nor algorithms only seek approximations the modes. For FRF predictions one will often have to add the residual terms. The figure below (taken from demo_id) shows an example where including residual terms tremendously improves the prediction. Out of band modes and residual terms are here represented by the E(s) term. Second order models are said to be complete when E(s) can be neglected [20]. The addition of residual terms was illustrated in the example above.