How can I add a phase to a structuralBoundaryLoad in a Frequency Response Model?
Show older comments
I am using die Partial Equation Toolbox for a frequency response analysis. In my example i got the stator of an elektric motor with 24 teeth. On each teeth i want to put a pressure with the command sturcturalBoundaryLoad(). For better imagination i added a picture of the stator and the .stl file. The pressure should have a phase angle of 2*pi/N between each tooth. In the following example the calculation of 'pload' and 'pressFunc' are just placeholder, these i don't know how to implement. 

%% ---------------------- frequency_response ------------------------------
fmodel = createpde('structural','frequency-solid');
importGeometry(fmodel,'n24_stator.stl');
% generate Mesh
generateMesh(fmodel,'Hmin',0.005,'Hmax',0.01);
N = 24; %number of teeth
faces = [5,9,13,17,21,25,29,33,37,41,45,49,53,57,61,65,69,73,77,81,85,89,93,97]; % IDs of tooth faces
% material and properties
structuralProperties(fmodel,'YoungsModulus',2E11,'PoissonsRatio',0.3,'MassDensity',7850);
structuralBC(fmodel,'Constraint','fixed','Face',1) % fix bottom face
structuralDamping(fmodel,'Zeta',0.03) % damping
pressAmpli = 1; %amplitude
for n=1:N
phase_angle = 2*pi*(n-1)/N;
% pseudo code
pLoad = pressFunc(pressAmpli,phase_angle); %
structuralBoundaryLoad(fmodel,'Face',faces(n),'Pressure',pLoad);
end
% frequency response solve
flist = linspace(0,16000,200)*2*pi; % 0-16kHZ
RF = solve(fmodel,flist);
Answers (1)
Hi Martin,
I understand that you want to add a phase to the pressure being applied to the tooth faces. You may implement pressFunc as the following anonymous function:
pressFunc = @(ampli, phase) real(ampli * exp(1i * phase));
Hope it helps you.
Categories
Find more on Electromagnetics in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!