Creating FRF with Multi Degree of Freedom System
16 views (last 30 days)
Show older comments
Hi,
I have 50*8 Amplitude vs Rotor Speed Data and also 50*8 Frequency vs Rotor Speed Data. 50 means the rotor speed limit.
8 means that degree of freedom is eight.
I don't know how can I create FRF for my case. Can you give me some suggestions.
0 Comments
Answers (1)
SOUMNATH PAUL
on 17 Jan 2024
Hi,
As per my understanding you have two sets of data matrices, each matrix is 50*8 which means you have data for 50 different rotor speeds and for each rotor speed there are 8 different degrees of freedom.
Since you have 8 degrees of freedom, we need to create 8 FRFs.
Firstly, we need to load the csv data set in the MATLAB workspace. You can go through this page to understand how to load csv data in the workspace: https://in.mathworks.com/help/matlab/ref/readmatrix.html
After the data is loaded, we need to create a script which loops through each degree of freedom and for each one plot the amplitude vs frequency data.
% Assuming your data is loaded into two variables: amplitudeData and frequencyData
% Each of these variables is a 50x8 matrix.
% Predefine the figure window size
figure('Units', 'normalized', 'Position', [0.1, 0.1, 0.8, 0.8]);
% Loop through each degree of freedom
for dof = 1:8
% Extract the data for the current degree of freedom
amplitude = amplitudeData(:, dof);
frequency = frequencyData(:, dof);
% Create a subplot for each degree of freedom
subplot(2, 4, dof);
% Plot the FRF for the current degree of freedom
plot(frequency, amplitude, 'LineWidth', 1.5);
% Label the axes
xlabel('Frequency (Hz)');
ylabel('Amplitude');
% Add a title to the plot
title(['FRF - DOF ' num2str(dof)]);
% Optionally, add grid and set axis limits
grid on;
xlim([min(frequency), max(frequency)]);
% Automatic y-axis limits can be set with 'ylim auto'
% If you prefer manual limits, replace 'auto' with [ymin ymax]
ylim('auto');
end
% Adjust subplot spacing
subplot_adjustment = 0.04;
subplots = get(gcf, 'Children');
set(subplots, 'Position', get(subplots, 'Position') + [-subplot_adjustment, -subplot_adjustment, subplot_adjustment*2, subplot_adjustment*2]);
% Add a super title to the entire figure
sgtitle('Frequency Response Functions for 8 Degrees of Freedom');
Hope it helps!
Regards,
Soumnath
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!