SDT-base         Contents     Functions         Previous Next     PDF Index

iicom

Purpose

UI command function for FRF data visualization.

Syntax

iicom CommandString
iicom(ci,'CommandString') % specify target figure with pointer
out = iicom('CommandString')

Description

iicom is a standard UI command function which performs operations linked to the data visualization within the iiplot interface. A tutorial can be found in section 2.1.

Commands are text strings telling iicom what to do. If many iiplot figures are open, one can define the target giving an iiplot figure handle ci as a first argument.

iicom uses data stored in a stack (see section 2.1.2). iicom does not modify data. A list of commands available through iicom is given below. These commands provide significant extensions to capabilities given by the menus and buttons of the iiplot command figure.

Commands

command;

The commode help details generic command building mechanisms. Commands with no input (other than the command) or output argument, can be chained using a call of the form iicom(';Com1;Com2'). commode is then used for command parsing.

cax i, ca+

Change current axes. cax i makes the axis i (an integer number) current. ca+ makes the next axis current. For example, iicom(';cax1;show rea;ca+;show ima') displays the real part of the current FRFs in the first axis and their imaginary part in the second. (See also the iicom Sub command). The button indicates the number of the current axis. Pressing the button executes the ca+ command.

ch+, ch-, ch[+,-]i : next/previous

Next/Previous . These commands/buttons are used to scan through plots of the same kind. For iiplot axes, this is applied to the current data sets. For feplot axes, the current deformation is changed. You can also increment/decrement channels using the + and - keys when the current axis is a plot axis or increment by more than 1 using iicom('ch+i').

ch i, chc i, chall, ... select channel

Display channels/poles/deformations i. Channels refer to columns of datasets, poles or deformations. ch / chc respectively define the indices of the channels to be displayed in all /the current drawing axes. The vector of indices is defined by evaluating the string i. For example iicom ch[1:3], displays channels 1 to 3 in all axes.

For curve Multi-dim curve with dimension labels in the .Xlab field,ChAllMyLabel selects all channels associated with dimension MyLabel. This can be used to show responses at multiple operating conditions (typically stored as third or fourth dimension of curve.Y).

For multi-channel curves one can define the dimension name referring to the Xlab field in a cell array iicom(ci,'ch','Xlabname',i). For this to work properly note that all Xlabname entries must be different (e.g. several Unknown entries must thus be avoided).

% Build a multi-dim curve, see sdtweb('demosdt.m#DemoGartteCurve')
r1=demosdt('demoGartteCurve')
ci=iicom('curveInit','Example',r1);
iicom('ChAllzeta') % All channels that correspond to 'zeta' r1.Xlab{4}
% Cell selection with Xlab string and indices (each row picks a dimension)
iicom('ch',{'Output DOFs',4;'Input DOFs',[1,2]}) % Accessible with 'pick' button
iicom('curtabChannel')

Cursor, ods

The cursor is usually started with the axes context menu (right click on a given axis).

iicom CursorOnFeplotshows a cursor on the iiplot curve that let you show corresponding time deformation in feplot.

fecom CursorNodeIiplot gives more details.

iicom('ods') provides an operational deflection shape cursor.

Curve [Init,Load,Save,Reset, ...]

These commands are used to manipulate datasets.
Most of them are of the form iicom('Curve...',CurveNames). Then CurveNames can be a string with a curve name, a cell array of string with curve names or a regular expression (beginning by #) to select some curve names. If CurveNames is omitted, a curve a dialog box is opened to select targeted curves. Otherwise these commands can be accessed through the GUI, in the Stack tab of the iiplot properties figure.

Dock Id, MAC, TestBas

Starting with SDT 7, classical SDT uses are guided through multiple figures combined in docks.

ga i

Get handle to a particular axis. This is used to easily modify handle graphics properties of iiplot axes accessed by their number. For example, you could use set(iicom('ga1:2'),'xgrid','on') to modify the grid property of iiplot axes 1 and 2.

If you use more than one feplot or iiplot figure, you will prefer the calling format cf=iiplot; set(cf.ga(1:2),'xgrid','on').

Note : the preferred approach is now to define fixed displays using comgui objSet commands stored in the curve PlotInfo ua.axProp entry. For example

 C1=fe_curve('testSin T 0.2',linspace(0,10,100e3));
 C1.Xlab={'Time','Resp'};
 r1={'@title',{'String','Main Title','FontSize',16}};
 C1=sdsetprop(C1,'PlotInfo.ua.axProp',r1{:});
 iicom('curveinit','SineWithFixedTitle',C1);

For backward compatibility, header axes are still supported (the change is to objSet allows better tab switching). Header axes are common to all plot functions and span the full figure area (normalized position [0 0 1 1]). You can get a pointer to this axis with cf.head and add any relevant object there.

ci=iicom('curveload','gartid'); % Load a test case
h=text(0,0,'Main Title', ...
 'parent',ci.head,'unit','normalized','position',[.05 .95], ...
 'fontsize',20,'fontname','Times', ...
 'tag','iimain');
iimouse('textmenu',h); % Allow Editing

iicom('HeadClear') deletes all objects from the header axis of the current figure.

IIxData set selection iicomIIx:name [On,Off,Only], cIIx ...

Curve set selection for display in the current axis.

IIx:TestOnly displays the ci.Stack{'Test'} data set only in all axes (on and off turn the display on or off respectively). By adding a c in front of the command (cIIx:Test for example), the choice is only applied to the current axis. You can also toggle which of the data sets are shown using the Variables menu (applies to all axes) or axis context menu applies to (current axis).

The alternate calling format iicom('iix',{'Test','IdFrf'}) can be used to specify multiple sets to display. iicom('iixOnly',{'Test','IdFrf'}) will display those two sets only.

IIxf, IIxe, IIxh, IIxi [0n,Off] are still supported for backward compatibility.

Polar

Polar plots are used for cases where the abscissa is not the standard value. Accepted values (use a command of the form Polar val) are

PoleLine [ ,c] [ ,3], IIpo, ...

Pole line display. are dotted vertical lines placed at relevant abscissa values. These lines can come from

By itself, PoleLine toggles the state of pole line display. The c option applies the command to the current axis only. PoleLine3 places the lines on the pole norm rather than imaginary part used by default (this corresponds to the ii_plp formats 2 and 3).

The state of the current axis (if it is an iiplot axis) can also be changed using the IIplot:PoleLine menu (PoleLineTog command).

Low level commands IIpo and IIpo1 are low level commands force/disable display of pole lines in the main identified model
ci.Stack{'IdMain'}.po or the alternate set ci.Stack{'IdAlt'}.po. With cIIpo the choice is only applied to the current axis. These options are usually accessed through menus.

ImWrite, ...

comgui ImWrite is the generic command used to generate a clean printout of figures. It supports many basic capabilities, filename generation, cropping, ... When using iiplot and feplot, it may often be interesting to generate multiple images by scanning through a selected range of channels. A command of the form iicom(cf,'ImWrite',RO) is then used with RO a structure containing generic image capture fields (see comgui ImWrite) and fields specific to multi-image capture

To automate figure generation, it is typically desirable to store image capture information in the set of deformations or the curve. A curve.ImWrite field in iiplot can be used to predefine the option structure, for user defined dynamic change of settings, defining a ua.PostFcn callback (see iiplot PlotInfo) is typically the appropriate approach. For feplot, def.ImWrite is used for multi-image capture but more evolved file name generation is found using comgui def.Legend.

% Example of 4 views in feplot
 cf=demosdt('DemoGartFEplot')
 cingui('PlotWd',cf,'@OsDic(SDT Root)','FniiLeg');
 cf.def=sdsetprop(cf.def,'Legend', ...
     'string',{'Garteur FE';'$Title'}) % Define a two line title
 RO=comgui('imfeplot4view'); % Predefined strategy to generate 4 views
 comgui('PlotWd',cf,'FileName', ...
  {'@PlotWd','Root','@ii_legend(1:2)','@cf.ga.View','.png'});
 fecom(cf,'ImWrite');comgui('iminfo',cf)

% Example of two channels in iiplot, with finish on same view
 ci=iicom('curveload -noDock','gartid');iicom('ch20')
 cingui('PlotWd',ci,'@OsDic(SDT Root)', ...
     {'ImToFigN','ImSw50','WrW49c',  ... % Duplicate, Large wide
      'FniC'});%FileName generation instruction
 ci.Report_('ch',1:2);

comgui('ImFeplot') returns a list of standard calls to options for image generation.

Pro

iicom('ProFig') shows or hides the properties figure.
iicom(ci,'ProRefreshIfVisible') refreshes the property figure when it is visible.
iicom(ci,'ProInit') reinits the property figure.

Show plot type

Specify the current axis type. The iiplot plot functions support a number of plot types which can be selected using the Show menu/command. From command line, you can specify the target axis with a-cax i option.

The main plot types are

SubSave, SubSet

SubSavei saves the current configuration of the interface in a stack entry TabInfo. This configuration can then be recalled with SubSeti. The TabInfo entry is also augmented when new curves are shown so that you can come back to earlier displays. SubSetIi selects an index in the TabInfo stack.

SubToFig

SubToFig copies the iiplot figure visualization to a standard matlab figure, thus allowing an easier handling to produce customized snapshots (see also iicom ImWrite). Reformatting is then typically performed with comgui objSet.

Command option -cfi forces the visualization output to figure i.

Command option legi allows iiplot legend handling in the visualization. leg0 removes the legend, leg1 keeps it as in iiplot, leg2 transforms the iiplot legend in a standard matlab legend. The legend is removed by default.

Sub plot init

This command is the entry point to generate multiple drawing axes within the same figure.

iicom Sub by itself checks all current axes and fixes anything that is not correctly defined.

Accepted command options are

TitOpt [ ,c]i, title and label options

Automated title/label generation options. TitOpti sets title options for all axes to the value i. i is a 5 digit number with

The actual meaning of options depends on the plot function (see iiplot for details). By adding a c after the command (titoptc 111 for example), the choice is only applied to the current axis.

When checking the axes data (using iicom Sub command), one rebuilds the list of labels for each dataset using iicom('chlab'). This cell array of labels, stored in ci.ua.chlab, gives title strings for each channel (in rows) of datasets (in columns) with names given in ci.ua.sList. The label should start with a space and end with a comma. The dataset name is added if multiple datasets are shown. Not to display the curve name in the legend you can define and set ci.ua.LegName = 0, going back to default behavior is obtained by ci.ua.LegName = 1.

Modifying the ci.IDopt.unit value changes the unit assumed for identification but not the dataset units.

Titles and labels are not regenerated when using ch commands. If something is not up to date, use iicom Sub which rechecks everything.

Scale : xlin,xlog ...

Default values for xscale and yscale. xlin, xlog, ylin, ylog, set values. xy+1, xy+2 are used to toggle the xscale and yscale respectively (you can also use the IIplot:xlin and IIplot:ylin menus). Other commands are xy1 for x-lin/y-lin, xy2 for x-log/y-lin, xy3 for x-lin/y-log, xy4 for x-log/y-log.

You can all use the all option to change all axes: iicom('xlog all').

ytight[on,off,] can be used to obtain tight scales on the y axis. The x axis is typically always tight. Automated ztight is not yet supported.

Limits : wmin, xlim, xmin, xmax, wmo, w0, ...

Min/max abscissa selection is handled using the fixed zoom (graphically use button). Accepted commands are

The limit value(s) can also be forwarded as last argument : iicom('xlim',[min max]).

When performing identification with idcom  the fixed zoom corresponds to the working frequency range and corresponds to indices in ci.IDopt(4:5) (see IDopt, turn off with idcom('Off')). The index of the frequency closest to the specified min/max is used. When viewing general responses, the information for the abscissa limits is stored in the axis and is thus lost if that axis is cleared.

Min/max ordinate selection (fixed limits of y axis or z axis for 2D plots) is also sometimes desirable.

This can be performed by providing ylim axes property through the iiplothandle ci with command ci.ua.axProp={'ylim',[ymin ymax]};

See also

iiplot, section 2.1, idcom


©1991-2024 by SDTools
Previous Up Next