Contents  
Functions  
Index
 
 PDF |
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.
model=fe_case(model,'par','FrontStruts','-k ProId 168';
'par','BackStruts' ,'-k ProId 304'};
The PREDIT_mat model XXX
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![]()
Figure 6.6: The PREDIT_mat model
cf=feplot(model); MV=cf.mdl; %XXXOne can then visualize each parameter using feplot model properties windows, within the Case tab
cf=feplot; % the model should be displayed in feplot
cf.mdl=nas2up('JobOpt',cf.mdl); % Init NasJobOpt entry to its default
fevisco('writeStep12 -run','RootName',cf)
fecom(cf,'ProModelSave','FileName'); % save your model for reload
where the write command edits the nominal job files found in getpref('FEMLink','DmapDir')).
edits={'insert', 'SOL 103' ,'', 'GEOMCHECK NONE';
'replace', 'SPC = 10','', 'SPC = 1'};
model=stack_set(model,'info','NastranJobEdit',edits);
cf=feplot;fecom(cf,'ProModelLoad','FileName');
MVR=fevisco('BuildStep12','RootName',model)
If the files are not automatically copied from the NASTRAN server machine, the BuildStep12 -cpfrom makes sure the result file are copied back.
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,nom Kvi
(6.30) |
glob is defined in NASTRAN using PARAM,G and the loss factors for the viscoelastic parts using the GE values of the respective components.
) 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+i
glob + T(
)
i,nom hence, given the complex modulus, the table is given by| T = |
|
æ ç ç è |
|
-1 |
ö ÷ ÷ ø |
+ i |
æ ç ç è |
|
- glob |
ö ÷ ÷ ø |
(6.31) |
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)
% 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