SDT-base         Contents     Functions         Previous Next     PDF Index

4.7  Sensors : reference information

After a description of standard input forms in section 4.6, this section is a reference for sensor definition strategies in SDT. Sensors are used for

The underlying idea of sensors is that outputs are related to degree of freedom or state through an observation equation {y}=[c]{q}. This general objective is supported by the use of SensDof entries.

4.7.1  Topology correlation and observation matrix

This section lists the main commands used to build the observation matrix once sensors are defined :

SensMatch

Once sensors defined (see trans, ...), sensors must be matched to elements of the mesh. This is done using
model = fe_case(model,'sensmatch',SensDofEntryName);
You may omit to provide the name if there is only one sensor set. The command builds the observation matrix associated to each sensor of the entry Name, and stores it as a .cta field, and associated .DOF, in the sensor stack.

Storing information in the stack allows multiple partial matches before generating the global observation matrix. The observation matrix is then obtained using
Sens = fe_case(model,'sens',SensDofEntryName);

The matching operation requires finding the elements that contain each sensor and the position within the reference element shape so that shape functions can be used to interpolate the response. Typical variants are

In an automated match, the sensor is not always matched to the correct elements on which the sensor is glued, you may want to ensure that the observation matrices created by these commands only use nodes associated to a subset of elements. You can use a selection to define element subset on which perform the match. If you want to match one or more specific sensors to specific element subset, you can give cell array with SensId of sensor to match in a first column and with element string selector in a second column.
model=fe_case(model,'SensMatch',Name,{SensIdVector,'FindEltString'});

This is illustrated below in forcing the interpolation of test node 1206 to use FEM nodes in the plane where it is glued.

 cf=demosdt('DemoGartDataCoshape plot');
 fe_case(cf,'sensmatch -near')
 sdth.urn('Tab(Cases,sensors){Proview,on}',cf);
 % use fecom CursorSelOn to see how each sensor is matched.
 cf.CStack{'sensors'}.Stack{18,3}
 % modify link to 1206 to be on proper surface
 cf.mdl=fe_case(cf.mdl,'SensMatch-near',...
     'sensors',{1206.03,'withnode {z>.16}'});
 cf.CStack{'sensors'}.Stack{18,3}
 % force link to given node (may need to adjust distance)
 cf.mdl=fe_case(cf.mdl,'SensMatch-rigid radius .5','sensors',{1205.08,21});
 cf.CStack{'sensors'}.Stack{19,3}

 fecom('showlinks sensors');fecom('textnode',[1206 1205])

Sens, observation

This command is used after SensMatch to build the observation equation that relates the response at sensors to the response a DOFs

 
    (4.1)

where the c matrix in stored in the sens.cta field and DOFs expected for q are given in sens.tdof.

After the matching phase, one can build the observation matrix with
SensFull=fe_case(model,'sens',SensDofEntryName) or when using a reduced superelement model SensRed=fe_case(model,'sensSE',SensDofEntryName). Note that with superelements, you can also define a field .UseSE=1 in the sensor entry to force use of the reduced model. This is needed for the generation of reduced selections in feplot (typically cf.sel='-Test').

The following example illustrates nominal strategies to generate the observed shape, here for a static response.

model=demosdt('demoUbeamSens'); def=fe_simul('static',model);

% Manual observation, using {y} = [c] {q}
sens=fe_case(model,'sens');
def=feutilb('placeindof',sens.DOF,def); % If DOF numbering differs
% could use  sens=feutilb('placeindof',def.DOF,sens); if all DOF present
y=sens.cta*def.def
% Automated curve generation
C1=fe_case('sensObserve',model,'sensor 1',def)

DofLoadSensDof

The generation of loads is less general than that of sensors. As a result it may be convenient to use reciprocity to define a load by generating the collocated sensor. When a sensor is defined, and the topology correlation performed with SensMatch, one can define an actuator from this sensor using
model=fe_case(model,'DofLoad SensDof',Input_Name,'Sens_Name:Sens_Nb') or for model using superelements
model=fe_case(model,'DofLoad SensDofSE',Input_Name,'Sens_Name:Sens_Nb').
Sens_Name is the name of the sensor set entry in the model stack of the translation sensor that defines the actuator, and Sens_Nb is its number in this stack entry. Thus Sensors:1 2 5 will define actuators with sensors 1, 2 and 5 for SensDof entry Sensors. Input_Name is the name of the DofLoad entry that will be created in the model stack to describe the actuator.

Note that a verification of directions can be performed a posteriori using feutilb GeomRB.

Animation of sensor wire-frame models

This is discussed in section 2.8.3.

Obsolete

SDT 5.3 match strategies are still available. Only the arigid match has not been ported to SDT 6.1. This section thus documents SDT 5.3 match calls.

For topology correlation, the sensor configuration must be stored in the sens.tdof field and active FEM DOFs must be declared in sens.DOF. If you do not have your analysis modeshapes yet, you can use sens.DOF=feutil('getdof',sens.DOF). With these fields and a combined test/FEM model you can estimate test node motion from FEM results. Available interpolations are

At each point, you can see which interpolations you are using with
fe_sens('info',sens). Note that when defining test nodes in a local basis, the node selection commands are applied in the global coordinate system.

The interpolations are stored in the sens.cta field. With that information you can predict the response of the FEM model at test nodes. For example

 [model,def]=demosdt('demo GartDataCoshape');
 model=fe_sens('rigid sensors',model); % link sensors to model
 % display sensor wire-frame and animate FEM modes
 cf=feplot; cf.model=model; cf.sel='-sensors';
 cf.def=def;fecom(';undefline;scd.5;ch7')

©1991-2024 by SDTools
Previous Up Next