Creating FRF with Multi Degree of Freedom System

15 visualizaciones (últimos 30 días)
Oguzhan Keser
Oguzhan Keser el 26 de Jun. de 2022
Respondida: SOUMNATH PAUL el 17 de En. de 2024
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.

Respuestas (1)

SOUMNATH PAUL
SOUMNATH PAUL el 17 de En. de 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

Categorías

Más información sobre MATLAB en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2014b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by