How can I add a phase to a structuralBoundaryLoad in a Frequency Response Model?
1 view (last 30 days)
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);
0 Comments
Answers (1)
Arnav
on 12 Mar 2025
Edited: Arnav
on 12 Mar 2025
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.
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!