Contents     Functions     Index     Previous Next     PDF

3.1  iiplot interface tutorial



iiplot is the response viewer used by SDT. It is essential for the identification procedures but can also be used to visualize FEM simulation results.

As detailed in section 3.3, identification problems should be solved using the standard commands for identification provided in idcom while running the iiplot interface for data visualization. To perform an identification correctly, you need to have some familiarity with the interface and in particular with the iicom commands that let you modify what you display.

3.1.1  The main figure

For simple data viewing you can open an iiplot figure using ci=iiplot (or ci=iiplot(2) to specify a figure number). For identification routines you should use ci=idcom (the first 6 datasets handled by the figure are then fixed,  section 3.3).

You should also take a look at iimouse which is used to enable mouse and key press operations within iiplot, feplot, and ii_mac figures.

To familiarize yourself with the iiplot interface, run demosdt('demogartidpro'). Which opens the iiplot figure and the associated iiplot(2) properties figure whose tabs are detailed in the following sections.


Figure 3.1: Display figure of the iiplot interface.


Toolbar


Toggles the display or not of the iiplot property figure
Previous channel/deformation, see iicom ch+
Next channel/deformation
Fixed zoom on FRF, see iicom wmin. Note that the variable zoom is always active with iimouse zoom
Start cursor, see iimouse Cursor
refresh

Zoom and keyboard shortcuts

Drag your mouse on the plot to select a region of interest and see how you directly zoom to this region. Double click on the same plot to go back to the initial zoom. On some platforms the double click is sensitive to speed and you may want to type the i key with the axis of interest active. An axis becomes active when you click on it. When, as here, you have more than one axis, the current axis button and PlotType pull-down menu are updated when a new axis becomes current.

Open the ContextMenu associated with any axis (click anywhere in the axis using the right mouse button), select Cursor, and see how you have a vertical cursor giving information about data in the axis. To stop the cursor use a right click or press the c key.

Context menus and mouse clicks

The axes ContextMenu (click on the axis using the right mouse button) lets you select , set axes title options, set pole line defaults, ... The line ContextMenu lets you can set line type, width, color ...

The title/label ContextMenu lets you move, delete, edit ... the text

Click on pole lines (vertical dotted lines) and FRFs and see how additional information on what you just clicked on is given. You can hide the info area by clicking on it.

After running through these steps, you should master the basics of the iiplot interface. To learn more, you should take time to see which commands are available by reading the Reference sections for iicom (general list of commands for plot manipulations), iimouse (mouse and key press support for SDT and non SDT figures), iiplot (standard plots derived from FRFs and test results that are supported).

3.1.2  The curve stack

iiplot considers data sets in the following format This data is stored in iiplot figures as a Stack field (a cell array with the first column giving 'curve' type entries, the second giving a name for each dataset and the last containing the data, see stack_get). To allow easier access to the data, SDT handles objects are used. Thus the following calls are equivalent ways to get access to the data
 ci=iicom('curveload','gartid');
 iicom(ci,'pro');iicom(ci,'CurTab Stack'); % show stack tab

 % Normal use: the XF stack pointer
 XF1=iicom(ci,'curvexf');
 XF1(1)             % still the same dataset, indexed by number
 XF1('Test')        % still the same dataset, indexed by name
 XF2=XF1.GetData;   % Copy the data from the figure to variable XF2

 % Alternative refer the figure pointer stack
 ci.Stack{'Test'}  % a copy of the same data, selected by name
 ci.Stack{1,3}     % the same by index

 % If you really insist on low level calls
 r1=get(2,'userdata'); % sdth object containing the data (same as ci above)
 s=ci.vfields.Stack.GetData % get a copy of the stack (cell array with 
            % type,name,data where data is stored)
 s{1,3}     % the first data set


Figure 3.2: Stack tab of the iiplot interface.


The graphical representation of the stack shown in figure 3.2 lets you do a number of manipulations witch are available trough the context menu of the list of datasets in the stack

3.1.3  Handling what you display, axes and channel tabs

iiplot lets you display multiple axes see iicom Sub. Information about each axis is show in the axes tab.


Figure 3.3: Axes tabs of the iiplot interface.


For example open the interface with the commands below and see a few thing you can do
 [ci,XF]=idcom;iicom(ci,'curveload sdt_id');
 XF('IdFrf')=XF('Test'); % copy dataset
 XF('IdFrf').xf=XF('Test').xf*2; % double amplitude
 iicom('curtab Axes');
Once you have selected the datasets to be displayed, you can use the channel tab to scan trough the data.


Figure 3.4: Channel tabs of the iiplot interface.


Major commands you might want to know

3.1.4  Importing FRF data

There are two main mechanisms to import FRF data into SDT. Universal files are easiest if generated by your acquisition system. Writing of an import script defining fields used by SDT is also fairly simple and described below (you can then use ufwrite to generate universal files for export).

The ufread and ufwrite functions allow conversions between the xf format and files in the Universal File Format which is supported by most measurement systems. A typical call would be
 UFS=ufread('FileName.unv');  % read
 ci=iiplot;                   % initialize iiplot
 ci.Stack{1,3}=UFS(3)         % show UFS(3) in iiplot
where you read the database wrapper UFS (see xfopt), initialize the standard database wrapper XF used by iiplot and idcom, assign dataset 3 of UFS to dataset 1 of XF (assuming that dataset three represents frequency response functions of interest).

Note that some acquisition systems write many universal files for a set of measurements (one file per channel). This is now supported by ufread with a stared file name
 UFS=ufread('FileRoot*.unv'); 
Measured frequency responses are stored in the .xf field (frequencies in .w) and should comply with the specifications of the xf format (see details under xf ). Other fields needed to specify the physical meaning of each FRF are detailed in the xfopt reference section. When importing data from your own format or using a universal file where some fields are not correct, the SDT will generally function with default values set by the xfopt function, but you should still complete/correct these variables as much as possible.

For correct display of deformations and title/legend generation, you should set the XF(1).dof field (see more details in the xfopt response data section). For example one can consider a MIMO test with 2 inputs and 20 outputs stored as columns of variable xf with the rows corresponding to frequencies stored in w. You script will look like
 XF(1).w=w;
 XF(1).xf=xf;  % define the responses at all DOFs
 out_dof=[1:20]+.03'; % output dofs for 20 sensors in y direction
 in_dof=[1.03 10.03]; % input dofs for two shakers at nodes 1 and 10
 out_dof=out_dof(:)*ones(1,length(in_dof));
 in_dof=ones(length(out_dof),1)*in_dof(:)';
 XF(1).dof(:,1:2)=[out_dof(:) in_dof(:)];
 XF(1).idopt.nsna=size(out_dof);
 XF(1).idopt.recip='mimo';
You can also edit these values using the iiplot properties:channel tab.

For correct identification using id_rc, you should verify the fields of XF(1).idopt. These correspond to the IDcomGUI:Options tab (see section 3.3). You can also edit these values in a script. For correct identification, you should set
 XF=demosdt('demogartid');
 XF(1).idopt.Residual='3';
 XF(1).idopt.DataType='Acc';
 XF(1).idopt.Absci='Hz';XF(1).idopt.PoleU='Hz';
 iicom('wmin 6 40') % sets XF(1).idopt.Selected
 XF(1).idopt.Fit='Complex';
 XF(1).idopt  % display current options
For correct transformations using id_rm, you should also verify IDopt.NSNA (number of sensors/actuators), IDopt.Reciprocity and IDopt.Collocated.

For correct labels using iiplot you should set the abscissa, and ordinate numerator/denominator types in the data base wrapper. You can edit these values using the iiplot properties:channel tab. A typical script would declare frequencies, acceleration, and force using (see list with xfopt _datatype)
 UFS(2).x='Freq';UFS(2).yn='Acc';UFS(2).yd='Load';UFS(2).info

3.1.5  SDT 5 compatibility

With SDT 6, global variables are no longer used and iiplot supports display of curves in other settings than identification.

If you have saved SDT 5 datasets into a .mat file, iicom('CurveLoad FileName') will place the data into an SDT 6 stack properly. Otherwise for an operation similar to that of SDT 5, where you use XF(1).xf rather than the new XF('Test').xf, you should start iiplot in its identification mode and obtain a pointer XF (SDT handle object) to the data sets (now stored in the figure itself) as follows
 >> ci=iicom('curveid');XF=iicom(ci,'curveXF')

XF (curve stack in figure 2) = 

XF(1) : [.w    0x0, xf    0x0] 'Test'  : response (general or unknown) 
XF(2) : [.w    0x0, xf    0x0] 'IdFrf'  : response (general or unknown)
XF(3) : [.w    0x0, xf    0x0] 'IIxh'  : response (general or unknown) 
XF(4) : [.w    0x0, xf    0x0] 'IIxi'  : response (general or unknown) 
XF(5) : [.po   0x0, res   0x0] 'IdMain'  : shape data                  
XF(6) : [.po   0x0, res   0x0] 'IdAlt'  : shape data                   
The following table lists the global variables that were used in SDT 5 and the new procedure to access those fields.
XFdof described DOFs at which the responses/shapes are defined, see .dof field for response and shape data in the xfopt section, was a global variable pointed at by the XF(i).dof fields. This fields should now be defined directly.
IDopt which contains options used by identification routines, see idopt) is now stored in ci.IDopt.
IIw was a global variable pointed at by the XF(i).w fields. This fields should now be defined directly.
IIxf (main data set) was a global variable pointed at by the XF('Test').xf fields. This fields should now be defined directly.
IIxe (identified model) was a global variable pointed at by the XF('IdFrf').xf fields. This fields should now be defined directly.
IIxh (alternate data set) was a global variable pointed at by the XF('IIxh').xf fields. This fields should now be defined directly.
IIxi (alternate data set) was a global variable pointed at by the XF('IIxi').xf fields. This fields should now be defined directly.
IIpo (main pole set) was a global variable pointed at by the XF('IdMain').po fields. This fields should now be defined directly.
IIres (main residue set) was a global variable pointed at by the XF('IdMain').res fields. This fields should now be defined directly.

IIpo1 (alternate pole set) was a global variable pointed at by the XF('IdAlt').po fields. This fields should now be defined directly.
IIres1 (alternate residue set) was a global variable pointed at by the XF('IdAlt').res fields. This fields should now be defined directly.
XF was a global variable pointed holding pointers to data sets (it was called a database wrapper). The local variable XF associated with a given iiplot figure can be found using CurrentFig=2;ci=iiplot(CurrentFig); XF=iicom(ci,'curveXF').
The normalized datasets for use with idcom are generated using ci=idcom;XF=iicom(ci,'curvexf'). They contain four response datasets (XF('Test') to XF('IdFrf')) and two shape datasets (XF('IdMain') and XF('IdAlt')).

©1991-2007 by SDTools
Previous Up Next