Creating FRF with Multi Degree of Freedom System

조회 수: 4 (최근 30일)
Oguzhan Keser
Oguzhan Keser 2022년 6월 26일
답변: SOUMNATH PAUL 2024년 1월 17일
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.

답변 (1개)

SOUMNATH PAUL
SOUMNATH PAUL 2024년 1월 17일
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

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

태그

제품


릴리스

R2014b

Community Treasure Hunt

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

Start Hunting!

Translated by