Remove DOF from a TAM matrix to produce optimal set.
Results=downselect_sensors(SG,TAM)
Results=downselect_sensors(SG,TAM,FROZEN_DOF)
Results=downselect_sensors(SG,TAM,FROZEN_DOF,ERRORTYPE)
Results=downselect_sensors(SG,TAM[,FROZEN_DOF][,ERRORTYPE][,METRIC])
DOWNSELECT_SENSORS removes DOF from from a TAM matrix to produce an optimal set of sensors based on Pseudo-Orthogonality.
For each candidate DOF, the TAM matrix is reduced using static condensation, i.e. Guyan reduction, and the error metric is calculated. The DOF that least affect the error metric are removed from the TAM matrix, and the process is repeated.
For large DOF counts, more than one DOF are removed at each step. The number of DOF removed is calculated based on the number of DOF being checked and the number of modes in SG. Not all DOF are tested in each step. A random set of DOF are checked during each step.
The function continues until the resulting TAM matrix has 2*length(SG) DOF.
SG is an imat_shp containing the target modes.
TAM is a structure containing the TAM matrix. It must contain the fields
.aset | ASET DOF |
.mass | Mass matrix (size ASETxASET) |
.stiffness | Stiffness matrix (size ASETxASET) |
FROZEN_DOF is an imat_ctrace containing the DOF that must be part of the ASET DOF. If not supplied, any DOF is a candidate for removal.
ERRORTYPE is a string specifying the error metric to use to identify the "worst" sensor. The default is 'NORM'.
'NORM' | sqrt(sum(sum((I-POgg).*(I-Pogg))))/(nsensors^2) |
'MAX' | max(max(abs(I-POgg))) |
METRIC is a string defining which metric to use for optimization. Valid choices are 'POgg' (default), which uses the pseudo-orthogonality, and 'Ogg', which uses the FEM self-orthogonality.
FNAME is an optional string containing the name of the XML file to create. If the filename contains wildcards, you will be prompted with a graphical file dialog. If not supplied, the file will not be created. The spreadsheet contains a worksheet with the run summary, a worksheet with the list of DOF removed, and individual worksheets showing a summary of POgg values for the given number of sensors analyzed for that iteration.
Passing in the string 'export_sensors' followed by a numeric vector containing the number of sensors will specify which individual Pogg summary worksheets to write to the XML file. For example, to write out summary sheets for only the 400 and 500 sensor iterations, pass in the vector [400 500]. By default, individual sheets for all of the iterations will be written.
RESULTS is a structure containing the results of the sensor selection. It contains the fields
.metric | String containing the metric used for optimization ('Ogg' or 'POgg') |
.POgg | Each column is the diagonal of the Psuedo-orthogonality matrix for the set of sensors remaining for that iteration. |
.Offdiag | Each column is the maximum of the off diagonal terms of the orthogonality (METRIC = 'Ogg') or pseudo-orthogonality (METRIC = 'POgg'). |
.NumSens | Number of Sensors at each step. |
.Error | Error at each step. |
.MaxOffDiag | Maximum off-diagonal POgg or Ogg term at each step. Each row corresponds to each step. Each column corresponds to [Index1 Index2 Value]. |
.OffDiagIndex | Inex associated with each .MaxOffDiag entry. |
.dof_removed | imat_ctrace containing the DOF removed, starting with least relevant DOF first. |
.dof_kept | imat_ctrace containing the final DOF retained. |
.TAM | Structure containing the TAM matrix. |
.sg | imat_shp containing the target modes. |
Use DOWNSELECT_XML to export these results to a Microsoft Excel XML file. Use FURTHER_GUYAN to generate a TAM matrix for a given number of sensors.
Create 200 DOF TAM matrix:
>> TAMnew = further_guyan(TAM,Results.dof(1:(length(TAM.aset)-200))