|Contents   Functions      PDF Index|
Create minimal models of MIMO systems and apply reciprocity constraints to obtain scaled modal inputs and outputs.
OUT = id_rm(IN,multi) [psib,cpsi,new_res,new_po] = id_rm(res ,po,ci.IDopt) [phib,cphi,new_res,new_po] = id_rm(Rres,po,ci.IDopt) [psib,cpsi,new_res,new_po] = id_rm(res ,po,ci.IDopt,multi) OUT = id_rm('Command',Curve) % See accepted commands at end of doc
id_rm is more easily called using the idcom GUI figure Postprocessing tab, see section 2.8.
IN is a data structure (see Shapes at DOFs). Required fields are IN.res residues, IN.po poles, and IN.idopt identification options. Options used by id_rm are .FittingModel (Posit, Complex or Normal modes), .NSNA (number of sensors/actuators), .Reciprocity (not used, 1 FRF or true MIMO), .Collocated (indices of colloc. FRF when using reciprocity).
multi is an optional vector giving the multiplicity for each pole in IN.po.
OUT is a structure with fields (this format is likely to change in the future)
|.po||poles with appropriate multiplicity|
|.def||output shape matrix (CPSI)|
|.DOF||Sensor DOFs at which .DEF is defined|
|.psib||input shape matrix (PSIB)|
|.CDOF||indices of collocated FRFs|
|.header||header (5 text lines with a maximum of 72 characters)|
The low level calls giving res, po and ci.IDopt as arguments are obsolete and only maintained for backward compatibility reasons.
As shown in more detail in section 2.8, the residue matrix Rj of a single mode is the product of the modal output by the modal input. For a model in the residue form (residue res, poles po and options IDopt identified using id_rc for example), id_rm determines the modal input psib and output cpsi matrices such that
The residues can be either complex mode residues or normal mode residues. In that case the normal mode input phib and output cphi matrices are real.
The new_res matrix is the minimal approximation of res corresponding to the computed input and output matrices. id_rm uses the number of sensors IDopt(7) and actuators IDopt(8).
For MIMO systems (with the both the number of sensors IDopt(7) and actuators IDopt(8) larger than 1), a single mode has only a single modal output and input which implies that the residue matrix should be of rank 1 (see section 2.8.1). Residue matrices identified with id_rc do not verify this rank constraint. A minimal realization is found by singular value decomposition of the identified residue matrices. The deviation from the initial model (introduced by the use of a minimal model with isolated poles) is measured by the ratio of the singular value of the first deleted dyad to the singular value of the dyad kept. For example the following output of id_rm
Po # freq mul Ratio of singular values to maximum 1 7.10e+02 2 : 0.3000 k 0.0029
indicates that the ratio of the second singular value to the first is significant (0.3) and is kept, while the second dyad can be neglected (0.0029).
For a good identification, the ratios should be small (typically below 0.1). Large ratios usually indicate poor identification and you should update the poles using id_rc in a broad or narrow band update. Occasionally the poles may be sufficiently close to be considered as multiple and you should keep as many dyads as the modal multiplicity using the input argument multi which gives the multiplicity for each pole (thus the output shown above corresponds to a multiplicity of 2).
id_rm also enforces reciprocity conditions in two cases
It is reminded that for a reciprocal system, input and output shape matrices linked to collocated inputs/outputs are the transpose of each other (b=cT). Reciprocal scaling is a requirement for the determination of non-proportionally damped normal mode models using id_nor.
In MIMO cases with reciprocal scaling, the quality indication given by id_rm is
Po# freq mul sym. rel.e. 1 7.10e+02 2 : 0.0038 0.0057
which shows that the identified residue was almost symmetric (relative norm of the anti-symmetric part is 0.0038), and that the final relative error on the residue corresponding to the minimal and reciprocal MIMO model is also quite small (0.0057).
The C1=id_rm('permuteIO',C1); command renumbers transfer functions to use the reference order of sensors at each actuator in the case of hammer tests where there are more input locations than outputs.
The C1=id_rm('FixSign',C1); applies sign changes on sensors and inputs to generate positive sign transfers or modeshapes.
id_rm('Mass',Id); is the low level implementation of generalized mass extraction.
idcom, id_rc, id_nor, the demo_id demonstration