SDT-rotor Contents   Functions      PDF Index |
Purpose
Obsolete functionality
Syntax
model=fe_cyclicb('Basis [, -norm, -all, -int, -rb]',model,orders,omegas,opt) def=fe_cyclicb('DiskEig',DISK) def=fe_cyclicb('DiskEngineLoad EO',model) def=fe_cyclicb('DiskFRFD [, -rest]',DISK,lossfac,cf,sel) def=fe_cyclicb('DiskFRFMS [, -rest]',DISK,def,damp,cf,sel) K=fe_cyclicb('DiskMatrices [ mk]',DISK,Eltselection) fe_cyclicb('Fourier MODENUM [, -phys, rotor, disk, -red, -test TOL]',fignr,model,def) model=fe_cyclicb('PolyAssemble [, NoT]',model,params) DISK=fe_cyclicb('Reduce NODEID0 ELTID0 [, -int]',sector,def) model=fe_cyclicb('Renumber',model) def=fe_cyclicb('Display',cf,def) def=fe_cyclicb('ShaftEngineLoad EO',model) def=fe_cyclicb('ShaftFRFD [-rest]',model,lossfac,cf,sel) def=fe_cyclicb('ShaftFRFMS [-rest]',model,def,damp,cf,sel) fe_cyclic('ShaftPrep',model,def) mdl=fe_cyclic('ShaftRing [-round N1 N2 N3 -autoclose N4]',rim1,rim2) fe_cyclicb('ShaftLoad',model) [def,mdl]=fe_cyclicb('ShaftTEig ORDERS',model)
This command allows to build a set of modes :
The general call is
[model,def]=fe_cyclicb('basis -all -int -norm -rb',sector,orders,omegas);
The output is a struct array containing the modeshapes. If only one output is required, the basis is added to the model as a TR field. The field data refers to the harmonic in column 2 and the rotation speed in column 3. The number of computed modes is controlled by the field 'info','EigOpt' in the stack.
cf=demo_cyclic('testload disk 5 -nor reset') % reset file (rather than load) % Set of Cyclic Modes / Fixed Interface Modes sector=stack_set(cf.Stack{'disk1'},'info','EigOpt',[5 4 0 11 1e-8]); sector=stack_set(sector,'info','EigOptFixInt',[5 4 0 11 1e-8]); sector=fe_cyclicb('basis -all -int -norm',sector,[0:3],... {[0 0 0],[0 0 250]}); cf.model=sector;cf.def=sector.TR;
The -all option is used to get both modeshapes associated with a double eigenvalue in the case where harmonics are not 0 or half the number of sectors, when applicable. For more information on cyclic symmetry, please refer to [...].
The -norm option ensures that modes are orthonormalized in mass and stiffness because of convergence problems caused by the presence of double eigenvalues. This option is not required when the eigenvalue problem is solved with Nastran (fe_eig method 50). xxx discuss with EB
When the -int option is added, modes of the initial sector with its left and right interfaces fixed (clamped) are also computed and added at the beginnning of the output. These modes have a −1 in the field data. The computation parameters are specified in the 'info','EigOptFixInt' stack entry. When this option but no harmonic are given, it computes only fixed interface modes.
The six rigid body modes of a cyclic symmetric structure are mono-harmonic with harmonic 0 (1T along and 1R around the axis of symmetry) and harmonic 1 (2T along and 2R around the other axes). Thus, the -rb option is used to compute two more flexible modes with harmonic 0 and four more flexible modes with harmonic 1.
This command allows to compute the approximate modes of a reduced disk model built with the command Reduce of fe_cyclicb.
Command fails and is no longer maintained zzz see with arnaud
cf=demo_cyclic('testload disk 5 -nor') % reload model fe_cyclicb('reduce 1 1 -int',cf);disk=cf.Stack{'diskmodel'}; % Mode computations disk=stack_set(disk,'info','EigOpt',[5 30 1e3 11 1e-8]); [def,disk]=fe_cyclicb('diskeig -ord',disk); disp(def.data); cf.def=fe_cyclicb('Display',cf,def);
The -ord option is used to identify the Fourier harmonic coefficient associated with each mode when dealing with the reduced model of a tuned disk. When dealing with a mistuned disk (whose modes are multi-harmonic), this returns the coefficient whose harmonic is the greatest.
This commands builds a physical load, spatially mono-harmonic, on a specified set of nodes. If no selection is present, all nodes are used.
% Model Initialization cf=demo_cyclic('testdisk 7 -blade -cf 2'); % External Load Load=fe_cyclicb('DiskEngineLoad 3 r > 201',cf); cf.def=Load;fecom showdefarrow;
This command allows to build the Frequency Response Functions of a disk model, either full or reduced. A load and a set of observation DOF have to be defined and added to the model with fe_case. The frequency range is stored in the stack as a 'info','Freq' entry.
The general call is
xF=fe_cyclicb('DiskFRFD',disk,lossfac) xF=fe_cyclicb('DiskFRFD -rest',disk,lossfac,cf,sel) xF=fe_cyclicb('DiskFRFMS',disk,def,damp) xF=fe_cyclicb('DiskFRFMS -rest',disk,def,damp,cf,sel)
The command FRFD assembles the matrices of the model then uses them to compute the response. An optional loss factor can be specified.
The command FRFMS synthetizes the response from a set of modeshapes. A damping ratio for all modes can be specified.
The option -rest recovers (xxxEB recovers, expands, interpolates, ...) the response computed on the reduced model to a given selection of physical DOF. Without selection, the response is expanded to the whole physical DOF set. This option must be disabled when dealing with a full disk model.
The following example builds both direct and sythetized responses of a reduced disk model to a 2EO excitation.
cf=demo_cyclic('testload disk 5 -nor') % reload model % the call to fe_cyclicb basis is already done fe_cyclicb('reduce 1 1 -int',cf);disk=cf.Stack{'diskmodel'}; % External Load Load=fe_cyclicb('DiskEngineLoad 2',cf); fe_cyclicb('DiskSeDefInit',cf); Rload=fe_cyclicb('DiskSeLoad',cf,Load); disk=fe_case(disk,'dofload','Blade_load',Rload); freq=[1500:5:3000]'; disk=stack_set(disk,'info','Freq',freq); % Restitution to Blade Dofs tips=feutil('FindNode r>201',cf.mdl); disk=fe_case(disk,'SensDof','Sensors',disk.DOF); % Transfert Functions / Direct xFd=fe_cyclicb('disk frfd -rest',disk,.002,cf,tips); % Transfert Functions / Modal Synthesis disk=stack_set(disk,'info','EigOpt',[5 50 -1e3 11 1e-8]); [def,disk]=fe_cyclicb('diskeig',disk); xFms=fe_cyclicb('disk frfms -rest',disk,def,.001,cf,tips); % Response Plots ci=iiplot; XF=iicom('curveXF'); XF('Blade resp.D')=struct('w',xFd.data,'xf',xFd.def.','dof',xFd.DOF); XF('Blade resp.MS')=struct('w',xFms.data,'xf',xFms.def.','dof',xFms.DOF); iicom('subMagPha') iicom(ci,'IIxOnly',{'Blade resp.D','Blade resp.MS'})
This commands provides a graphical representation of the generalied quantities (modeshapes or load) on a patch whose nodes represent the generalized DOFs.
The following example deals with such representation for both the modes and a 3EO excitation.
% Model Initialization cf=demo_cyclic('testload disk 5 -nor reset') % Model Reduction fe_cyclicb('reduce 1 1 -int',cf);disk=cf.Stack{'diskmodel'}; % Mode Computations disk=stack_set(disk,'info','EigOpt',[5 50 -1e3 11 1e-8]); [def,disk]=fe_cyclicb('diskeig',disk); fe_cyclicb('diskplot',3,cf,def); % External Load Load=fe_cyclicb('DiskEngineLoad 3',cf); fe_cyclicb('DiskSeDefInit',cf); Rload=fe_cyclicb('DiskSeLoad',cf,Load); fe_cyclicb('diskplot',4,cf,Rload);
DiskRest computes the Fourier Recovery Matrix associated with the specified harmonic. This function is used internally by fe_cyclicb.
DiskMatrices returns the reduced matrices assembled from the sector superelement matrices. When the option mk is specified, it returns the mass and stiffnes matrices only.
cf=demo_cyclic('testload disk 5 -nor reset') % reload model fe_cyclicb('reduce 1 1 -int',cf);disk=cf.Stack{'diskmodel'}; Kr0=fe_cyclicb('diskmatrices',disk); disk.il=[1001 1 1 250^2 250^4]; Kr=fe_cyclicb('diskmatrices mk',disk);
PolyAssemble [, noT] supports the computations of the coefficients of the matrix polynomial from the assembly of the stiffness matrices (including gyroscopic and nonlinear tangent stiffnesses) at the given values of the parameters. Three values are required.
The following example assembles the mass and full stiffness matrices at 0, 500 and 1000 rps, then computes the modes of the free sector at 250 rps.
% Model Initialization cf=demo_cyclic('testdisk 5 -blade noK -nor -cf 2'); sector=fe_cyclicb('polyassemble noT',cf.Stack{'disk1'},[0 500 1000]); [Case,sector.DOF]=fe_mknl('init',sector); K={sector.K{1},feutilb('sumkcoef',{sector.K{2:4}},[1 250^2 250^4])}; % Mode Computations def=fe_eig({K{1},K{2},Case.T,sector.DOF},[5 10 0 11]); cf.model=sector;cf.def=def;
This command initializes the restitution of the generalized modes computed with the DiskEig command on the physical DOF set. The restitution bases are stored in the Stack as a 'info','SeRestit' entry which contains the following fields:
The restitution is performed with the command SeDef of fesuper. In this command, a patch can be defined as a selection of elements so that the modeshapes are expanded only to the physical DOF of their nodes.
The following example builds a reduced model, computes a set of generalized modes, then the modeshapes are recovered on the blades only.
% Model Initialization cf=demo_cyclic('testload disk 5 reset') % reset file (rather than load) % Mode Computations def=fe_eig(cf.mdl,[5 20 -1e3 11 1e-8]); % Restitution cf.def=fesuper('SeDef',cf,def);
This commands transforms an external load, expressed on the physical DOF set, into a generalized load, expressed on the generalized DOF set. It is necessary to initialize the restitution of the underlying disk model, since this transformation is the inverse operation.
% Model Initialization cf=demo_cyclic('testload disk 5 -nor') %xxx obsolete %Model Reduction fe_cyclicb('reduce 1 1 -int',cf); % External Load Load=fe_cyclicb('DiskEngineLoad 1',cf); fe_cyclicb('DiskSeDefInit',cf); Rload=fe_cyclicb('DiskSeLoad',cf,Load);
The Reduce command is used to generate a disk model from a set of cyclic modes associated with multiple harmonics. The general call is
[disk,SEsector]=fe_cyclicb('reduce NodeId0 EltId0 [-int]',model); fe_cyclicb('reduce NodeId0 EltId0 [-int]',cf);
The second call uses directly a global model stored in the variable cf and stores the reduced model as an entry 'info','diskmodel' in cf.Stack.
If required, new starting points for numbering the generalized DOF and the associated elements are defined in the command string through the two integers NodeId0 and EltId0.
The initial set of modes has to be given as a field TR of the model. This operation can be performed directly by using the command Basis of fe_cyclicb, as shown in the following script.
% Model Initialization cf=demo_cyclic('testload disk 5 -nor -cf reset'); fe_cyclicb('reduce 1 1 -int',cf); disk=cf.Stack{'diskmodel'};
The reduction basis is built by separating right, left and interior motion from the cyclic modeshapes. When the -int option is invoked, fixed interface modes of the sector are added to the set of interior modes. For more information about this procedure, refer to [11].