idopt

idopt#

Purpose

handling of options used by the identification related routines.

Description

idopt is the function handling identification options. Identification options associated with idcom figures are used when generating new identifications. They should be modified using the ci.IDopt pointer or the IDopt tab in the figure. In the text output below

>> ci=idcom; ci.IDopt
  (ID options in figure(2)) = 
   ResidualTerms : [ 0 | 1 (1) | 2 (s^-2) | {3 (1 s^-2)} | 10 (1 s)]
   DataType : [ {disp./force} | vel./force | acc./force ]
   AbscissaUnits : [ {Hz} | rd/s | s ]
   PoleUnits : [ {Hz} | rd/s ]
   SelectedRange : [ 1-3124 (4.0039-64.9998) ]
   FittingModel : [ Posit. cpx | {Complex modes} | Normal Modes]
   NSNA : [ 0 sensor(s) 0 actuator(s) ]
   Reciprocity : [ {Not used} | 1 FRF | MIMO ]
   Collocated : [ none declared ]

currently selected value are shown between braces { } and alternatives are shown.

After performing an identification, the options used at the time are copied to the result. Thus the ci.Stack{'IdMain'}.idopt is a copy of the figure options when the identification was performed. Some manipulations possible with the res2nor,res2ss,id_nor, ... functions may require modifications of these options (which are different from the idcom figure options.

The SDT handle object used to store options is very permissive in the way to change values from the command line (for GUI operation use the IDopt tab). ci.IDopt.OptName=OptValue sets the option. OptName need only specify enough characters to allow a unique option match. Thus ci.IDopt.res and ci.IDopt.ResidualTerms are equivalent. Here are a few examples

demosdt('demoGartIdEst');ci=idcom;
ci.IDopt.Residual=0; % modify estimation default
ci.IDopt.Selected=[100  2000];
ci.IDopt.Po='Hz';
ci.IDopt % changed
ci.Stack{'IdMain'}.idopt % not changed until new identification

The following is a list of possible options with indications as to where they are stored. Thus ci.IDopt.res=2 is simply a user friendly form for the old call ci.IDopt(6)=2 which you can still use.

Res Residual terms selection (stored in ci.IDopt(1)) and corresponding to (5.26)
 0none
 1Static correction (high frequency mode correction)
 2Roll-off (s−2, low frequency mode correction).
 3Static correction and roll-off (default)
 101 and s, this correction is only supported by id_rc and should be used for identification in narrow bandwidth (see ii_poest for example)
 -iAn alternate format uses negative numbers with decades indicating powers (starting at s−2). Thus Ass=-1101 means an asymptotic correction with terms in s−2,1,s
Data type (stored in ci.IDopt(2))
 0displacement/force (default)
 1velocity/force
 2acceleration/force
Abscissa units for vector w can be Hz, rad/s or seconds
Pole units can be Hz or rad/s
  units are actually stored in ci.IDopt(3) with units giving abscissa units (01 w in Hertz, 02 w in rad/s, 03 w time seconds) and tens pole units (10 po in Hertz, 20 po in rad/s). Thus ci.IDopt(3)=12 gives w in rad/sec and po in Hz.
Selected frequency range indices of first and last frequencies to be used for identification or display (stored in ci.IDopt(4:5))
Fitting model (see res , stored in ci.IDopt(6))
 0positive-imaginary poles only, complex mode residue
 1complex mode residue, pairs of complex-conjugate poles (default)
 2normal mode residue
ns,na  number of sensors/actuators (outputs/inputs) stored in ci.IDopt(7:8))
Recip method selection for the treatment of reciprocity (stored in ci.IDopt(12))
 1means that only iC1 (ci.IDopt(13)) is declared as being collocated. id_rm assumes that only this transfer is reciprocal even if the system has more collocated FRFs
 na(number of actuators) is used to create fully reciprocal (and minimal of course) MIMO models using id_rm. na must match non-zero values declared in iCi.
 -nc(with nc the number of collocated FRFs) is used to declare collocated FRFs while not enforcing reciprocity when using id_rm.
iC1 ...  indices of collocated transfer functions in the data matrix (see the xf format page )

To make a copy of the data, and no longer point to the figure, use ci.IDopt.GetData.
iop2 = idopt returns a SDT handle to a set options that may differ from those of used by idcom.

It is possible to set back some idopt values to default regarding the data structure XF with this syntax XF.idopt.defaultnsna (for example to reassign the number of sensors and the number of actuators that may have changed)

See also

xfopt, idcom, iiplot