SDT-rotor Contents   Functions      PDF Index |
Purpose
Combines examples of the use of fe_cyclicb commands.
Syntax
demo_cyclic('testdisk nsec') demo_cyclic('testrotor nsec1 nsec2 ...')
Moved to section 3.5.2.
Moved to section 3.5.3.
One considers stiffness matrices that are dependent on the rotation speep. Assuming that a second order polynomial representation is sufficient, one can build a vector of weigthing coefficients
(5.1) |
Such that the stiffness at rotation speed Ω is approximated by
(5.2) |
The zCoef uses velocity Omega in rad/s.
This example now treats computation at variable rotation speeds
% Model Initialization model=demo_cyclic('testblade');cf=feplot(model); % Compute matrix coefficients for a multi-stage rotor range=struct('data',[0 0 1;0 0 800;0 0 1600],'unit','RPM'); % Assembling in the feplot figure, allows memory offload fe_cyclicb('polyassemble -noT',cf,range); X=struct('data',linspace(0,1600,10),'unit','RPM'); fe_rotor('Campbell -cf1',model,X)
Another example will be needed to treat the multi-stage case
% Model Initialization model=demo_cyclic('testrotor 7 10 -blade'); model=fe_cyclicb('shaftRimAsSe',model); cf=feplot(model); % Compute matrix coefficients for a multi-stage rotor range=struct('data',[0 0 1;0 0 800;0 0 1600],'unit','RPM'); % Assembling in the feplot figure, allows memory offload fe_cyclicb('polyassemble -noT',cf,range); % Now run a mono-harmonic multi-speed computation cf.Stack{'info','Omega'}=struct('data',range.data(1,:),'unit','RPM'); def=fe_cyclicb('shafteig 0 -ReAssemble 2 -NoN',cf); Sel={'disk1','groupall';'disk2','groupall'}; fe_cyclicb('DisplaySel',cf,def,Sel) % Reduce the full model fe_cyclicb('ShaftPrep -svdtruncate -mseq1 -handle -norestit',cf,def); fesuper('fassemble',cf); % Force single harmonic % xxx
Rewrite needed here.
The second example is a non-monoharmonic shaft computation.
The following example builds a reduced order model from a set of mono-harmonic modeshapes whose Fourier harmonics are 0, 1 and 2 and sector modes with fixed interfaces. The latter are computed within the framework of mono-harmonic computations, they are called with -1 in shaftTeig. No confusion is possible since the true mono-harmonic solutions with δ=−1 are solutions with δ=1. However, the restitution of fixed interface solutions with Display[Sel] has no sense.
Call shaftprep aims to build the reduced kinematic subspaces of the sector super-elements from the specified target solutions. Prior to that, it separates the sector mesh into two: the slice with the left-interface nodes (the inter-sector super-element) and the remaining elements (the sector super-element). It projects the matrices of the sector super-elements onto their individual subspaces and the matrices of the inter-sector slices onto the subspaces of its two neighbouring sector super-elements.
Command fassemble in fesuper first projects the finite elements matrices of the inter-disk volumic interface onto the subspaces of its neighbouring disks. It then assembles the reduced matrices of the sector super-elements and inter-sector slices to form the reduced matrices of the disks. Finally, it assembles these reduced matrices and that of the volumic interfaces to form the reduced matrices of the whole rotor.
Here too, a selection can be specified so that the generalized modeshapes can be recovered to a subset of physical DOF (relying on the true mesh or a viewing mesh). The selections are defined like in DisplaySel, however both the sector and inter-sector super-elements have to be considered so that the recovery concerns the whole underlying bladed sector.
The Fourier harmonic contents of the generalized modeshapes can be obtained without recovery with the help from command fourier of fe_cyclicb. When specified, -egyfrac returns the fraction of strain energy per harmonic per disk so that energy localization within a disk can be achieved with the supplementary information of which harmonics are involved in the response. The graph displays the disks (from top to bottom) and for each disk the possible harmonics between 0 and N/2 (if applicable). Another way to display the same information is to group the harmonics first and then the disks. This is done with the -sortbyd option. It adds the proper amount of zeros for harmonics that are not present on a given disk.
_mono.mat to name a model that contains the mono-harmonic description.
% Model Initialization cf=demo_cyclic('testrotor 7 10 -blade -cf 2'); % Mono-harmonic Solutions model=stack_set(cf.mdl,'info','EigOpt',[5 10 -1e3 11 1e-8]); [def,sectors]=fe_cyclicb('shaftteig -1 0 1 2',model); %-batch Curve=fe_cyclicb('fourier 1:50 -mono -egyfrac',cf,... fe_def('subdef',def,def.data(:,2)~=-1)); % xxxNeed : display curve fe_cyclicb('fourier -mono -egyfrac -cf 3',Curve); r1=sortrows(def.data); if any(r1(1:6,1)>r1(7,1)/1e5);error('Missing rigid modes');end % Model Reduction fe_cyclicb('ShaftPrep -svdtruncate -mseq1 -handle -norestit',cf,def); fesuper('fassemble',cf); % Mode Computations defr=fe_eig(cf.Stack{'MVR'},[5 50 1e3 11 1e-8]); Sel={'disk2','innode {r>150}'; 'disk2l','innode {r>150}'; 'disk1','groupall'; 'disk1l','groupall'; '','withnode {x>0}'}; fesuper('sebuildsel -initrot',cf,Sel); cf.def=feutilb('placeindof',cf.sel.cna{1}.adof,defr); fecom('colordataevala'); % Post-processing: spatial spectra cf.sel='reset';cf.def=[]; fe_cyclicb('fourier 7:25 -red -egyfrac -cf 4',cf,defr); fe_cyclicb('fourier 7:25 -red -egyfrac -sortbyd -cf 5',cf,defr); % focus on mode 7 fe_cyclicb('fourier 7 -red -egyfrac -cf 6',cf,defr);
Now one wants to treat the case of a forced response for loads defined on the disks only. The command ShaftLoadMulti allows to build one mono-harmonic excitation per disk. For each disk i, the shape def_i and harmonic coefficient delta_i are specified in a cell array whose a typical line is {'diski',def_i,delta_i}.
Call fourier provides a means to checkout the spatial harmonic content of the generalized load with respect to the set of generalized coordinates (option -red has to be specified). Energy-based computations are not available for generalized loads.