Contents     Functions     Index     Previous Next     PDF

6.10  Sample parametric analysis step by step



6.10.1  Model parameterization

fevisco handles parametric models with variable stiffness expressed as linear combinations of constant matrices (6.29). The initial step of all parametric studies is to define the parameter sets.

For all models this can be done using fe_case par commands (or upcom ParStack commands for an upcom superelement).
 model=demosdt('demoubeam');
 model=fe_case(model,'par','Top','withnode {z>1}');
If the parameters correspond to viscoelastic materials, one needs to declare which, of the initially elastic materials, are really viscoelastic. This is done using fevisco AddMat calls which associate particular MatId values with viscoelastic materials selected in the m_visco database.
 Up=fevisco('testplate upreset');
 Up=stack_rm(Up,'mat');
 Up = fevisco('addmat 101',Up,'First area','ISD112 (1993)');
 Up = fevisco('addmat 103',Up,'Second area','ISD112 (1993)');
Viscoelastic materials are then considered as parameters by fevisco.

END OF SECTION IS NOT FINALIZED

For example, a selection based on ProId.
 model=fe_case(model,'par','FrontStruts','-k ProId 168';
                     'par','BackStruts' ,'-k ProId 304'};
The PREDIT_mat model XXX


Figure 6.6: The PREDIT_mat model


For example, in the PREDIT_mat model, one can define each of the 4 squares of viscoelastic materials on the pane as a parameter using ProId
 cf=feplot(model); MV=cf.mdl; %XXX
One can then visualize each parameter using feplot model properties windows, within the Case tab




6.10.2  Parametric model generated within NASTRAN (fo_by_set DMAP)

The following gives a simple example of a beam separated in two parts. The step12 calls run NASTRAN with the fo_by_set DMAP where an eigenvalue computation is used to generate a modal basis that is then enriched (so called step 1) before generating a parametric reduced model (step 2).

The steps of the procedure are the following Here is a complete example of this procedure
 cd(sdtdef('tempdir'));
 model=demosdt('demoubeam');cf=feplot;
 model=fe_case(model,'dofload','Input', ...
  struct('DOF',[349.01;360.01;241.01;365.03],'def',[1;-1;1;1],'ID',100));
 model=fe_case(model,'par','Top','withnode {z>1}');
 model=fe_case(model,'sensdof','Sensors',[360.01]);
 cf.Stack{'info','EigOpt'}=[5 20 1e3 11];
 model=nas2up('JobOpt',model); % Init NasJobOpt entry to its default
 cf.Stack{'info','Freq'}=[20:2:150];
 fevisco('writeStep12 -write -run','ubeam',model);
 fecom('promodelsave','ubeam_param.mat'); % save before MVR is built
 % you may sometimes need to quit Matlab here if NASTRAN is long
 cf=feplot('ProModelLoad','ubeam_param.mat'); % reload if you quit matlab
 fevisco('BuildStep12','ubeam',cf) 
 fecom('promodelsave','ubeam_param.mat'); % save after MVR is built
When dealing with a model that would have been treated through a SOL108 (full order direct frequency response), the parametric model returns a B matrix. This is actually related to the Ke and Kvi matrices by
B = glob Ke +
 
i
i,nom Kvi     (6.30)
where glob is defined in NASTRAN using PARAM,G and the loss factors for the viscoelastic parts using the GE values of the respective components.

For viscoelastic analysis NASTRAN requests a complex curve T() given as two tables. NASTRAN applies the PARAM,G to all elements (the matrix called Kdd1 in NASTRAN lingo is equal to Ke+i Kvi) as a result the variable viscoelastic stiffness which are here proportional to G()/Gi,nom = 1+iglob + T() i,nom hence, given the complex modulus, the table is given by
T =
1
i,nom
æ
ç
ç
è
Re(G())
Gi,nom
-1 ö
÷
÷
ø
+ i æ
ç
ç
è
Im(G())
Gi,nom
-glob ö
÷
÷
ø
    (6.31)

Generation of variable coefficients to be used in the toolbox from NASTRAN input is obtained with MVR.zCoefFcn=fevisco('nastranzCoefv1',model).

6.10.3  Parametric model from NASTRAN element matrices

An alternative to the step12 procedure Viscoelastic computations are performed on an upcom model typically imported from NASTRAN after a SOL103 (real eigenvalue) run with PARAM,POST,-4 to export the element matrices. Thus for a NASTRAN run UpModel.dat which generated UpModel.op2 and where the upcom superelement is saved in UpModel.mat a typical script begins with Up=nasread('UpModel.dat','BuildOrLoad').

In some cases, one may want to use reduced basis vectors that are generated by an external code (typically NASTRAN). The problem is then to generate the reduced model MVR without asking fevisco to generate the appropriate basis. You can simply call the DirectReduced command
 Up=fevisco('testplate upreset');
 Up=stack_rm(Up,'mat');
 Up = fevisco('addmat 101',Up,'First area','ISD112 (1993)');
 Up = fevisco('addmat 103',Up,'Second area','ISD112 (1993)');

 def=fe_eig(Up,[6 10 1e3]);
 MVR = fevisco('makemodel matid 101 103',Up,def); 
 MVR=stack_set(MVR,'info','Freq',[20:.5:90]'); 
 RESP=fe2xf('directreduced',MVR);  % Result in XF(1)

6.10.4  Full and reduced order solution within SDT

Typically, one starts predictions with the a first order approximation to generate a reduced model MVR which is then used to approximate the frequency response functions Rred
 % MV=fevisco('testplate matrix');
 MV=stack_set(MV,'info','Freq',[30:.5:500]');   % Target frequencies Hz
 MV=stack_set(MV,'info','EigOpt',[6 40 -(2*pi*30)^2 11]);
 MV.mCoef=[1 0 0];
 iiplot
 [Rred,MVR]=fe2xf('directfirst zCoef0',MV);  
 XF(1)=Rred;iiplot
 % now another temperature (no need to regenerated MVR)
 MVR.Range=30; XF(2)=fe2xf('frfzr',MVR);
 iicom('iixeon');
This is a sample direct computation of the viscoelastic response at 3 frequencies.
 %MV=fevisco('testplate matrix');
 f=stack_get(MV,'info','Freq');MV=stack_set(MV,'info','Freq',f(1:20:end))
 [Rfull,def]=fe2xf('directfull',MV);  
 XF(2)=Rfull; iicom iixeon
Given the reduced model MVR you can then track poles through your parametric range using
 MVR.Range=[0:10:50]';
 Hist=fe2xf('frfpolesearch',MVR);
 fe2xf('plotpolesearch',Hist) % Generate standard plot of result
©1991-2007 by SDTools
Previous Up Next