SDT-base         Contents     Functions         Previous Next     PDF Index

3.4  Structural dynamic modification

While test results are typically used for test/analysis correlation and update, experimental data have direct uses. In particular,

Structural modification and closed loop predictions are important application areas of SDT. For closed loop predictions, users typically build state-space models with res2ss and then use control related tools (Control Toolbox, Simulink). If mechanical modifications can be modeled with a mass/damping/stiffness model directly connected to measured inputs/outputs, predicting the effect of a modification takes the same route as illustrated below. Mass effects correspond to acceleration feedback, damping to velocity feedback, and stiffness to displacement feedback.

The following illustrates on a real experimental dataset the prediction of a 300 g mass loading effect at a locations 1012−z and 1112−z (when only 1012−z is excited in the gartid dataset used below).

 ci=demosdt('demo gartid est');
 ci.Stack{'Test'}.xf=-ci.Stack{'Test'}.xf;% driving 1012-z to 1012z
 ci.Stack{'Test'}.dof(:,2)=12.03;
 ci.IDopt.reci='1 FRF'; idcom(ci,'est');

 ind=fe_c(ci.Stack{'IdMain'}.dof(:,1),[1012;1112],'ind');
 po_ol=ci.Stack{'IdMain'}.po;

 % Using normal modes
 NOR = res2nor(ci.Stack{'IdMain'}); NOR.pb=NOR.cp'; 
 S=nor2ss(NOR,'hz'); % since NOR.idopt tells acc. SS is force to Acc
 mass=.3; a_cl = S.a - S.b(:,ind)*S.c(ind,:)*mass;
 po_cln=ii_pof(eig(a_cl)/2/pi,3,2)
 if sdtdef('UseControlToolbox-safe',1) && any(exist('ss','file')==[2 6]); 
   SS=S;set(SS,'b',S.b(:,4),'d',S.d(:,4),'InputName',S.InputName(4))
 else % Without CTbox
   SS=S;SS.b=SS.b(:,4);SS.d=SS.d(:,4);SS.dof_in=SS.dof_in(4,:);
 end
 qbode(SS,ci.Stack{'Test'}.w*2*pi,'iiplot "Normal"'); 

 % Using complex modes
 SA = res2ss(ci.Stack{'IdMain'},'AllIO');SA.dof_out=S.dof_out;
 a_cl = S.a - S.b(:,ind)*S.c(ind,:)*mass;
 po_clx=ii_pof(eig(a_cl)/2/pi,3,2)
 if sdtdef('UseControlToolbox-safe',1) && any(exist('ss','file')==[2 6]); 
   SS=SA;set(SS,'b',S.b(:,4),'d',S.d(:,4)*0,'InputName',S.InputName(4))
 else % Without CTbox
   SS=SA;SS.b=SS.b(:,4);SS.d=SS.d(:,4)*0;SS.dof_in=S.dof_in(4,:);
 end
 qbode(SS,ci.Stack{'Test'}.w*2*pi,'iiplot "Cpx"'); 
 iicom('ch4');

 % Frequencies
 figure(1);in1=1:8;subplot(211);
 bar([ po_clx(in1,1) po_cln(in1,1)]./po_ol(in1,[1 1]))
 ylabel('\Delta F / F');legend('Complex modes','Normal modes')
 set(gca,'ylim',[.5 1])

 % Damping
 subplot(212);bar([ po_clx(in1,2) po_cln(in1,2)]./po_ol(in1,[2 2]))
 ylabel('\Delta \zeta / \zeta');legend('Complex modes','Normal modes')
 set(gca,'ylim',[.5 1.5])

Notice that the change in the sign of ci.Stack{'Test'}.xf needed to have a positive driving point FRFs (this is assumed by id_rm). Reciprocity was either applied using complex (the 'AllIO' command in res2ss returns all input/output pairs assuming reciprocity) or normal modes with NOR.pb=NOR.cp'.

Closed loop frequency predictions agree very well using complex or normal modes (as well as with FEM predictions) but damping variation estimates are not very good with the complex mode state-space model.

There is much more to structural dynamic modification than a generalization of this example to arbitrary point mass, stiffness and damping connections. And you can read [34] or get in touch with SDTools for our latest advances on the subject.


©1991-2024 by SDTools
Previous Up Next