eval(demosdt('echoon')) % Illustration of test preparation and basic visualization of test results % for the case of the GARTEUR SM-AG-19 Testbed. % % The documentation associated to this demo is accessible with % doc('sdt/pre') (Section : Preparing a modal test) comgui('close all'); % initialize at the end of the GARTFE demo load sdt_gart FEnode FEelt mdof md0 f0 FEM=struct('Node',FEnode,'Elt',FEelt,'DOF',mdof); def=struct('def',md0,'DOF',mdof,'data',f0); % Newer format %----------------------------------------------------------------- %----------------------------------------------------------------- % This would be a typical test geometry definition script % % start by defining nodes TEST=[]; TEST.Node = [ 1011 0 0 0 0.780 0.980 0.186; 1001 0 0 0 0.600 0.980 0.186; 2012 0 0 0 0.400 0.980 0.181; 1012 0 0 0 0.420 0.980 0.186; 2005 0 0 0 0.550 0.600 0.171; 1005 0 0 0 0.560 0.600 0.176; 1008 0 0 0 0.560 0.300 0.176; 1111 0 0 0 0.780 -0.980 0.186; 1101 0 0 0 0.600 -0.980 0.186; 2112 0 0 0 0.400 -0.980 0.181; 1112 0 0 0 0.420 -0.980 0.186; 2105 0 0 0 0.550 -0.600 0.171; 1105 0 0 0 0.560 -0.600 0.176; 1108 0 0 0 0.560 -0.300 0.176; 1201 0 0 0 0.000 0.000 0.075; 2201 0 0 0 0.000 -0.025 0.075; 3201 0 0 0 0.010 0.000 0.150; 1206 0 0 0 0.560 0.000 0.176; 1205 0 0 0 1.450 -0.025 0.075; 1302 0 0 0 1.450 -0.005 0.420; 2301 0 0 0 1.400 0.185 0.455; 1301 0 0 0 1.420 0.185 0.460; 2303 0 0 0 1.400 -0.185 0.455; 1303 0 0 0 1.420 -0.185 0.460; ]; % define a wire frame display % Provide a list of nodes with possible line breaks defined by 0 % You can define more than one group of lines % TEST.Elt=feutil('object wireframe', ... [1012 1001 1011 0 2012 0 2005 0 ... % right drum 1001 1005 1008 1206 1108 1105 1101 0 ... % wing 1112 1101 1111 0 2112 0 2105 0], ... [ 3201 1206 1205 1302 1301 1302 1303 0 ... % fuselage 1201 0 2201 ... 0 2301 0 2303 ... % other sensors ]); % add test wire-frame to FEM model if it exists sens=fe_sens('model',FEM); sens=feutil('addtest -EGID -1',sens,TEST); cf=feplot; cf.model=sens; fecom('showlinks') % Tools to deal with non matching FEM/test coordinate systems are detailed % in doc('sdt/topo') % overlay the test geometry on the FE model %----------------------------------------------------------------- demosdt('pause');%------------------------------------------------ % Simple declaration of 24 test sensors using a DOF definition vector % and example of a typical plot sens.tdof = [1011.03 1001.03 2012.07 1012.03 2005.07 1005.03 1008.03 ... 1111.03 1101.03 2112.07 1112.03 2105.07 1105.03 1108.03 1201.07 ... 2201.08 3201.03 1206.03 1205.08 1302.08 2301.07 1301.03 2303.07 1303.03]'; cf.sens(1) = sens.tdof; fecom('showarrow') fecom(';scd.15;textdof'); % The same sensors using the general format allowing arbitrary directions % would be % Address Node nx ny nz sgdof=[ 1011.03 1011 0.0 0.0 1.0; 1001.03 1001 0.0 0.0 1.0; 2012.07 2012 -1.0 0.0 0.0; 1012.03 1012 0.0 0.0 1.0; 2005.07 2005 -1.0 0.0 0.0; 1005.03 1005 0.0 0.0 1.0; 1008.03 1008 0.0 0.0 1.0; 1111.03 1111 0.0 0.0 1.0; 1101.03 1101 0.0 0.0 1.0; 2112.07 2112 -1.0 0.0 0.0; 1112.03 1112 0.0 0.0 1.0; 2105.07 2105 -1.0 0.0 0.0; 1105.03 1105 0.0 0.0 1.0; 1108.03 1108 0.0 0.0 1.0; 1201.07 1201 -1.0 0.0 0.0; 2201.08 2201 0.0 -1.0 0.0; 3201.03 3201 0.0 0.0 1.0; 1206.03 1206 0.0 0.0 1.0; 1205.08 1205 0.0 -1.0 0.0; 1302.08 1302 0.0 -1.0 0.0; 2301.07 2301 -1.0 0.0 0.0; 1301.03 1301 0.0 0.0 1.0; 2303.07 2303 -1.0 0.0 0.0; 1303.03 1303 0.0 0.0 1.0]; % sens.tdof=sgdof; % uncomment this line for arbitrary directions demosdt('pause');%------------------------------------------------ % We will now demonstrate the use of fe_sens for test/analysis correlation % The next step is to define interpolations between test and FEM nodes. % Using the alternate rigid interpolation (see fe_sens) for all nodes % is obtained with sens=fe_sens('arigid',sens); % You can now display the standard plot showing links between test and % FEM nodes cf=feplot(2); % select the feplot figure where you want to display cf.model=sens; % show the model stored in SENS in this figure fecom('show links'); % show the standard link display demosdt('pause');%------------------------------------------------ % one can now display the response of finite element modes at test sensors cf.def(1)={sens.cta*def.def(:,7:end),sens.tdof,def.data(7:end)}; fecom('showline'); cf.o(1)='ty4sel2';cf.o(2)='ty2def1ch2sel1 scd.15'; demosdt('pause');%------------------------------------------------ % one can see if this corresponds to the sensor placement resulting from % the effective independence algorithm % select translation DOFs on selected element groups ind = fe_c(mdof,femesh('findnode group1:5 7'),'ind'); ind = fe_c(mdof(ind),[1:3]'/100,'ind'); % indices of translation DOFs % place sensors based on first 10 modes % Effective independence algorithm : (this will take a while) % edof = fe_sens('indep',md0(ind,[7:16]),mdof(ind)); % The preferred maximum sequence algorithm edof= fe_sens('mseq 24',def); % now create a plot cf.sens(1) = sens.tdof; % define sensors cf.sens(2)={edof(1:24)}; cf.sel(1)='egid-1'; % selection for test wire-frame cf.sel(2)='egid>0'; % other element groups fecom('sub 2 2 1 3 7'); % create feplot axis in position 2 2 1 fecom('sub 2 2 3 3 7'); % create a second feplot axis in position 2 2 3 fecom('cax1'); cf.o(1)='ty 4sel1'; % define feplot objects within axis cf.o(2)={'ty 7 ch0 sens1','edgecolor','b','linewidth',2}; title('Actual sensors'); subplot(222); % create a standard suplot in position 2 2 2 ii_mac('cpa',sens.cta*def.def,'inda',7:15, ... 'labela','Actual','Mac Auto A plot'); fecom('cax2'); % make it current cf.o(1)='ty4sel2 scd0'; % create onjects NeedStop=1; cf.o(2)={'ty 7 ch0 sens2 scd.15','edgecolor','b','linewidth',2}; title('Effective independence'); subplot(224); % create a standard suplot in position 2 2 4 % create MAC in the current subplot cp=fe_c(def.DOF,edof(1:24))*def.def; ii_mac(cp,'labela','MaxSeq','inda',7:15,'Mac Auto A plot'); fecom('Renderer zbuffer'); % Often OpenGL bugs in colormap rendering % For a given placement it is good practice to verify that off-diagonal % auto-MAC terms are not too low % Here the maximum sequeence algorithm gives good results %----------------------------------------------------------------- eval(demosdt('echooff')) % Etienne Balmes % Copyright (c) 1990-2004 by SDTools, All Rights Reserved. % $Revision: 1.6 $ $Date: 2005/12/20 08:14:07 $